<?js
var data = obj;
var self = this;
function isInternal (data) {
    return data.access === 'protected' || data.access === 'private';
}
function deprecatedHeading (data) {
    if (data.deprecated && isInternal(data)) {
        return "Deprecated / Internal";
    } else if (isInternal(data)) {
        return "Internal"
    } else {
        return "Deprecated"
    }
}
function cleanShortPath (shortpath) {
    return shortpath.replace(/^.*\bsrc[/]/, '');
}
?>
<dl class="details">
    <?js
        var properties = data.properties;
        if (properties && properties.length && properties.forEach) {
    ?>

        <h5 class="subsection-title">Properties:</h5>

        <dl><?js= this.partial('properties.tmpl', properties) ?></dl>

    <?js } ?>

    <?js if (data.version) {?>
    <dt class="tag-version">Version:</dt>
    <dd class="tag-version"><ul class="dummy"><li><?js= version ?></li></ul></dd>
    <?js } ?>

    <?js if (data.since) {?>
    <dt class="tag-since">Since:</dt>
    <dd class="tag-since"><ul class="dummy"><li><?js= since ?></dd>
    <?js } ?>

    <?js if (data.inherited && data.inherits) { ?>
    <dt class="inherited-from">Inherited From:</dt>
    <dd class="inherited-from"><ul class="dummy"><li>
        <?js= this.linkto(data.inherits, this.htmlsafe(data.inherits)) ?>
    </li></dd>
    <?js } ?>

    <?js if (data.deprecated || isInternal(data)) { ?>
        <dt class="important tag-deprecated"><?js= deprecatedHeading(data) ?>:</dt>
        <dd class="tag-deprecated"><ul>
        <?js if (data.access === 'protected') { ?>
            <li>This member is <em>internal (protected)</em> and may be modified or removed in the future.</li><?js } ?>
        <?js if (data.deprecated != null) { ?>
            <li><?js if (isInternal(data)) { ?><em>Deprecated:</em> <?js }?><?js= data.deprecated === true ? 'Yes' : data.deprecated ?></li><?js } ?>
        </ul></dd>
    <?js } ?>

    <?js if (data.author && author.length) {?>
    <dt class="tag-author">Author:</dt>
    <dd class="tag-author">
        <ul><?js author.forEach(function(a) { ?>
            <li><?js= self.resolveAuthorLinks(a) ?></li>
        <?js }); ?></ul>
    </dd>
    <?js } ?>

    <?js if (data.copyright) {?>
    <dt class="tag-copyright">Copyright:</dt>
    <dd class="tag-copyright"><ul class="dummy"><li><?js= copyright ?></li></ul></dd>
    <?js } ?>

    <?js if (data.license) {?>
    <dt class="tag-license">License:</dt>
    <dd class="tag-license"><ul class="dummy"><li><?js= license ?></li></ul></dd>
    <?js } ?>

    <?js if (data.defaultvalue) {?>
    <dt class="tag-default">Default Value:</dt>
    <dd class="tag-default"><ul class="dummy"><li><?js= data.defaultvalue ?></li></ul></dd>
    <?js } ?>

    <?js if (data.meta) {?>
    <dt class="tag-source">Source -
    <?js= self.linkto(meta.shortpath, cleanShortPath(meta.shortpath)) ?><?js if (this.navOptions.linenums) {?>, <?js= self.linkto(meta.shortpath, 'line ' + meta.lineno, null, 'sunlight-1-line-' + meta.lineno) ?><?js } ?>
    </dt>
    <?js } ?>

    <?js if (data.tutorials && tutorials.length) {?>
    <dt class="tag-tutorial">Tutorials:</dt>
    <dd class="tag-tutorial">
        <ul><?js tutorials.forEach(function(t) { ?>
            <li><?js= self.tutoriallink(t) ?></li>
        <?js }); ?></ul>
    </dd>
    <?js } ?>

    <?js if (data.see && see.length) {?>
    <dt class="tag-see">See:</dt>
    <dd class="tag-see">
        <ul><?js see.forEach(function(s) { ?>
            <li><?js= self.linkto(s) ?></li>
        <?js }); ?></ul>
    </dd>
    <?js } ?>

    <?js if (data.todo && todo.length) {?>
    <dt class="tag-todo">To Do:</dt>
    <dd class="tag-todo">
        <ul><?js todo.forEach(function(t) { ?>
            <li><?js= t ?></li>
        <?js }); ?></ul>
    </dd>
    <?js } ?>
</dl>
