@skyux/docs-tools 5.0.0-beta.9 → 6.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/README.md +8 -0
  2. package/esm2020/docs-tools.module.mjs +40 -0
  3. package/esm2020/modules/anatomy/anatomy-item.component.mjs +17 -0
  4. package/esm2020/modules/anatomy/anatomy.component.mjs +24 -0
  5. package/esm2020/modules/anatomy/anatomy.module.mjs +21 -0
  6. package/{esm2015/modules/code-examples/code-example-module-dependencies.js → esm2020/modules/code-examples/code-example-module-dependencies.mjs} +0 -0
  7. package/{esm2015/modules/code-examples/code-example-theme.js → esm2020/modules/code-examples/code-example-theme.mjs} +1 -1
  8. package/esm2020/modules/code-examples/code-example.component.mjs +68 -0
  9. package/esm2020/modules/code-examples/code-example.mjs +2 -0
  10. package/esm2020/modules/code-examples/code-examples-editor.service.mjs +295 -0
  11. package/esm2020/modules/code-examples/code-examples.component.mjs +97 -0
  12. package/esm2020/modules/code-examples/code-examples.module.mjs +43 -0
  13. package/{esm2015/modules/demo/demo-content-alignment.js → esm2020/modules/demo/demo-content-alignment.mjs} +0 -0
  14. package/{esm2015/modules/demo/demo-control-panel-change.js → esm2020/modules/demo/demo-control-panel-change.mjs} +0 -0
  15. package/esm2020/modules/demo/demo-control-panel-checkbox.component.mjs +80 -0
  16. package/{esm2015/modules/demo/demo-control-panel-radio-choice.js → esm2020/modules/demo/demo-control-panel-radio-choice.mjs} +1 -1
  17. package/esm2020/modules/demo/demo-control-panel-radio-group.component.mjs +75 -0
  18. package/esm2020/modules/demo/demo-control-panel-section.component.mjs +22 -0
  19. package/esm2020/modules/demo/demo-control-panel.component.mjs +85 -0
  20. package/esm2020/modules/demo/demo.component.mjs +53 -0
  21. package/esm2020/modules/demo/demo.module.mjs +69 -0
  22. package/esm2020/modules/demo-page/demo-page-dom-adapter.service.mjs +75 -0
  23. package/{esm2015/modules/demo-page/demo-page-module-info.component.js → esm2020/modules/demo-page/demo-page-module-info.component.mjs} +5 -5
  24. package/esm2020/modules/demo-page/demo-page-section.component.mjs +43 -0
  25. package/esm2020/modules/demo-page/demo-page-summary.component.mjs +21 -0
  26. package/esm2020/modules/demo-page/demo-page-title.service.mjs +28 -0
  27. package/esm2020/modules/demo-page/demo-page-type-definitions.component.mjs +35 -0
  28. package/esm2020/modules/demo-page/demo-page.component.mjs +134 -0
  29. package/esm2020/modules/demo-page/demo-page.module.mjs +88 -0
  30. package/esm2020/modules/design-guidelines/design-guideline-thumbnail.component.mjs +27 -0
  31. package/esm2020/modules/design-guidelines/design-guideline.component.mjs +33 -0
  32. package/esm2020/modules/design-guidelines/design-guidelines.component.mjs +11 -0
  33. package/esm2020/modules/design-guidelines/design-guidelines.module.mjs +34 -0
  34. package/esm2020/modules/heading-anchor/heading-anchor.component.mjs +21 -0
  35. package/esm2020/modules/heading-anchor/heading-anchor.module.mjs +20 -0
  36. package/esm2020/modules/markdown/markdown.module.mjs +17 -0
  37. package/esm2020/modules/markdown/markdown.pipe.mjs +20 -0
  38. package/esm2020/modules/module-info/module-info.component.mjs +77 -0
  39. package/esm2020/modules/module-info/module-info.module.mjs +42 -0
  40. package/esm2020/modules/safe-html/safe-html.component.mjs +20 -0
  41. package/esm2020/modules/safe-html/safe-html.module.mjs +18 -0
  42. package/{esm2015/modules/shared/docs-tools-component-info.js → esm2020/modules/shared/docs-tools-component-info.mjs} +0 -0
  43. package/{esm2015/modules/shared/docs-tools-options.js → esm2020/modules/shared/docs-tools-options.mjs} +1 -1
  44. package/esm2020/modules/shared/docs-tools-supportal.service.mjs +23 -0
  45. package/esm2020/modules/shared/sky-docs-tools-resources.module.mjs +53 -0
  46. package/{esm2015/modules/source-code/source-code-file.js → esm2020/modules/source-code/source-code-file.mjs} +1 -1
  47. package/{esm2015/modules/source-code/source-code-provider.js → esm2020/modules/source-code/source-code-provider.mjs} +5 -5
  48. package/esm2020/modules/source-code/source-code.service.mjs +42 -0
  49. package/esm2020/modules/thumbnail/thumbnail.component.mjs +28 -0
  50. package/esm2020/modules/thumbnail/thumbnail.module.mjs +19 -0
  51. package/{esm2015/modules/type-definitions/anchor-link-service-config.js → esm2020/modules/type-definitions/anchor-link-service-config.mjs} +0 -0
  52. package/{esm2015/modules/type-definitions/anchor-link-service-format.js → esm2020/modules/type-definitions/anchor-link-service-format.mjs} +0 -0
  53. package/{esm2015/modules/type-definitions/anchor-link.js → esm2020/modules/type-definitions/anchor-link.mjs} +0 -0
  54. package/esm2020/modules/type-definitions/anchor-link.service.mjs +106 -0
  55. package/esm2020/modules/type-definitions/call-signature-definition.component.mjs +45 -0
  56. package/esm2020/modules/type-definitions/call-signature-definition.mjs +2 -0
  57. package/esm2020/modules/type-definitions/class-definition.component.mjs +20 -0
  58. package/esm2020/modules/type-definitions/class-definition.mjs +2 -0
  59. package/esm2020/modules/type-definitions/comment-tags.mjs +2 -0
  60. package/esm2020/modules/type-definitions/directive-definition.component.mjs +20 -0
  61. package/esm2020/modules/type-definitions/directive-definition.mjs +2 -0
  62. package/esm2020/modules/type-definitions/entry-child-definition.mjs +2 -0
  63. package/{esm2015/modules/type-definitions/entry-definition.js → esm2020/modules/type-definitions/entry-definition.mjs} +1 -1
  64. package/esm2020/modules/type-definitions/enumeration-definition.component.mjs +19 -0
  65. package/esm2020/modules/type-definitions/enumeration-definition.mjs +2 -0
  66. package/{esm2015/modules/type-definitions/enumeration-member-definition.js → esm2020/modules/type-definitions/enumeration-member-definition.mjs} +1 -1
  67. package/esm2020/modules/type-definitions/index-signature-definition.mjs +2 -0
  68. package/esm2020/modules/type-definitions/interface-definition.component.mjs +36 -0
  69. package/esm2020/modules/type-definitions/interface-definition.mjs +2 -0
  70. package/esm2020/modules/type-definitions/interface-property-definition.mjs +2 -0
  71. package/esm2020/modules/type-definitions/method-definition.mjs +2 -0
  72. package/esm2020/modules/type-definitions/method-definitions.component.mjs +56 -0
  73. package/esm2020/modules/type-definitions/parameter-definition.mjs +2 -0
  74. package/esm2020/modules/type-definitions/pipe-definition.component.mjs +20 -0
  75. package/esm2020/modules/type-definitions/pipe-definition.mjs +2 -0
  76. package/{esm2015/modules/type-definitions/property-decorator.js → esm2020/modules/type-definitions/property-decorator.mjs} +1 -1
  77. package/esm2020/modules/type-definitions/property-definition.mjs +2 -0
  78. package/esm2020/modules/type-definitions/property-definitions.component.mjs +62 -0
  79. package/esm2020/modules/type-definitions/type-alias-definition.component.mjs +36 -0
  80. package/esm2020/modules/type-definitions/type-alias-definition.mjs +2 -0
  81. package/esm2020/modules/type-definitions/type-anchor-links.pipe.mjs +27 -0
  82. package/esm2020/modules/type-definitions/type-definition.mjs +2 -0
  83. package/esm2020/modules/type-definitions/type-definitions-format.service.mjs +242 -0
  84. package/{esm2015/modules/type-definitions/type-definitions-provider.js → esm2020/modules/type-definitions/type-definitions-provider.mjs} +4 -4
  85. package/esm2020/modules/type-definitions/type-definitions.mjs +2 -0
  86. package/esm2020/modules/type-definitions/type-definitions.module.mjs +102 -0
  87. package/esm2020/modules/type-definitions/type-definitions.service.mjs +103 -0
  88. package/esm2020/modules/type-definitions/type-parameter-definition.mjs +2 -0
  89. package/esm2020/modules/type-definitions/typedoc-adapter.service.mjs +522 -0
  90. package/esm2020/modules/type-definitions/typedoc-types.mjs +2 -0
  91. package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
  92. package/{esm2015/skyux-docs-tools.js → esm2020/skyux-docs-tools.mjs} +0 -0
  93. package/fesm2015/skyux-docs-tools.mjs +3091 -0
  94. package/fesm2015/skyux-docs-tools.mjs.map +1 -0
  95. package/fesm2020/skyux-docs-tools.mjs +3074 -0
  96. package/fesm2020/skyux-docs-tools.mjs.map +1 -0
  97. package/modules/type-definitions/method-definition.d.ts +1 -0
  98. package/modules/type-definitions/typedoc-types.d.ts +6 -3
  99. package/package.json +39 -26
  100. package/bundles/skyux-docs-tools.umd.js +0 -3705
  101. package/bundles/skyux-docs-tools.umd.js.map +0 -1
  102. package/documentation.json +0 -10784
  103. package/esm2015/docs-tools.module.js +0 -40
  104. package/esm2015/modules/anatomy/anatomy-item.component.js +0 -22
  105. package/esm2015/modules/anatomy/anatomy.component.js +0 -29
  106. package/esm2015/modules/anatomy/anatomy.module.js +0 -39
  107. package/esm2015/modules/code-examples/code-example.component.js +0 -68
  108. package/esm2015/modules/code-examples/code-example.js +0 -2
  109. package/esm2015/modules/code-examples/code-examples-editor.service.js +0 -289
  110. package/esm2015/modules/code-examples/code-examples.component.js +0 -102
  111. package/esm2015/modules/code-examples/code-examples.module.js +0 -51
  112. package/esm2015/modules/demo/demo-control-panel-checkbox.component.js +0 -84
  113. package/esm2015/modules/demo/demo-control-panel-radio-group.component.js +0 -80
  114. package/esm2015/modules/demo/demo-control-panel-section.component.js +0 -27
  115. package/esm2015/modules/demo/demo-control-panel.component.js +0 -86
  116. package/esm2015/modules/demo/demo.component.js +0 -58
  117. package/esm2015/modules/demo/demo.module.js +0 -69
  118. package/esm2015/modules/demo-page/demo-page-dom-adapter.service.js +0 -75
  119. package/esm2015/modules/demo-page/demo-page-section.component.js +0 -47
  120. package/esm2015/modules/demo-page/demo-page-summary.component.js +0 -26
  121. package/esm2015/modules/demo-page/demo-page-title.service.js +0 -28
  122. package/esm2015/modules/demo-page/demo-page-type-definitions.component.js +0 -39
  123. package/esm2015/modules/demo-page/demo-page.component.js +0 -142
  124. package/esm2015/modules/demo-page/demo-page.module.js +0 -88
  125. package/esm2015/modules/design-guidelines/design-guideline-thumbnail.component.js +0 -32
  126. package/esm2015/modules/design-guidelines/design-guideline.component.js +0 -38
  127. package/esm2015/modules/design-guidelines/design-guidelines.component.js +0 -15
  128. package/esm2015/modules/design-guidelines/design-guidelines.module.js +0 -44
  129. package/esm2015/modules/heading-anchor/heading-anchor.component.js +0 -26
  130. package/esm2015/modules/heading-anchor/heading-anchor.module.js +0 -34
  131. package/esm2015/modules/markdown/markdown.module.js +0 -25
  132. package/esm2015/modules/markdown/markdown.pipe.js +0 -20
  133. package/esm2015/modules/module-info/module-info.component.js +0 -82
  134. package/esm2015/modules/module-info/module-info.module.js +0 -46
  135. package/esm2015/modules/safe-html/safe-html.component.js +0 -24
  136. package/esm2015/modules/safe-html/safe-html.module.js +0 -26
  137. package/esm2015/modules/shared/docs-tools-supportal.service.js +0 -23
  138. package/esm2015/modules/shared/sky-docs-tools-resources.module.js +0 -41
  139. package/esm2015/modules/source-code/source-code.service.js +0 -42
  140. package/esm2015/modules/thumbnail/thumbnail.component.js +0 -33
  141. package/esm2015/modules/thumbnail/thumbnail.module.js +0 -30
  142. package/esm2015/modules/type-definitions/anchor-link.service.js +0 -98
  143. package/esm2015/modules/type-definitions/call-signature-definition.component.js +0 -51
  144. package/esm2015/modules/type-definitions/call-signature-definition.js +0 -2
  145. package/esm2015/modules/type-definitions/class-definition.component.js +0 -25
  146. package/esm2015/modules/type-definitions/class-definition.js +0 -2
  147. package/esm2015/modules/type-definitions/comment-tags.js +0 -2
  148. package/esm2015/modules/type-definitions/directive-definition.component.js +0 -25
  149. package/esm2015/modules/type-definitions/directive-definition.js +0 -2
  150. package/esm2015/modules/type-definitions/entry-child-definition.js +0 -2
  151. package/esm2015/modules/type-definitions/enumeration-definition.component.js +0 -23
  152. package/esm2015/modules/type-definitions/enumeration-definition.js +0 -2
  153. package/esm2015/modules/type-definitions/index-signature-definition.js +0 -2
  154. package/esm2015/modules/type-definitions/interface-definition.component.js +0 -38
  155. package/esm2015/modules/type-definitions/interface-definition.js +0 -2
  156. package/esm2015/modules/type-definitions/interface-property-definition.js +0 -2
  157. package/esm2015/modules/type-definitions/method-definition.js +0 -2
  158. package/esm2015/modules/type-definitions/method-definitions.component.js +0 -62
  159. package/esm2015/modules/type-definitions/parameter-definition.js +0 -2
  160. package/esm2015/modules/type-definitions/pipe-definition.component.js +0 -25
  161. package/esm2015/modules/type-definitions/pipe-definition.js +0 -2
  162. package/esm2015/modules/type-definitions/property-definition.js +0 -2
  163. package/esm2015/modules/type-definitions/property-definitions.component.js +0 -69
  164. package/esm2015/modules/type-definitions/type-alias-definition.component.js +0 -39
  165. package/esm2015/modules/type-definitions/type-alias-definition.js +0 -2
  166. package/esm2015/modules/type-definitions/type-anchor-links.pipe.js +0 -27
  167. package/esm2015/modules/type-definitions/type-definition.js +0 -2
  168. package/esm2015/modules/type-definitions/type-definitions-format.service.js +0 -241
  169. package/esm2015/modules/type-definitions/type-definitions.js +0 -2
  170. package/esm2015/modules/type-definitions/type-definitions.module.js +0 -102
  171. package/esm2015/modules/type-definitions/type-definitions.service.js +0 -103
  172. package/esm2015/modules/type-definitions/type-parameter-definition.js +0 -2
  173. package/esm2015/modules/type-definitions/typedoc-adapter.service.js +0 -477
  174. package/esm2015/modules/type-definitions/typedoc-types.js +0 -2
  175. package/fesm2015/skyux-docs-tools.js +0 -3215
  176. package/fesm2015/skyux-docs-tools.js.map +0 -1
@@ -0,0 +1,3074 @@
1
+ import * as i2 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Component, ChangeDetectionStrategy, Input, ContentChildren, NgModule, Optional, Injectable, EventEmitter, Output, ElementRef, Pipe, ContentChild } from '@angular/core';
5
+ import * as i2$2 from '@blackbaud/skyux-lib-media';
6
+ import { SkyImageModule } from '@blackbaud/skyux-lib-media';
7
+ import * as i2$1 from '@skyux/layout';
8
+ import { SkyFluidGridModule, SkyDefinitionListModule } from '@skyux/layout';
9
+ import * as i3$1 from '@blackbaud/skyux-lib-code-block';
10
+ import { SkyCodeBlockModule, SkyCodeModule } from '@blackbaud/skyux-lib-code-block';
11
+ import * as i1$1 from '@skyux/indicators';
12
+ import { SkyIconModule, SkyHelpInlineModule } from '@skyux/indicators';
13
+ import * as i3 from '@skyux/lists';
14
+ import { SkyRepeaterModule } from '@skyux/lists';
15
+ import * as i4 from '@skyux/tabs';
16
+ import { SkyVerticalTabsetModule, SkyTabsModule } from '@skyux/tabs';
17
+ import * as i8 from '@skyux/i18n';
18
+ import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
19
+ import { Subject, merge } from 'rxjs';
20
+ import { takeUntil, map, share } from 'rxjs/operators';
21
+ import * as i1 from '@skyux/theme';
22
+ import { SkyThemeModule } from '@skyux/theme';
23
+ import StackBlitzSDK from '@stackblitz/sdk';
24
+ import * as i2$3 from '@angular/forms';
25
+ import { FormsModule } from '@angular/forms';
26
+ import * as i1$2 from '@skyux/forms';
27
+ import { SkyCheckboxModule, SkyRadioModule } from '@skyux/forms';
28
+ import * as i6$1 from '@blackbaud/skyux-lib-stache';
29
+ import { StachePageSummaryModule, StacheWrapperModule } from '@blackbaud/skyux-lib-stache';
30
+ import * as i1$3 from '@angular/router';
31
+ import { RouterModule } from '@angular/router';
32
+ import marked from 'marked';
33
+ import * as i6 from '@blackbaud/skyux-lib-clipboard';
34
+ import { SkyClipboardModule } from '@blackbaud/skyux-lib-clipboard';
35
+ import * as i5 from '@skyux/popovers';
36
+ import { SkyPopoverModule } from '@skyux/popovers';
37
+ import * as i1$4 from '@angular/platform-browser';
38
+ import * as i2$4 from '@skyux/core';
39
+ import { SkyMediaBreakpoints } from '@skyux/core';
40
+ import * as i2$5 from '@skyux/config';
41
+ import * as i1$5 from '@angular/common/http';
42
+ import orderBy from 'lodash.orderby';
43
+ import { SkyAuthHttpClientModule } from '@skyux/http';
44
+
45
+ class SkyDocsAnatomyItemComponent {
46
+ constructor() {
47
+ this.isOptional = false;
48
+ }
49
+ }
50
+ SkyDocsAnatomyItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnatomyItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
+ SkyDocsAnatomyItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsAnatomyItemComponent, selector: "sky-docs-anatomy-item", inputs: { isOptional: "isOptional" }, ngImport: i0, template: "<div\n class=\"sky-docs-anatomy-item\"\n [ngClass]=\"{\n 'sky-docs-anatomy-item-optional': isOptional\n }\"\n>\n <div class=\"sky-docs-anatomy-item-marker\">\n {{ marker }}\n </div>\n <div class=\"sky-docs-anatomy-item-description\">\n <ng-content></ng-content>\n <span *ngIf=\"isOptional\" class=\"sky-deemphasized\">&nbsp;(optional)</span>\n </div>\n</div>\n", styles: [".sky-docs-anatomy-item-marker{display:flex;width:22px;height:22px;border-radius:50%;justify-content:center;align-items:center;margin-right:5px;color:#fff;background-color:#4d842d}.sky-docs-anatomy-item{margin-bottom:10px;display:flex;align-items:center}.sky-docs-anatomy-item.sky-docs-anatomy-item-optional .sky-docs-anatomy-item-marker{background-color:#b7da9b;color:#212327}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnatomyItemComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'sky-docs-anatomy-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-docs-anatomy-item\"\n [ngClass]=\"{\n 'sky-docs-anatomy-item-optional': isOptional\n }\"\n>\n <div class=\"sky-docs-anatomy-item-marker\">\n {{ marker }}\n </div>\n <div class=\"sky-docs-anatomy-item-description\">\n <ng-content></ng-content>\n <span *ngIf=\"isOptional\" class=\"sky-deemphasized\">&nbsp;(optional)</span>\n </div>\n</div>\n", styles: [".sky-docs-anatomy-item-marker{display:flex;width:22px;height:22px;border-radius:50%;justify-content:center;align-items:center;margin-right:5px;color:#fff;background-color:#4d842d}.sky-docs-anatomy-item{margin-bottom:10px;display:flex;align-items:center}.sky-docs-anatomy-item.sky-docs-anatomy-item-optional .sky-docs-anatomy-item-marker{background-color:#b7da9b;color:#212327}\n"] }]
55
+ }], propDecorators: { isOptional: [{
56
+ type: Input
57
+ }] } });
58
+
59
+ class SkyDocsAnatomyComponent {
60
+ ngAfterContentInit() {
61
+ this.anatomyItems.forEach((item, i) => {
62
+ item.marker = (i + 1).toString();
63
+ });
64
+ }
65
+ }
66
+ SkyDocsAnatomyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnatomyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
+ SkyDocsAnatomyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsAnatomyComponent, selector: "sky-docs-anatomy", inputs: { imagePath: "imagePath" }, queries: [{ propertyName: "anatomyItems", predicate: SkyDocsAnatomyItemComponent }], ngImport: i0, template: "<div class=\"sky-docs-anatomy\">\n <sky-row>\n <sky-column screenSmall=\"6\" screenMedium=\"5\" screenLarge=\"4\">\n <ng-content select=\"sky-docs-anatomy-item\"></ng-content>\n </sky-column>\n <sky-column screenSmall=\"6\" screenMedium=\"7\" screenLarge=\"8\">\n <sky-image [imageSource]=\"imagePath\"></sky-image>\n </sky-column>\n </sky-row>\n</div>\n", styles: [""], components: [{ type: i2$1.λ23, selector: "sky-row", inputs: ["reverseColumnOrder"] }, { type: i2$1.λ24, selector: "sky-column", inputs: ["screenXSmall", "screenSmall", "screenMedium", "screenLarge"] }, { type: i2$2.λ4, selector: "sky-image", inputs: ["caption", "captionType", "imageAlt", "imageSource", "showBorder", "showCaptionPrefix"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnatomyComponent, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: 'sky-docs-anatomy', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-anatomy\">\n <sky-row>\n <sky-column screenSmall=\"6\" screenMedium=\"5\" screenLarge=\"4\">\n <ng-content select=\"sky-docs-anatomy-item\"></ng-content>\n </sky-column>\n <sky-column screenSmall=\"6\" screenMedium=\"7\" screenLarge=\"8\">\n <sky-image [imageSource]=\"imagePath\"></sky-image>\n </sky-column>\n </sky-row>\n</div>\n", styles: [""] }]
71
+ }], propDecorators: { imagePath: [{
72
+ type: Input
73
+ }], anatomyItems: [{
74
+ type: ContentChildren,
75
+ args: [SkyDocsAnatomyItemComponent]
76
+ }] } });
77
+
78
+ class SkyDocsAnatomyModule {
79
+ }
80
+ SkyDocsAnatomyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnatomyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
81
+ SkyDocsAnatomyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnatomyModule, declarations: [SkyDocsAnatomyComponent, SkyDocsAnatomyItemComponent], imports: [CommonModule, SkyFluidGridModule, SkyImageModule], exports: [SkyDocsAnatomyComponent, SkyDocsAnatomyItemComponent] });
82
+ SkyDocsAnatomyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnatomyModule, imports: [[CommonModule, SkyFluidGridModule, SkyImageModule]] });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnatomyModule, decorators: [{
84
+ type: NgModule,
85
+ args: [{
86
+ imports: [CommonModule, SkyFluidGridModule, SkyImageModule],
87
+ declarations: [SkyDocsAnatomyComponent, SkyDocsAnatomyItemComponent],
88
+ exports: [SkyDocsAnatomyComponent, SkyDocsAnatomyItemComponent],
89
+ }]
90
+ }] });
91
+
92
+ /**
93
+ * NOTICE: DO NOT MODIFY THIS FILE!
94
+ * The contents of this file were automatically generated by
95
+ * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-docs-tools' schematic.
96
+ * To update this file, simply rerun the command.
97
+ */
98
+ const RESOURCES = {
99
+ 'EN-US': {
100
+ 'sky-docs-demo-heading': { message: 'Demo' },
101
+ 'sky-docs-demo-toggle-button-on': { message: 'Show options' },
102
+ 'sky-docs-demo-toggle-button-off': { message: 'Hide options' },
103
+ 'sky-docs-code-example-launch-button-label': {
104
+ message: 'Run in StackBlitz',
105
+ },
106
+ 'sky-docs-demo-control-panel-reset-button-label': { message: 'Reset' },
107
+ },
108
+ };
109
+ class SkyDocsToolsResourcesProvider {
110
+ getString(localeInfo, name) {
111
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
112
+ }
113
+ }
114
+ /**
115
+ * Import into any component library module that needs to use resource strings.
116
+ */
117
+ class SkyDocsToolsResourcesModule {
118
+ }
119
+ SkyDocsToolsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsToolsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
120
+ SkyDocsToolsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsToolsResourcesModule, exports: [SkyI18nModule] });
121
+ SkyDocsToolsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsToolsResourcesModule, providers: [
122
+ {
123
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
124
+ useClass: SkyDocsToolsResourcesProvider,
125
+ multi: true,
126
+ },
127
+ ], imports: [SkyI18nModule] });
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsToolsResourcesModule, decorators: [{
129
+ type: NgModule,
130
+ args: [{
131
+ exports: [SkyI18nModule],
132
+ providers: [
133
+ {
134
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
135
+ useClass: SkyDocsToolsResourcesProvider,
136
+ multi: true,
137
+ },
138
+ ],
139
+ }]
140
+ }] });
141
+
142
+ var SkyDocsCodeExampleTheme;
143
+ (function (SkyDocsCodeExampleTheme) {
144
+ SkyDocsCodeExampleTheme["Default"] = "default";
145
+ SkyDocsCodeExampleTheme["Modern"] = "modern";
146
+ })(SkyDocsCodeExampleTheme || (SkyDocsCodeExampleTheme = {}));
147
+
148
+ /**
149
+ * Renders a single code example.
150
+ * @example
151
+ * ```
152
+ * <sky-docs-code-example
153
+ * heading="My code example"
154
+ * sourceCodePath="src/app/public/plugin-resources/foobar"
155
+ * >
156
+ * </sky-docs-code-example>
157
+ * ```
158
+ */
159
+ class SkyDocsCodeExampleComponent {
160
+ constructor(themeSvc) {
161
+ this.ngUnsubscribe = new Subject();
162
+ // Update theme property with SkyThemeService if it has not been set.
163
+ if (!this._theme && themeSvc) {
164
+ themeSvc.settingsChange
165
+ .pipe(takeUntil(this.ngUnsubscribe))
166
+ .subscribe((change) => {
167
+ if (change.currentSettings.theme.name === 'modern') {
168
+ this.theme = SkyDocsCodeExampleTheme.Modern;
169
+ }
170
+ else if (change.currentSettings.theme.name === 'default') {
171
+ this.theme = SkyDocsCodeExampleTheme.Default;
172
+ }
173
+ });
174
+ }
175
+ }
176
+ /**
177
+ * Specifies if the editor service should show the example in modern theme.
178
+ * The value will be gleaned from `SkyThemeService` first, then fallback to 'default' if the service is not found.
179
+ */
180
+ set theme(value) {
181
+ this._theme = value;
182
+ }
183
+ get theme() {
184
+ return this._theme || SkyDocsCodeExampleTheme.Default;
185
+ }
186
+ ngOnDestroy() {
187
+ this.ngUnsubscribe.next();
188
+ this.ngUnsubscribe.complete();
189
+ }
190
+ }
191
+ SkyDocsCodeExampleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExampleComponent, deps: [{ token: i1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
192
+ SkyDocsCodeExampleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsCodeExampleComponent, selector: "sky-docs-code-example", inputs: { heading: "heading", sourceCodePath: "sourceCodePath", theme: "theme" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExampleComponent, decorators: [{
194
+ type: Component,
195
+ args: [{
196
+ selector: 'sky-docs-code-example',
197
+ template: '',
198
+ changeDetection: ChangeDetectionStrategy.OnPush,
199
+ }]
200
+ }], ctorParameters: function () { return [{ type: i1.SkyThemeService, decorators: [{
201
+ type: Optional
202
+ }] }]; }, propDecorators: { heading: [{
203
+ type: Input
204
+ }], sourceCodePath: [{
205
+ type: Input
206
+ }], theme: [{
207
+ type: Input
208
+ }] } });
209
+
210
+ /**
211
+ * @internal
212
+ */
213
+ class SkyDocsCodeExamplesEditorService {
214
+ launchEditor(codeExample) {
215
+ const project = this.getPayload(codeExample);
216
+ const options = {};
217
+ StackBlitzSDK.openProject(project, options);
218
+ }
219
+ getPayload(codeExample) {
220
+ const angularVersion = '^13.0.0';
221
+ const skyuxVersion = '^6.0.0-0';
222
+ const defaultDependencies = {
223
+ '@angular/animations': angularVersion,
224
+ '@angular/cdk': angularVersion,
225
+ '@angular/common': angularVersion,
226
+ '@angular/compiler': angularVersion,
227
+ '@angular/core': angularVersion,
228
+ '@angular/forms': angularVersion,
229
+ '@angular/platform-browser': angularVersion,
230
+ '@angular/platform-browser-dynamic': angularVersion,
231
+ '@angular/router': angularVersion,
232
+ '@skyux/animations': skyuxVersion,
233
+ '@skyux/assets': skyuxVersion,
234
+ '@skyux/config': skyuxVersion,
235
+ '@skyux/core': skyuxVersion,
236
+ '@skyux/errors': skyuxVersion,
237
+ '@skyux/forms': skyuxVersion,
238
+ '@skyux/http': skyuxVersion,
239
+ '@skyux/i18n': skyuxVersion,
240
+ '@skyux/indicators': skyuxVersion,
241
+ '@skyux/layout': skyuxVersion,
242
+ '@skyux/modals': skyuxVersion,
243
+ '@skyux/popovers': skyuxVersion,
244
+ '@skyux/router': skyuxVersion,
245
+ '@skyux/theme': skyuxVersion,
246
+ // We must define Dragula deliberately so that StackBlitz runs NGCC against it.
247
+ 'ng2-dragula': '2.1.1',
248
+ rxjs: '^7',
249
+ tslib: '^2.3.0',
250
+ 'zone.js': '~0.11.4',
251
+ };
252
+ const mergedDependencies = Object.assign({}, defaultDependencies, codeExample.packageDependencies);
253
+ // Ensure any @skyux dependencies list the correct version of SKY UX.
254
+ // e.g. `"@skyux/core": "*"` --> `"@skyux/core": "5.0.0"`
255
+ for (const packageName in mergedDependencies) {
256
+ /*istanbul ignore else*/
257
+ if (mergedDependencies.hasOwnProperty(packageName)) {
258
+ const version = mergedDependencies[packageName];
259
+ if (version === '*' &&
260
+ /^(@blackbaud\/skyux-lib-|@skyux)/.test(packageName)) {
261
+ mergedDependencies[packageName] = skyuxVersion;
262
+ }
263
+ }
264
+ }
265
+ const files = this.parseStackBlitzFiles(codeExample.sourceCode, mergedDependencies, codeExample.theme, codeExample.stylesheets);
266
+ return {
267
+ files,
268
+ title: 'SKY UX Demo',
269
+ description: 'SKY UX Demo',
270
+ template: 'angular-cli',
271
+ dependencies: mergedDependencies,
272
+ settings: {
273
+ compile: {
274
+ clearConsole: false,
275
+ },
276
+ },
277
+ };
278
+ }
279
+ parseStackBlitzFiles(sourceCode, dependencies, theme, stylesheets = []) {
280
+ const srcPath = 'src/';
281
+ const appPath = `${srcPath}app/`;
282
+ const banner = `/**
283
+ * This file is needed for the StackBlitz demo only.
284
+ * It is automatically provided when using the Angular CLI.
285
+ **/
286
+ `;
287
+ const moduleImportStatements = [
288
+ `import {\n NgModule\n} from '@angular/core';`,
289
+ `import {\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';`,
290
+ `import {\n BrowserAnimationsModule\n} from '@angular/platform-browser/animations';`,
291
+ `import {\n RouterModule\n} from '@angular/router';`,
292
+ `import {\n SkyAppLocaleProvider\n} from '@skyux/i18n';`,
293
+ `import {\n SkyThemeService\n} from '@skyux/theme';`,
294
+ `import {\n of as observableOf\n} from 'rxjs';`,
295
+ `import {\n AppComponent\n} from './app.component';`,
296
+ ];
297
+ const moduleImports = [
298
+ 'BrowserAnimationsModule',
299
+ 'FormsModule',
300
+ 'ReactiveFormsModule',
301
+ 'RouterModule.forRoot([])',
302
+ ];
303
+ const files = {};
304
+ let appComponentTemplate = '';
305
+ sourceCode.forEach((file) => {
306
+ files[`${appPath}${file.fileName}`] = file.rawContents;
307
+ // Setup module imports and component selectors.
308
+ if (file.fileName.indexOf('.module.ts') > -1) {
309
+ const moduleName = this.getModuleName(file.rawContents);
310
+ const importPath = `./${this.getFilenameNoExtension(file.fileName)}`;
311
+ const exportedComponent = this.getExportedComponent(file.rawContents);
312
+ const componentSelector = this.getComponentSelector(exportedComponent, sourceCode);
313
+ appComponentTemplate += `<${componentSelector}></${componentSelector}>`;
314
+ moduleImports.push(moduleName);
315
+ moduleImportStatements.push(`import {\n ${moduleName}\n} from '${importPath}';`);
316
+ }
317
+ });
318
+ files[`${appPath}app.component.ts`] = `${banner}
319
+ import {
320
+ Component,
321
+ Renderer2
322
+ } from '@angular/core';
323
+
324
+ import {
325
+ SkyTheme,
326
+ SkyThemeMode,
327
+ SkyThemeService,
328
+ SkyThemeSettings
329
+ } from '@skyux/theme';
330
+
331
+ @Component({
332
+ selector: 'sky-demo-app',
333
+ template: '${appComponentTemplate}'
334
+ })
335
+ export class AppComponent {
336
+
337
+ constructor(
338
+ themeSvc: SkyThemeService,
339
+ renderer?: Renderer2
340
+ ) {
341
+ const themeSettings = new SkyThemeSettings(
342
+ SkyTheme.presets['${theme === SkyDocsCodeExampleTheme.Modern ? 'modern' : 'default'}'],
343
+ SkyThemeMode.presets.light
344
+ );
345
+
346
+ themeSvc.init(
347
+ document.body,
348
+ renderer,
349
+ themeSettings
350
+ );
351
+ }
352
+
353
+ }`;
354
+ files[`${appPath}app.module.ts`] = `${moduleImportStatements.join('\n\n')}
355
+
356
+ @NgModule({
357
+ imports: [
358
+ ${moduleImports.join(',\n ')}
359
+ ],
360
+ declarations: [
361
+ AppComponent
362
+ ],
363
+ bootstrap: [
364
+ AppComponent
365
+ ],
366
+ providers: [
367
+ SkyThemeService,
368
+ {
369
+ provide: SkyAppLocaleProvider,
370
+ useValue: {
371
+ getLocaleInfo: () => observableOf({
372
+ locale: 'en-US'
373
+ })
374
+ }
375
+ }
376
+ ]
377
+ })
378
+ export class AppModule { }
379
+ `;
380
+ files[`${srcPath}index.html`] = `<!--
381
+ The CSS links are needed for the StackBlitz demo only.
382
+ This is a workaround for a known bug that prevents external imports in CSS.
383
+ https://github.com/stackblitz/core/issues/133
384
+ -->
385
+ <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
386
+ <link rel="stylesheet" type="text/css" href="https://sky.blackbaudcdn.net/static/skyux-icons/5.0.0/assets/css/skyux-icons.min.css" />
387
+
388
+ <sky-demo-app>
389
+ Loading...
390
+ </sky-demo-app>`;
391
+ files[`${srcPath}main.ts`] = `${banner}
392
+ import './polyfills';
393
+
394
+ import {
395
+ platformBrowserDynamic
396
+ } from '@angular/platform-browser-dynamic';
397
+
398
+ import {
399
+ AppModule
400
+ } from './app/app.module';
401
+
402
+ platformBrowserDynamic().bootstrapModule(AppModule).then(ref => {
403
+ if (window['ngRef']) {
404
+ window['ngRef'].destroy();
405
+ }
406
+
407
+ window['ngRef'] = ref;
408
+ }).catch(err => console.error(err));
409
+ `;
410
+ files[`${srcPath}polyfills.ts`] = `${banner}
411
+ import 'zone.js';
412
+ `;
413
+ files[`${srcPath}styles.scss`] = `@import '~@skyux/theme/css/sky';
414
+ @import '~@skyux/theme/css/themes/modern/styles';
415
+
416
+ body {
417
+ background-color: #fff;
418
+ margin: 15px;
419
+ }`;
420
+ stylesheets.push('src/styles.scss');
421
+ files['angular.json'] = `{
422
+ "projects": {
423
+ "demo": {
424
+ "architect": {
425
+ "build": {
426
+ "options": {
427
+ "index": "src/index.html",
428
+ "styles": ${JSON.stringify(stylesheets)}
429
+ }
430
+ }
431
+ }
432
+ }
433
+ }
434
+ }`;
435
+ files['package.json'] = JSON.stringify({
436
+ dependencies,
437
+ }, undefined, 2);
438
+ files['tsconfig.json'] = `{
439
+ "compilerOptions": {
440
+ "target": "es2017",
441
+ "module": "es2020",
442
+ "moduleResolution": "node",
443
+ "emitDecoratorMetadata": true,
444
+ "experimentalDecorators": true,
445
+ "importHelpers": true,
446
+ "typeRoots": ["node_modules/@types"],
447
+ "lib": [
448
+ "es2020",
449
+ "dom"
450
+ ]
451
+ },
452
+ "angularCompilerOptions": {
453
+ "fullTemplateTypeCheck": true,
454
+ "strictInjectionParameters": true,
455
+ "strictInputAccessModifiers": true,
456
+ "strictTemplates": true,
457
+ "enableIvy": true
458
+ }
459
+ }`;
460
+ return files;
461
+ }
462
+ getModuleName(contents) {
463
+ return contents.split('export class ')[1].split(' {')[0];
464
+ }
465
+ getFilenameNoExtension(fileName) {
466
+ const extension = fileName.split('.').pop();
467
+ return fileName.replace(`.${extension}`, '');
468
+ }
469
+ getExportedComponent(contents) {
470
+ const trimmed = contents.replace(/\s/g, '');
471
+ let fragment = trimmed.split('exports:[')[1];
472
+ if (!fragment) {
473
+ throw 'You must export a component from the code example module!';
474
+ }
475
+ fragment = fragment.split(']')[0];
476
+ const components = fragment.split(',').filter((x) => x);
477
+ if (components.length > 1) {
478
+ throw ('You may only export a single component from the code example module' +
479
+ `(we found ${components.length}: ${components.join(', ')}).` +
480
+ 'Is it possible to create a new code example with the extra components?');
481
+ }
482
+ return components[0];
483
+ }
484
+ getComponentSelector(componentClassName, sourceCode) {
485
+ const found = sourceCode.find((file) => {
486
+ return file.rawContents.indexOf(componentClassName) > -1;
487
+ });
488
+ const trimmed = found.rawContents.replace(/\s/g, '');
489
+ return trimmed.split(`selector:'`)[1].split(`'`)[0];
490
+ }
491
+ }
492
+ SkyDocsCodeExamplesEditorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
493
+ SkyDocsCodeExamplesEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesEditorService, providedIn: 'root' });
494
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesEditorService, decorators: [{
495
+ type: Injectable,
496
+ args: [{
497
+ providedIn: 'root',
498
+ }]
499
+ }] });
500
+
501
+ class SkyDocsSourceCodeProvider {
502
+ }
503
+ SkyDocsSourceCodeProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSourceCodeProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
504
+ SkyDocsSourceCodeProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSourceCodeProvider, providedIn: 'any' });
505
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSourceCodeProvider, decorators: [{
506
+ type: Injectable,
507
+ args: [{
508
+ providedIn: 'any',
509
+ }]
510
+ }] });
511
+
512
+ class SkyDocsSourceCodeService {
513
+ constructor(sourceCodeProvider) {
514
+ this.sourceCodeProvider = sourceCodeProvider;
515
+ }
516
+ getSourceCode(path) {
517
+ const sourceCode = this.sourceCodeProvider.sourceCode;
518
+ if (!sourceCode || !sourceCode.length) {
519
+ return [];
520
+ }
521
+ return sourceCode
522
+ .filter((file) => file.filePath.indexOf(path) === 0)
523
+ .map((file) => {
524
+ // TODO: Remove decoding after migrating to Angular CLI. Code examples will not be encoded for SKY UX 5 libraries.
525
+ // SKY UX 4 libraries will return rawContents encoded, while later libraries will
526
+ // return rawContents decoded. Check if the contents need decoded before returning them.
527
+ let decodedContents;
528
+ try {
529
+ decodedContents = decodeURIComponent(file.rawContents);
530
+ if (decodedContents !== file.rawContents) {
531
+ file.rawContents = decodedContents;
532
+ }
533
+ }
534
+ catch (error) {
535
+ // Pre-decoded contents may contain characters like '%' that would throw errors.
536
+ // In these cases, pass along the original rawContents.
537
+ }
538
+ return file;
539
+ });
540
+ }
541
+ }
542
+ SkyDocsSourceCodeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSourceCodeService, deps: [{ token: SkyDocsSourceCodeProvider }], target: i0.ɵɵFactoryTarget.Injectable });
543
+ SkyDocsSourceCodeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSourceCodeService, providedIn: 'any' });
544
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSourceCodeService, decorators: [{
545
+ type: Injectable,
546
+ args: [{
547
+ providedIn: 'any',
548
+ }]
549
+ }], ctorParameters: function () { return [{ type: SkyDocsSourceCodeProvider }]; } });
550
+
551
+ /**
552
+ * Wraps all code examples and handles their configuration and styles.
553
+ * @example
554
+ * ```
555
+ * <sky-docs-code-examples
556
+ * [packageDependencies]="{
557
+ * "foobar": "*",
558
+ * "baz": "1.2.3"
559
+ * }"
560
+ * >
561
+ * <sky-docs-code-example>
562
+ * </sky-docs-code-example>
563
+ * </sky-docs-code-examples>
564
+ * ```
565
+ */
566
+ class SkyDocsCodeExamplesComponent {
567
+ constructor(editorService, sourceCodeService) {
568
+ this.editorService = editorService;
569
+ this.sourceCodeService = sourceCodeService;
570
+ this.stylesheets = [];
571
+ this.codeExamples = [];
572
+ }
573
+ /**
574
+ * Any extra NPM package dependencies that are needed for the editor to run the code example.
575
+ * @default {}
576
+ */
577
+ set packageDependencies(value) {
578
+ this._packageDependencies = value;
579
+ }
580
+ get packageDependencies() {
581
+ return this._packageDependencies || {};
582
+ }
583
+ ngAfterContentInit() {
584
+ this.codeExampleComponents.forEach((component) => {
585
+ // Make sure the source code path ends in a slash, so that similarly named directories aren't included.
586
+ let sourceCodePath = component.sourceCodePath;
587
+ if (sourceCodePath.slice(-1) !== '/') {
588
+ sourceCodePath += '/';
589
+ }
590
+ const sourceCode = this.sourceCodeService.getSourceCode(sourceCodePath);
591
+ if (!sourceCode.length) {
592
+ console.warn(`Source code not found at location "${sourceCodePath}" for "${component.heading}"!`);
593
+ return;
594
+ }
595
+ this.codeExamples.push({
596
+ heading: component.heading,
597
+ packageDependencies: this.packageDependencies,
598
+ sourceCode,
599
+ stylesheets: this.stylesheets,
600
+ theme: component.theme,
601
+ });
602
+ });
603
+ }
604
+ launchEditor(codeExample) {
605
+ this.editorService.launchEditor(codeExample);
606
+ }
607
+ /**
608
+ * Returns a string representing one of PrismJS's supported language types.
609
+ * See: https://prismjs.com/#supported-languages
610
+ */
611
+ parseCodeLanguageType(fileName) {
612
+ const extension = fileName.split('.').pop().toLowerCase();
613
+ switch (extension) {
614
+ case 'ts':
615
+ return 'typescript';
616
+ case 'html':
617
+ return 'markup';
618
+ default:
619
+ return extension;
620
+ }
621
+ }
622
+ }
623
+ SkyDocsCodeExamplesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesComponent, deps: [{ token: SkyDocsCodeExamplesEditorService }, { token: SkyDocsSourceCodeService }], target: i0.ɵɵFactoryTarget.Component });
624
+ SkyDocsCodeExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsCodeExamplesComponent, selector: "sky-docs-code-examples", inputs: { packageDependencies: "packageDependencies", stylesheets: "stylesheets" }, queries: [{ propertyName: "codeExampleComponents", predicate: SkyDocsCodeExampleComponent }], ngImport: i0, template: "<div *ngIf=\"codeExamples && codeExamples.length\" class=\"sky-docs-code-examples\">\n <sky-repeater\n *ngIf=\"codeExamples.length > 1; else singleCodeExample\"\n expandMode=\"multiple\"\n >\n <sky-repeater-item\n *ngFor=\"let codeExample of codeExamples\"\n [isExpanded]=\"false\"\n >\n <sky-repeater-item-title>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleHeaderTemplate;\n context: { $implicit: codeExample }\n \"\n >\n </ng-container>\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleTemplate;\n context: { $implicit: codeExample }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n</div>\n\n<ng-template>\n <ng-content select=\"sky-docs-code-example\"> </ng-content>\n</ng-template>\n\n<ng-template let-item #codeExampleTemplate>\n <div class=\"sky-docs-code-example-wrapper\">\n <sky-vertical-tabset *ngIf=\"item.sourceCode && item.sourceCode.length\">\n <sky-vertical-tab\n *ngFor=\"let file of item.sourceCode; let i = index\"\n [active]=\"i === 0\"\n [tabHeading]=\"file.fileName\"\n >\n <sky-code-block\n [code]=\"file.rawContents\"\n [languageType]=\"parseCodeLanguageType(file.fileName)\"\n >\n </sky-code-block>\n </sky-vertical-tab>\n </sky-vertical-tabset>\n </div>\n</ng-template>\n\n<ng-template #singleCodeExample>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleHeaderTemplate;\n context: { $implicit: codeExamples[0] }\n \"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleTemplate;\n context: { $implicit: codeExamples[0] }\n \"\n >\n </ng-container>\n</ng-template>\n\n<ng-template let-codeExample #codeExampleHeaderTemplate>\n <div class=\"sky-docs-code-example-header\">\n <div class=\"sky-docs-code-example-header-title sky-emphasized\">\n {{ codeExample.heading }}\n </div>\n <div class=\"sky-docs-code-example-header-controls\">\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"launchEditor(codeExample); $event.stopPropagation()\"\n >\n <sky-icon icon=\"pencil\"></sky-icon>\n {{ 'sky-docs-code-example-launch-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [".sky-docs-code-example-header{display:flex;align-items:baseline}.sky-docs-code-example-header-title{flex-grow:1}.sky-docs-code-example-header-controls{flex-grow:0}.sky-docs-code-example-header-controls .sky-btn{font-weight:400}.sky-docs-code-example-wrapper{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;margin-top:10px}.sky-docs-code-example-wrapper ::ng-deep .sky-vertical-tabset-content{margin:0}.sky-docs-code-example-wrapper ::ng-deep sky-code-block{margin:0!important}.sky-docs-code-example-wrapper ::ng-deep .sky-code-block-header{border:0}.sky-docs-code-example-wrapper ::ng-deep .sky-code-output{border-left:0;border-right:0;border-bottom:0}\n"], components: [{ type: i3.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { type: i3.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { type: i3.λ12, selector: "sky-repeater-item-title" }, { type: i3.λ8, selector: "sky-repeater-item-content" }, { type: i4.λ6, selector: "sky-vertical-tabset", inputs: ["showTabsText", "ariaLabel", "ariaLabelledBy", "ariaRole", "maintainTabContent"], outputs: ["activeChange"] }, { type: i4.λ4, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaRole", "disabled", "errorIndicator", "tabHeaderCount", "tabHeading", "showTabRightArrow", "tabId"] }, { type: i3$1.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { type: i1$1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i8.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
625
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesComponent, decorators: [{
626
+ type: Component,
627
+ args: [{ selector: 'sky-docs-code-examples', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"codeExamples && codeExamples.length\" class=\"sky-docs-code-examples\">\n <sky-repeater\n *ngIf=\"codeExamples.length > 1; else singleCodeExample\"\n expandMode=\"multiple\"\n >\n <sky-repeater-item\n *ngFor=\"let codeExample of codeExamples\"\n [isExpanded]=\"false\"\n >\n <sky-repeater-item-title>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleHeaderTemplate;\n context: { $implicit: codeExample }\n \"\n >\n </ng-container>\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleTemplate;\n context: { $implicit: codeExample }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n</div>\n\n<ng-template>\n <ng-content select=\"sky-docs-code-example\"> </ng-content>\n</ng-template>\n\n<ng-template let-item #codeExampleTemplate>\n <div class=\"sky-docs-code-example-wrapper\">\n <sky-vertical-tabset *ngIf=\"item.sourceCode && item.sourceCode.length\">\n <sky-vertical-tab\n *ngFor=\"let file of item.sourceCode; let i = index\"\n [active]=\"i === 0\"\n [tabHeading]=\"file.fileName\"\n >\n <sky-code-block\n [code]=\"file.rawContents\"\n [languageType]=\"parseCodeLanguageType(file.fileName)\"\n >\n </sky-code-block>\n </sky-vertical-tab>\n </sky-vertical-tabset>\n </div>\n</ng-template>\n\n<ng-template #singleCodeExample>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleHeaderTemplate;\n context: { $implicit: codeExamples[0] }\n \"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleTemplate;\n context: { $implicit: codeExamples[0] }\n \"\n >\n </ng-container>\n</ng-template>\n\n<ng-template let-codeExample #codeExampleHeaderTemplate>\n <div class=\"sky-docs-code-example-header\">\n <div class=\"sky-docs-code-example-header-title sky-emphasized\">\n {{ codeExample.heading }}\n </div>\n <div class=\"sky-docs-code-example-header-controls\">\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"launchEditor(codeExample); $event.stopPropagation()\"\n >\n <sky-icon icon=\"pencil\"></sky-icon>\n {{ 'sky-docs-code-example-launch-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [".sky-docs-code-example-header{display:flex;align-items:baseline}.sky-docs-code-example-header-title{flex-grow:1}.sky-docs-code-example-header-controls{flex-grow:0}.sky-docs-code-example-header-controls .sky-btn{font-weight:400}.sky-docs-code-example-wrapper{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;margin-top:10px}.sky-docs-code-example-wrapper ::ng-deep .sky-vertical-tabset-content{margin:0}.sky-docs-code-example-wrapper ::ng-deep sky-code-block{margin:0!important}.sky-docs-code-example-wrapper ::ng-deep .sky-code-block-header{border:0}.sky-docs-code-example-wrapper ::ng-deep .sky-code-output{border-left:0;border-right:0;border-bottom:0}\n"] }]
628
+ }], ctorParameters: function () { return [{ type: SkyDocsCodeExamplesEditorService }, { type: SkyDocsSourceCodeService }]; }, propDecorators: { packageDependencies: [{
629
+ type: Input
630
+ }], stylesheets: [{
631
+ type: Input
632
+ }], codeExampleComponents: [{
633
+ type: ContentChildren,
634
+ args: [SkyDocsCodeExampleComponent]
635
+ }] } });
636
+
637
+ class SkyDocsCodeExamplesModule {
638
+ }
639
+ SkyDocsCodeExamplesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
640
+ SkyDocsCodeExamplesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesModule, declarations: [SkyDocsCodeExampleComponent, SkyDocsCodeExamplesComponent], imports: [CommonModule,
641
+ SkyCodeBlockModule,
642
+ SkyDocsToolsResourcesModule,
643
+ SkyIconModule,
644
+ SkyRepeaterModule,
645
+ SkyVerticalTabsetModule], exports: [SkyDocsCodeExampleComponent, SkyDocsCodeExamplesComponent] });
646
+ SkyDocsCodeExamplesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesModule, imports: [[
647
+ CommonModule,
648
+ SkyCodeBlockModule,
649
+ SkyDocsToolsResourcesModule,
650
+ SkyIconModule,
651
+ SkyRepeaterModule,
652
+ SkyVerticalTabsetModule,
653
+ ]] });
654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCodeExamplesModule, decorators: [{
655
+ type: NgModule,
656
+ args: [{
657
+ imports: [
658
+ CommonModule,
659
+ SkyCodeBlockModule,
660
+ SkyDocsToolsResourcesModule,
661
+ SkyIconModule,
662
+ SkyRepeaterModule,
663
+ SkyVerticalTabsetModule,
664
+ ],
665
+ declarations: [SkyDocsCodeExampleComponent, SkyDocsCodeExamplesComponent],
666
+ exports: [SkyDocsCodeExampleComponent, SkyDocsCodeExamplesComponent],
667
+ }]
668
+ }] });
669
+
670
+ /**
671
+ * Renders a checkbox control within the control panel.
672
+ * @example
673
+ * ```markup
674
+ * <sky-docs-demo-control-panel-checkbox
675
+ * label="Show title"
676
+ * [checked]="true"
677
+ * [propertyName]="showTitle"
678
+ * >
679
+ * </sky-docs-demo-control-panel-checkbox>
680
+ * ```
681
+ */
682
+ class SkyDocsDemoControlPanelCheckboxComponent {
683
+ constructor(changeDetector) {
684
+ this.changeDetector = changeDetector;
685
+ /**
686
+ * Indicates whether to disable the checkbox.
687
+ */
688
+ this.disabled = false;
689
+ this.selectionChange = new Subject();
690
+ this.initialState = {};
691
+ }
692
+ /**
693
+ * The checked status of the checkbox.
694
+ * @default false
695
+ */
696
+ set checked(value) {
697
+ if (value !== undefined && this._checked === undefined) {
698
+ this.initialState.checked = value;
699
+ }
700
+ this._checked = value;
701
+ }
702
+ get checked() {
703
+ return this._checked || false;
704
+ }
705
+ ngOnInit() {
706
+ setTimeout(() => {
707
+ this.initialState.checked = this.checked;
708
+ this.notifyChange();
709
+ });
710
+ }
711
+ ngOnDestroy() {
712
+ this.selectionChange.complete();
713
+ }
714
+ onModelChange() {
715
+ this.notifyChange();
716
+ }
717
+ resetState() {
718
+ if (this.initialState.checked !== this.checked) {
719
+ this.checked = !!this.initialState.checked;
720
+ this.notifyChange();
721
+ this.changeDetector.markForCheck();
722
+ }
723
+ }
724
+ notifyChange() {
725
+ this.selectionChange.next({
726
+ [this.propertyName]: this.checked,
727
+ });
728
+ }
729
+ }
730
+ SkyDocsDemoControlPanelCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoControlPanelCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
731
+ SkyDocsDemoControlPanelCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoControlPanelCheckboxComponent, selector: "sky-docs-demo-control-panel-checkbox", inputs: { checked: "checked", disabled: "disabled", label: "label", propertyName: "propertyName" }, ngImport: i0, template: "<sky-checkbox\n [disabled]=\"disabled\"\n [name]=\"propertyName\"\n [(ngModel)]=\"checked\"\n (change)=\"onModelChange()\"\n>\n <sky-checkbox-label>{{ label }}</sky-checkbox-label>\n</sky-checkbox>\n", components: [{ type: i1$2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i1$2.λ4, selector: "sky-checkbox-label" }], directives: [{ type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
732
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoControlPanelCheckboxComponent, decorators: [{
733
+ type: Component,
734
+ args: [{ selector: 'sky-docs-demo-control-panel-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<sky-checkbox\n [disabled]=\"disabled\"\n [name]=\"propertyName\"\n [(ngModel)]=\"checked\"\n (change)=\"onModelChange()\"\n>\n <sky-checkbox-label>{{ label }}</sky-checkbox-label>\n</sky-checkbox>\n" }]
735
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { checked: [{
736
+ type: Input
737
+ }], disabled: [{
738
+ type: Input
739
+ }], label: [{
740
+ type: Input
741
+ }], propertyName: [{
742
+ type: Input
743
+ }] } });
744
+
745
+ /**
746
+ * Renders a radio control group.
747
+ * @example
748
+ * ```markup
749
+ * <sky-docs-demo-control-panel-radio-group
750
+ * [choices]="[
751
+ * { 'label': 'Red', value: '#f00' },
752
+ * { 'label': 'Green', value: '#0f0' },
753
+ * { 'label': 'Blue', value: '#00f' }
754
+ * ]"
755
+ * heading="Choose a color"
756
+ * initialValue="Red"
757
+ * propertyName="color"
758
+ * >
759
+ * </sky-docs-demo-control-panel-radio-group>
760
+ * ```
761
+ */
762
+ class SkyDocsDemoControlPanelRadioGroupComponent {
763
+ constructor(changeDetector) {
764
+ this.changeDetector = changeDetector;
765
+ /**
766
+ * Indicates whether to disable the radio group.
767
+ */
768
+ this.disabled = false;
769
+ /**
770
+ * @internal
771
+ */
772
+ this.selectionChange = new Subject();
773
+ }
774
+ ngOnInit() {
775
+ this.value = this.cloneValue(this.initialValue);
776
+ }
777
+ ngOnDestroy() {
778
+ this.selectionChange.complete();
779
+ }
780
+ onModelChange(value) {
781
+ this.value = value;
782
+ this.selectionChange.next({
783
+ [this.propertyName]: this.value,
784
+ });
785
+ }
786
+ resetValue() {
787
+ this.value = this.cloneValue(this.initialValue);
788
+ this.changeDetector.markForCheck();
789
+ }
790
+ cloneValue(value) {
791
+ if (typeof value === 'object') {
792
+ return JSON.parse(JSON.stringify(value));
793
+ }
794
+ return value;
795
+ }
796
+ }
797
+ SkyDocsDemoControlPanelRadioGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoControlPanelRadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
798
+ SkyDocsDemoControlPanelRadioGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoControlPanelRadioGroupComponent, selector: "sky-docs-demo-control-panel-radio-group", inputs: { choices: "choices", disabled: "disabled", heading: "heading", initialValue: "initialValue", propertyName: "propertyName" }, ngImport: i0, template: "<div class=\"sky-demo-control-panel-radio-group\">\n <strong *ngIf=\"heading\">{{ heading }}</strong>\n <sky-radio-group\n [disabled]=\"disabled\"\n [name]=\"propertyName\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <ul class=\"sky-list-unstyled\">\n <li *ngFor=\"let choice of choices\">\n <sky-radio [value]=\"choice.value\">\n <sky-radio-label>{{ choice.label }}</sky-radio-label>\n </sky-radio>\n </li>\n </ul>\n </sky-radio-group>\n</div>\n", styles: [".sky-demo-control-panel-radio-group{margin-bottom:20px}ul{margin:0}\n"], components: [{ type: i1$2.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "name", "required", "value", "tabIndex"] }, { type: i1$2.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "icon", "radioType"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i1$2.λ12, selector: "sky-radio-label" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
799
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoControlPanelRadioGroupComponent, decorators: [{
800
+ type: Component,
801
+ args: [{ selector: 'sky-docs-demo-control-panel-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-demo-control-panel-radio-group\">\n <strong *ngIf=\"heading\">{{ heading }}</strong>\n <sky-radio-group\n [disabled]=\"disabled\"\n [name]=\"propertyName\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <ul class=\"sky-list-unstyled\">\n <li *ngFor=\"let choice of choices\">\n <sky-radio [value]=\"choice.value\">\n <sky-radio-label>{{ choice.label }}</sky-radio-label>\n </sky-radio>\n </li>\n </ul>\n </sky-radio-group>\n</div>\n", styles: [".sky-demo-control-panel-radio-group{margin-bottom:20px}ul{margin:0}\n"] }]
802
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { choices: [{
803
+ type: Input
804
+ }], disabled: [{
805
+ type: Input
806
+ }], heading: [{
807
+ type: Input
808
+ }], initialValue: [{
809
+ type: Input
810
+ }], propertyName: [{
811
+ type: Input
812
+ }] } });
813
+
814
+ /**
815
+ * Handles the appearance and configuration of the behavior demo control panel.
816
+ * @example
817
+ * ```markup
818
+ * <sky-docs-demo-control-panel
819
+ * (selectionChange)="onSelectionChange($event)"
820
+ * >
821
+ * Control panel content here.
822
+ * </sky-docs-demo-control-panel>
823
+ * ```
824
+ */
825
+ class SkyDocsDemoControlPanelComponent {
826
+ constructor() {
827
+ /**
828
+ * Fires when the user clicks the reset button.
829
+ */
830
+ this.reset = new EventEmitter();
831
+ /**
832
+ * Fires when a user makes a selection from one of the controls in the panel.
833
+ */
834
+ this.selectionChange = new EventEmitter();
835
+ this.ngUnsubscribe = new Subject();
836
+ }
837
+ ngAfterContentInit() {
838
+ this.addEventListeners();
839
+ merge(this.checkboxes.changes, this.radioGroups.changes)
840
+ .pipe(takeUntil(this.ngUnsubscribe))
841
+ .subscribe(() => {
842
+ this.addEventListeners();
843
+ });
844
+ }
845
+ ngOnDestroy() {
846
+ this.reset.complete();
847
+ this.selectionChange.complete();
848
+ this.ngUnsubscribe.next();
849
+ this.ngUnsubscribe.complete();
850
+ }
851
+ onResetButtonClick() {
852
+ this.radioGroups.forEach((radioGroup) => {
853
+ radioGroup.resetValue();
854
+ });
855
+ this.checkboxes.forEach((checkbox) => {
856
+ checkbox.resetState();
857
+ });
858
+ this.reset.emit();
859
+ }
860
+ addEventListeners() {
861
+ if (this.eventListeners) {
862
+ this.eventListeners.unsubscribe();
863
+ }
864
+ this.eventListeners = merge(...this.checkboxes.map((c) => c.selectionChange), ...this.radioGroups.map((c) => c.selectionChange))
865
+ .pipe(takeUntil(this.ngUnsubscribe))
866
+ .subscribe((change) => {
867
+ this.selectionChange.next(change);
868
+ });
869
+ }
870
+ }
871
+ SkyDocsDemoControlPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoControlPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
872
+ SkyDocsDemoControlPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoControlPanelComponent, selector: "sky-docs-demo-control-panel", outputs: { reset: "reset", selectionChange: "selectionChange" }, queries: [{ propertyName: "radioGroups", predicate: SkyDocsDemoControlPanelRadioGroupComponent, descendants: true }, { propertyName: "checkboxes", predicate: SkyDocsDemoControlPanelCheckboxComponent, descendants: true }], ngImport: i0, template: "<div class=\"sky-docs-demo-control-panel\">\n <div class=\"sky-docs-demo-control-panel-row sky-rounded-corners\">\n <div\n class=\"\n sky-docs-demo-control-panel-column\n sky-docs-demo-control-panel-sections-column\n \"\n >\n <ng-content select=\"sky-docs-demo-control-panel-section\"></ng-content>\n </div>\n\n <div\n class=\"\n sky-docs-demo-control-panel-column\n sky-docs-demo-control-panel-button-column\n \"\n >\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n [attr.data-test-selector]=\"'sky-docs-demo-control-panel-reset-button'\"\n (click)=\"onResetButtonClick()\"\n >\n {{ 'sky-docs-demo-control-panel-reset-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".sky-docs-demo-control-panel{margin-bottom:20px;margin-top:-1px;margin-left:-15px}.sky-docs-demo-control-panel-row{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;padding:15px;background-color:#fff;display:inline-flex;min-width:220px}.sky-docs-demo-control-panel-sections-column{display:flex}.sky-docs-demo-control-panel-sections-column ::ng-deep sky-docs-demo-control-panel-section{min-width:120px}.sky-docs-demo-control-panel-button-column{align-self:flex-end}.sky-docs-demo-control-panel-button-column .sky-btn{border:0}\n"], pipes: { "skyLibResources": i8.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
873
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoControlPanelComponent, decorators: [{
874
+ type: Component,
875
+ args: [{ selector: 'sky-docs-demo-control-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-demo-control-panel\">\n <div class=\"sky-docs-demo-control-panel-row sky-rounded-corners\">\n <div\n class=\"\n sky-docs-demo-control-panel-column\n sky-docs-demo-control-panel-sections-column\n \"\n >\n <ng-content select=\"sky-docs-demo-control-panel-section\"></ng-content>\n </div>\n\n <div\n class=\"\n sky-docs-demo-control-panel-column\n sky-docs-demo-control-panel-button-column\n \"\n >\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n [attr.data-test-selector]=\"'sky-docs-demo-control-panel-reset-button'\"\n (click)=\"onResetButtonClick()\"\n >\n {{ 'sky-docs-demo-control-panel-reset-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".sky-docs-demo-control-panel{margin-bottom:20px;margin-top:-1px;margin-left:-15px}.sky-docs-demo-control-panel-row{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;padding:15px;background-color:#fff;display:inline-flex;min-width:220px}.sky-docs-demo-control-panel-sections-column{display:flex}.sky-docs-demo-control-panel-sections-column ::ng-deep sky-docs-demo-control-panel-section{min-width:120px}.sky-docs-demo-control-panel-button-column{align-self:flex-end}.sky-docs-demo-control-panel-button-column .sky-btn{border:0}\n"] }]
876
+ }], propDecorators: { reset: [{
877
+ type: Output
878
+ }], selectionChange: [{
879
+ type: Output
880
+ }], radioGroups: [{
881
+ type: ContentChildren,
882
+ args: [SkyDocsDemoControlPanelRadioGroupComponent, {
883
+ descendants: true,
884
+ }]
885
+ }], checkboxes: [{
886
+ type: ContentChildren,
887
+ args: [SkyDocsDemoControlPanelCheckboxComponent, {
888
+ descendants: true,
889
+ }]
890
+ }] } });
891
+
892
+ /**
893
+ * Wraps all behavior demo components and handles the configuration and appearance of the behavior demo.
894
+ * @example
895
+ * ```markup
896
+ * <sky-docs-demo>
897
+ * Demo content here.
898
+ * </sky-docs-demo>
899
+ * ```
900
+ */
901
+ class SkyDocsDemoComponent {
902
+ constructor() {
903
+ this.areOptionsVisible = false;
904
+ }
905
+ /**
906
+ * Specifies the horizontal alignment of the demo contents.
907
+ * @default 'left'
908
+ */
909
+ set alignContents(value) {
910
+ this._alignContents = value;
911
+ }
912
+ get alignContents() {
913
+ return this._alignContents || 'left';
914
+ }
915
+ get hasOptions() {
916
+ return this.controlPanels && this.controlPanels.length > 0;
917
+ }
918
+ get toggleOptionsButtonIcon() {
919
+ return this.areOptionsVisible ? 'chevron-up' : 'chevron-down';
920
+ }
921
+ onToggleOptionsButtonClick() {
922
+ this.areOptionsVisible = !this.areOptionsVisible;
923
+ }
924
+ }
925
+ SkyDocsDemoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
926
+ SkyDocsDemoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoComponent, selector: "sky-docs-demo", inputs: { alignContents: "alignContents", heading: "heading" }, queries: [{ propertyName: "controlPanels", predicate: SkyDocsDemoControlPanelComponent, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-docs-demo\">\n <div aria-level=\"3\" class=\"sky-docs-demo-heading\" role=\"heading\">\n <span\n class=\"sky-section-heading\"\n [attr.data-test-selector]=\"'sky-docs-demo-heading-text'\"\n >\n {{ heading || ('sky-docs-demo-heading' | skyLibResources) }}\n </span>\n\n <div class=\"sky-docs-demo-control-panel-wrapper\">\n <div class=\"sky-docs-demo-control-panel-wrapper-header\">\n <button\n *ngIf=\"hasOptions\"\n class=\"sky-btn\"\n type=\"button\"\n [attr.data-test-selector]=\"'sky-docs-demo-heading-button'\"\n [ngClass]=\"{\n 'sky-docs-demo-heading-btn-open': areOptionsVisible\n }\"\n (click)=\"onToggleOptionsButtonClick()\"\n >\n <sky-icon [icon]=\"toggleOptionsButtonIcon\"></sky-icon>\n <ng-container *ngIf=\"areOptionsVisible\">\n {{ 'sky-docs-demo-toggle-button-off' | skyLibResources }}\n </ng-container>\n <ng-container *ngIf=\"!areOptionsVisible\">\n {{ 'sky-docs-demo-toggle-button-on' | skyLibResources }}\n </ng-container>\n </button>\n </div>\n <div class=\"sky-docs-demo-control-panel-wrapper-body\">\n <ng-container *ngIf=\"areOptionsVisible\">\n <ng-container *ngTemplateOutlet=\"controlPanels\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n <div\n class=\"sky-docs-demo-viewport\"\n [ngClass]=\"'sky-docs-demo-viewport-align-' + alignContents\"\n >\n <div class=\"sky-docs-demo-viewport-gutter\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #controlPanels>\n <ng-content select=\"sky-docs-demo-control-panel\"></ng-content>\n</ng-template>\n", styles: [".sky-docs-demo{margin-bottom:20px}.sky-docs-demo-heading{margin-bottom:10px;display:flex;flex-direction:row}.sky-docs-demo-heading .sky-docs-demo-heading-btn-open{border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0;position:relative}.sky-docs-demo-control-panel-wrapper{display:flex;flex-direction:column}.sky-section-heading{margin-right:10px}.sky-docs-demo-viewport{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;margin-bottom:10px;padding:15px}.sky-docs-demo-viewport-align-center{display:flex;align-items:center;justify-content:center}\n"], components: [{ type: i1$1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i8.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoComponent, decorators: [{
928
+ type: Component,
929
+ args: [{ selector: 'sky-docs-demo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-demo\">\n <div aria-level=\"3\" class=\"sky-docs-demo-heading\" role=\"heading\">\n <span\n class=\"sky-section-heading\"\n [attr.data-test-selector]=\"'sky-docs-demo-heading-text'\"\n >\n {{ heading || ('sky-docs-demo-heading' | skyLibResources) }}\n </span>\n\n <div class=\"sky-docs-demo-control-panel-wrapper\">\n <div class=\"sky-docs-demo-control-panel-wrapper-header\">\n <button\n *ngIf=\"hasOptions\"\n class=\"sky-btn\"\n type=\"button\"\n [attr.data-test-selector]=\"'sky-docs-demo-heading-button'\"\n [ngClass]=\"{\n 'sky-docs-demo-heading-btn-open': areOptionsVisible\n }\"\n (click)=\"onToggleOptionsButtonClick()\"\n >\n <sky-icon [icon]=\"toggleOptionsButtonIcon\"></sky-icon>\n <ng-container *ngIf=\"areOptionsVisible\">\n {{ 'sky-docs-demo-toggle-button-off' | skyLibResources }}\n </ng-container>\n <ng-container *ngIf=\"!areOptionsVisible\">\n {{ 'sky-docs-demo-toggle-button-on' | skyLibResources }}\n </ng-container>\n </button>\n </div>\n <div class=\"sky-docs-demo-control-panel-wrapper-body\">\n <ng-container *ngIf=\"areOptionsVisible\">\n <ng-container *ngTemplateOutlet=\"controlPanels\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n <div\n class=\"sky-docs-demo-viewport\"\n [ngClass]=\"'sky-docs-demo-viewport-align-' + alignContents\"\n >\n <div class=\"sky-docs-demo-viewport-gutter\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #controlPanels>\n <ng-content select=\"sky-docs-demo-control-panel\"></ng-content>\n</ng-template>\n", styles: [".sky-docs-demo{margin-bottom:20px}.sky-docs-demo-heading{margin-bottom:10px;display:flex;flex-direction:row}.sky-docs-demo-heading .sky-docs-demo-heading-btn-open{border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0;position:relative}.sky-docs-demo-control-panel-wrapper{display:flex;flex-direction:column}.sky-section-heading{margin-right:10px}.sky-docs-demo-viewport{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;margin-bottom:10px;padding:15px}.sky-docs-demo-viewport-align-center{display:flex;align-items:center;justify-content:center}\n"] }]
930
+ }], propDecorators: { alignContents: [{
931
+ type: Input
932
+ }], heading: [{
933
+ type: Input
934
+ }], controlPanels: [{
935
+ type: ContentChildren,
936
+ args: [SkyDocsDemoControlPanelComponent, { read: ElementRef }]
937
+ }] } });
938
+
939
+ /**
940
+ * Renders a section within the control panel.
941
+ * @example
942
+ * ```markup
943
+ * <sky-docs-demo-control-panel>
944
+ * <sky-docs-demo-control-panel-section>
945
+ * Section content here.
946
+ * </sky-docs-demo-control-panel-section>
947
+ * </sky-docs-demo-control-panel>
948
+ * ```
949
+ */
950
+ class SkyDocsDemoControlPanelSectionComponent {
951
+ }
952
+ SkyDocsDemoControlPanelSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoControlPanelSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
953
+ SkyDocsDemoControlPanelSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoControlPanelSectionComponent, selector: "sky-docs-demo-control-panel-section", ngImport: i0, template: "<div class=\"sky-demo-control-panel-section\">\n <ng-content select=\"sky-docs-demo-control-panel-radio-group\"></ng-content>\n <ng-content select=\"sky-docs-demo-control-panel-checkbox\"></ng-content>\n</div>\n", styles: [".sky-demo-control-panel-section{padding-right:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
954
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoControlPanelSectionComponent, decorators: [{
955
+ type: Component,
956
+ args: [{ selector: 'sky-docs-demo-control-panel-section', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-demo-control-panel-section\">\n <ng-content select=\"sky-docs-demo-control-panel-radio-group\"></ng-content>\n <ng-content select=\"sky-docs-demo-control-panel-checkbox\"></ng-content>\n</div>\n", styles: [".sky-demo-control-panel-section{padding-right:20px}\n"] }]
957
+ }] });
958
+
959
+ class SkyDocsDemoModule {
960
+ }
961
+ SkyDocsDemoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
962
+ SkyDocsDemoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoModule, declarations: [SkyDocsDemoComponent,
963
+ SkyDocsDemoControlPanelCheckboxComponent,
964
+ SkyDocsDemoControlPanelComponent,
965
+ SkyDocsDemoControlPanelRadioGroupComponent,
966
+ SkyDocsDemoControlPanelSectionComponent], imports: [CommonModule,
967
+ FormsModule,
968
+ SkyCheckboxModule,
969
+ SkyDocsToolsResourcesModule,
970
+ SkyIconModule,
971
+ SkyRadioModule,
972
+ SkyThemeModule], exports: [SkyDocsDemoComponent,
973
+ SkyDocsDemoControlPanelCheckboxComponent,
974
+ SkyDocsDemoControlPanelComponent,
975
+ SkyDocsDemoControlPanelRadioGroupComponent,
976
+ SkyDocsDemoControlPanelSectionComponent] });
977
+ SkyDocsDemoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoModule, imports: [[
978
+ CommonModule,
979
+ FormsModule,
980
+ SkyCheckboxModule,
981
+ SkyDocsToolsResourcesModule,
982
+ SkyIconModule,
983
+ SkyRadioModule,
984
+ SkyThemeModule,
985
+ ]] });
986
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoModule, decorators: [{
987
+ type: NgModule,
988
+ args: [{
989
+ imports: [
990
+ CommonModule,
991
+ FormsModule,
992
+ SkyCheckboxModule,
993
+ SkyDocsToolsResourcesModule,
994
+ SkyIconModule,
995
+ SkyRadioModule,
996
+ SkyThemeModule,
997
+ ],
998
+ declarations: [
999
+ SkyDocsDemoComponent,
1000
+ SkyDocsDemoControlPanelCheckboxComponent,
1001
+ SkyDocsDemoControlPanelComponent,
1002
+ SkyDocsDemoControlPanelRadioGroupComponent,
1003
+ SkyDocsDemoControlPanelSectionComponent,
1004
+ ],
1005
+ exports: [
1006
+ SkyDocsDemoComponent,
1007
+ SkyDocsDemoControlPanelCheckboxComponent,
1008
+ SkyDocsDemoControlPanelComponent,
1009
+ SkyDocsDemoControlPanelRadioGroupComponent,
1010
+ SkyDocsDemoControlPanelSectionComponent,
1011
+ ],
1012
+ }]
1013
+ }] });
1014
+
1015
+ class SkyDocsHeadingAnchorComponent {
1016
+ constructor() {
1017
+ this.headingLevel = '2';
1018
+ }
1019
+ }
1020
+ SkyDocsHeadingAnchorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsHeadingAnchorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1021
+ SkyDocsHeadingAnchorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsHeadingAnchorComponent, selector: "sky-docs-heading-anchor", inputs: { anchorId: "anchorId", headingLevel: "headingLevel" }, ngImport: i0, template: "<div\n class=\"sky-docs-heading-anchor\"\n role=\"heading\"\n [ngClass]=\"'sky-docs-tools-heading-anchor-h' + headingLevel\"\n [attr.aria-level]=\"headingLevel\"\n [attr.id]=\"anchorId || null\"\n>\n <ng-content></ng-content>\n <a\n *ngIf=\"anchorId\"\n aria-hidden=\"true\"\n class=\"sky-docs-heading-anchor\"\n queryParamsHandling=\"merge\"\n [fragment]=\"anchorId\"\n [routerLink]=\"[]\"\n >\n <sky-icon class=\"sky-docs-heading-anchor-icon\" icon=\"link\"></sky-icon>\n </a>\n</div>\n", styles: [".sky-docs-heading-anchor{color:#212327}.sky-docs-heading-anchor:hover{text-decoration:none}.sky-docs-heading-anchor:hover .sky-docs-heading-anchor-icon{opacity:1}.sky-docs-heading-anchor:focus .sky-docs-heading-anchor-icon{opacity:1}.sky-docs-heading-anchor-icon{opacity:0;transition:opacity .15s ease-in-out;color:#0974a1;font-weight:400;font-size:18px}.sky-docs-tools-heading-anchor-h1,.sky-docs-tools-heading-anchor-h2,.sky-docs-tools-heading-anchor-h3,.sky-docs-tools-heading-anchor-h4,.sky-docs-tools-heading-anchor-h5,.sky-docs-tools-heading-anchor-h6{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;margin:30px 0 15px}.sky-docs-tools-heading-anchor-h1{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;margin:30px 0 15px;font-weight:300;font-size:34px}.sky-docs-tools-heading-anchor-h2{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;margin:30px 0;font-weight:300;font-size:26px}.sky-docs-tools-heading-anchor-h3{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;margin:30px 0 15px;font-size:19px;font-weight:400}.sky-docs-tools-heading-anchor-h4{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}\n"], components: [{ type: i1$1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1022
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsHeadingAnchorComponent, decorators: [{
1023
+ type: Component,
1024
+ args: [{ selector: 'sky-docs-heading-anchor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-docs-heading-anchor\"\n role=\"heading\"\n [ngClass]=\"'sky-docs-tools-heading-anchor-h' + headingLevel\"\n [attr.aria-level]=\"headingLevel\"\n [attr.id]=\"anchorId || null\"\n>\n <ng-content></ng-content>\n <a\n *ngIf=\"anchorId\"\n aria-hidden=\"true\"\n class=\"sky-docs-heading-anchor\"\n queryParamsHandling=\"merge\"\n [fragment]=\"anchorId\"\n [routerLink]=\"[]\"\n >\n <sky-icon class=\"sky-docs-heading-anchor-icon\" icon=\"link\"></sky-icon>\n </a>\n</div>\n", styles: [".sky-docs-heading-anchor{color:#212327}.sky-docs-heading-anchor:hover{text-decoration:none}.sky-docs-heading-anchor:hover .sky-docs-heading-anchor-icon{opacity:1}.sky-docs-heading-anchor:focus .sky-docs-heading-anchor-icon{opacity:1}.sky-docs-heading-anchor-icon{opacity:0;transition:opacity .15s ease-in-out;color:#0974a1;font-weight:400;font-size:18px}.sky-docs-tools-heading-anchor-h1,.sky-docs-tools-heading-anchor-h2,.sky-docs-tools-heading-anchor-h3,.sky-docs-tools-heading-anchor-h4,.sky-docs-tools-heading-anchor-h5,.sky-docs-tools-heading-anchor-h6{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;margin:30px 0 15px}.sky-docs-tools-heading-anchor-h1{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;margin:30px 0 15px;font-weight:300;font-size:34px}.sky-docs-tools-heading-anchor-h2{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;margin:30px 0;font-weight:300;font-size:26px}.sky-docs-tools-heading-anchor-h3{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;margin:30px 0 15px;font-size:19px;font-weight:400}.sky-docs-tools-heading-anchor-h4{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}\n"] }]
1025
+ }], propDecorators: { anchorId: [{
1026
+ type: Input
1027
+ }], headingLevel: [{
1028
+ type: Input
1029
+ }] } });
1030
+
1031
+ class SkyDocsHeadingAnchorModule {
1032
+ }
1033
+ SkyDocsHeadingAnchorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsHeadingAnchorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1034
+ SkyDocsHeadingAnchorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsHeadingAnchorModule, declarations: [SkyDocsHeadingAnchorComponent], imports: [CommonModule, RouterModule, SkyIconModule], exports: [SkyDocsHeadingAnchorComponent] });
1035
+ SkyDocsHeadingAnchorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsHeadingAnchorModule, imports: [[CommonModule, RouterModule, SkyIconModule]] });
1036
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsHeadingAnchorModule, decorators: [{
1037
+ type: NgModule,
1038
+ args: [{
1039
+ declarations: [SkyDocsHeadingAnchorComponent],
1040
+ imports: [CommonModule, RouterModule, SkyIconModule],
1041
+ exports: [SkyDocsHeadingAnchorComponent],
1042
+ }]
1043
+ }] });
1044
+
1045
+ class SkyDocsMarkdownPipe {
1046
+ transform(markdown) {
1047
+ if (!markdown) {
1048
+ return '';
1049
+ }
1050
+ return marked(markdown);
1051
+ }
1052
+ }
1053
+ SkyDocsMarkdownPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1054
+ SkyDocsMarkdownPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMarkdownPipe, name: "skyDocsMarkdown" });
1055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMarkdownPipe, decorators: [{
1056
+ type: Pipe,
1057
+ args: [{
1058
+ name: 'skyDocsMarkdown',
1059
+ }]
1060
+ }] });
1061
+
1062
+ class SkyDocsMarkdownModule {
1063
+ }
1064
+ SkyDocsMarkdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMarkdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1065
+ SkyDocsMarkdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMarkdownModule, declarations: [SkyDocsMarkdownPipe], exports: [SkyDocsMarkdownPipe] });
1066
+ SkyDocsMarkdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMarkdownModule, providers: [SkyDocsMarkdownPipe] });
1067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMarkdownModule, decorators: [{
1068
+ type: NgModule,
1069
+ args: [{
1070
+ declarations: [SkyDocsMarkdownPipe],
1071
+ providers: [SkyDocsMarkdownPipe],
1072
+ exports: [SkyDocsMarkdownPipe],
1073
+ }]
1074
+ }] });
1075
+
1076
+ class SkyDocsToolsOptions {
1077
+ }
1078
+
1079
+ class SkyDocsModuleInfoComponent {
1080
+ constructor(options) {
1081
+ this.options = options;
1082
+ }
1083
+ set gitRepoUrl(value) {
1084
+ this._gitRepoUrl = value;
1085
+ }
1086
+ get gitRepoUrl() {
1087
+ return this._gitRepoUrl || (this.options && this.options.gitRepoUrl);
1088
+ }
1089
+ set packageName(value) {
1090
+ this._packageName = value;
1091
+ }
1092
+ get packageName() {
1093
+ return this._packageName || (this.options && this.options.packageName);
1094
+ }
1095
+ set packageUrl(value) {
1096
+ this._packageUrl = value;
1097
+ }
1098
+ get packageUrl() {
1099
+ if (this._packageUrl) {
1100
+ return this._packageUrl;
1101
+ }
1102
+ if (this.packageName) {
1103
+ return `https://npmjs.org/package/${this.packageName}`;
1104
+ }
1105
+ return '';
1106
+ }
1107
+ get externalLinks() {
1108
+ const externalLinks = [];
1109
+ if (this.packageName) {
1110
+ externalLinks.push({
1111
+ url: this.packageUrl,
1112
+ label: 'View in NPM',
1113
+ });
1114
+ }
1115
+ if (this.gitRepoUrl) {
1116
+ externalLinks.push({
1117
+ url: this.gitRepoUrl,
1118
+ label: 'View in GitHub',
1119
+ });
1120
+ }
1121
+ return externalLinks;
1122
+ }
1123
+ get installationCommand() {
1124
+ if (!this.packageName) {
1125
+ return '';
1126
+ }
1127
+ return `npm install --save-exact ${this.packageName}`;
1128
+ }
1129
+ }
1130
+ SkyDocsModuleInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsModuleInfoComponent, deps: [{ token: SkyDocsToolsOptions, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1131
+ SkyDocsModuleInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsModuleInfoComponent, selector: "sky-docs-module-info", inputs: { gitRepoUrl: "gitRepoUrl", moduleName: "moduleName", packageName: "packageName", packageUrl: "packageUrl" }, ngImport: i0, template: "<div class=\"sky-docs-module-info\">\n <sky-definition-list defaultValue=\"\" labelWidth=\"120px\">\n <sky-definition-list-content *ngIf=\"moduleName\">\n <sky-definition-list-label> Defined in </sky-definition-list-label>\n <sky-definition-list-value>\n <sky-code>{{ moduleName }}</sky-code>\n </sky-definition-list-value>\n </sky-definition-list-content>\n <sky-definition-list-content *ngIf=\"packageName\">\n <sky-definition-list-label> NPM package </sky-definition-list-label>\n <sky-definition-list-value>\n <span class=\"sky-docs-module-info-package-name\"\n ><sky-code>{{ packageName }}</sky-code></span\n >\n <ng-container *ngFor=\"let externalLink of externalLinks; let i = index\">\n <a [attr.href]=\"externalLink.url\">{{ externalLink.label }}</a>\n <ng-container *ngIf=\"i < externalLinks.length - 1\"\n >&nbsp;|\n </ng-container>\n </ng-container>\n </sky-definition-list-value>\n </sky-definition-list-content>\n\n <sky-definition-list-content *ngIf=\"installationCommand\">\n <sky-definition-list-label>\n Installation\n <sky-help-inline\n [skyPopover]=\"installationCommandPopover\"\n skyPopoverPlacement=\"right\"\n >\n </sky-help-inline>\n </sky-definition-list-label>\n <sky-definition-list-value>\n <sky-popover #installationCommandPopover>\n To use this module, you must install peer dependencies along with its\n package. Also, after you install the package, you must add the module\n as an export in your SPA's main module to make exports available to\n your SPA.\n </sky-popover>\n <div class=\"sky-docs-module-info-installation-command\">\n <span\n class=\"sky-docs-module-info-installation-command-code\"\n #copyTarget\n >\n <sky-code>{{ installationCommand }}</sky-code>\n </span>\n <sky-copy-to-clipboard\n buttonText=\"Copy\"\n [copyTarget]=\"copyTarget\"\n ></sky-copy-to-clipboard>\n </div>\n </sky-definition-list-value>\n </sky-definition-list-content>\n </sky-definition-list>\n\n <div class=\"sky-docs-module-info-additional-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-docs-module-info-installation-command{display:flex}.sky-docs-module-info-installation-command-code,.sky-docs-module-info-package-name{margin-right:10px}\n"], components: [{ type: i2$1.λ13, selector: "sky-definition-list", inputs: ["labelWidth", "defaultValue"] }, { type: i2$1.λ14, selector: "sky-definition-list-content" }, { type: i2$1.λ16, selector: "sky-definition-list-label" }, { type: i2$1.λ17, selector: "sky-definition-list-value" }, { type: i3$1.λ1, selector: "sky-code" }, { type: i1$1.λ3, selector: "sky-help-inline", outputs: ["actionClick"] }, { type: i5.λ6, selector: "sky-popover", inputs: ["alignment", "dismissOnBlur", "placement", "popoverTitle", "popoverType"], outputs: ["popoverClosed", "popoverOpened"] }, { type: i6.λ1, selector: "sky-copy-to-clipboard", inputs: ["ariaLabel", "ariaLabelledBy", "copyTarget", "buttonText", "buttonClickedText", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.λ7, selector: "[skyPopover]", inputs: ["skyPopover", "skyPopoverAlignment", "skyPopoverMessageStream", "skyPopoverPlacement", "skyPopoverTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsModuleInfoComponent, decorators: [{
1133
+ type: Component,
1134
+ args: [{ selector: 'sky-docs-module-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-module-info\">\n <sky-definition-list defaultValue=\"\" labelWidth=\"120px\">\n <sky-definition-list-content *ngIf=\"moduleName\">\n <sky-definition-list-label> Defined in </sky-definition-list-label>\n <sky-definition-list-value>\n <sky-code>{{ moduleName }}</sky-code>\n </sky-definition-list-value>\n </sky-definition-list-content>\n <sky-definition-list-content *ngIf=\"packageName\">\n <sky-definition-list-label> NPM package </sky-definition-list-label>\n <sky-definition-list-value>\n <span class=\"sky-docs-module-info-package-name\"\n ><sky-code>{{ packageName }}</sky-code></span\n >\n <ng-container *ngFor=\"let externalLink of externalLinks; let i = index\">\n <a [attr.href]=\"externalLink.url\">{{ externalLink.label }}</a>\n <ng-container *ngIf=\"i < externalLinks.length - 1\"\n >&nbsp;|\n </ng-container>\n </ng-container>\n </sky-definition-list-value>\n </sky-definition-list-content>\n\n <sky-definition-list-content *ngIf=\"installationCommand\">\n <sky-definition-list-label>\n Installation\n <sky-help-inline\n [skyPopover]=\"installationCommandPopover\"\n skyPopoverPlacement=\"right\"\n >\n </sky-help-inline>\n </sky-definition-list-label>\n <sky-definition-list-value>\n <sky-popover #installationCommandPopover>\n To use this module, you must install peer dependencies along with its\n package. Also, after you install the package, you must add the module\n as an export in your SPA's main module to make exports available to\n your SPA.\n </sky-popover>\n <div class=\"sky-docs-module-info-installation-command\">\n <span\n class=\"sky-docs-module-info-installation-command-code\"\n #copyTarget\n >\n <sky-code>{{ installationCommand }}</sky-code>\n </span>\n <sky-copy-to-clipboard\n buttonText=\"Copy\"\n [copyTarget]=\"copyTarget\"\n ></sky-copy-to-clipboard>\n </div>\n </sky-definition-list-value>\n </sky-definition-list-content>\n </sky-definition-list>\n\n <div class=\"sky-docs-module-info-additional-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-docs-module-info-installation-command{display:flex}.sky-docs-module-info-installation-command-code,.sky-docs-module-info-package-name{margin-right:10px}\n"] }]
1135
+ }], ctorParameters: function () { return [{ type: SkyDocsToolsOptions, decorators: [{
1136
+ type: Optional
1137
+ }] }]; }, propDecorators: { gitRepoUrl: [{
1138
+ type: Input
1139
+ }], moduleName: [{
1140
+ type: Input
1141
+ }], packageName: [{
1142
+ type: Input
1143
+ }], packageUrl: [{
1144
+ type: Input
1145
+ }] } });
1146
+
1147
+ class SkyDocsModuleInfoModule {
1148
+ }
1149
+ SkyDocsModuleInfoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsModuleInfoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1150
+ SkyDocsModuleInfoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsModuleInfoModule, declarations: [SkyDocsModuleInfoComponent], imports: [CommonModule,
1151
+ SkyCodeModule,
1152
+ SkyClipboardModule,
1153
+ SkyDefinitionListModule,
1154
+ SkyHelpInlineModule,
1155
+ SkyPopoverModule], exports: [SkyDocsModuleInfoComponent] });
1156
+ SkyDocsModuleInfoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsModuleInfoModule, imports: [[
1157
+ CommonModule,
1158
+ SkyCodeModule,
1159
+ SkyClipboardModule,
1160
+ SkyDefinitionListModule,
1161
+ SkyHelpInlineModule,
1162
+ SkyPopoverModule,
1163
+ ]] });
1164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsModuleInfoModule, decorators: [{
1165
+ type: NgModule,
1166
+ args: [{
1167
+ imports: [
1168
+ CommonModule,
1169
+ SkyCodeModule,
1170
+ SkyClipboardModule,
1171
+ SkyDefinitionListModule,
1172
+ SkyHelpInlineModule,
1173
+ SkyPopoverModule,
1174
+ ],
1175
+ declarations: [SkyDocsModuleInfoComponent],
1176
+ exports: [SkyDocsModuleInfoComponent],
1177
+ }]
1178
+ }] });
1179
+
1180
+ class SkyDocsSafeHtmlComponent {
1181
+ constructor(domSanitizer) {
1182
+ this.domSanitizer = domSanitizer;
1183
+ }
1184
+ getTrustedHtml(content) {
1185
+ return this.domSanitizer.bypassSecurityTrustHtml(content);
1186
+ }
1187
+ }
1188
+ SkyDocsSafeHtmlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSafeHtmlComponent, deps: [{ token: i1$4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
1189
+ SkyDocsSafeHtmlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: { innerHtml: "innerHtml" }, ngImport: i0, template: "<div class=\"sky-docs-safe-html\" [innerHtml]=\"getTrustedHtml(innerHtml)\"></div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSafeHtmlComponent, decorators: [{
1191
+ type: Component,
1192
+ args: [{ selector: 'sky-docs-safe-html', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-safe-html\" [innerHtml]=\"getTrustedHtml(innerHtml)\"></div>\n" }]
1193
+ }], ctorParameters: function () { return [{ type: i1$4.DomSanitizer }]; }, propDecorators: { innerHtml: [{
1194
+ type: Input
1195
+ }] } });
1196
+
1197
+ class SkyDocsSafeHtmlModule {
1198
+ }
1199
+ SkyDocsSafeHtmlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSafeHtmlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1200
+ SkyDocsSafeHtmlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSafeHtmlModule, declarations: [SkyDocsSafeHtmlComponent], imports: [CommonModule], exports: [SkyDocsSafeHtmlComponent] });
1201
+ SkyDocsSafeHtmlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSafeHtmlModule, imports: [[CommonModule]] });
1202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSafeHtmlModule, decorators: [{
1203
+ type: NgModule,
1204
+ args: [{
1205
+ declarations: [SkyDocsSafeHtmlComponent],
1206
+ imports: [CommonModule],
1207
+ exports: [SkyDocsSafeHtmlComponent],
1208
+ }]
1209
+ }] });
1210
+
1211
+ /**
1212
+ * Formats type definitions into HTML-compatible strings.
1213
+ */
1214
+ class SkyDocsTypeDefinitionsFormatService {
1215
+ /**
1216
+ * Returns an HTML-formatted representation of the provided interface config.
1217
+ */
1218
+ getInterfaceSourceCode(definition) {
1219
+ const typeParameters = this.getFormattedTypeParameters(definition.typeParameters);
1220
+ const config = {
1221
+ escapeSpecialCharacters: false,
1222
+ };
1223
+ let signature = `interface ${definition.name}${typeParameters} {`;
1224
+ signature += this.getFormattedInterfaceProperties(definition, config);
1225
+ signature += '\n}';
1226
+ return signature;
1227
+ }
1228
+ /**
1229
+ * Returns an HTML-formatted representation of the provided method config.
1230
+ */
1231
+ getMethodSourceCode(definition) {
1232
+ const config = {
1233
+ escapeSpecialCharacters: false,
1234
+ };
1235
+ const typeArguments = this.getFormattedTypeArguments(definition.type, config);
1236
+ const callSignature = definition.type.callSignature;
1237
+ const returnType = this.getFormattedType(callSignature.returnType, config);
1238
+ let params = '';
1239
+ if (callSignature.parameters) {
1240
+ params += callSignature.parameters
1241
+ .map((p) => this.getFormattedParameterName(p, config))
1242
+ .join(', ');
1243
+ }
1244
+ return `public ${definition.isStatic ? 'static ' : ''}${definition.name}${typeArguments}(${params}): ${returnType}`;
1245
+ }
1246
+ /**
1247
+ * Returns an HTML-formatted representation of the provided type alias config.
1248
+ */
1249
+ getTypeAliasSourceCode(definition) {
1250
+ const config = {
1251
+ escapeSpecialCharacters: false,
1252
+ };
1253
+ const typeParameters = this.getFormattedTypeParameters(definition.typeParameters);
1254
+ let signature = `type ${definition.name}${typeParameters} = `;
1255
+ if (definition.type.callSignature) {
1256
+ signature += this.getFormattedCallSignature(definition.type.callSignature, {
1257
+ escapeSpecialCharacters: false,
1258
+ });
1259
+ }
1260
+ else if (definition.type.indexSignature) {
1261
+ const indexSignature = definition.type.indexSignature;
1262
+ const type = this.getFormattedType(indexSignature.type, {
1263
+ escapeSpecialCharacters: false,
1264
+ });
1265
+ signature += `{\n [${indexSignature.key.name}: string]: ${type};\n}`;
1266
+ }
1267
+ else {
1268
+ /*istanbul ignore else */
1269
+ if (definition.type.type === 'union') {
1270
+ signature += this.getFormattedUnion(definition.type, config);
1271
+ }
1272
+ }
1273
+ return signature;
1274
+ }
1275
+ /**
1276
+ * Returns a formatted string representing a parameter's name and value. For example: `'foo: string'`.
1277
+ */
1278
+ getFormattedParameterName(parameter, config = {
1279
+ escapeSpecialCharacters: true,
1280
+ }) {
1281
+ const optionalMarker = parameter.isOptional ? '?' : '';
1282
+ const parameterType = this.getFormattedType(parameter.type, config);
1283
+ let signature = `${parameter.name}${optionalMarker}: ${parameterType}`;
1284
+ if (config.escapeSpecialCharacters) {
1285
+ signature = this.escapeSpecialCharacters(signature);
1286
+ }
1287
+ return signature;
1288
+ }
1289
+ /**
1290
+ * Returns a formatted string representing a property (or method's) name and value. For example: `'public foo: string'`.
1291
+ */
1292
+ getFormattedPropertyName(property) {
1293
+ let signature = '';
1294
+ if (property.decorator?.name) {
1295
+ signature += `@${property.decorator.name}()<br>`;
1296
+ }
1297
+ const indexSignature = property.type?.indexSignature;
1298
+ let name;
1299
+ if (indexSignature) {
1300
+ name = `[${indexSignature.key.name}: ${this.getFormattedType(indexSignature.key.type)}]`;
1301
+ }
1302
+ else {
1303
+ name = property.name;
1304
+ }
1305
+ if (property.deprecationWarning !== undefined) {
1306
+ signature += `<strike>${name}</strike>`;
1307
+ }
1308
+ else {
1309
+ signature += name;
1310
+ }
1311
+ if (property.isOptional && !indexSignature) {
1312
+ signature += '?';
1313
+ }
1314
+ if (indexSignature) {
1315
+ signature += `: ${this.getFormattedType(indexSignature.type)}`;
1316
+ }
1317
+ else if (property.type) {
1318
+ signature += `: ${this.getFormattedType(property.type)}`;
1319
+ }
1320
+ return signature;
1321
+ }
1322
+ /**
1323
+ * Returns an HTML-formatted method name to be used on the properties table.
1324
+ */
1325
+ getFormattedMethodName(definition) {
1326
+ let formatted = '';
1327
+ if (definition.deprecationWarning !== undefined) {
1328
+ formatted += `<strike>${definition.name}</strike>`;
1329
+ }
1330
+ else {
1331
+ formatted += definition.name;
1332
+ }
1333
+ return `${formatted}()`;
1334
+ }
1335
+ /**
1336
+ * Returns a formatted string representing the provided type.
1337
+ */
1338
+ getFormattedType(type, config = {
1339
+ escapeSpecialCharacters: true,
1340
+ }) {
1341
+ let formatted = 'any';
1342
+ if (!type) {
1343
+ return formatted;
1344
+ }
1345
+ if (type.callSignature) {
1346
+ return this.getFormattedCallSignature(type.callSignature, config);
1347
+ }
1348
+ if (type.unionTypes) {
1349
+ return this.getFormattedUnion(type, config);
1350
+ }
1351
+ if (type.name) {
1352
+ formatted = type.name;
1353
+ }
1354
+ if (type.typeArguments) {
1355
+ formatted += this.getFormattedTypeArguments(type, config);
1356
+ }
1357
+ if (type.type === 'array') {
1358
+ formatted += '[]';
1359
+ }
1360
+ if (type.typeLiteral) {
1361
+ const formattedTypeLiteral = this.getFormattedInterfaceProperties(type.typeLiteral, config)
1362
+ .replace(/\n/g, ' ')
1363
+ .replace(/\s\s+/g, ' ');
1364
+ formatted = `{${formattedTypeLiteral} }`;
1365
+ }
1366
+ if (config.escapeSpecialCharacters) {
1367
+ return this.escapeSpecialCharacters(formatted);
1368
+ }
1369
+ return formatted;
1370
+ }
1371
+ escapeSpecialCharacters(value) {
1372
+ return value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
1373
+ }
1374
+ getFormattedCallSignature(callSignature, config = {
1375
+ escapeSpecialCharacters: true,
1376
+ }) {
1377
+ const returnType = this.getFormattedType(callSignature.returnType, config);
1378
+ if (!callSignature.parameters) {
1379
+ return `() => ${returnType}`;
1380
+ }
1381
+ const formattedParams = callSignature.parameters
1382
+ .map((p) => this.getFormattedParameterName(p, config))
1383
+ .join(', ');
1384
+ return `(${formattedParams}) => ${returnType}`;
1385
+ }
1386
+ getFormattedUnion(typeConfig, config) {
1387
+ return typeConfig.unionTypes
1388
+ .map((t) => {
1389
+ return this.getFormattedType(t, config);
1390
+ })
1391
+ .join(' | ');
1392
+ }
1393
+ /**
1394
+ * Parse any type arguments e.g. `<T, F>`.
1395
+ */
1396
+ getFormattedTypeArguments(typeConfig, config) {
1397
+ if (!typeConfig.typeArguments) {
1398
+ return '';
1399
+ }
1400
+ const typeArguments = typeConfig.typeArguments.map((typeArgument) => {
1401
+ if (typeArgument.type === 'array') {
1402
+ return `${typeArgument.name}[]`;
1403
+ }
1404
+ if (typeArgument.unionTypes) {
1405
+ return this.getFormattedUnion(typeArgument, config);
1406
+ }
1407
+ return typeArgument.name;
1408
+ });
1409
+ return `<${typeArguments.join(', ')}>`;
1410
+ }
1411
+ getFormattedTypeParameters(typeParameters) {
1412
+ if (!typeParameters) {
1413
+ return '';
1414
+ }
1415
+ const formatted = typeParameters.map((typeParameter) => {
1416
+ let result = typeParameter.name;
1417
+ if (typeParameter.type && typeParameter.type.type === 'reference') {
1418
+ result += ` extends ${typeParameter.type.name}`;
1419
+ }
1420
+ return result;
1421
+ });
1422
+ return `<${formatted.join(', ')}>`;
1423
+ }
1424
+ getFormattedInterfaceProperties(definition, config) {
1425
+ let signature = '';
1426
+ definition.properties.forEach((property) => {
1427
+ const indexSignature = property.type.indexSignature;
1428
+ const optionalIndicator = property.isOptional && !indexSignature ? '?' : '';
1429
+ const propertyType = this.getFormattedType(property.type, config);
1430
+ let name;
1431
+ if (indexSignature) {
1432
+ name = `[${indexSignature.key.name}: string]`;
1433
+ }
1434
+ else {
1435
+ name = property.name;
1436
+ }
1437
+ signature += `\n ${name}${optionalIndicator}: ${propertyType};`;
1438
+ });
1439
+ return signature;
1440
+ }
1441
+ }
1442
+ SkyDocsTypeDefinitionsFormatService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1443
+ SkyDocsTypeDefinitionsFormatService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsFormatService, providedIn: 'root' });
1444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsFormatService, decorators: [{
1445
+ type: Injectable,
1446
+ args: [{
1447
+ providedIn: 'root',
1448
+ }]
1449
+ }] });
1450
+
1451
+ class SkyDocsTypeDefinitionsProvider {
1452
+ }
1453
+ SkyDocsTypeDefinitionsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1454
+ SkyDocsTypeDefinitionsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsProvider });
1455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsProvider, decorators: [{
1456
+ type: Injectable
1457
+ }] });
1458
+
1459
+ /**
1460
+ * Finds any type name that is NOT surrounded by alpha-numeric (and '>', '<', '.') characters.
1461
+ * (This is to avoid matching types that share similar words, such as `Foo` and `FooUser`.)
1462
+ * Notes:
1463
+ * - If the type name is surrounded by angle brackets, then it has already been processed as a link.
1464
+ * - If the type name starts with a period '.', then it is a sub property of an enumeration, etc. and should not be processed as a link.
1465
+ * - If the type name ends with a period followed immediately by any word character, then it is a method or property (Foo.bar).
1466
+ * Only the type name should be processed as a link.
1467
+ */
1468
+ function createRegex(keyword) {
1469
+ return new RegExp(`(^|[^a-zA-Z0-9>.[/])(${keyword})(\\.\\w+)?(?=[^a-zA-Z0-9<]+|$)`, 'g');
1470
+ }
1471
+ class SkyDocsAnchorLinkService {
1472
+ constructor(typeDefinitionsProvider) {
1473
+ this.anchorIds = typeDefinitionsProvider.anchorIds;
1474
+ }
1475
+ /**
1476
+ * Formats known type names with `<code>` tags and wraps them with anchor tags, linking to the appropriate type.
1477
+ * If the content is already contained within a `<code>` tag, set `codeFormat = false` to prevent extra `<code>` tags from being added.
1478
+ */
1479
+ applyTypeAnchorLinks(content, config) {
1480
+ if (!this.anchorIds || !content) {
1481
+ return content;
1482
+ }
1483
+ // Set default for code formatting.
1484
+ if (!config) {
1485
+ config = {
1486
+ applyCodeFormatting: true,
1487
+ };
1488
+ }
1489
+ content = this.removeDoubleSquareBrackets(content);
1490
+ Object.keys(this.anchorIds).forEach((typeName) => {
1491
+ content = this.removeBackticks(typeName, content);
1492
+ let matches;
1493
+ let counter = 0;
1494
+ const max = 100;
1495
+ const regex = createRegex(typeName);
1496
+ do {
1497
+ matches = regex.exec(content);
1498
+ if (matches) {
1499
+ const anchorId = this.anchorIds[typeName];
1500
+ const anchorHtml = '<a class="sky-docs-anchor-link" href="#' +
1501
+ anchorId +
1502
+ '">' +
1503
+ typeName +
1504
+ '</a>';
1505
+ // Group 3 of the regex pattern captures type properties like Foo.bar.
1506
+ // If these are found, they do not need hyperlinked, but add them to the encapsulating code tag.
1507
+ const typeProperty = matches[3] ? matches[3] : '';
1508
+ let replacement;
1509
+ if (config.applyCodeFormatting) {
1510
+ replacement = '<code>' + anchorHtml + typeProperty + '</code>';
1511
+ }
1512
+ else {
1513
+ replacement = anchorHtml + typeProperty;
1514
+ }
1515
+ // Regex Positive lookbehinds aren't supported in IE11 and Safari, so we have to check if the match has a starting extra character
1516
+ // (usually whitespace " Foo"), and then modify the starting/ending indexes to account for the extra character.
1517
+ const isMatchExact = matches[0].substr(0, typeName.length) === typeName;
1518
+ const startIndex = isMatchExact ? matches.index : matches.index + 1;
1519
+ const endIndex = isMatchExact
1520
+ ? matches[0].length
1521
+ : matches[0].length - 1;
1522
+ let contentWithCodeTags = content.substr(0, startIndex) +
1523
+ replacement +
1524
+ content.substr(startIndex + endIndex);
1525
+ content = contentWithCodeTags;
1526
+ counter++;
1527
+ }
1528
+ } while (matches !== null && counter < max);
1529
+ });
1530
+ return content;
1531
+ }
1532
+ /**
1533
+ * For backwards compatibility, we need to remove any double brackets wrapped around types.
1534
+ * e.g., `[[SampleType]]`
1535
+ */
1536
+ removeDoubleSquareBrackets(content) {
1537
+ const match = content.match(/\[\[.*\]\]/);
1538
+ if (match) {
1539
+ const typeName = match[0].replace(/\[\[/g, '').replace(/\]\]/g, '');
1540
+ content = content.replace(match[0], typeName);
1541
+ }
1542
+ return content;
1543
+ }
1544
+ /**
1545
+ * Removes backtick characters around known types to prevent
1546
+ * the markdown pipe from wrapping them with code elements.
1547
+ */
1548
+ removeBackticks(typeName, content) {
1549
+ const regexp = new RegExp(`\`(${typeName})\``, 'g');
1550
+ return content.replace(regexp, typeName);
1551
+ }
1552
+ }
1553
+ SkyDocsAnchorLinkService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnchorLinkService, deps: [{ token: SkyDocsTypeDefinitionsProvider }], target: i0.ɵɵFactoryTarget.Injectable });
1554
+ SkyDocsAnchorLinkService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnchorLinkService, providedIn: 'any' });
1555
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsAnchorLinkService, decorators: [{
1556
+ type: Injectable,
1557
+ args: [{
1558
+ providedIn: 'any',
1559
+ }]
1560
+ }], ctorParameters: function () { return [{ type: SkyDocsTypeDefinitionsProvider }]; } });
1561
+
1562
+ /**
1563
+ * Adds same-page anchor tags around known TypeScript types.
1564
+ */
1565
+ class SkyDocsTypeAnchorLinksPipe {
1566
+ constructor(anchorLinkService) {
1567
+ this.anchorLinkService = anchorLinkService;
1568
+ }
1569
+ transform(value, formatType) {
1570
+ const anchorLinkConfig = {
1571
+ applyCodeFormatting: formatType !== 'no-code-tags',
1572
+ };
1573
+ return this.anchorLinkService.applyTypeAnchorLinks(value, anchorLinkConfig);
1574
+ }
1575
+ }
1576
+ SkyDocsTypeAnchorLinksPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeAnchorLinksPipe, deps: [{ token: SkyDocsAnchorLinkService }], target: i0.ɵɵFactoryTarget.Pipe });
1577
+ SkyDocsTypeAnchorLinksPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeAnchorLinksPipe, name: "skyDocsTypeAnchorLinks" });
1578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeAnchorLinksPipe, decorators: [{
1579
+ type: Pipe,
1580
+ args: [{
1581
+ name: 'skyDocsTypeAnchorLinks',
1582
+ pure: true,
1583
+ }]
1584
+ }], ctorParameters: function () { return [{ type: SkyDocsAnchorLinkService }]; } });
1585
+
1586
+ /**
1587
+ * "Call signatures" include methods, functions, and inline arrow functions.
1588
+ * This component is used to document both the return type and parameters of a given call signature.
1589
+ */
1590
+ class SkyDocsCallSignatureDefinitionComponent {
1591
+ constructor(formatService) {
1592
+ this.formatService = formatService;
1593
+ }
1594
+ set config(value) {
1595
+ this._config = value;
1596
+ this.updateView();
1597
+ }
1598
+ get config() {
1599
+ return this._config;
1600
+ }
1601
+ updateView() {
1602
+ this.parameters = this.config?.parameters?.map((p) => {
1603
+ const vm = {
1604
+ defaultValue: p.defaultValue,
1605
+ description: p.description,
1606
+ formattedName: this.formatService.getFormattedParameterName(p),
1607
+ isOptional: p.isOptional,
1608
+ };
1609
+ return vm;
1610
+ });
1611
+ this.returnTypeFormatted = this.formatService.getFormattedType(this.config?.returnType);
1612
+ }
1613
+ }
1614
+ SkyDocsCallSignatureDefinitionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCallSignatureDefinitionComponent, deps: [{ token: SkyDocsTypeDefinitionsFormatService }], target: i0.ɵɵFactoryTarget.Component });
1615
+ SkyDocsCallSignatureDefinitionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsCallSignatureDefinitionComponent, selector: "sky-docs-call-signature-definition", inputs: { config: "config" }, ngImport: i0, template: "<div *ngIf=\"config\" class=\"sky-docs-call-signature-definition\">\n <ng-container *ngIf=\"parameters\">\n <h4 class=\"sky-docs-call-signature-definition-heading\">Parameters</h4>\n <table class=\"sky-docs-parameter-definitions\">\n <tbody>\n <tr *ngFor=\"let parameter of parameters\">\n <th class=\"sky-docs-parameter-definition-header\">\n <sky-code\n ><span\n [innerHtml]=\"\n parameter.formattedName\n | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span\n ></sky-code>\n </th>\n <td class=\"sky-docs-parameter-definition-body\">\n <div\n *ngIf=\"parameter.description\"\n class=\"sky-docs-parameter-definition-description\"\n >\n <sky-docs-safe-html\n *ngIf=\"parameter.description\"\n [innerHtml]=\"\n parameter.description\n | skyDocsTypeAnchorLinks\n | skyDocsMarkdown\n \"\n ></sky-docs-safe-html>\n </div>\n <div\n *ngIf=\"parameter.isOptional\"\n class=\"sky-docs-parameter-definition-label-optional\"\n >\n Optional.\n <ng-container *ngIf=\"parameter.defaultValue\">\n Default is\n <sky-code\n ><span\n [innerHtml]=\"\n parameter.defaultValue\n | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span></sky-code\n >.\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n\n <ng-container *ngIf=\"returnTypeFormatted\">\n <h4 class=\"sky-docs-call-signature-definition-heading\">Returns</h4>\n\n <div class=\"sky-docs-call-signature-definition-return-type\">\n <sky-code\n ><span\n [innerHtml]=\"\n returnTypeFormatted | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span\n ></sky-code>\n </div>\n </ng-container>\n</div>\n", styles: [".sky-docs-call-signature-definition-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}.sky-docs-parameter-definitions{width:auto;max-width:100%;border-spacing:0;border-collapse:collapse;background-color:#fff;margin-left:15px}.sky-docs-parameter-definitions th,.sky-docs-parameter-definitions td{padding:10px;border-bottom:1px dotted #cdcfd2;vertical-align:top;text-align:left}.sky-docs-parameter-definitions th ::ng-deep:first-child .sky-code,.sky-docs-parameter-definitions td ::ng-deep:first-child .sky-code{display:inline-block;white-space:normal}.sky-docs-parameter-definitions th ::ng-deep p,.sky-docs-parameter-definitions td ::ng-deep p{margin:10px 0}.sky-docs-parameter-definitions th ::ng-deep p:first-child,.sky-docs-parameter-definitions td ::ng-deep p:first-child{margin-top:0!important}.sky-docs-parameter-definitions th ::ng-deep p:last-child,.sky-docs-parameter-definitions td ::ng-deep p:last-child{margin-bottom:0!important}.sky-docs-parameter-definitions th{width:25%;padding-left:0}.sky-docs-parameter-definitions tr:first-child>th,.sky-docs-parameter-definitions tr:first-child>td{padding-top:0}.sky-docs-parameter-definitions tr:last-child>th,.sky-docs-parameter-definitions tr:last-child>td{border-bottom:0;padding-bottom:0}.sky-docs-parameter-definition-header{width:1%;white-space:nowrap;font-weight:400}.sky-docs-parameter-definition-label-optional{color:#686c73}.sky-docs-call-signature-definition-return-type{margin-left:15px}\n"], components: [{ type: i3$1.λ1, selector: "sky-code" }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe, "skyDocsMarkdown": SkyDocsMarkdownPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1616
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsCallSignatureDefinitionComponent, decorators: [{
1617
+ type: Component,
1618
+ args: [{ selector: 'sky-docs-call-signature-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"config\" class=\"sky-docs-call-signature-definition\">\n <ng-container *ngIf=\"parameters\">\n <h4 class=\"sky-docs-call-signature-definition-heading\">Parameters</h4>\n <table class=\"sky-docs-parameter-definitions\">\n <tbody>\n <tr *ngFor=\"let parameter of parameters\">\n <th class=\"sky-docs-parameter-definition-header\">\n <sky-code\n ><span\n [innerHtml]=\"\n parameter.formattedName\n | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span\n ></sky-code>\n </th>\n <td class=\"sky-docs-parameter-definition-body\">\n <div\n *ngIf=\"parameter.description\"\n class=\"sky-docs-parameter-definition-description\"\n >\n <sky-docs-safe-html\n *ngIf=\"parameter.description\"\n [innerHtml]=\"\n parameter.description\n | skyDocsTypeAnchorLinks\n | skyDocsMarkdown\n \"\n ></sky-docs-safe-html>\n </div>\n <div\n *ngIf=\"parameter.isOptional\"\n class=\"sky-docs-parameter-definition-label-optional\"\n >\n Optional.\n <ng-container *ngIf=\"parameter.defaultValue\">\n Default is\n <sky-code\n ><span\n [innerHtml]=\"\n parameter.defaultValue\n | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span></sky-code\n >.\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n\n <ng-container *ngIf=\"returnTypeFormatted\">\n <h4 class=\"sky-docs-call-signature-definition-heading\">Returns</h4>\n\n <div class=\"sky-docs-call-signature-definition-return-type\">\n <sky-code\n ><span\n [innerHtml]=\"\n returnTypeFormatted | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span\n ></sky-code>\n </div>\n </ng-container>\n</div>\n", styles: [".sky-docs-call-signature-definition-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}.sky-docs-parameter-definitions{width:auto;max-width:100%;border-spacing:0;border-collapse:collapse;background-color:#fff;margin-left:15px}.sky-docs-parameter-definitions th,.sky-docs-parameter-definitions td{padding:10px;border-bottom:1px dotted #cdcfd2;vertical-align:top;text-align:left}.sky-docs-parameter-definitions th ::ng-deep:first-child .sky-code,.sky-docs-parameter-definitions td ::ng-deep:first-child .sky-code{display:inline-block;white-space:normal}.sky-docs-parameter-definitions th ::ng-deep p,.sky-docs-parameter-definitions td ::ng-deep p{margin:10px 0}.sky-docs-parameter-definitions th ::ng-deep p:first-child,.sky-docs-parameter-definitions td ::ng-deep p:first-child{margin-top:0!important}.sky-docs-parameter-definitions th ::ng-deep p:last-child,.sky-docs-parameter-definitions td ::ng-deep p:last-child{margin-bottom:0!important}.sky-docs-parameter-definitions th{width:25%;padding-left:0}.sky-docs-parameter-definitions tr:first-child>th,.sky-docs-parameter-definitions tr:first-child>td{padding-top:0}.sky-docs-parameter-definitions tr:last-child>th,.sky-docs-parameter-definitions tr:last-child>td{border-bottom:0;padding-bottom:0}.sky-docs-parameter-definition-header{width:1%;white-space:nowrap;font-weight:400}.sky-docs-parameter-definition-label-optional{color:#686c73}.sky-docs-call-signature-definition-return-type{margin-left:15px}\n"] }]
1619
+ }], ctorParameters: function () { return [{ type: SkyDocsTypeDefinitionsFormatService }]; }, propDecorators: { config: [{
1620
+ type: Input
1621
+ }] } });
1622
+
1623
+ class SkyDocsPropertyDefinitionsComponent {
1624
+ constructor(changeDetector, formatService, mediaQueryService) {
1625
+ this.changeDetector = changeDetector;
1626
+ this.formatService = formatService;
1627
+ this.mediaQueryService = mediaQueryService;
1628
+ this.propertyType = 'Property';
1629
+ this.showOptionalStatus = true;
1630
+ this.deprecationWarningPrefix = `<span class="sky-text-warning"></span>**Deprecated.** `;
1631
+ this.isMobile = true;
1632
+ this.properties = [];
1633
+ }
1634
+ set config(value) {
1635
+ this._config = value;
1636
+ this.updateView();
1637
+ }
1638
+ get config() {
1639
+ return this._config || {};
1640
+ }
1641
+ ngOnInit() {
1642
+ this.mediaQueryService.subscribe((breakpoints) => {
1643
+ this.isMobile = breakpoints <= SkyMediaBreakpoints.sm;
1644
+ this.changeDetector.markForCheck();
1645
+ });
1646
+ }
1647
+ updateView() {
1648
+ this.properties = this.config?.properties?.map((property) => {
1649
+ const vm = {
1650
+ callSignature: property.type?.callSignature,
1651
+ defaultValue: this.formatService.escapeSpecialCharacters(property.defaultValue || ''),
1652
+ deprecationWarning: property.deprecationWarning,
1653
+ description: property.description,
1654
+ formattedName: this.formatService.getFormattedPropertyName(property),
1655
+ isOptional: property.isOptional,
1656
+ };
1657
+ return vm;
1658
+ });
1659
+ }
1660
+ }
1661
+ SkyDocsPropertyDefinitionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsPropertyDefinitionsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyDocsTypeDefinitionsFormatService }, { token: i2$4.SkyMediaQueryService }], target: i0.ɵɵFactoryTarget.Component });
1662
+ SkyDocsPropertyDefinitionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsPropertyDefinitionsComponent, selector: "sky-docs-property-definitions", inputs: { config: "config", propertyType: "propertyType", showOptionalStatus: "showOptionalStatus" }, ngImport: i0, template: "<div *ngIf=\"properties\" class=\"sky-docs-property-definitions\">\n <table *ngIf=\"!isMobile; else mobileTemplate\" class=\"sky-docs-table\">\n <tr class=\"sky-docs-table-row\">\n <th\n class=\"sky-docs-table-column-header sky-docs-table-column-header-name\"\n >\n {{ propertyType }}\n </th>\n <th\n class=\"\n sky-docs-table-column-header sky-docs-table-column-header-description\n \"\n >\n Description\n </th>\n </tr>\n <tr *ngFor=\"let property of properties\" class=\"sky-docs-table-row\">\n <td\n class=\"\n sky-docs-table-cell sky-docs-property-definitions-table-cell-name\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"nameTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: property }\"\n ></ng-template>\n </td>\n <td\n class=\"\n sky-docs-table-cell\n sky-docs-property-definitions-table-cell-description\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: property }\"\n ></ng-template>\n </td>\n </tr>\n </table>\n\n <ng-template #mobileTemplate>\n <dl class=\"sky-docs-property-definition-list\">\n <div\n *ngFor=\"let property of properties\"\n class=\"sky-docs-property-definition-list-item\"\n >\n <dt class=\"sky-field-label\">{{ propertyType }}</dt>\n <dd class=\"sky-docs-property-definitions-dd-name\">\n <ng-template\n [ngTemplateOutlet]=\"nameTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: property }\"\n ></ng-template>\n </dd>\n <dt class=\"sky-field-label\">Description</dt>\n <dd class=\"sky-docs-property-definitions-dd-description\">\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: property }\"\n ></ng-template>\n </dd>\n </div>\n </dl>\n </ng-template>\n</div>\n\n<ng-template let-property #nameTemplate>\n <sky-code\n ><span\n [innerHtml]=\"\n property.formattedName | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span\n ></sky-code>\n</ng-template>\n\n<ng-template let-property #descriptionTemplate>\n <div\n *ngIf=\"!property.isOptional && showOptionalStatus\"\n class=\"sky-docs-property-definition-label sky-text-danger\"\n >\n Required.\n </div>\n\n <sky-docs-safe-html\n *ngIf=\"property.deprecationWarning !== undefined\"\n class=\"sky-docs-property-definitions-deprecation-warning\"\n [innerHtml]=\"\n deprecationWarningPrefix + property.deprecationWarning\n | skyDocsTypeAnchorLinks\n | skyDocsMarkdown\n \"\n ></sky-docs-safe-html>\n\n <sky-docs-safe-html\n *ngIf=\"property.description\"\n class=\"sky-docs-property-definitions-description\"\n [innerHtml]=\"\n property.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\n \"\n ></sky-docs-safe-html>\n\n <div\n *ngIf=\"property.isOptional && showOptionalStatus\"\n class=\"\n sky-docs-property-definition-label\n sky-docs-property-definition-label-optional\n \"\n >\n Optional.\n <ng-container *ngIf=\"property.defaultValue\"\n >Default is\n <sky-code\n ><span\n [innerHtml]=\"\n property.defaultValue | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span></sky-code\n >.</ng-container\n >\n </div>\n\n <sky-docs-call-signature-definition\n *ngIf=\"property.callSignature\"\n [config]=\"property.callSignature\"\n ></sky-docs-call-signature-definition>\n</ng-template>\n", styles: [":host{margin:15px 0}.sky-docs-property-definitions{width:100%;max-width:100%;overflow:auto}.sky-docs-table-column-header-name{width:25%}.sky-docs-property-definition-label-optional{color:#686c73;margin-bottom:10px}.sky-docs-property-definition-list{margin:0}.sky-docs-property-definition-list-item{border-bottom:1px dotted #cdcfd2;margin:10px 0}.sky-docs-property-definition-list-item .sky-field-label{margin:10px 0}\n"], components: [{ type: i3$1.λ1, selector: "sky-code" }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }, { type: SkyDocsCallSignatureDefinitionComponent, selector: "sky-docs-call-signature-definition", inputs: ["config"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe, "skyDocsMarkdown": SkyDocsMarkdownPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsPropertyDefinitionsComponent, decorators: [{
1664
+ type: Component,
1665
+ args: [{ selector: 'sky-docs-property-definitions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"properties\" class=\"sky-docs-property-definitions\">\n <table *ngIf=\"!isMobile; else mobileTemplate\" class=\"sky-docs-table\">\n <tr class=\"sky-docs-table-row\">\n <th\n class=\"sky-docs-table-column-header sky-docs-table-column-header-name\"\n >\n {{ propertyType }}\n </th>\n <th\n class=\"\n sky-docs-table-column-header sky-docs-table-column-header-description\n \"\n >\n Description\n </th>\n </tr>\n <tr *ngFor=\"let property of properties\" class=\"sky-docs-table-row\">\n <td\n class=\"\n sky-docs-table-cell sky-docs-property-definitions-table-cell-name\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"nameTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: property }\"\n ></ng-template>\n </td>\n <td\n class=\"\n sky-docs-table-cell\n sky-docs-property-definitions-table-cell-description\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: property }\"\n ></ng-template>\n </td>\n </tr>\n </table>\n\n <ng-template #mobileTemplate>\n <dl class=\"sky-docs-property-definition-list\">\n <div\n *ngFor=\"let property of properties\"\n class=\"sky-docs-property-definition-list-item\"\n >\n <dt class=\"sky-field-label\">{{ propertyType }}</dt>\n <dd class=\"sky-docs-property-definitions-dd-name\">\n <ng-template\n [ngTemplateOutlet]=\"nameTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: property }\"\n ></ng-template>\n </dd>\n <dt class=\"sky-field-label\">Description</dt>\n <dd class=\"sky-docs-property-definitions-dd-description\">\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: property }\"\n ></ng-template>\n </dd>\n </div>\n </dl>\n </ng-template>\n</div>\n\n<ng-template let-property #nameTemplate>\n <sky-code\n ><span\n [innerHtml]=\"\n property.formattedName | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span\n ></sky-code>\n</ng-template>\n\n<ng-template let-property #descriptionTemplate>\n <div\n *ngIf=\"!property.isOptional && showOptionalStatus\"\n class=\"sky-docs-property-definition-label sky-text-danger\"\n >\n Required.\n </div>\n\n <sky-docs-safe-html\n *ngIf=\"property.deprecationWarning !== undefined\"\n class=\"sky-docs-property-definitions-deprecation-warning\"\n [innerHtml]=\"\n deprecationWarningPrefix + property.deprecationWarning\n | skyDocsTypeAnchorLinks\n | skyDocsMarkdown\n \"\n ></sky-docs-safe-html>\n\n <sky-docs-safe-html\n *ngIf=\"property.description\"\n class=\"sky-docs-property-definitions-description\"\n [innerHtml]=\"\n property.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\n \"\n ></sky-docs-safe-html>\n\n <div\n *ngIf=\"property.isOptional && showOptionalStatus\"\n class=\"\n sky-docs-property-definition-label\n sky-docs-property-definition-label-optional\n \"\n >\n Optional.\n <ng-container *ngIf=\"property.defaultValue\"\n >Default is\n <sky-code\n ><span\n [innerHtml]=\"\n property.defaultValue | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span></sky-code\n >.</ng-container\n >\n </div>\n\n <sky-docs-call-signature-definition\n *ngIf=\"property.callSignature\"\n [config]=\"property.callSignature\"\n ></sky-docs-call-signature-definition>\n</ng-template>\n", styles: [":host{margin:15px 0}.sky-docs-property-definitions{width:100%;max-width:100%;overflow:auto}.sky-docs-table-column-header-name{width:25%}.sky-docs-property-definition-label-optional{color:#686c73;margin-bottom:10px}.sky-docs-property-definition-list{margin:0}.sky-docs-property-definition-list-item{border-bottom:1px dotted #cdcfd2;margin:10px 0}.sky-docs-property-definition-list-item .sky-field-label{margin:10px 0}\n"] }]
1666
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyDocsTypeDefinitionsFormatService }, { type: i2$4.SkyMediaQueryService }]; }, propDecorators: { config: [{
1667
+ type: Input
1668
+ }], propertyType: [{
1669
+ type: Input
1670
+ }], showOptionalStatus: [{
1671
+ type: Input
1672
+ }] } });
1673
+
1674
+ class SkyDocsDirectiveDefinitionComponent {
1675
+ }
1676
+ SkyDocsDirectiveDefinitionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDirectiveDefinitionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1677
+ SkyDocsDirectiveDefinitionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDirectiveDefinitionComponent, selector: "sky-docs-directive-definition", inputs: { config: "config" }, ngImport: i0, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-directive-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-directive-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <h4 class=\"sky-docs-directive-definition-h4\">Selector</h4>\n\n <p class=\"sky-docs-directive-selector\">\n <sky-code>{{ config.selector }}</sky-code>\n </p>\n\n <ng-container *ngIf=\"config.codeExample\">\n <h4 class=\"sky-docs-directive-definition-h4\">Example</h4>\n <sky-code-block\n class=\"sky-docs-code-block\"\n [code]=\"config.codeExample\"\n [hideHeader]=\"true\"\n [languageType]=\"config.codeExampleLanguage\"\n >\n </sky-code-block>\n </ng-container>\n\n <sky-docs-property-definitions\n *ngIf=\"config.inputProperties?.length\"\n propertyType=\"Input\"\n [config]=\"{\n properties: config.inputProperties\n }\"\n ></sky-docs-property-definitions>\n\n <sky-docs-property-definitions\n *ngIf=\"config.eventProperties?.length\"\n propertyType=\"Event\"\n [config]=\"{\n properties: config.eventProperties\n }\"\n ></sky-docs-property-definitions>\n</div>\n", styles: [".sky-docs-directive-definition-h4{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}.sky-docs-directive-selector{margin-left:15px!important;margin-top:10px!important}\n"], components: [{ type: SkyDocsHeadingAnchorComponent, selector: "sky-docs-heading-anchor", inputs: ["anchorId", "headingLevel"] }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }, { type: i3$1.λ1, selector: "sky-code" }, { type: i3$1.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { type: SkyDocsPropertyDefinitionsComponent, selector: "sky-docs-property-definitions", inputs: ["config", "propertyType", "showOptionalStatus"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "skyDocsMarkdown": SkyDocsMarkdownPipe, "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1678
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDirectiveDefinitionComponent, decorators: [{
1679
+ type: Component,
1680
+ args: [{ selector: 'sky-docs-directive-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-directive-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-directive-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <h4 class=\"sky-docs-directive-definition-h4\">Selector</h4>\n\n <p class=\"sky-docs-directive-selector\">\n <sky-code>{{ config.selector }}</sky-code>\n </p>\n\n <ng-container *ngIf=\"config.codeExample\">\n <h4 class=\"sky-docs-directive-definition-h4\">Example</h4>\n <sky-code-block\n class=\"sky-docs-code-block\"\n [code]=\"config.codeExample\"\n [hideHeader]=\"true\"\n [languageType]=\"config.codeExampleLanguage\"\n >\n </sky-code-block>\n </ng-container>\n\n <sky-docs-property-definitions\n *ngIf=\"config.inputProperties?.length\"\n propertyType=\"Input\"\n [config]=\"{\n properties: config.inputProperties\n }\"\n ></sky-docs-property-definitions>\n\n <sky-docs-property-definitions\n *ngIf=\"config.eventProperties?.length\"\n propertyType=\"Event\"\n [config]=\"{\n properties: config.eventProperties\n }\"\n ></sky-docs-property-definitions>\n</div>\n", styles: [".sky-docs-directive-definition-h4{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}.sky-docs-directive-selector{margin-left:15px!important;margin-top:10px!important}\n"] }]
1681
+ }], propDecorators: { config: [{
1682
+ type: Input
1683
+ }] } });
1684
+
1685
+ class SkyDocsEnumerationDefinitionComponent {
1686
+ }
1687
+ SkyDocsEnumerationDefinitionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsEnumerationDefinitionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1688
+ SkyDocsEnumerationDefinitionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsEnumerationDefinitionComponent, selector: "sky-docs-enumeration-definition", inputs: { config: "config" }, ngImport: i0, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-enumeration-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-enumeration-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <sky-docs-property-definitions\n *ngIf=\"config.members\"\n propertyType=\"Member\"\n [config]=\"{ properties: config.members }\"\n [showOptionalStatus]=\"false\"\n ></sky-docs-property-definitions>\n</div>\n", components: [{ type: SkyDocsHeadingAnchorComponent, selector: "sky-docs-heading-anchor", inputs: ["anchorId", "headingLevel"] }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }, { type: SkyDocsPropertyDefinitionsComponent, selector: "sky-docs-property-definitions", inputs: ["config", "propertyType", "showOptionalStatus"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "skyDocsMarkdown": SkyDocsMarkdownPipe, "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1689
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsEnumerationDefinitionComponent, decorators: [{
1690
+ type: Component,
1691
+ args: [{ selector: 'sky-docs-enumeration-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-enumeration-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-enumeration-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <sky-docs-property-definitions\n *ngIf=\"config.members\"\n propertyType=\"Member\"\n [config]=\"{ properties: config.members }\"\n [showOptionalStatus]=\"false\"\n ></sky-docs-property-definitions>\n</div>\n" }]
1692
+ }], propDecorators: { config: [{
1693
+ type: Input
1694
+ }] } });
1695
+
1696
+ class SkyDocsInterfaceDefinitionComponent {
1697
+ constructor(formatService) {
1698
+ this.formatService = formatService;
1699
+ }
1700
+ set config(value) {
1701
+ this._config = value;
1702
+ this.updateView();
1703
+ }
1704
+ get config() {
1705
+ return this._config;
1706
+ }
1707
+ updateView() {
1708
+ this.sourceCode = this.config
1709
+ ? this.formatService.getInterfaceSourceCode(this.config)
1710
+ : undefined;
1711
+ }
1712
+ }
1713
+ SkyDocsInterfaceDefinitionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsInterfaceDefinitionComponent, deps: [{ token: SkyDocsTypeDefinitionsFormatService }], target: i0.ɵɵFactoryTarget.Component });
1714
+ SkyDocsInterfaceDefinitionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsInterfaceDefinitionComponent, selector: "sky-docs-interface-definition", inputs: { config: "config" }, ngImport: i0, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-interface-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-interface-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <sky-code-block\n *ngIf=\"sourceCode\"\n class=\"sky-docs-code-block\"\n languageType=\"typescript\"\n [code]=\"sourceCode\"\n [hideHeader]=\"true\"\n ></sky-code-block>\n\n <sky-docs-property-definitions\n *ngIf=\"config.properties\"\n [config]=\"{ properties: config.properties }\"\n [showOptionalStatus]=\"false\"\n ></sky-docs-property-definitions>\n</div>\n", components: [{ type: SkyDocsHeadingAnchorComponent, selector: "sky-docs-heading-anchor", inputs: ["anchorId", "headingLevel"] }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }, { type: i3$1.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { type: SkyDocsPropertyDefinitionsComponent, selector: "sky-docs-property-definitions", inputs: ["config", "propertyType", "showOptionalStatus"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "skyDocsMarkdown": SkyDocsMarkdownPipe, "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsInterfaceDefinitionComponent, decorators: [{
1716
+ type: Component,
1717
+ args: [{ selector: 'sky-docs-interface-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-interface-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-interface-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <sky-code-block\n *ngIf=\"sourceCode\"\n class=\"sky-docs-code-block\"\n languageType=\"typescript\"\n [code]=\"sourceCode\"\n [hideHeader]=\"true\"\n ></sky-code-block>\n\n <sky-docs-property-definitions\n *ngIf=\"config.properties\"\n [config]=\"{ properties: config.properties }\"\n [showOptionalStatus]=\"false\"\n ></sky-docs-property-definitions>\n</div>\n" }]
1718
+ }], ctorParameters: function () { return [{ type: SkyDocsTypeDefinitionsFormatService }]; }, propDecorators: { config: [{
1719
+ type: Input
1720
+ }] } });
1721
+
1722
+ class SkyDocsMethodDefinitionsComponent {
1723
+ constructor(changeDetector, formatService, mediaQueryService) {
1724
+ this.changeDetector = changeDetector;
1725
+ this.formatService = formatService;
1726
+ this.mediaQueryService = mediaQueryService;
1727
+ this.deprecationWarningPrefix = `<span class="sky-text-warning"></span>**Deprecated.** `;
1728
+ this.isMobile = true;
1729
+ }
1730
+ set config(value) {
1731
+ this._config = value;
1732
+ this.updateView();
1733
+ }
1734
+ get config() {
1735
+ return this._config || {};
1736
+ }
1737
+ ngOnInit() {
1738
+ this.mediaQueryService.subscribe((breakpoints) => {
1739
+ this.isMobile = breakpoints <= SkyMediaBreakpoints.sm;
1740
+ this.changeDetector.markForCheck();
1741
+ });
1742
+ }
1743
+ updateView() {
1744
+ this.methods = this.config?.methods?.map((method) => {
1745
+ const vm = {
1746
+ callSignature: method.type.callSignature,
1747
+ codeExample: method.codeExample,
1748
+ codeExampleLanguage: method.codeExampleLanguage,
1749
+ deprecationWarning: method.deprecationWarning,
1750
+ description: method.description,
1751
+ formattedName: this.formatService.getFormattedMethodName(method),
1752
+ sourceCode: this.formatService.getMethodSourceCode(method),
1753
+ };
1754
+ return vm;
1755
+ });
1756
+ }
1757
+ }
1758
+ SkyDocsMethodDefinitionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMethodDefinitionsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyDocsTypeDefinitionsFormatService }, { token: i2$4.SkyMediaQueryService }], target: i0.ɵɵFactoryTarget.Component });
1759
+ SkyDocsMethodDefinitionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsMethodDefinitionsComponent, selector: "sky-docs-method-definitions", inputs: { config: "config" }, ngImport: i0, template: "<div *ngIf=\"methods\" class=\"sky-docs-method-definitions\">\n <table *ngIf=\"!isMobile; else mobileTemplate\" class=\"sky-docs-table\">\n <tr class=\"sky-docs-table-row\">\n <th\n class=\"sky-docs-table-column-header sky-docs-table-column-header-name\"\n >\n Methods\n </th>\n <th\n class=\"\n sky-docs-table-column-header sky-docs-table-column-header-description\n \"\n >\n Description\n </th>\n </tr>\n <tr *ngFor=\"let method of methods\" class=\"sky-docs-table-row\">\n <td\n class=\"sky-docs-table-cell sky-docs-method-definitions-table-cell-name\"\n >\n <ng-template\n [ngTemplateOutlet]=\"nameTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: method }\"\n ></ng-template>\n </td>\n <td\n class=\"\n sky-docs-table-cell sky-docs-method-definitions-table-cell-description\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: method }\"\n ></ng-template>\n </td>\n </tr>\n </table>\n\n <ng-template #mobileTemplate>\n <dl class=\"sky-docs-method-definition-list\">\n <div\n *ngFor=\"let method of methods\"\n class=\"sky-docs-method-definition-list-item\"\n >\n <dt class=\"sky-field-label\">Methods</dt>\n <dd class=\"sky-docs-method-definitions-dd-name\">\n <ng-template\n [ngTemplateOutlet]=\"nameTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: method }\"\n ></ng-template>\n </dd>\n <dt class=\"sky-field-label\">Description</dt>\n <dd class=\"sky-docs-method-definitions-dd-description\">\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: method }\"\n ></ng-template>\n </dd>\n </div>\n </dl>\n </ng-template>\n</div>\n\n<ng-template let-method #nameTemplate>\n <sky-code\n ><span\n [innerHtml]=\"\n method.formattedName | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span\n ></sky-code>\n</ng-template>\n\n<ng-template let-method #descriptionTemplate>\n <sky-docs-safe-html\n *ngIf=\"method.deprecationWarning !== undefined\"\n class=\"sky-docs-method-definition-deprecation-warning\"\n [innerHtml]=\"\n deprecationWarningPrefix + method.deprecationWarning\n | skyDocsTypeAnchorLinks\n | skyDocsMarkdown\n \"\n ></sky-docs-safe-html>\n\n <sky-docs-safe-html\n *ngIf=\"method.description\"\n class=\"sky-docs-method-definition-description\"\n [innerHtml]=\"method.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <sky-code-block\n *ngIf=\"method.sourceCode\"\n class=\"sky-docs-code-block\"\n languageType=\"typescript\"\n [code]=\"method.sourceCode\"\n [hideHeader]=\"true\"\n ></sky-code-block>\n\n <sky-docs-call-signature-definition\n *ngIf=\"method.callSignature\"\n [config]=\"method.callSignature\"\n ></sky-docs-call-signature-definition>\n\n <ng-container *ngIf=\"method.codeExample\">\n <h4 class=\"sky-docs-method-definition-heading\">Example</h4>\n <sky-code-block\n *ngIf=\"method.codeExample\"\n class=\"sky-docs-code-block\"\n languageType=\"method.codeExampleLanguage\"\n [code]=\"method.codeExample\"\n [hideHeader]=\"true\"\n ></sky-code-block>\n </ng-container>\n</ng-template>\n", styles: [":host{margin:15px 0}.sky-docs-method-definitions{width:100%;max-width:100%;overflow:auto}.sky-docs-table-column-header-name{width:25%}.sky-docs-method-definition-label-optional{color:#686c73}.sky-docs-method-definition-list{margin:0}.sky-docs-method-definition-list-item{border-bottom:1px dotted #cdcfd2;margin:10px 0}.sky-docs-method-definition-list-item .sky-field-label{margin:10px 0}\n"], components: [{ type: i3$1.λ1, selector: "sky-code" }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }, { type: i3$1.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { type: SkyDocsCallSignatureDefinitionComponent, selector: "sky-docs-call-signature-definition", inputs: ["config"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe, "skyDocsMarkdown": SkyDocsMarkdownPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1760
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsMethodDefinitionsComponent, decorators: [{
1761
+ type: Component,
1762
+ args: [{ selector: 'sky-docs-method-definitions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"methods\" class=\"sky-docs-method-definitions\">\n <table *ngIf=\"!isMobile; else mobileTemplate\" class=\"sky-docs-table\">\n <tr class=\"sky-docs-table-row\">\n <th\n class=\"sky-docs-table-column-header sky-docs-table-column-header-name\"\n >\n Methods\n </th>\n <th\n class=\"\n sky-docs-table-column-header sky-docs-table-column-header-description\n \"\n >\n Description\n </th>\n </tr>\n <tr *ngFor=\"let method of methods\" class=\"sky-docs-table-row\">\n <td\n class=\"sky-docs-table-cell sky-docs-method-definitions-table-cell-name\"\n >\n <ng-template\n [ngTemplateOutlet]=\"nameTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: method }\"\n ></ng-template>\n </td>\n <td\n class=\"\n sky-docs-table-cell sky-docs-method-definitions-table-cell-description\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: method }\"\n ></ng-template>\n </td>\n </tr>\n </table>\n\n <ng-template #mobileTemplate>\n <dl class=\"sky-docs-method-definition-list\">\n <div\n *ngFor=\"let method of methods\"\n class=\"sky-docs-method-definition-list-item\"\n >\n <dt class=\"sky-field-label\">Methods</dt>\n <dd class=\"sky-docs-method-definitions-dd-name\">\n <ng-template\n [ngTemplateOutlet]=\"nameTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: method }\"\n ></ng-template>\n </dd>\n <dt class=\"sky-field-label\">Description</dt>\n <dd class=\"sky-docs-method-definitions-dd-description\">\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: method }\"\n ></ng-template>\n </dd>\n </div>\n </dl>\n </ng-template>\n</div>\n\n<ng-template let-method #nameTemplate>\n <sky-code\n ><span\n [innerHtml]=\"\n method.formattedName | skyDocsTypeAnchorLinks: 'no-code-tags'\n \"\n ></span\n ></sky-code>\n</ng-template>\n\n<ng-template let-method #descriptionTemplate>\n <sky-docs-safe-html\n *ngIf=\"method.deprecationWarning !== undefined\"\n class=\"sky-docs-method-definition-deprecation-warning\"\n [innerHtml]=\"\n deprecationWarningPrefix + method.deprecationWarning\n | skyDocsTypeAnchorLinks\n | skyDocsMarkdown\n \"\n ></sky-docs-safe-html>\n\n <sky-docs-safe-html\n *ngIf=\"method.description\"\n class=\"sky-docs-method-definition-description\"\n [innerHtml]=\"method.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <sky-code-block\n *ngIf=\"method.sourceCode\"\n class=\"sky-docs-code-block\"\n languageType=\"typescript\"\n [code]=\"method.sourceCode\"\n [hideHeader]=\"true\"\n ></sky-code-block>\n\n <sky-docs-call-signature-definition\n *ngIf=\"method.callSignature\"\n [config]=\"method.callSignature\"\n ></sky-docs-call-signature-definition>\n\n <ng-container *ngIf=\"method.codeExample\">\n <h4 class=\"sky-docs-method-definition-heading\">Example</h4>\n <sky-code-block\n *ngIf=\"method.codeExample\"\n class=\"sky-docs-code-block\"\n languageType=\"method.codeExampleLanguage\"\n [code]=\"method.codeExample\"\n [hideHeader]=\"true\"\n ></sky-code-block>\n </ng-container>\n</ng-template>\n", styles: [":host{margin:15px 0}.sky-docs-method-definitions{width:100%;max-width:100%;overflow:auto}.sky-docs-table-column-header-name{width:25%}.sky-docs-method-definition-label-optional{color:#686c73}.sky-docs-method-definition-list{margin:0}.sky-docs-method-definition-list-item{border-bottom:1px dotted #cdcfd2;margin:10px 0}.sky-docs-method-definition-list-item .sky-field-label{margin:10px 0}\n"] }]
1763
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyDocsTypeDefinitionsFormatService }, { type: i2$4.SkyMediaQueryService }]; }, propDecorators: { config: [{
1764
+ type: Input
1765
+ }] } });
1766
+
1767
+ class SkyDocsPipeDefinitionComponent {
1768
+ }
1769
+ SkyDocsPipeDefinitionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsPipeDefinitionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1770
+ SkyDocsPipeDefinitionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsPipeDefinitionComponent, selector: "sky-docs-pipe-definition", inputs: { config: "config" }, ngImport: i0, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-pipe-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <ng-container *ngIf=\"config.codeExample\">\n <h4 class=\"sky-docs-pipe-definition-heading\">Example</h4>\n <sky-code-block\n class=\"sky-docs-code-block\"\n [code]=\"config.codeExample\"\n [hideHeader]=\"true\"\n [languageType]=\"config.codeExampleLanguage\"\n ></sky-code-block>\n </ng-container>\n\n <sky-docs-method-definitions\n [config]=\"{\n methods: [config.transformMethod]\n }\"\n ></sky-docs-method-definitions>\n</div>\n", styles: [".sky-docs-pipe-definition-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}\n"], components: [{ type: SkyDocsHeadingAnchorComponent, selector: "sky-docs-heading-anchor", inputs: ["anchorId", "headingLevel"] }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }, { type: i3$1.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { type: SkyDocsMethodDefinitionsComponent, selector: "sky-docs-method-definitions", inputs: ["config"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "skyDocsMarkdown": SkyDocsMarkdownPipe, "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1771
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsPipeDefinitionComponent, decorators: [{
1772
+ type: Component,
1773
+ args: [{ selector: 'sky-docs-pipe-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-pipe-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <ng-container *ngIf=\"config.codeExample\">\n <h4 class=\"sky-docs-pipe-definition-heading\">Example</h4>\n <sky-code-block\n class=\"sky-docs-code-block\"\n [code]=\"config.codeExample\"\n [hideHeader]=\"true\"\n [languageType]=\"config.codeExampleLanguage\"\n ></sky-code-block>\n </ng-container>\n\n <sky-docs-method-definitions\n [config]=\"{\n methods: [config.transformMethod]\n }\"\n ></sky-docs-method-definitions>\n</div>\n", styles: [".sky-docs-pipe-definition-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}\n"] }]
1774
+ }], propDecorators: { config: [{
1775
+ type: Input
1776
+ }] } });
1777
+
1778
+ class SkyDocsClassDefinitionComponent {
1779
+ }
1780
+ SkyDocsClassDefinitionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsClassDefinitionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1781
+ SkyDocsClassDefinitionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsClassDefinitionComponent, selector: "sky-docs-class-definition", inputs: { config: "config" }, ngImport: i0, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-class-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-class-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <ng-container *ngIf=\"config.properties?.length\">\n <sky-docs-property-definitions\n [config]=\"{ properties: config.properties }\"\n ></sky-docs-property-definitions>\n </ng-container>\n\n <ng-container *ngIf=\"config.methods?.length\">\n <sky-docs-method-definitions\n [config]=\"{ methods: config.methods }\"\n ></sky-docs-method-definitions>\n </ng-container>\n</div>\n", styles: [".sky-docs-class-definition-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}.sky-docs-class-definition-return-type{margin-left:15px}\n"], components: [{ type: SkyDocsHeadingAnchorComponent, selector: "sky-docs-heading-anchor", inputs: ["anchorId", "headingLevel"] }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }, { type: SkyDocsPropertyDefinitionsComponent, selector: "sky-docs-property-definitions", inputs: ["config", "propertyType", "showOptionalStatus"] }, { type: SkyDocsMethodDefinitionsComponent, selector: "sky-docs-method-definitions", inputs: ["config"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "skyDocsMarkdown": SkyDocsMarkdownPipe, "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsClassDefinitionComponent, decorators: [{
1783
+ type: Component,
1784
+ args: [{ selector: 'sky-docs-class-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-class-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-class-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <ng-container *ngIf=\"config.properties?.length\">\n <sky-docs-property-definitions\n [config]=\"{ properties: config.properties }\"\n ></sky-docs-property-definitions>\n </ng-container>\n\n <ng-container *ngIf=\"config.methods?.length\">\n <sky-docs-method-definitions\n [config]=\"{ methods: config.methods }\"\n ></sky-docs-method-definitions>\n </ng-container>\n</div>\n", styles: [".sky-docs-class-definition-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}.sky-docs-class-definition-return-type{margin-left:15px}\n"] }]
1785
+ }], propDecorators: { config: [{
1786
+ type: Input
1787
+ }] } });
1788
+
1789
+ class SkyDocsTypeAliasDefinitionComponent {
1790
+ constructor(formatService) {
1791
+ this.formatService = formatService;
1792
+ }
1793
+ set config(value) {
1794
+ this._config = value;
1795
+ this.updateView();
1796
+ }
1797
+ get config() {
1798
+ return this._config;
1799
+ }
1800
+ updateView() {
1801
+ this.sourceCode = this.config
1802
+ ? this.formatService.getTypeAliasSourceCode(this.config)
1803
+ : undefined;
1804
+ }
1805
+ }
1806
+ SkyDocsTypeAliasDefinitionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeAliasDefinitionComponent, deps: [{ token: SkyDocsTypeDefinitionsFormatService }], target: i0.ɵɵFactoryTarget.Component });
1807
+ SkyDocsTypeAliasDefinitionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsTypeAliasDefinitionComponent, selector: "sky-docs-type-alias-definition", inputs: { config: "config" }, ngImport: i0, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-type-alias-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-type-alias-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <sky-code-block\n *ngIf=\"sourceCode\"\n class=\"sky-docs-code-block\"\n languageType=\"typescript\"\n [code]=\"sourceCode\"\n [hideHeader]=\"true\"\n ></sky-code-block>\n\n <sky-docs-call-signature-definition\n *ngIf=\"config.type.callSignature\"\n [config]=\"config.type.callSignature\"\n ></sky-docs-call-signature-definition>\n</div>\n", styles: [".sky-docs-type-alias-definition-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}.sky-docs-type-alias-definition-return-type{margin-left:15px}\n"], components: [{ type: SkyDocsHeadingAnchorComponent, selector: "sky-docs-heading-anchor", inputs: ["anchorId", "headingLevel"] }, { type: SkyDocsSafeHtmlComponent, selector: "sky-docs-safe-html", inputs: ["innerHtml"] }, { type: i3$1.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { type: SkyDocsCallSignatureDefinitionComponent, selector: "sky-docs-call-signature-definition", inputs: ["config"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "skyDocsMarkdown": SkyDocsMarkdownPipe, "skyDocsTypeAnchorLinks": SkyDocsTypeAnchorLinksPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1808
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeAliasDefinitionComponent, decorators: [{
1809
+ type: Component,
1810
+ args: [{ selector: 'sky-docs-type-alias-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"config\"\n class=\"sky-docs-type-alias-definition sky-docs-type-definition-wrapper\"\n>\n <sky-docs-heading-anchor headingLevel=\"3\" [anchorId]=\"config.anchorId\">\n {{ config.name }}\n </sky-docs-heading-anchor>\n\n <sky-docs-safe-html\n *ngIf=\"config.description\"\n class=\"sky-docs-type-alias-definition-description\"\n [innerHtml]=\"config.description | skyDocsTypeAnchorLinks | skyDocsMarkdown\"\n ></sky-docs-safe-html>\n\n <sky-code-block\n *ngIf=\"sourceCode\"\n class=\"sky-docs-code-block\"\n languageType=\"typescript\"\n [code]=\"sourceCode\"\n [hideHeader]=\"true\"\n ></sky-code-block>\n\n <sky-docs-call-signature-definition\n *ngIf=\"config.type.callSignature\"\n [config]=\"config.type.callSignature\"\n ></sky-docs-call-signature-definition>\n</div>\n", styles: [".sky-docs-type-alias-definition-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;font-weight:400;font-weight:600;font-size:15px;margin:0 0 10px}.sky-docs-type-alias-definition-return-type{margin-left:15px}\n"] }]
1811
+ }], ctorParameters: function () { return [{ type: SkyDocsTypeDefinitionsFormatService }]; }, propDecorators: { config: [{
1812
+ type: Input
1813
+ }] } });
1814
+
1815
+ class SkyDocsTypeDefinitionsModule {
1816
+ }
1817
+ SkyDocsTypeDefinitionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1818
+ SkyDocsTypeDefinitionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsModule, declarations: [SkyDocsCallSignatureDefinitionComponent,
1819
+ SkyDocsClassDefinitionComponent,
1820
+ SkyDocsDirectiveDefinitionComponent,
1821
+ SkyDocsEnumerationDefinitionComponent,
1822
+ SkyDocsInterfaceDefinitionComponent,
1823
+ SkyDocsMethodDefinitionsComponent,
1824
+ SkyDocsPipeDefinitionComponent,
1825
+ SkyDocsPropertyDefinitionsComponent,
1826
+ SkyDocsTypeAliasDefinitionComponent,
1827
+ SkyDocsTypeAnchorLinksPipe], imports: [CommonModule,
1828
+ RouterModule,
1829
+ SkyCodeBlockModule,
1830
+ SkyCodeModule,
1831
+ SkyDefinitionListModule,
1832
+ SkyDocsHeadingAnchorModule,
1833
+ SkyDocsMarkdownModule,
1834
+ SkyDocsSafeHtmlModule,
1835
+ SkyIconModule], exports: [SkyDocsCallSignatureDefinitionComponent,
1836
+ SkyDocsClassDefinitionComponent,
1837
+ SkyDocsDirectiveDefinitionComponent,
1838
+ SkyDocsEnumerationDefinitionComponent,
1839
+ SkyDocsInterfaceDefinitionComponent,
1840
+ SkyDocsMethodDefinitionsComponent,
1841
+ SkyDocsPipeDefinitionComponent,
1842
+ SkyDocsPropertyDefinitionsComponent,
1843
+ SkyDocsTypeAliasDefinitionComponent,
1844
+ SkyDocsTypeAnchorLinksPipe] });
1845
+ SkyDocsTypeDefinitionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsModule, imports: [[
1846
+ CommonModule,
1847
+ RouterModule,
1848
+ SkyCodeBlockModule,
1849
+ SkyCodeModule,
1850
+ SkyDefinitionListModule,
1851
+ SkyDocsHeadingAnchorModule,
1852
+ SkyDocsMarkdownModule,
1853
+ SkyDocsSafeHtmlModule,
1854
+ SkyIconModule,
1855
+ ]] });
1856
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsModule, decorators: [{
1857
+ type: NgModule,
1858
+ args: [{
1859
+ imports: [
1860
+ CommonModule,
1861
+ RouterModule,
1862
+ SkyCodeBlockModule,
1863
+ SkyCodeModule,
1864
+ SkyDefinitionListModule,
1865
+ SkyDocsHeadingAnchorModule,
1866
+ SkyDocsMarkdownModule,
1867
+ SkyDocsSafeHtmlModule,
1868
+ SkyIconModule,
1869
+ ],
1870
+ declarations: [
1871
+ SkyDocsCallSignatureDefinitionComponent,
1872
+ SkyDocsClassDefinitionComponent,
1873
+ SkyDocsDirectiveDefinitionComponent,
1874
+ SkyDocsEnumerationDefinitionComponent,
1875
+ SkyDocsInterfaceDefinitionComponent,
1876
+ SkyDocsMethodDefinitionsComponent,
1877
+ SkyDocsPipeDefinitionComponent,
1878
+ SkyDocsPropertyDefinitionsComponent,
1879
+ SkyDocsTypeAliasDefinitionComponent,
1880
+ SkyDocsTypeAnchorLinksPipe,
1881
+ ],
1882
+ exports: [
1883
+ SkyDocsCallSignatureDefinitionComponent,
1884
+ SkyDocsClassDefinitionComponent,
1885
+ SkyDocsDirectiveDefinitionComponent,
1886
+ SkyDocsEnumerationDefinitionComponent,
1887
+ SkyDocsInterfaceDefinitionComponent,
1888
+ SkyDocsMethodDefinitionsComponent,
1889
+ SkyDocsPipeDefinitionComponent,
1890
+ SkyDocsPropertyDefinitionsComponent,
1891
+ SkyDocsTypeAliasDefinitionComponent,
1892
+ SkyDocsTypeAnchorLinksPipe,
1893
+ ],
1894
+ }]
1895
+ }] });
1896
+
1897
+ /**
1898
+ * Specifies a section of page content.
1899
+ * @example
1900
+ * ```
1901
+ * <sky-docs-demo-page-section
1902
+ * heading="Section heading"
1903
+ * >
1904
+ * Section content here.
1905
+ * </sky-docs-demo-page-section>
1906
+ * ```
1907
+ */
1908
+ class SkyDocsDemoPageSectionComponent {
1909
+ get anchorId() {
1910
+ return `section-${this.getSanitizedName(this.heading)}`;
1911
+ }
1912
+ getSanitizedName(value) {
1913
+ if (!value) {
1914
+ return;
1915
+ }
1916
+ const sanitized = value
1917
+ .toLowerCase()
1918
+ // Remove special characters.
1919
+ .replace(/[\_\~\`\@\!\#\$\%\^\&\*\(\)\[\]\{\}\;\:\'\/\\\<\>\,\.\?\=\+\|"]/g, '')
1920
+ // Replace space characters with a dash.
1921
+ .replace(/\s/g, '-')
1922
+ // Remove any double-dashes.
1923
+ .replace(/--/g, '-');
1924
+ return sanitized;
1925
+ }
1926
+ }
1927
+ SkyDocsDemoPageSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1928
+ SkyDocsDemoPageSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoPageSectionComponent, selector: "sky-docs-demo-page-section", inputs: { heading: "heading" }, ngImport: i0, template: "<div class=\"sky-docs-demo-page-section sky-rounded-corners\">\n <div *ngIf=\"heading\" class=\"sky-docs-demo-page-section-header\">\n <sky-docs-heading-anchor headingLevel=\"2\" [anchorId]=\"anchorId\">\n {{ heading }}\n </sky-docs-heading-anchor>\n </div>\n <div class=\"sky-docs-demo-page-section-body\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-docs-demo-page-section{margin-bottom:50px}\n"], components: [{ type: SkyDocsHeadingAnchorComponent, selector: "sky-docs-heading-anchor", inputs: ["anchorId", "headingLevel"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1929
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageSectionComponent, decorators: [{
1930
+ type: Component,
1931
+ args: [{ selector: 'sky-docs-demo-page-section', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-demo-page-section sky-rounded-corners\">\n <div *ngIf=\"heading\" class=\"sky-docs-demo-page-section-header\">\n <sky-docs-heading-anchor headingLevel=\"2\" [anchorId]=\"anchorId\">\n {{ heading }}\n </sky-docs-heading-anchor>\n </div>\n <div class=\"sky-docs-demo-page-section-body\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sky-docs-demo-page-section{margin-bottom:50px}\n"] }]
1932
+ }], propDecorators: { heading: [{
1933
+ type: Input
1934
+ }] } });
1935
+
1936
+ /**
1937
+ * The page summary provides a section at the top of the page
1938
+ * to summarize what a user should expect to find or learn on the page.
1939
+ * @example
1940
+ * ```
1941
+ * <sky-docs-demo-page-summary>
1942
+ * Page summary here.
1943
+ * </sky-docs-demo-page-summary>
1944
+ * ```
1945
+ */
1946
+ class SkyDocsDemoPageSummaryComponent {
1947
+ }
1948
+ SkyDocsDemoPageSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1949
+ SkyDocsDemoPageSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoPageSummaryComponent, selector: "sky-docs-demo-page-summary", ngImport: i0, template: "<div class=\"sky-docs-demo-page-summary\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-docs-demo-page-summary{margin-bottom:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1950
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageSummaryComponent, decorators: [{
1951
+ type: Component,
1952
+ args: [{ selector: 'sky-docs-demo-page-summary', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-demo-page-summary\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-docs-demo-page-summary{margin-bottom:20px}\n"] }]
1953
+ }] });
1954
+
1955
+ class SkyDocsDesignGuidelinesComponent {
1956
+ }
1957
+ SkyDocsDesignGuidelinesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelinesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1958
+ SkyDocsDesignGuidelinesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDesignGuidelinesComponent, selector: "sky-docs-design-guidelines", ngImport: i0, template: "<div class=\"sky-docs-design-guidelines\">\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1959
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelinesComponent, decorators: [{
1960
+ type: Component,
1961
+ args: [{ selector: 'sky-docs-design-guidelines', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-design-guidelines\">\n <ng-content></ng-content>\n</div>\n" }]
1962
+ }] });
1963
+
1964
+ /**
1965
+ * @internal
1966
+ */
1967
+ class SkyDocsDemoPageDomAdapterService {
1968
+ constructor(windowRef) {
1969
+ this.windowRef = windowRef;
1970
+ this._anchorLinkClick = new Subject();
1971
+ this.eventListener = (e) => {
1972
+ e.preventDefault();
1973
+ this._anchorLinkClick.next({
1974
+ href: e.target.href,
1975
+ });
1976
+ };
1977
+ }
1978
+ get anchorLinks() {
1979
+ return document.querySelectorAll('a.sky-docs-anchor-link');
1980
+ }
1981
+ get currentUrl() {
1982
+ return this.windowRef.nativeWindow.location.href.split('#')[0];
1983
+ }
1984
+ ngOnDestroy() {
1985
+ this.removeClickEventListeners();
1986
+ }
1987
+ setupAnchorLinks() {
1988
+ for (let index = 0; index < this.anchorLinks.length; index++) {
1989
+ const anchor = this.anchorLinks[index];
1990
+ const fragment = anchor.href.split('#')[1];
1991
+ const url = this.currentUrl;
1992
+ const href = `${url}#${fragment}`;
1993
+ anchor.href = href;
1994
+ }
1995
+ }
1996
+ get anchorLinkClick() {
1997
+ if (this._anchorLinkClick.observers.length === 0) {
1998
+ this.addClickEventListeners();
1999
+ }
2000
+ else {
2001
+ this.removeClickEventListeners();
2002
+ }
2003
+ return this._anchorLinkClick;
2004
+ }
2005
+ scrollToFragment(fragment) {
2006
+ this.windowRef.nativeWindow.setTimeout(() => {
2007
+ const element = document.getElementById(fragment);
2008
+ if (element) {
2009
+ this.windowRef.nativeWindow.scrollTo(0, element.offsetTop);
2010
+ }
2011
+ }, 250);
2012
+ }
2013
+ addClickEventListeners() {
2014
+ // Wait for a tick to allow all anchors to be written.
2015
+ this.windowRef.nativeWindow.setTimeout(() => {
2016
+ for (let index = 0; index < this.anchorLinks.length; index++) {
2017
+ const anchor = this.anchorLinks[index];
2018
+ anchor.addEventListener('click', this.eventListener);
2019
+ }
2020
+ });
2021
+ }
2022
+ removeClickEventListeners() {
2023
+ for (let index = 0; index < this.anchorLinks.length; index++) {
2024
+ const anchor = this.anchorLinks[index];
2025
+ anchor.removeEventListener('click', this.eventListener);
2026
+ }
2027
+ }
2028
+ }
2029
+ SkyDocsDemoPageDomAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageDomAdapterService, deps: [{ token: i2$4.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable });
2030
+ SkyDocsDemoPageDomAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageDomAdapterService });
2031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageDomAdapterService, decorators: [{
2032
+ type: Injectable
2033
+ }], ctorParameters: function () { return [{ type: i2$4.SkyAppWindowRef }]; } });
2034
+
2035
+ class SkyDocsSupportalService {
2036
+ constructor(http) {
2037
+ this.http = http;
2038
+ }
2039
+ getComponentsInfo() {
2040
+ return this.http
2041
+ .get('https://sky-pusa01.app.blackbaud.net/skysp/v1/docs/components-info')
2042
+ .pipe(map((results) => results.components), share());
2043
+ }
2044
+ }
2045
+ SkyDocsSupportalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSupportalService, deps: [{ token: i1$5.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2046
+ SkyDocsSupportalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSupportalService, providedIn: 'root' });
2047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsSupportalService, decorators: [{
2048
+ type: Injectable,
2049
+ args: [{
2050
+ providedIn: 'root',
2051
+ }]
2052
+ }], ctorParameters: function () { return [{ type: i1$5.HttpClient }]; } });
2053
+
2054
+ /**
2055
+ * @internal
2056
+ */
2057
+ class SkyDocsDemoPageTitleService {
2058
+ constructor(title) {
2059
+ this.title = title;
2060
+ }
2061
+ setTitle(...parts) {
2062
+ let windowTitle = 'SKY UX';
2063
+ if (parts && parts.length > 0) {
2064
+ parts.push(windowTitle);
2065
+ windowTitle = parts.join(' - ');
2066
+ }
2067
+ this.title.setTitle(windowTitle);
2068
+ }
2069
+ }
2070
+ SkyDocsDemoPageTitleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageTitleService, deps: [{ token: i1$4.Title }], target: i0.ɵɵFactoryTarget.Injectable });
2071
+ SkyDocsDemoPageTitleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageTitleService, providedIn: 'root' });
2072
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageTitleService, decorators: [{
2073
+ type: Injectable,
2074
+ args: [{
2075
+ providedIn: 'root',
2076
+ }]
2077
+ }], ctorParameters: function () { return [{ type: i1$4.Title }]; } });
2078
+
2079
+ /**
2080
+ * Converts TypeDoc types into SKY UX docs-tools types, to be supplied to the various definitions components.
2081
+ */
2082
+ class SkyDocsTypeDocAdapterService {
2083
+ constructor(typeDefinitionsProvider) {
2084
+ this.typeDefinitionsProvider = typeDefinitionsProvider;
2085
+ }
2086
+ toClassDefinition(entry) {
2087
+ const definition = {
2088
+ anchorId: this.getAnchorId(entry),
2089
+ name: entry.name,
2090
+ };
2091
+ const tags = this.getCommentTags(entry.comment);
2092
+ this.applyCommentTagValues(definition, tags);
2093
+ const methods = this.getClassMethods(entry);
2094
+ if (methods.length) {
2095
+ definition.methods = methods;
2096
+ }
2097
+ const properties = this.getClassProperties(entry);
2098
+ if (properties.length) {
2099
+ definition.properties = properties;
2100
+ }
2101
+ return definition;
2102
+ }
2103
+ toDirectiveDefinition(entry) {
2104
+ const definition = {
2105
+ anchorId: this.getAnchorId(entry),
2106
+ name: entry.name,
2107
+ selector: this.getSelector(entry),
2108
+ };
2109
+ const tags = this.getCommentTags(entry.comment);
2110
+ this.applyCommentTagValues(definition, tags);
2111
+ const properties = this.getClassProperties(entry);
2112
+ const eventProperties = properties.filter((p) => p.decorator?.name === 'Output');
2113
+ if (eventProperties.length) {
2114
+ definition.eventProperties = eventProperties;
2115
+ }
2116
+ const inputProperties = properties.filter((p) => p.decorator?.name === 'Input');
2117
+ if (inputProperties.length) {
2118
+ definition.inputProperties = inputProperties;
2119
+ }
2120
+ return definition;
2121
+ }
2122
+ toEnumerationDefinition(entry) {
2123
+ const members = this.getEnumerationMembers(entry);
2124
+ const definition = {
2125
+ anchorId: this.getAnchorId(entry),
2126
+ members,
2127
+ name: entry.name,
2128
+ };
2129
+ const tags = this.getCommentTags(entry.comment);
2130
+ this.applyCommentTagValues(definition, tags);
2131
+ return definition;
2132
+ }
2133
+ toInterfaceDefinition(entry) {
2134
+ const properties = this.getInterfaceProperties(entry);
2135
+ const definition = {
2136
+ anchorId: this.getAnchorId(entry),
2137
+ name: entry.name,
2138
+ properties,
2139
+ };
2140
+ const tags = this.getCommentTags(entry.comment);
2141
+ this.applyCommentTagValues(definition, tags);
2142
+ const typeParameters = this.getTypeParameterDefinitions(entry.typeParameter);
2143
+ if (typeParameters.length) {
2144
+ definition.typeParameters = typeParameters;
2145
+ }
2146
+ return definition;
2147
+ }
2148
+ toPipeDefinition(entry) {
2149
+ const methods = this.getClassMethods(entry);
2150
+ const transformMethod = methods.find((m) => m.name === 'transform');
2151
+ const definition = {
2152
+ anchorId: this.getAnchorId(entry),
2153
+ name: entry.name,
2154
+ transformMethod,
2155
+ };
2156
+ const tags = this.getCommentTags(entry.comment);
2157
+ this.applyCommentTagValues(definition, tags);
2158
+ return definition;
2159
+ }
2160
+ toTypeAliasDefinition(entry) {
2161
+ const definition = {
2162
+ anchorId: this.getAnchorId(entry),
2163
+ name: entry.name,
2164
+ type: this.getTypeDefinition({
2165
+ comment: entry.comment,
2166
+ type: entry.type,
2167
+ }),
2168
+ };
2169
+ const tags = this.getCommentTags(entry.type.declaration?.signatures
2170
+ ? entry.type.declaration.signatures[0].comment
2171
+ : entry.comment);
2172
+ this.applyCommentTagValues(definition, tags);
2173
+ const typeParameters = this.getTypeParameterDefinitions(entry.typeParameter);
2174
+ if (typeParameters.length) {
2175
+ definition.typeParameters = typeParameters;
2176
+ }
2177
+ return definition;
2178
+ }
2179
+ getSelector(entry) {
2180
+ const decoratorSource = entry.decorators[0].arguments.obj;
2181
+ return decoratorSource.indexOf('selector: `') > -1
2182
+ ? decoratorSource
2183
+ .split('selector: `')[1]
2184
+ .split('`')[0]
2185
+ .replace(/\s\s+/g, ' ')
2186
+ : decoratorSource.split("selector: '")[1].split("'")[0];
2187
+ }
2188
+ getClassProperties(entry) {
2189
+ if (!entry.children) {
2190
+ return [];
2191
+ }
2192
+ const definitions = entry.children
2193
+ .filter((child) => child.kindString === 'Property' || child.kindString === 'Accessor')
2194
+ .map((child) => {
2195
+ let definition = {
2196
+ isOptional: true,
2197
+ name: this.getPropertyName(child),
2198
+ type: this.getTypeDefinition(child),
2199
+ };
2200
+ let defaultValue;
2201
+ /* Ensure we are properly capturing definitions which use a getter/setter. Final check is a sanity check */
2202
+ if (child.kindString === 'Accessor' &&
2203
+ !child.comment?.shortText &&
2204
+ (child.setSignature?.length > 0 || child.getSignature.length > 0)) {
2205
+ const mainTags = this.getCommentTags(child.comment);
2206
+ this.applyCommentTagValues(definition, mainTags);
2207
+ if (child.getSignature?.length > 0) {
2208
+ const getTags = this.getCommentTags(child.getSignature[0].comment);
2209
+ definition.isOptional = !getTags.extras.required;
2210
+ this.applyCommentTagValues(definition, getTags);
2211
+ defaultValue = this.getDefaultValue(child, getTags);
2212
+ }
2213
+ if (child.setSignature?.length > 0) {
2214
+ const setTags = this.getCommentTags(child.setSignature[0].comment);
2215
+ this.applyCommentTagValues(definition, setTags);
2216
+ definition.isOptional =
2217
+ definition.isOptional && !setTags.extras.required;
2218
+ defaultValue = defaultValue || this.getDefaultValue(child, setTags);
2219
+ }
2220
+ else {
2221
+ definition.isOptional = !mainTags.extras.required;
2222
+ defaultValue = this.getDefaultValue(child, mainTags);
2223
+ }
2224
+ }
2225
+ else {
2226
+ let tags;
2227
+ if (child.kindString === 'Property' &&
2228
+ !child.comment?.shortText &&
2229
+ child.type.declaration?.signatures?.length > 0 &&
2230
+ child.type.declaration.signatures[0].comment) {
2231
+ tags = this.getCommentTags(child.type.declaration.signatures[0].comment);
2232
+ definition.isOptional = !tags.extras.required;
2233
+ this.applyCommentTagValues(definition, tags);
2234
+ }
2235
+ tags = this.getCommentTags(child.comment);
2236
+ definition.isOptional =
2237
+ definition.isOptional && !tags.extras.required;
2238
+ this.applyCommentTagValues(definition, tags);
2239
+ defaultValue = this.getDefaultValue(child, tags);
2240
+ }
2241
+ if (defaultValue) {
2242
+ definition.defaultValue = defaultValue;
2243
+ }
2244
+ const decorator = this.getDecorator(child);
2245
+ if (decorator) {
2246
+ definition.decorator = decorator;
2247
+ }
2248
+ if (!definition.description) {
2249
+ const constructor = entry.children.find((child) => child.kindString === 'Constructor');
2250
+ if (constructor) {
2251
+ const signature = constructor.signatures.find((signature) => signature.kindString === 'Constructor signature');
2252
+ /* Sanity check */
2253
+ /* istanbul ignore else */
2254
+ if (signature) {
2255
+ const matchingParam = signature.parameters?.find((parameter) => parameter.name === child.name);
2256
+ if (matchingParam) {
2257
+ const matchingParamTags = this.getCommentTags(matchingParam.comment);
2258
+ this.applyCommentTagValues(definition, matchingParamTags);
2259
+ }
2260
+ }
2261
+ }
2262
+ }
2263
+ return definition;
2264
+ });
2265
+ return orderBy(definitions, ['isOptional', 'name'], ['asc', 'asc']);
2266
+ }
2267
+ getClassMethods(entry) {
2268
+ if (!entry.children) {
2269
+ return [];
2270
+ }
2271
+ const methods = entry.children
2272
+ .filter((child) => child.kindString === 'Method' && /^ng/.test(child.name) === false)
2273
+ .map((child) => {
2274
+ const definition = {
2275
+ name: this.getPropertyName(child),
2276
+ type: this.getTypeDefinition(child),
2277
+ isStatic: !!child.flags?.isStatic,
2278
+ };
2279
+ // Comments for methods are stored in a different location.
2280
+ const comment = child.signatures[0].comment;
2281
+ const tags = this.getCommentTags(comment);
2282
+ this.applyCommentTagValues(definition, tags);
2283
+ const typeParameters = this.getTypeParameterDefinitions(child.signatures[0].typeParameter);
2284
+ if (typeParameters.length) {
2285
+ definition.typeParameters = typeParameters;
2286
+ }
2287
+ return definition;
2288
+ });
2289
+ return orderBy(methods, ['name'], ['asc']);
2290
+ }
2291
+ getInterfaceProperties(entry) {
2292
+ if (!entry.children && !entry.indexSignature) {
2293
+ return [];
2294
+ }
2295
+ const definitions = entry.children?.map((child) => {
2296
+ let tags;
2297
+ if (child.kindString === 'Method' && child.signatures.length > 0) {
2298
+ tags = this.getCommentTags(child.signatures[0].comment);
2299
+ }
2300
+ else {
2301
+ tags = this.getCommentTags(child.comment);
2302
+ }
2303
+ const definition = {
2304
+ isOptional: tags.extras.required ? false : !!child.flags?.isOptional,
2305
+ name: this.getPropertyName(child),
2306
+ type: this.getTypeDefinition(child),
2307
+ };
2308
+ this.applyCommentTagValues(definition, tags);
2309
+ return definition;
2310
+ }) || [];
2311
+ const sorted = orderBy(definitions, ['isOptional', 'name'], ['asc', 'asc']);
2312
+ // Add any index signatures, e.g. `[_: string]: any`
2313
+ if (entry.indexSignature) {
2314
+ const indexSignature = entry.indexSignature;
2315
+ const definition = {
2316
+ isOptional: true,
2317
+ name: indexSignature.name,
2318
+ type: {
2319
+ indexSignature: this.getIndexSignatureDefinition(indexSignature),
2320
+ },
2321
+ };
2322
+ const tags = this.getCommentTags(indexSignature.comment);
2323
+ this.applyCommentTagValues(definition, tags);
2324
+ sorted.push(definition);
2325
+ }
2326
+ return sorted;
2327
+ }
2328
+ getEnumerationMembers(entry) {
2329
+ if (!entry.children) {
2330
+ return [];
2331
+ }
2332
+ return entry.children.map((child) => {
2333
+ const definition = {
2334
+ name: child.name,
2335
+ };
2336
+ const tags = this.getCommentTags(child.comment);
2337
+ this.applyCommentTagValues(definition, tags);
2338
+ return definition;
2339
+ });
2340
+ }
2341
+ getTypeDefinition(child) {
2342
+ let definition;
2343
+ const kindString = child.kindString;
2344
+ switch (kindString) {
2345
+ case 'Accessor':
2346
+ if (child.setSignature) {
2347
+ return this.getTypeDefinition(child.setSignature[0].parameters[0]);
2348
+ }
2349
+ return this.getTypeDefinition(child.getSignature[0]);
2350
+ case 'Method':
2351
+ definition = {
2352
+ callSignature: this.getCallSignatureDefinition(child.signatures[0], this.getCommentTags(child.comment)),
2353
+ name: child.signatures[0].name,
2354
+ };
2355
+ return definition;
2356
+ default:
2357
+ let name = child.type.name || child.type.elementType?.name || child.type.value;
2358
+ definition = {
2359
+ type: child.type.type,
2360
+ };
2361
+ if (name) {
2362
+ definition.name = name;
2363
+ }
2364
+ // Union?
2365
+ if (child.type.types) {
2366
+ definition.unionTypes = child.type.types.map((t) => this.getTypeDefinition({ type: t }));
2367
+ }
2368
+ // Convert reflection types.
2369
+ if (child.type.type === 'reflection') {
2370
+ const declaration = child.type.declaration;
2371
+ /*istanbul ignore else */
2372
+ if (declaration) {
2373
+ if (declaration.signatures) {
2374
+ definition.callSignature = this.getCallSignatureDefinition(declaration.signatures[0], this.getCommentTags(child.comment));
2375
+ }
2376
+ else if (declaration.indexSignature) {
2377
+ const indexSignature = declaration.indexSignature;
2378
+ definition.indexSignature =
2379
+ this.getIndexSignatureDefinition(indexSignature);
2380
+ } /* istanbul ignore else */
2381
+ else if (declaration.children) {
2382
+ definition.typeLiteral = {
2383
+ properties: this.getInterfaceProperties({
2384
+ children: declaration.children,
2385
+ }),
2386
+ };
2387
+ }
2388
+ }
2389
+ }
2390
+ if (child.type.type === 'typeOperator') {
2391
+ definition.name = `${child.type.operator} ${child.type.target.name}`;
2392
+ }
2393
+ if (child.type.typeArguments) {
2394
+ definition.typeArguments = this.getTypeArgumentDefinitions(child.type);
2395
+ }
2396
+ return definition;
2397
+ }
2398
+ }
2399
+ getParameterDefinitions(callSignature, parentTags) {
2400
+ if (!callSignature.parameters) {
2401
+ return [];
2402
+ }
2403
+ const parameters = callSignature.parameters.map((p) => {
2404
+ const tags = this.getParameterCommentTags(p, parentTags);
2405
+ const defaultValue = this.getDefaultValue(p, tags);
2406
+ const typeArguments = this.getTypeArgumentDefinitions(p.type);
2407
+ const parameter = {
2408
+ isOptional: !!(defaultValue || !!p.flags?.isOptional),
2409
+ name: p.name,
2410
+ type: this.getTypeDefinition(p),
2411
+ };
2412
+ if (defaultValue !== undefined) {
2413
+ parameter.defaultValue = defaultValue;
2414
+ }
2415
+ if (tags.description) {
2416
+ parameter.description = tags.description;
2417
+ }
2418
+ if (typeArguments.length) {
2419
+ parameter.typeArguments = typeArguments;
2420
+ }
2421
+ return parameter;
2422
+ });
2423
+ return parameters;
2424
+ }
2425
+ getTypeArgumentDefinitions(typeConfig) {
2426
+ if (!typeConfig || !typeConfig.typeArguments) {
2427
+ return [];
2428
+ }
2429
+ return typeConfig.typeArguments.map((typeArgument) => {
2430
+ return this.getTypeDefinition({ type: typeArgument });
2431
+ });
2432
+ }
2433
+ getCallSignatureDefinition(callSignature, tags) {
2434
+ const definition = {
2435
+ returnType: this.getTypeDefinition(callSignature),
2436
+ };
2437
+ const parameters = this.getParameterDefinitions(callSignature, tags);
2438
+ if (parameters.length) {
2439
+ definition.parameters = parameters;
2440
+ }
2441
+ return definition;
2442
+ }
2443
+ getIndexSignatureDefinition(signature) {
2444
+ return {
2445
+ key: {
2446
+ name: signature.parameters[0].name,
2447
+ type: this.getTypeDefinition(signature.parameters[0]),
2448
+ },
2449
+ type: this.getTypeDefinition(signature),
2450
+ };
2451
+ }
2452
+ getTypeParameterDefinitions(typeParameters) {
2453
+ if (!typeParameters) {
2454
+ return [];
2455
+ }
2456
+ return typeParameters.map((typeParam) => {
2457
+ const definition = {
2458
+ name: typeParam.name,
2459
+ };
2460
+ if (typeParam.type) {
2461
+ definition.type = this.getTypeDefinition({
2462
+ type: typeParam.type,
2463
+ });
2464
+ }
2465
+ return definition;
2466
+ });
2467
+ }
2468
+ getCommentTags(comment) {
2469
+ let codeExample;
2470
+ let codeExampleLanguage = 'markup';
2471
+ let deprecationWarning;
2472
+ let defaultValue;
2473
+ let description = '';
2474
+ let parameters;
2475
+ const extras = {};
2476
+ if (comment) {
2477
+ if (comment.tags) {
2478
+ comment.tags.forEach((tag) => {
2479
+ switch (tag.tag) {
2480
+ case 'deprecated':
2481
+ deprecationWarning = tag.text.trim();
2482
+ break;
2483
+ case 'default':
2484
+ case 'defaultValue':
2485
+ defaultValue = tag.text.trim();
2486
+ break;
2487
+ case 'example':
2488
+ codeExample = tag.text.trim().split('```')[1].trim();
2489
+ const language = codeExample.split('\n')[0];
2490
+ if (language === 'markup' || language === 'typescript') {
2491
+ codeExample = codeExample.slice(language.length).trim();
2492
+ codeExampleLanguage = language;
2493
+ }
2494
+ break;
2495
+ case 'param':
2496
+ parameters = parameters || [];
2497
+ parameters.push({
2498
+ name: tag.param,
2499
+ description: tag.text.trim(),
2500
+ });
2501
+ break;
2502
+ default:
2503
+ extras[tag.tag] = tag.text;
2504
+ break;
2505
+ }
2506
+ });
2507
+ }
2508
+ description = (comment.shortText || comment.text || '').trim();
2509
+ }
2510
+ return {
2511
+ codeExample,
2512
+ codeExampleLanguage,
2513
+ defaultValue,
2514
+ deprecationWarning,
2515
+ description,
2516
+ extras,
2517
+ parameters,
2518
+ };
2519
+ }
2520
+ /**
2521
+ * Parameter descriptions are derived from the parent's (function/method) comment.
2522
+ */
2523
+ getParameterCommentTags(parameter, parentTags) {
2524
+ const tags = this.getCommentTags(parameter.comment);
2525
+ const paramTags = parentTags.parameters;
2526
+ const tagParam = paramTags
2527
+ ? paramTags.find((param) => param.name === parameter.name)
2528
+ : undefined;
2529
+ if (!tagParam || !tagParam.description) {
2530
+ return tags;
2531
+ }
2532
+ return {
2533
+ ...tags,
2534
+ ...{
2535
+ description: tagParam.description,
2536
+ },
2537
+ };
2538
+ }
2539
+ /**
2540
+ * Applies comment tag (e.g. `@param`) values to the provided definition, if the value is defined.
2541
+ */
2542
+ applyCommentTagValues(definition, tags) {
2543
+ if (tags.codeExample) {
2544
+ definition.codeExample = tags.codeExample;
2545
+ definition.codeExampleLanguage = tags.codeExampleLanguage;
2546
+ }
2547
+ if (tags.deprecationWarning !== undefined) {
2548
+ definition.deprecationWarning = tags.deprecationWarning;
2549
+ }
2550
+ if (tags.description) {
2551
+ definition.description = tags.description;
2552
+ }
2553
+ }
2554
+ getDecorator(child) {
2555
+ const name = child.decorators && child.decorators[0] && child.decorators[0].name;
2556
+ if (name) {
2557
+ return { name };
2558
+ }
2559
+ }
2560
+ getPropertyName(property) {
2561
+ const decorators = property.decorators && property.decorators[0];
2562
+ // Use the Input's bound property name, if found.
2563
+ // e.g. @Input('foobar')
2564
+ return decorators?.arguments?.bindingPropertyName
2565
+ ? decorators.arguments.bindingPropertyName.replace(/(\'|\")/g, '')
2566
+ : property.name;
2567
+ }
2568
+ getDefaultValue(child, tags) {
2569
+ if (tags.defaultValue) {
2570
+ return tags.defaultValue;
2571
+ }
2572
+ // TypeDoc version 0.20.x stopped auto-generating initializers for the default value
2573
+ // (and replaced them with "...") due to the complicated logic it required.
2574
+ // See: https://github.com/TypeStrong/typedoc/issues/1552
2575
+ if (child.defaultValue === '...') {
2576
+ return;
2577
+ }
2578
+ return child.defaultValue;
2579
+ }
2580
+ getAnchorId(entry) {
2581
+ return (entry.anchorId ||
2582
+ this.typeDefinitionsProvider?.anchorIds[entry.name] ||
2583
+ '');
2584
+ }
2585
+ }
2586
+ SkyDocsTypeDocAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDocAdapterService, deps: [{ token: SkyDocsTypeDefinitionsProvider, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
2587
+ SkyDocsTypeDocAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDocAdapterService, providedIn: 'any' });
2588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDocAdapterService, decorators: [{
2589
+ type: Injectable,
2590
+ args: [{
2591
+ providedIn: 'any',
2592
+ }]
2593
+ }], ctorParameters: function () { return [{ type: SkyDocsTypeDefinitionsProvider, decorators: [{
2594
+ type: Optional
2595
+ }] }]; } });
2596
+
2597
+ /**
2598
+ * Handles all type definitions that have been converted from the third-party documentation generator.
2599
+ */
2600
+ class SkyDocsTypeDefinitionsService {
2601
+ constructor(typeDefinitionsProvider, adapter) {
2602
+ this.typeDefinitionsProvider = typeDefinitionsProvider;
2603
+ this.adapter = adapter;
2604
+ }
2605
+ /**
2606
+ * Returns type definitions from a specific source code location.
2607
+ * @param sourceCodePath The directory of the source code you wish to pull type definitions from,
2608
+ * relative to the application's root directory.
2609
+ */
2610
+ getTypeDefinitions(sourceCodePath, additionalSourceCodePaths) {
2611
+ if (!sourceCodePath) {
2612
+ throw new Error('The `sourceCodePath` parameter is required');
2613
+ }
2614
+ const sourceCodePaths = additionalSourceCodePaths && additionalSourceCodePaths.length > 0
2615
+ ? [sourceCodePath].concat(additionalSourceCodePaths)
2616
+ : [sourceCodePath];
2617
+ sourceCodePaths.forEach((path) => {
2618
+ if (!path.endsWith('/') && !path.endsWith('.ts')) {
2619
+ throw new Error('Source code paths must end with a forward slash (`/`) or `.ts`.');
2620
+ }
2621
+ });
2622
+ const allDefinitions = this.typeDefinitionsProvider.typeDefinitions;
2623
+ const types = {
2624
+ classes: [],
2625
+ components: [],
2626
+ directives: [],
2627
+ enumerations: [],
2628
+ interfaces: [],
2629
+ pipes: [],
2630
+ services: [],
2631
+ typeAliases: [],
2632
+ };
2633
+ if (!allDefinitions) {
2634
+ console.warn(`No types were found for this project!`);
2635
+ return types;
2636
+ }
2637
+ sourceCodePaths.forEach((path) => {
2638
+ const requestedDir = path
2639
+ .replace(/src\/app\/public\//, '')
2640
+ .replace(/^\//, ''); // remove first slash.
2641
+ // Only process types that match the requested source code location.
2642
+ const typeDefinitions = allDefinitions.filter((i) => i.sources && i.sources[0].fileName.match(requestedDir));
2643
+ if (typeDefinitions.length === 0) {
2644
+ console.warn(`Type definitions were not found for location: ${requestedDir}`);
2645
+ }
2646
+ typeDefinitions.forEach((item) => {
2647
+ const decorator = item.decorators && item.decorators[0].name;
2648
+ const kindString = item.kindString;
2649
+ switch (decorator) {
2650
+ case 'Component':
2651
+ types.components.push(this.adapter.toDirectiveDefinition(item));
2652
+ break;
2653
+ case 'Directive':
2654
+ types.directives.push(this.adapter.toDirectiveDefinition(item));
2655
+ break;
2656
+ case 'Injectable':
2657
+ types.services.push(this.adapter.toClassDefinition(item));
2658
+ break;
2659
+ case 'NgModule':
2660
+ // Don't document modules.
2661
+ break;
2662
+ case 'Pipe':
2663
+ types.pipes.push(this.adapter.toPipeDefinition(item));
2664
+ break;
2665
+ default:
2666
+ /*tslint:disable-next-line:switch-default*/
2667
+ switch (kindString) {
2668
+ case 'Class':
2669
+ types.classes.push(this.adapter.toClassDefinition(item));
2670
+ break;
2671
+ case 'Interface':
2672
+ types.interfaces.push(this.adapter.toInterfaceDefinition(item));
2673
+ break;
2674
+ case 'Enumeration':
2675
+ types.enumerations.push(this.adapter.toEnumerationDefinition(item));
2676
+ break;
2677
+ case 'Type alias':
2678
+ types.typeAliases.push(this.adapter.toTypeAliasDefinition(item));
2679
+ break;
2680
+ }
2681
+ }
2682
+ });
2683
+ });
2684
+ return types;
2685
+ }
2686
+ }
2687
+ SkyDocsTypeDefinitionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsService, deps: [{ token: SkyDocsTypeDefinitionsProvider }, { token: SkyDocsTypeDocAdapterService }], target: i0.ɵɵFactoryTarget.Injectable });
2688
+ SkyDocsTypeDefinitionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsService, providedIn: 'any' });
2689
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsTypeDefinitionsService, decorators: [{
2690
+ type: Injectable,
2691
+ args: [{
2692
+ providedIn: 'any',
2693
+ }]
2694
+ }], ctorParameters: function () { return [{ type: SkyDocsTypeDefinitionsProvider }, { type: SkyDocsTypeDocAdapterService }]; } });
2695
+
2696
+ /**
2697
+ * @internal
2698
+ */
2699
+ class SkyDocsDemoPageTypeDefinitionsComponent {
2700
+ constructor(typeDefinitionService) {
2701
+ this.typeDefinitionService = typeDefinitionService;
2702
+ }
2703
+ ngOnInit() {
2704
+ if (this.moduleSourceCodePath) {
2705
+ this.types = this.typeDefinitionService.getTypeDefinitions(this.moduleSourceCodePath, this.additionalSourceCodePaths);
2706
+ }
2707
+ }
2708
+ }
2709
+ SkyDocsDemoPageTypeDefinitionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageTypeDefinitionsComponent, deps: [{ token: SkyDocsTypeDefinitionsService }], target: i0.ɵɵFactoryTarget.Component });
2710
+ SkyDocsDemoPageTypeDefinitionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoPageTypeDefinitionsComponent, selector: "sky-docs-demo-page-type-definitions", inputs: { additionalSourceCodePaths: "additionalSourceCodePaths", moduleSourceCodePath: "moduleSourceCodePath" }, ngImport: i0, template: "<ng-template [ngIf]=\"types\">\n <sky-docs-demo-page-section\n *ngIf=\"types.components.length\"\n heading=\"Components\"\n >\n <sky-docs-directive-definition\n *ngFor=\"let config of types.components\"\n [config]=\"config\"\n ></sky-docs-directive-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section\n *ngIf=\"types.directives.length\"\n heading=\"Directives\"\n >\n <sky-docs-directive-definition\n *ngFor=\"let config of types.directives\"\n [config]=\"config\"\n ></sky-docs-directive-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section *ngIf=\"types.pipes.length\" heading=\"Pipes\">\n <sky-docs-pipe-definition\n *ngFor=\"let config of types.pipes\"\n [config]=\"config\"\n ></sky-docs-pipe-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section *ngIf=\"types.services.length\" heading=\"Services\">\n <sky-docs-class-definition\n *ngFor=\"let config of types.services\"\n [config]=\"config\"\n ></sky-docs-class-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section *ngIf=\"types.classes.length\" heading=\"Classes\">\n <sky-docs-class-definition\n *ngFor=\"let config of types.classes\"\n [config]=\"config\"\n ></sky-docs-class-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section\n *ngIf=\"types.interfaces.length\"\n heading=\"Interfaces\"\n >\n <sky-docs-interface-definition\n *ngFor=\"let config of types.interfaces\"\n [config]=\"config\"\n ></sky-docs-interface-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section\n *ngIf=\"types.enumerations.length\"\n heading=\"Enumerations\"\n >\n <sky-docs-enumeration-definition\n *ngFor=\"let config of types.enumerations\"\n [config]=\"config\"\n ></sky-docs-enumeration-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section\n *ngIf=\"types.typeAliases.length\"\n heading=\"Type aliases\"\n >\n <sky-docs-type-alias-definition\n *ngFor=\"let config of types.typeAliases\"\n [config]=\"config\"\n ></sky-docs-type-alias-definition>\n </sky-docs-demo-page-section>\n</ng-template>\n", components: [{ type: SkyDocsDemoPageSectionComponent, selector: "sky-docs-demo-page-section", inputs: ["heading"] }, { type: SkyDocsDirectiveDefinitionComponent, selector: "sky-docs-directive-definition", inputs: ["config"] }, { type: SkyDocsPipeDefinitionComponent, selector: "sky-docs-pipe-definition", inputs: ["config"] }, { type: SkyDocsClassDefinitionComponent, selector: "sky-docs-class-definition", inputs: ["config"] }, { type: SkyDocsInterfaceDefinitionComponent, selector: "sky-docs-interface-definition", inputs: ["config"] }, { type: SkyDocsEnumerationDefinitionComponent, selector: "sky-docs-enumeration-definition", inputs: ["config"] }, { type: SkyDocsTypeAliasDefinitionComponent, selector: "sky-docs-type-alias-definition", inputs: ["config"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2711
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageTypeDefinitionsComponent, decorators: [{
2712
+ type: Component,
2713
+ args: [{ selector: 'sky-docs-demo-page-type-definitions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngIf]=\"types\">\n <sky-docs-demo-page-section\n *ngIf=\"types.components.length\"\n heading=\"Components\"\n >\n <sky-docs-directive-definition\n *ngFor=\"let config of types.components\"\n [config]=\"config\"\n ></sky-docs-directive-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section\n *ngIf=\"types.directives.length\"\n heading=\"Directives\"\n >\n <sky-docs-directive-definition\n *ngFor=\"let config of types.directives\"\n [config]=\"config\"\n ></sky-docs-directive-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section *ngIf=\"types.pipes.length\" heading=\"Pipes\">\n <sky-docs-pipe-definition\n *ngFor=\"let config of types.pipes\"\n [config]=\"config\"\n ></sky-docs-pipe-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section *ngIf=\"types.services.length\" heading=\"Services\">\n <sky-docs-class-definition\n *ngFor=\"let config of types.services\"\n [config]=\"config\"\n ></sky-docs-class-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section *ngIf=\"types.classes.length\" heading=\"Classes\">\n <sky-docs-class-definition\n *ngFor=\"let config of types.classes\"\n [config]=\"config\"\n ></sky-docs-class-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section\n *ngIf=\"types.interfaces.length\"\n heading=\"Interfaces\"\n >\n <sky-docs-interface-definition\n *ngFor=\"let config of types.interfaces\"\n [config]=\"config\"\n ></sky-docs-interface-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section\n *ngIf=\"types.enumerations.length\"\n heading=\"Enumerations\"\n >\n <sky-docs-enumeration-definition\n *ngFor=\"let config of types.enumerations\"\n [config]=\"config\"\n ></sky-docs-enumeration-definition>\n </sky-docs-demo-page-section>\n\n <sky-docs-demo-page-section\n *ngIf=\"types.typeAliases.length\"\n heading=\"Type aliases\"\n >\n <sky-docs-type-alias-definition\n *ngFor=\"let config of types.typeAliases\"\n [config]=\"config\"\n ></sky-docs-type-alias-definition>\n </sky-docs-demo-page-section>\n</ng-template>\n" }]
2714
+ }], ctorParameters: function () { return [{ type: SkyDocsTypeDefinitionsService }]; }, propDecorators: { additionalSourceCodePaths: [{
2715
+ type: Input
2716
+ }], moduleSourceCodePath: [{
2717
+ type: Input
2718
+ }] } });
2719
+
2720
+ /**
2721
+ * The demo page component wraps all documentation components and handles the configuration and layout of the page.
2722
+ * @example
2723
+ * ```
2724
+ * <sky-docs-demo-page
2725
+ * pageTitle="My demo page"
2726
+ * >
2727
+ * Content here.
2728
+ * </sky-docs-demo-page>
2729
+ * ```
2730
+ */
2731
+ class SkyDocsDemoPageComponent {
2732
+ constructor(activatedRoute, changeDetector, router, skyAppConfig, domAdapter, supportalService, titleService) {
2733
+ this.activatedRoute = activatedRoute;
2734
+ this.changeDetector = changeDetector;
2735
+ this.router = router;
2736
+ this.skyAppConfig = skyAppConfig;
2737
+ this.domAdapter = domAdapter;
2738
+ this.supportalService = supportalService;
2739
+ this.titleService = titleService;
2740
+ /**
2741
+ * @internal
2742
+ */
2743
+ this.enableCodeExamples = false;
2744
+ /**
2745
+ * @internal
2746
+ */
2747
+ this.enableTabLayout = false;
2748
+ }
2749
+ ngOnInit() {
2750
+ const currentHostUrl = this.skyAppConfig.skyux.host.url + '/' + this.skyAppConfig.skyux.name;
2751
+ this.updateTitle();
2752
+ this.supportalService
2753
+ .getComponentsInfo()
2754
+ .subscribe((results) => {
2755
+ this.sidebarRoutes = [
2756
+ {
2757
+ name: 'Components',
2758
+ path: 'https://developer.blackbaud.com/skyux/components',
2759
+ children: results.map((component) => ({
2760
+ name: component.name,
2761
+ path: this.getPath(component.url, currentHostUrl),
2762
+ })),
2763
+ },
2764
+ ];
2765
+ this.changeDetector.markForCheck();
2766
+ });
2767
+ }
2768
+ ngAfterContentInit() {
2769
+ this.enableCodeExamples = this.codeExampleComponents.length > 0;
2770
+ this.enableTabLayout = !!this.designGuidelinesComponent;
2771
+ }
2772
+ ngAfterViewInit() {
2773
+ // Watch for route fragment to change and scroll to heading.
2774
+ this.activatedRoute.fragment.subscribe((fragment) => {
2775
+ this.domAdapter.scrollToFragment(fragment);
2776
+ });
2777
+ // Change the HREF attribute for all dynamic links when the query params change.
2778
+ // This will also generate the appropriate HREF if the user wants to open the link in a new window.
2779
+ this.activatedRoute.queryParams.subscribe(() => {
2780
+ this.domAdapter.setupAnchorLinks();
2781
+ });
2782
+ // When a dynamic link is clicked, use Angular's router so that everything works correctly.
2783
+ this.domAdapter.anchorLinkClick.subscribe((anchorLink) => {
2784
+ const fragment = anchorLink.href.split('#')[1];
2785
+ this.router.navigate([], {
2786
+ fragment,
2787
+ queryParamsHandling: 'merge',
2788
+ });
2789
+ if (this.activatedRoute.snapshot.fragment === fragment) {
2790
+ this.domAdapter.scrollToFragment(fragment);
2791
+ }
2792
+ });
2793
+ }
2794
+ updateTitle() {
2795
+ /*istanbul ignore else*/
2796
+ if (this.pageTitle) {
2797
+ this.titleService.setTitle(this.pageTitle, 'Components');
2798
+ }
2799
+ }
2800
+ getPath(url, currentHostUrl) {
2801
+ // Replace host + SPA so Stache will mark active.
2802
+ // Strip URL params is url is local, as those will be preserved by stacheRouterLink.
2803
+ if (url.indexOf(currentHostUrl) > -1) {
2804
+ return url.replace(currentHostUrl, '').split('?')[0];
2805
+ }
2806
+ else {
2807
+ return url;
2808
+ }
2809
+ }
2810
+ }
2811
+ SkyDocsDemoPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageComponent, deps: [{ token: i1$3.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i1$3.Router }, { token: i2$5.SkyAppConfig }, { token: SkyDocsDemoPageDomAdapterService }, { token: SkyDocsSupportalService }, { token: SkyDocsDemoPageTitleService }], target: i0.ɵɵFactoryTarget.Component });
2812
+ SkyDocsDemoPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoPageComponent, selector: "sky-docs-demo-page", inputs: { additionalSourceCodePaths: "additionalSourceCodePaths", gitRepoUrl: "gitRepoUrl", moduleName: "moduleName", moduleSourceCodePath: "moduleSourceCodePath", packageName: "packageName", packageUrl: "packageUrl", pageTitle: "pageTitle" }, providers: [SkyDocsDemoPageDomAdapterService], queries: [{ propertyName: "designGuidelinesComponent", first: true, predicate: SkyDocsDesignGuidelinesComponent, descendants: true }, { propertyName: "codeExampleComponents", predicate: SkyDocsCodeExamplesComponent }], ngImport: i0, template: "<div class=\"sky-docs-demo-page\">\n <stache\n layout=\"sidebar\"\n [pageTitle]=\"pageTitle\"\n [showBreadcrumbs]=\"false\"\n [showTableOfContents]=\"false\"\n [sidebarRoutes]=\"sidebarRoutes\"\n >\n <ng-content select=\"sky-docs-demo-page-summary\"></ng-content>\n\n <ng-content select=\"sky-docs-demo\"></ng-content>\n\n <div class=\"sky-docs-demo-page-main\">\n <sky-tabset *ngIf=\"enableTabLayout; else content\" permalinkId=\"docs\">\n <sky-tab tabHeading=\"Design\">\n <ng-content select=\"sky-docs-design-guidelines\"></ng-content>\n </sky-tab>\n\n <sky-tab tabHeading=\"Development\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </sky-tab>\n </sky-tabset>\n </div>\n </stache>\n</div>\n\n<ng-template #content>\n <sky-docs-demo-page-section *ngIf=\"moduleName\" heading=\"Installation\">\n <sky-docs-module-info\n [gitRepoUrl]=\"gitRepoUrl\"\n [moduleName]=\"moduleName\"\n [packageName]=\"packageName\"\n [packageUrl]=\"packageUrl\"\n >\n <ng-content select=\"sky-docs-demo-page-module-info\"></ng-content>\n </sky-docs-module-info>\n </sky-docs-demo-page-section>\n\n <ng-content></ng-content>\n\n <sky-docs-demo-page-type-definitions\n [additionalSourceCodePaths]=\"additionalSourceCodePaths\"\n [moduleSourceCodePath]=\"moduleSourceCodePath\"\n >\n </sky-docs-demo-page-type-definitions>\n\n <sky-docs-demo-page-section\n *ngIf=\"enableCodeExamples\"\n heading=\"Code examples\"\n >\n <ng-content select=\"sky-docs-code-examples\"></ng-content>\n </sky-docs-demo-page-section>\n</ng-template>\n", styles: [".sky-docs-demo-page ::ng-deep p{margin:15px 0}.sky-docs-demo-page ::ng-deep .stache-max-width-container{max-width:none;margin:0}.sky-docs-demo-page ::ng-deep .sky-docs-code-block{margin:15px 0;display:block}.sky-docs-demo-page ::ng-deep .sky-docs-code-block .sky-code-block{font-size:13.5px}.sky-docs-demo-page ::ng-deep .sky-docs-code-block .sky-code-output{margin:-2px 0 0;padding:0 0 0 15px;background:transparent;border:0}.sky-docs-demo-page ::ng-deep .sky-definition-list{margin:0}.sky-docs-demo-page ::ng-deep .sky-definition-list .sky-docs-code-block{margin:0}.sky-docs-demo-page ::ng-deep .sky-docs-type-definition-wrapper{margin-bottom:40px}.sky-docs-demo-page-main{padding:30px 0}.sky-docs-demo-page-main table{margin-top:15px;margin-bottom:15px}.sky-docs-demo-page-main ::ng-deep .sky-tabset{margin-left:-45px;margin-right:-45px;padding-left:45px;padding-right:45px}\n"], components: [{ type: i6$1.λ30, selector: "stache", inputs: ["pageTitle", "windowTitle", "navTitle", "layout", "sidebarRoutes", "breadcrumbsRoutes", "showBreadcrumbs", "showEditButton", "showFooter", "showTableOfContents", "showBackToTop", "showInNav", "inPageRoutes"] }, { type: i4.λ2, selector: "sky-tabset", inputs: ["active", "ariaLabel", "ariaLabelledBy", "permalinkId", "tabStyle"], outputs: ["activeChange", "newTab", "openTab", "tabIndexesChange"] }, { type: i4.λ1, selector: "sky-tab", inputs: ["active", "disabled", "permalinkValue", "tabHeaderCount", "tabHeading", "tabIndex"], outputs: ["close"] }, { type: SkyDocsDemoPageSectionComponent, selector: "sky-docs-demo-page-section", inputs: ["heading"] }, { type: SkyDocsModuleInfoComponent, selector: "sky-docs-module-info", inputs: ["gitRepoUrl", "moduleName", "packageName", "packageUrl"] }, { type: SkyDocsDemoPageTypeDefinitionsComponent, selector: "sky-docs-demo-page-type-definitions", inputs: ["additionalSourceCodePaths", "moduleSourceCodePath"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageComponent, decorators: [{
2814
+ type: Component,
2815
+ args: [{ selector: 'sky-docs-demo-page', providers: [SkyDocsDemoPageDomAdapterService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-demo-page\">\n <stache\n layout=\"sidebar\"\n [pageTitle]=\"pageTitle\"\n [showBreadcrumbs]=\"false\"\n [showTableOfContents]=\"false\"\n [sidebarRoutes]=\"sidebarRoutes\"\n >\n <ng-content select=\"sky-docs-demo-page-summary\"></ng-content>\n\n <ng-content select=\"sky-docs-demo\"></ng-content>\n\n <div class=\"sky-docs-demo-page-main\">\n <sky-tabset *ngIf=\"enableTabLayout; else content\" permalinkId=\"docs\">\n <sky-tab tabHeading=\"Design\">\n <ng-content select=\"sky-docs-design-guidelines\"></ng-content>\n </sky-tab>\n\n <sky-tab tabHeading=\"Development\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </sky-tab>\n </sky-tabset>\n </div>\n </stache>\n</div>\n\n<ng-template #content>\n <sky-docs-demo-page-section *ngIf=\"moduleName\" heading=\"Installation\">\n <sky-docs-module-info\n [gitRepoUrl]=\"gitRepoUrl\"\n [moduleName]=\"moduleName\"\n [packageName]=\"packageName\"\n [packageUrl]=\"packageUrl\"\n >\n <ng-content select=\"sky-docs-demo-page-module-info\"></ng-content>\n </sky-docs-module-info>\n </sky-docs-demo-page-section>\n\n <ng-content></ng-content>\n\n <sky-docs-demo-page-type-definitions\n [additionalSourceCodePaths]=\"additionalSourceCodePaths\"\n [moduleSourceCodePath]=\"moduleSourceCodePath\"\n >\n </sky-docs-demo-page-type-definitions>\n\n <sky-docs-demo-page-section\n *ngIf=\"enableCodeExamples\"\n heading=\"Code examples\"\n >\n <ng-content select=\"sky-docs-code-examples\"></ng-content>\n </sky-docs-demo-page-section>\n</ng-template>\n", styles: [".sky-docs-demo-page ::ng-deep p{margin:15px 0}.sky-docs-demo-page ::ng-deep .stache-max-width-container{max-width:none;margin:0}.sky-docs-demo-page ::ng-deep .sky-docs-code-block{margin:15px 0;display:block}.sky-docs-demo-page ::ng-deep .sky-docs-code-block .sky-code-block{font-size:13.5px}.sky-docs-demo-page ::ng-deep .sky-docs-code-block .sky-code-output{margin:-2px 0 0;padding:0 0 0 15px;background:transparent;border:0}.sky-docs-demo-page ::ng-deep .sky-definition-list{margin:0}.sky-docs-demo-page ::ng-deep .sky-definition-list .sky-docs-code-block{margin:0}.sky-docs-demo-page ::ng-deep .sky-docs-type-definition-wrapper{margin-bottom:40px}.sky-docs-demo-page-main{padding:30px 0}.sky-docs-demo-page-main table{margin-top:15px;margin-bottom:15px}.sky-docs-demo-page-main ::ng-deep .sky-tabset{margin-left:-45px;margin-right:-45px;padding-left:45px;padding-right:45px}\n"] }]
2816
+ }], ctorParameters: function () { return [{ type: i1$3.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i1$3.Router }, { type: i2$5.SkyAppConfig }, { type: SkyDocsDemoPageDomAdapterService }, { type: SkyDocsSupportalService }, { type: SkyDocsDemoPageTitleService }]; }, propDecorators: { additionalSourceCodePaths: [{
2817
+ type: Input
2818
+ }], gitRepoUrl: [{
2819
+ type: Input
2820
+ }], moduleName: [{
2821
+ type: Input
2822
+ }], moduleSourceCodePath: [{
2823
+ type: Input
2824
+ }], packageName: [{
2825
+ type: Input
2826
+ }], packageUrl: [{
2827
+ type: Input
2828
+ }], pageTitle: [{
2829
+ type: Input
2830
+ }], designGuidelinesComponent: [{
2831
+ type: ContentChild,
2832
+ args: [SkyDocsDesignGuidelinesComponent]
2833
+ }], codeExampleComponents: [{
2834
+ type: ContentChildren,
2835
+ args: [SkyDocsCodeExamplesComponent]
2836
+ }] } });
2837
+
2838
+ class SkyDocsDemoPageModuleInfoComponent {
2839
+ }
2840
+ SkyDocsDemoPageModuleInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageModuleInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2841
+ SkyDocsDemoPageModuleInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDemoPageModuleInfoComponent, selector: "sky-docs-demo-page-module-info", ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
2842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageModuleInfoComponent, decorators: [{
2843
+ type: Component,
2844
+ args: [{
2845
+ selector: 'sky-docs-demo-page-module-info',
2846
+ template: '<ng-content></ng-content>',
2847
+ }]
2848
+ }] });
2849
+
2850
+ class SkyDocsDemoPageModule {
2851
+ }
2852
+ SkyDocsDemoPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2853
+ SkyDocsDemoPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageModule, declarations: [SkyDocsDemoPageComponent,
2854
+ SkyDocsDemoPageModuleInfoComponent,
2855
+ SkyDocsDemoPageSectionComponent,
2856
+ SkyDocsDemoPageSummaryComponent,
2857
+ SkyDocsDemoPageTypeDefinitionsComponent], imports: [CommonModule,
2858
+ RouterModule,
2859
+ SkyCodeBlockModule,
2860
+ SkyCodeModule,
2861
+ SkyDocsDemoModule,
2862
+ SkyDocsHeadingAnchorModule,
2863
+ SkyDocsMarkdownModule,
2864
+ SkyDocsModuleInfoModule,
2865
+ SkyDocsTypeDefinitionsModule,
2866
+ SkyTabsModule,
2867
+ StachePageSummaryModule,
2868
+ StacheWrapperModule], exports: [SkyDocsDemoPageComponent,
2869
+ SkyDocsDemoPageModuleInfoComponent,
2870
+ SkyDocsDemoPageSectionComponent,
2871
+ SkyDocsDemoPageSummaryComponent,
2872
+ SkyDocsDemoPageTypeDefinitionsComponent] });
2873
+ SkyDocsDemoPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageModule, imports: [[
2874
+ CommonModule,
2875
+ RouterModule,
2876
+ SkyCodeBlockModule,
2877
+ SkyCodeModule,
2878
+ SkyDocsDemoModule,
2879
+ SkyDocsHeadingAnchorModule,
2880
+ SkyDocsMarkdownModule,
2881
+ SkyDocsModuleInfoModule,
2882
+ SkyDocsTypeDefinitionsModule,
2883
+ SkyTabsModule,
2884
+ StachePageSummaryModule,
2885
+ StacheWrapperModule,
2886
+ ]] });
2887
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDemoPageModule, decorators: [{
2888
+ type: NgModule,
2889
+ args: [{
2890
+ imports: [
2891
+ CommonModule,
2892
+ RouterModule,
2893
+ SkyCodeBlockModule,
2894
+ SkyCodeModule,
2895
+ SkyDocsDemoModule,
2896
+ SkyDocsHeadingAnchorModule,
2897
+ SkyDocsMarkdownModule,
2898
+ SkyDocsModuleInfoModule,
2899
+ SkyDocsTypeDefinitionsModule,
2900
+ SkyTabsModule,
2901
+ StachePageSummaryModule,
2902
+ StacheWrapperModule,
2903
+ ],
2904
+ declarations: [
2905
+ SkyDocsDemoPageComponent,
2906
+ SkyDocsDemoPageModuleInfoComponent,
2907
+ SkyDocsDemoPageSectionComponent,
2908
+ SkyDocsDemoPageSummaryComponent,
2909
+ SkyDocsDemoPageTypeDefinitionsComponent,
2910
+ ],
2911
+ exports: [
2912
+ SkyDocsDemoPageComponent,
2913
+ SkyDocsDemoPageModuleInfoComponent,
2914
+ SkyDocsDemoPageSectionComponent,
2915
+ SkyDocsDemoPageSummaryComponent,
2916
+ SkyDocsDemoPageTypeDefinitionsComponent,
2917
+ ],
2918
+ }]
2919
+ }] });
2920
+
2921
+ class SkyDocsThumbnailComponent {
2922
+ constructor() {
2923
+ this.showBorder = false;
2924
+ }
2925
+ }
2926
+ SkyDocsThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2927
+ SkyDocsThumbnailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsThumbnailComponent, selector: "sky-docs-thumbnail", inputs: { caption: "caption", captionType: "captionType", imageAlt: "imageAlt", imageSource: "imageSource", showBorder: "showBorder", videoSource: "videoSource" }, ngImport: i0, template: "<div class=\"sky-docs-thumbnail\">\n <sky-image\n *ngIf=\"imageSource\"\n [caption]=\"caption\"\n [captionType]=\"captionType\"\n [imageAlt]=\"imageAlt\"\n [imageSource]=\"imageSource\"\n [showBorder]=\"showBorder\"\n [showCaptionPrefix]=\"false\"\n ></sky-image>\n <div\n *ngIf=\"videoSource\"\n class=\"sky-docs-video\"\n [ngClass]=\"{\n 'sky-docs-video-border': showBorder\n }\"\n >\n <video controls>\n <source [attr.src]=\"videoSource\" type=\"video/mp4\" />\n </video>\n </div>\n</div>\n", styles: [".sky-docs-thumbnail{margin-bottom:50px}.sky-docs-video video{max-width:100%}.sky-docs-video-border video{border-top:1px solid #e2e3e4;border-right:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4}\n"], components: [{ type: i2$2.λ4, selector: "sky-image", inputs: ["caption", "captionType", "imageAlt", "imageSource", "showBorder", "showCaptionPrefix"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2928
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsThumbnailComponent, decorators: [{
2929
+ type: Component,
2930
+ args: [{ selector: 'sky-docs-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-thumbnail\">\n <sky-image\n *ngIf=\"imageSource\"\n [caption]=\"caption\"\n [captionType]=\"captionType\"\n [imageAlt]=\"imageAlt\"\n [imageSource]=\"imageSource\"\n [showBorder]=\"showBorder\"\n [showCaptionPrefix]=\"false\"\n ></sky-image>\n <div\n *ngIf=\"videoSource\"\n class=\"sky-docs-video\"\n [ngClass]=\"{\n 'sky-docs-video-border': showBorder\n }\"\n >\n <video controls>\n <source [attr.src]=\"videoSource\" type=\"video/mp4\" />\n </video>\n </div>\n</div>\n", styles: [".sky-docs-thumbnail{margin-bottom:50px}.sky-docs-video video{max-width:100%}.sky-docs-video-border video{border-top:1px solid #e2e3e4;border-right:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4}\n"] }]
2931
+ }], propDecorators: { caption: [{
2932
+ type: Input
2933
+ }], captionType: [{
2934
+ type: Input
2935
+ }], imageAlt: [{
2936
+ type: Input
2937
+ }], imageSource: [{
2938
+ type: Input
2939
+ }], showBorder: [{
2940
+ type: Input
2941
+ }], videoSource: [{
2942
+ type: Input
2943
+ }] } });
2944
+
2945
+ class SkyDocsThumbnailModule {
2946
+ }
2947
+ SkyDocsThumbnailModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsThumbnailModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2948
+ SkyDocsThumbnailModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsThumbnailModule, declarations: [SkyDocsThumbnailComponent], imports: [CommonModule, SkyImageModule], exports: [SkyDocsThumbnailComponent] });
2949
+ SkyDocsThumbnailModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsThumbnailModule, imports: [[CommonModule, SkyImageModule]] });
2950
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsThumbnailModule, decorators: [{
2951
+ type: NgModule,
2952
+ args: [{
2953
+ imports: [CommonModule, SkyImageModule],
2954
+ exports: [SkyDocsThumbnailComponent],
2955
+ declarations: [SkyDocsThumbnailComponent],
2956
+ }]
2957
+ }] });
2958
+
2959
+ class SkyDocsDesignGuidelineThumbnailComponent {
2960
+ constructor() {
2961
+ this.showBorder = false;
2962
+ }
2963
+ }
2964
+ SkyDocsDesignGuidelineThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelineThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2965
+ SkyDocsDesignGuidelineThumbnailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDesignGuidelineThumbnailComponent, selector: "sky-docs-design-guideline-thumbnail", inputs: { caption: "caption", captionType: "captionType", imageAlt: "imageAlt", imageSource: "imageSource", videoSource: "videoSource", showBorder: "showBorder" }, ngImport: i0, template: "<div class=\"sky-docs-design-guideline-thumbnail\">\n <sky-docs-thumbnail\n [caption]=\"caption\"\n [captionType]=\"captionType\"\n [imageAlt]=\"imageAlt\"\n [imageSource]=\"imageSource\"\n [videoSource]=\"videoSource\"\n [showBorder]=\"showBorder\"\n ></sky-docs-thumbnail>\n</div>\n", styles: [".sky-docs-design-guideline-thumbnail{margin-bottom:50px}.sky-docs-design-guideline-video video{max-width:100%}.sky-docs-design-guideline-video-border video{border-top:1px solid #e2e3e4;border-right:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4}\n"], components: [{ type: SkyDocsThumbnailComponent, selector: "sky-docs-thumbnail", inputs: ["caption", "captionType", "imageAlt", "imageSource", "showBorder", "videoSource"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelineThumbnailComponent, decorators: [{
2967
+ type: Component,
2968
+ args: [{ selector: 'sky-docs-design-guideline-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-design-guideline-thumbnail\">\n <sky-docs-thumbnail\n [caption]=\"caption\"\n [captionType]=\"captionType\"\n [imageAlt]=\"imageAlt\"\n [imageSource]=\"imageSource\"\n [videoSource]=\"videoSource\"\n [showBorder]=\"showBorder\"\n ></sky-docs-thumbnail>\n</div>\n", styles: [".sky-docs-design-guideline-thumbnail{margin-bottom:50px}.sky-docs-design-guideline-video video{max-width:100%}.sky-docs-design-guideline-video-border video{border-top:1px solid #e2e3e4;border-right:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4}\n"] }]
2969
+ }], propDecorators: { caption: [{
2970
+ type: Input
2971
+ }], captionType: [{
2972
+ type: Input
2973
+ }], imageAlt: [{
2974
+ type: Input
2975
+ }], imageSource: [{
2976
+ type: Input
2977
+ }], videoSource: [{
2978
+ type: Input
2979
+ }], showBorder: [{
2980
+ type: Input
2981
+ }] } });
2982
+
2983
+ class SkyDocsDesignGuidelineComponent {
2984
+ constructor() {
2985
+ this.headingStyle = 'default';
2986
+ this.hasThumbnails = false;
2987
+ }
2988
+ get classNames() {
2989
+ const classNames = [];
2990
+ classNames.push(`sky-text-${this.headingStyle}`);
2991
+ return classNames.join(' ');
2992
+ }
2993
+ ngAfterContentInit() {
2994
+ this.hasThumbnails = !!this.thumbnails.length;
2995
+ }
2996
+ }
2997
+ SkyDocsDesignGuidelineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2998
+ SkyDocsDesignGuidelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SkyDocsDesignGuidelineComponent, selector: "sky-docs-design-guideline", inputs: { heading: "heading", headingStyle: "headingStyle" }, queries: [{ propertyName: "thumbnails", predicate: SkyDocsDesignGuidelineThumbnailComponent }], ngImport: i0, template: "<div class=\"sky-docs-design-guideline\">\n <h3\n *ngIf=\"heading\"\n class=\"sky-docs-design-guideline-heading\"\n [ngClass]=\"classNames\"\n >\n {{ heading }}\n </h3>\n <sky-row *ngIf=\"hasThumbnails; else content\">\n <sky-column screenSmall=\"6\" screenMedium=\"5\" screenLarge=\"4\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </sky-column>\n <sky-column screenSmall=\"6\" screenMedium=\"7\" screenLarge=\"8\">\n <div class=\"sky-docs-design-guideline-thumbnails\">\n <ng-container *ngTemplateOutlet=\"thumbnails\"></ng-container>\n </div>\n </sky-column>\n </sky-row>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #thumbnails>\n <ng-content select=\"sky-docs-design-guideline-thumbnail\"></ng-content>\n</ng-template>\n", styles: [".sky-docs-design-guideline-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;margin:30px 0 15px;font-size:19px;font-weight:400}.sky-docs-design-guideline-thumbnails{display:flex;flex-wrap:wrap}.sky-docs-design-guideline-thumbnails ::ng-deep sky-docs-design-guideline-thumbnail:first-child{padding-right:20px}\n"], components: [{ type: i2$1.λ23, selector: "sky-row", inputs: ["reverseColumnOrder"] }, { type: i2$1.λ24, selector: "sky-column", inputs: ["screenXSmall", "screenSmall", "screenMedium", "screenLarge"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2999
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelineComponent, decorators: [{
3000
+ type: Component,
3001
+ args: [{ selector: 'sky-docs-design-guideline', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-docs-design-guideline\">\n <h3\n *ngIf=\"heading\"\n class=\"sky-docs-design-guideline-heading\"\n [ngClass]=\"classNames\"\n >\n {{ heading }}\n </h3>\n <sky-row *ngIf=\"hasThumbnails; else content\">\n <sky-column screenSmall=\"6\" screenMedium=\"5\" screenLarge=\"4\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </sky-column>\n <sky-column screenSmall=\"6\" screenMedium=\"7\" screenLarge=\"8\">\n <div class=\"sky-docs-design-guideline-thumbnails\">\n <ng-container *ngTemplateOutlet=\"thumbnails\"></ng-container>\n </div>\n </sky-column>\n </sky-row>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #thumbnails>\n <ng-content select=\"sky-docs-design-guideline-thumbnail\"></ng-content>\n</ng-template>\n", styles: [".sky-docs-design-guideline-heading{line-height:1.1;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:#212327;margin:30px 0 15px;font-size:19px;font-weight:400}.sky-docs-design-guideline-thumbnails{display:flex;flex-wrap:wrap}.sky-docs-design-guideline-thumbnails ::ng-deep sky-docs-design-guideline-thumbnail:first-child{padding-right:20px}\n"] }]
3002
+ }], propDecorators: { heading: [{
3003
+ type: Input
3004
+ }], headingStyle: [{
3005
+ type: Input
3006
+ }], thumbnails: [{
3007
+ type: ContentChildren,
3008
+ args: [SkyDocsDesignGuidelineThumbnailComponent]
3009
+ }] } });
3010
+
3011
+ class SkyDocsDesignGuidelinesModule {
3012
+ }
3013
+ SkyDocsDesignGuidelinesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelinesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3014
+ SkyDocsDesignGuidelinesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelinesModule, declarations: [SkyDocsDesignGuidelineComponent,
3015
+ SkyDocsDesignGuidelineThumbnailComponent,
3016
+ SkyDocsDesignGuidelinesComponent], imports: [CommonModule, SkyDocsThumbnailModule, SkyFluidGridModule], exports: [SkyDocsDesignGuidelineComponent,
3017
+ SkyDocsDesignGuidelineThumbnailComponent,
3018
+ SkyDocsDesignGuidelinesComponent] });
3019
+ SkyDocsDesignGuidelinesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelinesModule, imports: [[CommonModule, SkyDocsThumbnailModule, SkyFluidGridModule]] });
3020
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsDesignGuidelinesModule, decorators: [{
3021
+ type: NgModule,
3022
+ args: [{
3023
+ imports: [CommonModule, SkyDocsThumbnailModule, SkyFluidGridModule],
3024
+ declarations: [
3025
+ SkyDocsDesignGuidelineComponent,
3026
+ SkyDocsDesignGuidelineThumbnailComponent,
3027
+ SkyDocsDesignGuidelinesComponent,
3028
+ ],
3029
+ exports: [
3030
+ SkyDocsDesignGuidelineComponent,
3031
+ SkyDocsDesignGuidelineThumbnailComponent,
3032
+ SkyDocsDesignGuidelinesComponent,
3033
+ ],
3034
+ }]
3035
+ }] });
3036
+
3037
+ /**
3038
+ * This module conveniently exports the most commonly used modules.
3039
+ */
3040
+ class SkyDocsToolsModule {
3041
+ }
3042
+ SkyDocsToolsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsToolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3043
+ SkyDocsToolsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsToolsModule, exports: [SkyAuthHttpClientModule,
3044
+ SkyDocsAnatomyModule,
3045
+ SkyDocsCodeExamplesModule,
3046
+ SkyDocsDemoModule,
3047
+ SkyDocsDemoPageModule,
3048
+ SkyDocsDesignGuidelinesModule] });
3049
+ SkyDocsToolsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsToolsModule, imports: [SkyAuthHttpClientModule,
3050
+ SkyDocsAnatomyModule,
3051
+ SkyDocsCodeExamplesModule,
3052
+ SkyDocsDemoModule,
3053
+ SkyDocsDemoPageModule,
3054
+ SkyDocsDesignGuidelinesModule] });
3055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SkyDocsToolsModule, decorators: [{
3056
+ type: NgModule,
3057
+ args: [{
3058
+ exports: [
3059
+ SkyAuthHttpClientModule,
3060
+ SkyDocsAnatomyModule,
3061
+ SkyDocsCodeExamplesModule,
3062
+ SkyDocsDemoModule,
3063
+ SkyDocsDemoPageModule,
3064
+ SkyDocsDesignGuidelinesModule,
3065
+ ],
3066
+ }]
3067
+ }] });
3068
+
3069
+ /**
3070
+ * Generated bundle index. Do not edit.
3071
+ */
3072
+
3073
+ export { SkyDocsAnatomyModule, SkyDocsCodeExampleTheme, SkyDocsCodeExamplesModule, SkyDocsDemoModule, SkyDocsDemoPageModule, SkyDocsDesignGuidelinesModule, SkyDocsHeadingAnchorModule, SkyDocsMarkdownModule, SkyDocsMarkdownPipe, SkyDocsModuleInfoModule, SkyDocsSourceCodeProvider, SkyDocsSupportalService, SkyDocsThumbnailModule, SkyDocsToolsModule, SkyDocsToolsOptions, SkyDocsTypeDefinitionsModule, SkyDocsTypeDefinitionsProvider, SkyDocsTypeDefinitionsService, SkyDocsAnatomyItemComponent as λ1, SkyDocsDemoPageModuleInfoComponent as λ10, SkyDocsDemoPageSectionComponent as λ11, SkyDocsDemoPageSummaryComponent as λ12, SkyDocsDemoPageTypeDefinitionsComponent as λ13, SkyDocsDemoPageComponent as λ14, SkyDocsDesignGuidelineThumbnailComponent as λ15, SkyDocsDesignGuidelineComponent as λ16, SkyDocsDesignGuidelinesComponent as λ17, SkyDocsHeadingAnchorComponent as λ18, SkyDocsModuleInfoComponent as λ19, SkyDocsAnatomyComponent as λ2, SkyDocsThumbnailComponent as λ20, SkyDocsCallSignatureDefinitionComponent as λ21, SkyDocsClassDefinitionComponent as λ22, SkyDocsDirectiveDefinitionComponent as λ23, SkyDocsEnumerationDefinitionComponent as λ24, SkyDocsInterfaceDefinitionComponent as λ25, SkyDocsMethodDefinitionsComponent as λ26, SkyDocsPipeDefinitionComponent as λ27, SkyDocsPropertyDefinitionsComponent as λ28, SkyDocsTypeAliasDefinitionComponent as λ29, SkyDocsCodeExampleComponent as λ3, SkyDocsTypeAnchorLinksPipe as λ30, SkyDocsCodeExamplesComponent as λ4, SkyDocsDemoControlPanelCheckboxComponent as λ5, SkyDocsDemoControlPanelRadioGroupComponent as λ6, SkyDocsDemoControlPanelSectionComponent as λ7, SkyDocsDemoControlPanelComponent as λ8, SkyDocsDemoComponent as λ9 };
3074
+ //# sourceMappingURL=skyux-docs-tools.mjs.map