{
  "file": "addon/components/fountainhead-class/item.js",
  "content": "<pre class=\"language-javascript line-numbers\"><code class=\"language-javascript}\"><span aria-hidden=\"true\" role=\"presentation\" class=\"line-numbers-rows\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span><span class=\"token keyword\">import</span> Component <span class=\"token keyword\">from</span> <span class=\"token string\">'ember-component'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> hbs <span class=\"token keyword\">from</span> <span class=\"token string\">'htmlbars-inline-precompile'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\" spellcheck=\"true\">/**\n * Individual class property or method documentation item\n * @class FountaineadClass.Item\n * @constructor\n * @extends Ember.Component\n */</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> Component<span class=\"token punctuation\">.</span><span class=\"token function\">extend</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n\n  <span class=\"token comment\" spellcheck=\"true\">// Passed Properties</span>\n  <span class=\"token comment\" spellcheck=\"true\">// ---------------------------------------------------------------------------</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * Model backing this class item, generated by YUIDoc.\n   * TODO: Document props of classItem and how they get used in template\n   * @property classItem\n   * @type {Object}\n   */</span>\n  classItem<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n\n  <span class=\"token comment\" spellcheck=\"true\">// Properties</span>\n  <span class=\"token comment\" spellcheck=\"true\">// ---------------------------------------------------------------------------</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * @property classNames\n   * @type {Array}\n   * @default ['fh-classitem']\n   */</span>\n  classNames<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'fh-classitem'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n\n  <span class=\"token comment\" spellcheck=\"true\">// Layout</span>\n  <span class=\"token comment\" spellcheck=\"true\">// ---------------------------------------------------------------------------</span>\n  layout<span class=\"token punctuation\">:</span> hbs<span class=\"token template-string\"><span class=\"token string\">`\n    {{! --------------------------------------------------------------------- }}\n    {{! Item Header\n    {{! --------------------------------------------------------------------- }}\n    {{! Each property header is also a click to copy link, which has the property\n        name bound as the id, this is the target used for targeted route scrolling }}\n    {{#fountainhead-header tagName='h4' elementId=classItem.name}}\n      {{classItem.name}}\n    {{/fountainhead-header}}\n    &lt;h4 class='fh-header'>\n      {{!-- &lt;span class='item-type'>{{classItem.itemtype}}&lt;/span> --}}\n      {{#if classItem.params}}\n        &lt;span class='header-params'>(\n          {{#each classItem.params as |param index|}}\n            {{if index ', '}}{{param.name}}\n          {{/each}}\n          )&lt;/span>\n      {{else}}\n        &lt;span class='header-params'>(&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/span>\n      {{/if}}\n      {{#if classItem.return.type}}\n        &lt;span class='return-type'>{{classItem.return.type}}&lt;/span>\n      {{/if}}\n      {{! Show type for props only }}\n      {{#if (eq classItem.itemtype 'property')}}\n        {{#if classItem.type}}\n          &lt;span class='item-type'>{{classItem.type}}&lt;/span>\n        {{/if}}\n      {{/if}}\n      {{! Begin Info Badges (access, static, deprecated) }}\n      {{#if classItem.access}}\n        &lt;span class='item-access fh-badge {{if (eq classItem.access 'public') 'fh-badge-success' 'fh-badge-alert'}}'>\n          {{classItem.access}}\n        &lt;/span>\n      {{/if}}\n      {{#if classItem.static}}\n        &lt;span class='item-static fh-badge fh-badge-primary'>Static&lt;/span>\n      {{/if}}\n      {{#if classItem.deprecated}}\n        &lt;span class='item-static fh-badge fh-badge-alert'>Deprecated&lt;/span>\n      {{/if}}\n    &lt;/h4>\n\n    {{! --------------------------------------------------------------------- }}\n    {{! Classitem Meta\n    {{! --------------------------------------------------------------------- }}\n    &lt;div class='fh-meta'>\n      {{#if classItem.file}}\n        &lt;small class='fh-defined'>Defined in:\n          {{#link-to 'api.files' classItem.srcFileId (query-params line=classItem.line)}}\n            {{classItem.file}}:{{classItem.line}}\n          {{/link-to}}\n        &lt;/small>\n      {{/if}}\n\n      {{! TODO: Where is this coming from? }}\n      {{! CHECKING INHERITED PROPS! TODO MAKE THIS WORK }}\n      {{#if classItem.inherited}}\n        &lt;small class='fh-inherited'>Inherited from: {{classItem.inherited}}&lt;/small>\n      {{/if}}\n\n      {{#if classItem.since}}\n        &lt;small class='fh-since'>Available since: {{classItem.since}}&lt;/small>\n      {{/if}}\n\n      {{#if classItem.default}}\n        &lt;p class='fh-default'>&lt;span class='uppercase'>Default: &lt;/span> &lt;code>{{classItem.default}}&lt;/code>&lt;/p>\n      {{/if}}\n    &lt;/div>\n\n    {{! --------------------------------------------------------------------- }}\n    {{! Deprecation Warning\n    {{! --------------------------------------------------------------------- }}\n    {{#if classItem.deprecated}}\n      &lt;div class='fh-deprecation-container'>\n        &lt;h4 class='fh-deprecation-header'>Warning: This {{classItem.itemtype}} is deprecated&lt;/h4>\n        &lt;div class='fh-deprecation-message'>{{{classItem.deprecationMessage}}}&lt;/div>\n      &lt;/div>\n    {{/if}}\n\n    {{! --------------------------------------------------------------------- }}\n    {{! Special runtime description for classitem descriptions (components allowed)\n    {{! --------------------------------------------------------------------- }}\n    {{#if classItem.description}}\n      {{fountainhead-runtime-description description=classItem.description}}\n    {{/if}}\n\n    {{! --------------------------------------------------------------------- }}\n    {{! Classitem Params\n    {{! --------------------------------------------------------------------- }}\n    {{#if classItem.params}}\n      &lt;h4 class='fh-item-header'>Parameters&lt;/h4>\n      &lt;ul class='fh-params'>\n        {{#each classItem.params as |param|}}\n          &lt;li class='fh-classitem-params'>\n            &lt;span class='param-meta'>\n              &lt;strong>\n                {{! Surround optional params with brackets to denote they're optional}}\n                {{! TODO: Visual flag for optional? }}\n                {{#if param.optional}}\n                  [{{param.name}}]\n                {{else}}\n                  {{param.name}}\n                {{/if}}\n              &lt;/strong>\n              {{#if param.type}}&lt;span class='param-type'>{{param.type}}&lt;/span>{{/if}}\n            &lt;/span>\n            &lt;span class='param-description'>\n              {{{param.description}}}\n            &lt;/span>\n            {{#if param.props.length}}\n              &lt;ul class='fh-params'>\n                {{#each param.props as |prop|}}\n                  &lt;li class='fh-classitem-params'>\n                    &lt;span class='param-meta'>\n                      &lt;strong>\n                        {{! Surround optional params with brackets to denote they're optional}}\n                        {{! TODO: Visual flag for optional? }}\n                        {{#if param.optional}}\n                          [{{prop.name}}]\n                        {{else}}\n                          {{prop.name}}\n                        {{/if}}\n                      &lt;/strong>\n                      {{#if param.type}}&lt;span class='param-type'>{{param.type}}&lt;/span>{{/if}}\n                    &lt;/span>\n                    &lt;span class='param-description'>\n                      {{{prop.description}}}\n                    &lt;/span>\n                  &lt;/li>\n                {{/each}}\n              &lt;/ul>\n            {{/if}}\n          &lt;/li>\n        {{/each}}\n      &lt;/ul>\n    {{/if}}\n\n    {{#if classItem.return}}\n      &lt;h4 class='fh-item-header'>Returns:&lt;/h4>\n      {{#if classItem.return.description}}\n        &lt;p class='fh-return-description'>{{classItem.return.description}}&lt;/p>\n      {{/if}}\n      {{#if classItem.return.type}}\n        &lt;p class='fh-return-type'>{{classItem.return.type}}&lt;/p>\n      {{/if}}\n    {{/if}}\n  `</span></span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>"
}