{{!
 Copyright 2013 Laurent Bovet (laurent.bovet@windmaster.ch)

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
}}
{{#scope this}}
 <div class="box">
    {{#name this}}
    <div class="box-header box-{{__boxId}}">
        <div class="box-title" ref="{{__ref}}">
            <div class="box-name {{#if root}}title{{/if}}">{{__name}}</div>
            <div class="box-description desc">{{desc this}}</div>
            <div class="end"></div>
        </div>
    </div>
    {{/name}}
    <div class="source-button button" title="Source">{}</div>
    <div class="box-body">
        <div class="expand-button button" title="Expand all">+</div>
        {{#sub this}}
        <div class="signature">
            <div class="signature-header">
                <div class="signature-type">
                    {{#primitive this}}
                        {{signature this null this}}
                    {{/primitive}}
                    {{#equals type "array"}}
                        {{signature this "array" items}}
                    {{/equals}}
                    {{#if allOf}}
                        {{signature this "all of" allOf}}
                    {{/if}}
                    {{#if anyOf}}
                        {{signature this "any of" anyOf}}
                    {{/if}}
                    {{#if oneOf}}
                        {{signature this "one of" oneOf}}
                    {{/if}}
                    {{#if not}}
                        {{signature this "not" not}}
                    {{/if}}
                </div>
            </div>
            <div class="signature-box-container">
                {{#boxes}}
                <div class="box-container" boxid="{{__boxId}}">
                    {{schema this}}
                </div>
                {{/boxes}}
            </div>
        </div>
        {{/sub}}
        {{#if properties}}
            {{#each properties}}
            <div class="signature">
                <div class="signature-header">
                    <div class="property-name {{#contains ../required @key}}required{{/contains}}">{{@key}}</div>
                    <div class="signature-type">
                        {{#main this}}
                            {{signature this null this}}
                        {{/main}}
                        {{#equals type "array"}}
                            {{signature this "array" items}}
                        {{/equals}}
                        {{#if allOf}}
                            {{signature this "all of" allOf}}
                        {{/if}}
                        {{#if anyOf}}
                            {{signature this "any of" anyOf}}
                        {{/if}}
                        {{#if oneOf}}
                            {{signature this "one of" oneOf}}
                        {{/if}}
                        {{#if additionalProperties}}
                            {{signature this "map" additionalProperties}}
                        {{/if}}
                        {{#if not}}
                            {{signature this "not" not}}
                        {{/if}}
                    </div>
                    <div class="signature-description desc">{{desc this}}</div>
                </div>
                <div class="signature-box-container">
                {{#boxes}}
                    <div class="box-container" boxid="{{__boxId}}">
                        {{schema this}}
                    </div>
                {{/boxes}}
                </div>
            </div>
            {{/each}}
        {{/if}}

        {{#if patternProperties}}
            {{#each patternProperties}}
            <div class="signature">
                <div class="signature-header">
                    <div class="property-name type-pattern">{{@key}}</div>
                    <div class="signature-type">
                        {{#main this}}
                        {{signature this null this}}
                        {{/main}}
                        {{#equals type "array"}}
                        {{signature this "array" items}}
                        {{/equals}}
                        {{#if allOf}}
                        {{signature this "all of" allOf}}
                        {{/if}}
                        {{#if anyOf}}
                        {{signature this "any of" anyOf}}
                        {{/if}}
                        {{#if oneOf}}
                        {{signature this "one of" oneOf}}
                        {{/if}}
                        {{#if not}}
                        {{signature this "not" not}}
                        {{/if}}
                    </div>
                    <div class="signature-description desc">{{desc this}}</div>
                </div>
                <div class="signature-box-container">
                    {{#boxes}}
                    <div class="box-container" boxid="{{__boxId}}">
                        {{schema this}}
                    </div>
                    {{/boxes}}
                </div>
            </div>
            {{/each}}
        {{/if}}

        {{#if additionalProperties}}
        <div class="signature">
            <div class="signature-header">
                <div class="property-name type-pattern">additional</div>
                <div class="signature-type">
                    {{schema ../additionalProperties}}
                </div>
            </div>
        </div>
        {{/if}}
    </div>
    <div class="source">
        <pre class="json-schema">
{{source this}}</pre>
    </div>
</div>
<div class="end"/>
{{/scope}}
