{
  "file": "addon/components/fountainhead-class/meta.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 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 * Creates meta information for a documentation class.\n *\n * TODO: Document which YUIDoc tags generate what meta data\n * @class FountainheadClass.Meta\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 Props</span>\n  <span class=\"token comment\" spellcheck=\"true\">// ---------------------------------------------------------------------------</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * The access property is set by using either of the tags:\n   * - `@private`\n   * - `@public`\n   *\n   * The value for access matches the tag used\n   * @property access\n   * @type {string}\n   * @default ''\n   */</span>\n  access<span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * The value property is set by using the `@extends` tag. Any class used in\n   * an extends tag will be linked to.\n   * @property extends\n   * @type {string}\n   * @default ''\n   */</span>\n  <span class=\"token keyword\">extends</span><span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * The file property matches where the documentation for a class is declared\n   * in the source files. It is set automatically.\n   * @property file\n   * @type {string}\n   * @default ''\n   */</span>\n  file<span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * The module property is set by using the `@module` tag. Any module used in\n   * a module tag will be linked to.\n   * @property module\n   * @type {string}\n   * @default ''\n   */</span>\n  module<span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * The line property matches the line where documentation for a class is\n   * declared in the source files. It is set automatically.\n   * @property line\n   * @type {?number}\n   * @default null\n   */</span>\n  line<span class=\"token punctuation\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * scrFile id is set by the data scripts. It is a snake case version of the\n   * file path and should be used for calling for the file\n   * @private\n   * @property srcFileId\n   * @type {string}\n   * @default ''\n   */</span>\n  srcFileId<span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * The submodule property is set by using the `@submodule` tag. Any submodule\n   * used in a submodule tag will be linked to.\n   * @property submodule\n   * @type {string}\n   * @default ''\n   */</span>\n  submodule<span class=\"token punctuation\">:</span>  <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * The uses array is set by using one or more `@uses` tags. Any class used in\n   * a uses tag will be linked to.\n   * @property uses\n   * @type {Array}\n   * @default []\n   */</span>\n  uses<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.&lt;string>}\n   * @default ['fh-class-meta']\n   */</span>\n  classNames<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'fh-class-meta'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\" spellcheck=\"true\">/**\n   * @property tagName\n   * @type {string}\n   * @default 'div'\n   */</span>\n  tagName<span class=\"token punctuation\">:</span> <span class=\"token string\">'div'</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    {{! TODO: Make this an unstyled list }}\n    {{#if access}}\n      &lt;p class='fh-meta'>\n        &lt;span class='meta-access'>Access:&lt;/span> &lt;span class='fh-{{access}}'>{{access}}&lt;/span>\n      &lt;/p>\n    {{/if}}\n\n    {{#if extends}}\n      &lt;p class='fh-meta'>\n        &lt;span class='meta-extends'>Extends:&lt;/span>\n        {{link-to extends 'api.classes' extends}}\n      &lt;/p>\n    {{/if}}\n\n    {{#if uses.length}}\n      {{#each uses as |use|}}\n        &lt;p class='fh-meta'>\n          &lt;span class='meta-uses'>Uses:&lt;/span>\n          {{link-to use 'api.classes' use}}\n        &lt;/p>\n      {{/each}}\n    {{/if}}\n\n    {{#if file}}\n      &lt;p class='fh-meta'>\n        {{! @TODO: Need a config for internal vs external src file linking }}\n        &lt;span class='meta-defined'>Defined In:&lt;/span>\n        {{#link-to 'api.files' srcFileId (query-params line=line)}}\n          {{file}}:{{line}}\n        {{/link-to}}\n      &lt;/p>\n    {{/if}}\n\n    {{! --------------------------------------------------------------------- }}\n    {{! Give precedence to submodules, display module as second priority\n    {{! b/c if a submodule exists the class is hierarchically closer to the\n    {{! submodule than the module\n    {{! --------------------------------------------------------------------- }}\n    {{#if submodule}}\n      &lt;p class='fh-meta'>\n        &lt;span class='meta-module'>Module:&lt;/span>\n        {{link-to submodule 'api.modules' submodule}}\n      &lt;/p>\n    {{else if module}}\n      &lt;p class='fh-meta'>\n        &lt;span class='meta-module'>Module:&lt;/span>\n        {{link-to module 'api.modules' module}}\n      &lt;/p>\n    {{/if}}\n  `</span></span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>"
}