@skyux/docs-tools 8.0.2 → 9.0.0-alpha.0

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 (130) hide show
  1. package/{esm2020 → esm2022}/docs-tools.module.mjs +15 -15
  2. package/{esm2020 → esm2022}/modules/anatomy/anatomy-item.component.mjs +4 -4
  3. package/{esm2020 → esm2022}/modules/anatomy/anatomy-thumbnail.component.mjs +4 -4
  4. package/{esm2020 → esm2022}/modules/anatomy/anatomy.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/modules/anatomy/anatomy.module.mjs +15 -15
  6. package/{esm2020 → esm2022}/modules/code-examples/code-example.component.mjs +4 -4
  7. package/esm2022/modules/code-examples/code-examples-editor.service.mjs +312 -0
  8. package/{esm2020 → esm2022}/modules/code-examples/code-examples.component.mjs +4 -4
  9. package/{esm2020 → esm2022}/modules/code-examples/code-examples.module.mjs +15 -15
  10. package/{esm2020 → esm2022}/modules/demo/demo-control-panel-checkbox.component.mjs +4 -4
  11. package/esm2022/modules/demo/demo-control-panel-radio-group.component.mjs +80 -0
  12. package/{esm2020 → esm2022}/modules/demo/demo-control-panel-section.component.mjs +4 -4
  13. package/{esm2020 → esm2022}/modules/demo/demo-control-panel.component.mjs +4 -4
  14. package/{esm2020 → esm2022}/modules/demo/demo.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/modules/demo/demo.module.mjs +25 -25
  16. package/{esm2020 → esm2022}/modules/demo-page/demo-page-dom-adapter.service.mjs +4 -4
  17. package/{esm2020 → esm2022}/modules/demo-page/demo-page-module-info.component.mjs +4 -4
  18. package/{esm2020 → esm2022}/modules/demo-page/demo-page-section.component.mjs +4 -4
  19. package/{esm2020 → esm2022}/modules/demo-page/demo-page-summary.component.mjs +4 -4
  20. package/{esm2020 → esm2022}/modules/demo-page/demo-page-title.service.mjs +4 -4
  21. package/{esm2020 → esm2022}/modules/demo-page/demo-page-type-definitions.component.mjs +4 -4
  22. package/esm2022/modules/demo-page/demo-page.component.mjs +185 -0
  23. package/{esm2020 → esm2022}/modules/demo-page/demo-page.module.mjs +35 -35
  24. package/{esm2020 → esm2022}/modules/design-guidelines/design-guideline-thumbnail.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/modules/design-guidelines/design-guideline.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/modules/design-guidelines/design-guidelines.component.mjs +4 -4
  27. package/{esm2020 → esm2022}/modules/design-guidelines/design-guidelines.module.mjs +9 -9
  28. package/{esm2020 → esm2022}/modules/heading-anchor/heading-anchor.component.mjs +4 -4
  29. package/{esm2020 → esm2022}/modules/heading-anchor/heading-anchor.module.mjs +5 -5
  30. package/{esm2020 → esm2022}/modules/markdown/markdown.module.mjs +5 -5
  31. package/{esm2020 → esm2022}/modules/markdown/markdown.pipe.mjs +4 -4
  32. package/esm2022/modules/module-info/module-info.component.mjs +72 -0
  33. package/{esm2020 → esm2022}/modules/module-info/module-info.module.mjs +15 -15
  34. package/{esm2020 → esm2022}/modules/safe-html/safe-html.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/modules/safe-html/safe-html.module.mjs +5 -5
  36. package/{esm2020 → esm2022}/modules/shared/docs-tools-supportal.service.mjs +4 -4
  37. package/esm2022/modules/shared/sky-docs-tools-resources.module.mjs +53 -0
  38. package/{esm2020 → esm2022}/modules/source-code/source-code-provider.mjs +4 -4
  39. package/{esm2020 → esm2022}/modules/source-code/source-code.service.mjs +4 -4
  40. package/{esm2020 → esm2022}/modules/thumbnail/thumbnail.component.mjs +4 -4
  41. package/{esm2020 → esm2022}/modules/thumbnail/thumbnail.module.mjs +5 -5
  42. package/{esm2020 → esm2022}/modules/type-definitions/anchor-link.service.mjs +4 -4
  43. package/{esm2020 → esm2022}/modules/type-definitions/call-signature-definition.component.mjs +4 -4
  44. package/{esm2020 → esm2022}/modules/type-definitions/class-definition.component.mjs +4 -4
  45. package/{esm2020 → esm2022}/modules/type-definitions/directive-definition.component.mjs +4 -4
  46. package/{esm2020 → esm2022}/modules/type-definitions/enumeration-definition.component.mjs +4 -4
  47. package/{esm2020 → esm2022}/modules/type-definitions/interface-definition.component.mjs +4 -4
  48. package/esm2022/modules/type-definitions/method-definitions.component.mjs +70 -0
  49. package/{esm2020 → esm2022}/modules/type-definitions/pipe-definition.component.mjs +4 -4
  50. package/{esm2020 → esm2022}/modules/type-definitions/property-definitions.component.mjs +4 -4
  51. package/{esm2020 → esm2022}/modules/type-definitions/type-alias-definition.component.mjs +4 -4
  52. package/{esm2020 → esm2022}/modules/type-definitions/type-anchor-links.pipe.mjs +4 -4
  53. package/{esm2020 → esm2022}/modules/type-definitions/type-definitions-format.service.mjs +4 -4
  54. package/{esm2020 → esm2022}/modules/type-definitions/type-definitions-provider.mjs +4 -4
  55. package/{esm2020 → esm2022}/modules/type-definitions/type-definitions.module.mjs +39 -39
  56. package/{esm2020 → esm2022}/modules/type-definitions/type-definitions.service.mjs +4 -4
  57. package/{esm2020 → esm2022}/modules/type-definitions/typedoc-adapter.service.mjs +4 -4
  58. package/{fesm2020 → fesm2022}/skyux-docs-tools.mjs +405 -462
  59. package/fesm2022/skyux-docs-tools.mjs.map +1 -0
  60. package/modules/anatomy/anatomy-item.component.d.ts +1 -1
  61. package/modules/anatomy/anatomy-thumbnail.component.d.ts +1 -1
  62. package/modules/anatomy/anatomy.component.d.ts +1 -1
  63. package/modules/code-examples/code-example.component.d.ts +1 -1
  64. package/modules/code-examples/code-examples.component.d.ts +1 -1
  65. package/modules/demo/demo-control-panel-checkbox.component.d.ts +1 -1
  66. package/modules/demo/demo-control-panel-radio-group.component.d.ts +1 -1
  67. package/modules/demo/demo.component.d.ts +1 -1
  68. package/modules/demo-page/demo-page-section.component.d.ts +1 -1
  69. package/modules/demo-page/demo-page-type-definitions.component.d.ts +1 -1
  70. package/modules/demo-page/demo-page.component.d.ts +1 -1
  71. package/modules/design-guidelines/design-guideline-thumbnail.component.d.ts +1 -1
  72. package/modules/design-guidelines/design-guideline.component.d.ts +1 -1
  73. package/modules/heading-anchor/heading-anchor.component.d.ts +1 -1
  74. package/modules/module-info/module-info.component.d.ts +1 -1
  75. package/modules/safe-html/safe-html.component.d.ts +1 -1
  76. package/modules/thumbnail/thumbnail.component.d.ts +1 -1
  77. package/modules/type-definitions/call-signature-definition.component.d.ts +1 -1
  78. package/modules/type-definitions/class-definition.component.d.ts +1 -1
  79. package/modules/type-definitions/directive-definition.component.d.ts +1 -1
  80. package/modules/type-definitions/enumeration-definition.component.d.ts +1 -1
  81. package/modules/type-definitions/interface-definition.component.d.ts +1 -1
  82. package/modules/type-definitions/method-definitions.component.d.ts +1 -1
  83. package/modules/type-definitions/pipe-definition.component.d.ts +1 -1
  84. package/modules/type-definitions/property-definitions.component.d.ts +1 -1
  85. package/modules/type-definitions/type-alias-definition.component.d.ts +1 -1
  86. package/package.json +24 -30
  87. package/esm2020/modules/code-examples/code-examples-editor.service.mjs +0 -362
  88. package/esm2020/modules/demo/demo-control-panel-radio-group.component.mjs +0 -83
  89. package/esm2020/modules/demo-page/demo-page.component.mjs +0 -187
  90. package/esm2020/modules/module-info/module-info.component.mjs +0 -74
  91. package/esm2020/modules/shared/sky-docs-tools-resources.module.mjs +0 -53
  92. package/esm2020/modules/type-definitions/method-definitions.component.mjs +0 -73
  93. package/fesm2015/skyux-docs-tools.mjs +0 -3275
  94. package/fesm2015/skyux-docs-tools.mjs.map +0 -1
  95. package/fesm2020/skyux-docs-tools.mjs.map +0 -1
  96. /package/{esm2020 → esm2022}/modules/code-examples/code-example-module-dependencies.mjs +0 -0
  97. /package/{esm2020 → esm2022}/modules/code-examples/code-example-theme.mjs +0 -0
  98. /package/{esm2020 → esm2022}/modules/code-examples/code-example.mjs +0 -0
  99. /package/{esm2020 → esm2022}/modules/demo/demo-content-alignment.mjs +0 -0
  100. /package/{esm2020 → esm2022}/modules/demo/demo-control-panel-change.mjs +0 -0
  101. /package/{esm2020 → esm2022}/modules/demo/demo-control-panel-radio-choice.mjs +0 -0
  102. /package/{esm2020 → esm2022}/modules/shared/docs-tools-component-info.mjs +0 -0
  103. /package/{esm2020 → esm2022}/modules/shared/docs-tools-options.mjs +0 -0
  104. /package/{esm2020 → esm2022}/modules/source-code/source-code-file.mjs +0 -0
  105. /package/{esm2020 → esm2022}/modules/type-definitions/anchor-link-service-config.mjs +0 -0
  106. /package/{esm2020 → esm2022}/modules/type-definitions/anchor-link-service-format.mjs +0 -0
  107. /package/{esm2020 → esm2022}/modules/type-definitions/anchor-link.mjs +0 -0
  108. /package/{esm2020 → esm2022}/modules/type-definitions/call-signature-definition.mjs +0 -0
  109. /package/{esm2020 → esm2022}/modules/type-definitions/class-definition.mjs +0 -0
  110. /package/{esm2020 → esm2022}/modules/type-definitions/comment-tags.mjs +0 -0
  111. /package/{esm2020 → esm2022}/modules/type-definitions/directive-definition.mjs +0 -0
  112. /package/{esm2020 → esm2022}/modules/type-definitions/entry-child-definition.mjs +0 -0
  113. /package/{esm2020 → esm2022}/modules/type-definitions/entry-definition.mjs +0 -0
  114. /package/{esm2020 → esm2022}/modules/type-definitions/enumeration-definition.mjs +0 -0
  115. /package/{esm2020 → esm2022}/modules/type-definitions/enumeration-member-definition.mjs +0 -0
  116. /package/{esm2020 → esm2022}/modules/type-definitions/index-signature-definition.mjs +0 -0
  117. /package/{esm2020 → esm2022}/modules/type-definitions/interface-definition.mjs +0 -0
  118. /package/{esm2020 → esm2022}/modules/type-definitions/interface-property-definition.mjs +0 -0
  119. /package/{esm2020 → esm2022}/modules/type-definitions/method-definition.mjs +0 -0
  120. /package/{esm2020 → esm2022}/modules/type-definitions/parameter-definition.mjs +0 -0
  121. /package/{esm2020 → esm2022}/modules/type-definitions/pipe-definition.mjs +0 -0
  122. /package/{esm2020 → esm2022}/modules/type-definitions/property-decorator.mjs +0 -0
  123. /package/{esm2020 → esm2022}/modules/type-definitions/property-definition.mjs +0 -0
  124. /package/{esm2020 → esm2022}/modules/type-definitions/type-alias-definition.mjs +0 -0
  125. /package/{esm2020 → esm2022}/modules/type-definitions/type-definition.mjs +0 -0
  126. /package/{esm2020 → esm2022}/modules/type-definitions/type-definitions.mjs +0 -0
  127. /package/{esm2020 → esm2022}/modules/type-definitions/type-parameter-definition.mjs +0 -0
  128. /package/{esm2020 → esm2022}/modules/type-definitions/typedoc-types.mjs +0 -0
  129. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  130. /package/{esm2020 → esm2022}/skyux-docs-tools.mjs +0 -0
@@ -1,362 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import StackBlitzSDK from '@stackblitz/sdk';
3
- import { SkyDocsCodeExampleTheme } from './code-example-theme';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * @internal
7
- */
8
- export class SkyDocsCodeExamplesEditorService {
9
- launchEditor(codeExample) {
10
- const project = this.getPayload(codeExample);
11
- const options = {};
12
- StackBlitzSDK.openProject(project, options);
13
- }
14
- getPayload(codeExample) {
15
- const angularVersion = '^15.0.0';
16
- const skyuxVersion = '^8.0.0';
17
- const defaultDependencies = {
18
- '@angular-devkit/build-angular': angularVersion,
19
- '@angular/animations': angularVersion,
20
- '@angular/cdk': angularVersion,
21
- '@angular/cli': angularVersion,
22
- '@angular/common': angularVersion,
23
- '@angular/compiler': angularVersion,
24
- '@angular/compiler-cli': angularVersion,
25
- '@angular/core': angularVersion,
26
- '@angular/forms': angularVersion,
27
- '@angular/platform-browser': angularVersion,
28
- '@angular/platform-browser-dynamic': angularVersion,
29
- '@angular/router': angularVersion,
30
- '@skyux/animations': skyuxVersion,
31
- '@skyux/assets': skyuxVersion,
32
- '@skyux/config': skyuxVersion,
33
- '@skyux/core': skyuxVersion,
34
- '@skyux/errors': skyuxVersion,
35
- '@skyux/forms': skyuxVersion,
36
- '@skyux/http': skyuxVersion,
37
- '@skyux/i18n': skyuxVersion,
38
- '@skyux/indicators': skyuxVersion,
39
- '@skyux/layout': skyuxVersion,
40
- '@skyux/modals': skyuxVersion,
41
- '@skyux/packages': skyuxVersion,
42
- '@skyux/popovers': skyuxVersion,
43
- '@skyux/router': skyuxVersion,
44
- '@skyux/theme': skyuxVersion,
45
- '@types/jasmine': '~4.0.3',
46
- // We must define Dragula deliberately so that StackBlitz runs NGCC against it.
47
- 'ng2-dragula': '2.1.1',
48
- rxjs: '^7',
49
- tslib: '^2.3.0',
50
- typescript: '~4.9.4',
51
- 'zone.js': '~0.12.0',
52
- };
53
- const mergedDependencies = Object.assign({}, defaultDependencies, codeExample.packageDependencies);
54
- // Ensure any @skyux dependencies list the correct version of SKY UX.
55
- // e.g. `"@skyux/core": "*"` --> `"@skyux/core": "5.0.0"`
56
- for (const packageName in mergedDependencies) {
57
- /*istanbul ignore else*/
58
- if (mergedDependencies.hasOwnProperty(packageName)) {
59
- const version = mergedDependencies[packageName];
60
- if (version === '*' &&
61
- /^(@blackbaud\/skyux-lib-|@skyux)/.test(packageName)) {
62
- mergedDependencies[packageName] = skyuxVersion;
63
- }
64
- }
65
- }
66
- const files = this.parseStackBlitzFiles(codeExample.sourceCode, mergedDependencies, codeExample.theme, codeExample.stylesheets);
67
- return {
68
- files,
69
- title: 'SKY UX Demo',
70
- description: 'SKY UX Demo',
71
- template: 'node',
72
- dependencies: mergedDependencies,
73
- settings: {
74
- compile: {
75
- clearConsole: false,
76
- },
77
- },
78
- };
79
- }
80
- parseStackBlitzFiles(sourceCode, dependencies, theme, stylesheets = []) {
81
- const srcPath = 'src/';
82
- const appPath = `${srcPath}app/`;
83
- const banner = `/**
84
- * This file is needed for the StackBlitz demo only.
85
- * It is automatically provided when using the Angular CLI.
86
- **/
87
- `;
88
- const moduleImportStatements = [
89
- `import {\n NgModule\n} from '@angular/core';`,
90
- `import {\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';`,
91
- `import {\n BrowserAnimationsModule\n} from '@angular/platform-browser/animations';`,
92
- `import {\n RouterModule\n} from '@angular/router';`,
93
- `import {\n SkyAppLocaleProvider\n} from '@skyux/i18n';`,
94
- `import {\n SkyThemeService\n} from '@skyux/theme';`,
95
- `import {\n of as observableOf\n} from 'rxjs';`,
96
- `import {\n AppComponent\n} from './app.component';`,
97
- ];
98
- const moduleImports = [
99
- 'BrowserAnimationsModule',
100
- 'FormsModule',
101
- 'ReactiveFormsModule',
102
- 'RouterModule.forRoot([])',
103
- ];
104
- const files = {};
105
- let appComponentTemplate = '';
106
- sourceCode.forEach((file) => {
107
- files[`${appPath}${file.fileName}`] = file.rawContents;
108
- // Setup module imports and component selectors.
109
- if (file.fileName.indexOf('.module.ts') > -1) {
110
- const moduleName = this.getModuleName(file.rawContents);
111
- const importPath = `./${this.getFilenameNoExtension(file.fileName)}`;
112
- const exportedComponent = this.getExportedComponent(file.rawContents);
113
- const componentSelector = this.getComponentSelector(exportedComponent, sourceCode);
114
- appComponentTemplate += `<${componentSelector}></${componentSelector}>`;
115
- moduleImports.push(moduleName);
116
- moduleImportStatements.push(`import {\n ${moduleName}\n} from '${importPath}';`);
117
- }
118
- });
119
- files[`${appPath}app.component.ts`] = `${banner}
120
- import {
121
- Component,
122
- Renderer2
123
- } from '@angular/core';
124
-
125
- import {
126
- SkyTheme,
127
- SkyThemeMode,
128
- SkyThemeService,
129
- SkyThemeSettings
130
- } from '@skyux/theme';
131
-
132
- @Component({
133
- selector: 'sky-demo-app',
134
- template: '${appComponentTemplate}'
135
- })
136
- export class AppComponent {
137
-
138
- constructor(
139
- themeSvc: SkyThemeService,
140
- renderer: Renderer2
141
- ) {
142
- const themeSettings = new SkyThemeSettings(
143
- SkyTheme.presets['${theme === SkyDocsCodeExampleTheme.Modern ? 'modern' : 'default'}'],
144
- SkyThemeMode.presets.light
145
- );
146
-
147
- themeSvc.init(
148
- document.body,
149
- renderer,
150
- themeSettings
151
- );
152
- }
153
-
154
- }`;
155
- files[`${appPath}app.module.ts`] = `${moduleImportStatements.join('\n\n')}
156
-
157
- @NgModule({
158
- imports: [
159
- ${moduleImports.join(',\n ')}
160
- ],
161
- declarations: [
162
- AppComponent
163
- ],
164
- bootstrap: [
165
- AppComponent
166
- ],
167
- providers: [
168
- SkyThemeService,
169
- {
170
- provide: SkyAppLocaleProvider,
171
- useValue: {
172
- getLocaleInfo: () => observableOf({
173
- locale: 'en-US'
174
- })
175
- }
176
- }
177
- ]
178
- })
179
- export class AppModule { }
180
- `;
181
- files[`${srcPath}index.html`] = `<!doctype html>
182
- <html lang="en">
183
- <head>
184
- <meta charset="utf-8">
185
- <title>Sky UX Demo</title>
186
- <base href="/">
187
- <meta name="viewport" content="width=device-width, initial-scale=1">
188
- <!--
189
- The CSS links are needed for the StackBlitz demo only.
190
- This is a workaround for a known bug that prevents external imports in CSS.
191
- https://github.com/stackblitz/core/issues/133
192
- -->
193
- <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
194
- <link rel="stylesheet" type="text/css" href="https://sky.blackbaudcdn.net/static/skyux-icons/6.0.0/assets/css/skyux-icons.min.css" />
195
- </head>
196
- <body>
197
- <sky-demo-app>
198
- Loading...
199
- </sky-demo-app>
200
- </body>
201
- </html>
202
- `;
203
- files[`${srcPath}main.ts`] = `${banner}
204
- import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
205
-
206
- import { AppModule } from './app/app.module';
207
-
208
- platformBrowserDynamic().bootstrapModule(AppModule)
209
- .catch(err => console.error(err));
210
- `;
211
- files[`${srcPath}styles.scss`] = `@import '@skyux/theme/css/sky';
212
- @import '@skyux/theme/css/themes/modern/styles';
213
-
214
- body {
215
- background-color: #fff;
216
- margin: 15px;
217
- }`;
218
- stylesheets.push('src/styles.scss');
219
- files['angular.json'] = JSON.stringify({
220
- $schema: './node_modules/@angular/cli/lib/config/schema.json',
221
- version: 1,
222
- projects: {
223
- demo: {
224
- projectType: 'application',
225
- root: '',
226
- sourceRoot: 'src',
227
- prefix: 'app',
228
- architect: {
229
- build: {
230
- builder: '@angular-devkit/build-angular:browser',
231
- options: {
232
- outputPath: 'dist/demo',
233
- index: 'src/index.html',
234
- main: 'src/main.ts',
235
- polyfills: ['zone.js', '@skyux/packages/polyfills'],
236
- tsConfig: 'tsconfig.app.json',
237
- inlineStyleLanguage: 'scss',
238
- assets: [],
239
- styles: stylesheets,
240
- scripts: [],
241
- },
242
- configurations: {
243
- development: {
244
- buildOptimizer: false,
245
- optimization: false,
246
- vendorChunk: true,
247
- extractLicenses: false,
248
- sourceMap: true,
249
- namedChunks: true,
250
- },
251
- },
252
- defaultConfiguration: 'development',
253
- },
254
- serve: {
255
- builder: '@angular-devkit/build-angular:dev-server',
256
- configurations: {
257
- development: {
258
- browserTarget: 'demo:build:development',
259
- },
260
- },
261
- defaultConfiguration: 'development',
262
- },
263
- 'extract-i18n': {
264
- builder: '@angular-devkit/build-angular:extract-i18n',
265
- options: {
266
- browserTarget: 'demo:build',
267
- },
268
- },
269
- },
270
- },
271
- },
272
- }, undefined, 2);
273
- files['package.json'] = JSON.stringify({
274
- name: 'skyux-spa-demo',
275
- dependencies,
276
- scripts: {
277
- start: 'ng serve',
278
- build: 'ng build',
279
- },
280
- }, undefined, 2);
281
- files['tsconfig.app.json'] = JSON.stringify({
282
- extends: './tsconfig.json',
283
- compilerOptions: {
284
- outDir: './out-tsc/app',
285
- types: [],
286
- },
287
- files: ['src/main.ts'],
288
- include: ['src/**/*.d.ts'],
289
- }, undefined, 2);
290
- files['tsconfig.json'] = JSON.stringify({
291
- compileOnSave: false,
292
- compilerOptions: {
293
- baseUrl: './',
294
- outDir: './dist/out-tsc',
295
- forceConsistentCasingInFileNames: true,
296
- strict: true,
297
- noImplicitOverride: true,
298
- noPropertyAccessFromIndexSignature: true,
299
- noImplicitReturns: true,
300
- noFallthroughCasesInSwitch: true,
301
- sourceMap: true,
302
- declaration: false,
303
- downlevelIteration: true,
304
- esModuleInterop: true,
305
- experimentalDecorators: true,
306
- moduleResolution: 'node',
307
- importHelpers: true,
308
- typeRoots: ['node_modules/@types'],
309
- target: 'ES2022',
310
- module: 'ES2022',
311
- useDefineForClassFields: false,
312
- lib: ['ES2022', 'dom'],
313
- },
314
- angularCompilerOptions: {
315
- fullTemplateTypeCheck: true,
316
- enableI18nLegacyMessageIdFormat: false,
317
- strictInjectionParameters: true,
318
- strictInputAccessModifiers: true,
319
- strictTemplates: true,
320
- },
321
- }, undefined, 2);
322
- return files;
323
- }
324
- getModuleName(contents) {
325
- return contents.split('export class ')[1].split(' {')[0];
326
- }
327
- getFilenameNoExtension(fileName) {
328
- const extension = fileName.split('.').pop();
329
- return fileName.replace(`.${extension}`, '');
330
- }
331
- getExportedComponent(contents) {
332
- const trimmed = contents.replace(/\s/g, '');
333
- let fragment = trimmed.split('exports:[')[1];
334
- if (!fragment) {
335
- throw 'You must export a component from the code example module!';
336
- }
337
- fragment = fragment.split(']')[0];
338
- const components = fragment.split(',').filter((x) => x);
339
- if (components.length > 1) {
340
- throw ('You may only export a single component from the code example module' +
341
- `(we found ${components.length}: ${components.join(', ')}).` +
342
- 'Is it possible to create a new code example with the extra components?');
343
- }
344
- return components[0];
345
- }
346
- getComponentSelector(componentClassName, sourceCode) {
347
- const found = sourceCode.find((file) => {
348
- return file.rawContents.indexOf(`class ${componentClassName}`) > -1;
349
- });
350
- const trimmed = found.rawContents.replace(/\s/g, '');
351
- return trimmed.split(`selector:'`)[1].split(`'`)[0];
352
- }
353
- }
354
- SkyDocsCodeExamplesEditorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDocsCodeExamplesEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
355
- SkyDocsCodeExamplesEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDocsCodeExamplesEditorService, providedIn: 'root' });
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDocsCodeExamplesEditorService, decorators: [{
357
- type: Injectable,
358
- args: [{
359
- providedIn: 'root',
360
- }]
361
- }] });
362
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFXNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBSS9EOztHQUVHO0FBSUgsTUFBTSxPQUFPLGdDQUFnQztJQUNwQyxZQUFZLENBQUMsV0FBK0I7UUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBMEIsRUFBRSxDQUFDO1FBRTFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxVQUFVLENBQUMsV0FBK0I7UUFDaEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUU5QixNQUFNLG1CQUFtQixHQUF5QztZQUNoRSwrQkFBK0IsRUFBRSxjQUFjO1lBQy9DLHFCQUFxQixFQUFFLGNBQWM7WUFDckMsY0FBYyxFQUFFLGNBQWM7WUFDOUIsY0FBYyxFQUFFLGNBQWM7WUFDOUIsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxtQkFBbUIsRUFBRSxjQUFjO1lBQ25DLHVCQUF1QixFQUFFLGNBQWM7WUFDdkMsZUFBZSxFQUFFLGNBQWM7WUFDL0IsZ0JBQWdCLEVBQUUsY0FBYztZQUNoQywyQkFBMkIsRUFBRSxjQUFjO1lBQzNDLG1DQUFtQyxFQUFFLGNBQWM7WUFDbkQsaUJBQWlCLEVBQUUsY0FB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QUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs2SEE3YVUsZ0NBQWdDO2lJQUFoQyxnQ0FBZ0MsY0FGL0IsTUFBTTsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgU3RhY2tCbGl0elNESyBmcm9tICdAc3RhY2tibGl0ei9zZGsnO1xuXG5pbXBvcnQge1xuICBPcGVuT3B0aW9ucyBhcyBTdGFja0JsaXR6T3Blbk9wdGlvbnMsXG4gIFByb2plY3QgYXMgU3RhY2tCbGl0elByb2plY3QsXG59IGZyb20gJ0BzdGFja2JsaXR6L3Nkay90eXBpbmdzL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBTa3lEb2NzU291cmNlQ29kZUZpbGUgfSBmcm9tICcuLi9zb3VyY2UtY29kZS9zb3VyY2UtY29kZS1maWxlJztcblxuaW1wb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtbW9kdWxlLWRlcGVuZGVuY2llcyc7XG5cbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lIH0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ29kZUV4YW1wbGUgfSBmcm9tICcuL2NvZGUtZXhhbXBsZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzQ29kZUV4YW1wbGVzRWRpdG9yU2VydmljZSB7XG4gIHB1YmxpYyBsYXVuY2hFZGl0b3IoY29kZUV4YW1wbGU6IFNreURvY3NDb2RlRXhhbXBsZSk6IHZvaWQge1xuICAgIGNvbnN0IHByb2plY3QgPSB0aGlzLmdldFBheWxvYWQoY29kZUV4YW1wbGUpO1xuICAgIGNvbnN0IG9wdGlvbnM6IFN0YWNrQmxpdHpPcGVuT3B0aW9ucyA9IHt9O1xuXG4gICAgU3RhY2tCbGl0elNESy5vcGVuUHJvamVjdChwcm9qZWN0LCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF5bG9hZChjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlKTogU3RhY2tCbGl0elByb2plY3Qge1xuICAgIGNvbnN0IGFuZ3VsYXJWZXJzaW9uID0gJ14xNS4wLjAnO1xuICAgIGNvbnN0IHNreXV4VmVyc2lvbiA9ICdeOC4wLjAnO1xuXG4gICAgY29uc3QgZGVmYXVsdERlcGVuZGVuY2llczogU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzID0ge1xuICAgICAgJ0Bhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2Nkayc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NsaSc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NvbW1vbic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NvbXBpbGVyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tcGlsZXItY2xpJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29yZSc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2Zvcm1zJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYyc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL3JvdXRlcic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9hbmltYXRpb25zJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9hc3NldHMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2NvbmZpZyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvY29yZSc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvZXJyb3JzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9mb3Jtcyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaHR0cCc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaTE4bic6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaW5kaWNhdG9ycyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvbGF5b3V0Jzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9tb2RhbHMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3BhY2thZ2VzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9wb3BvdmVycyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvcm91dGVyJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC90aGVtZSc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAdHlwZXMvamFzbWluZSc6ICd+NC4wLjMnLFxuICAgICAgLy8gV2UgbXVzdCBkZWZpbmUgRHJhZ3VsYSBkZWxpYmVyYXRlbHkgc28gdGhhdCBTdGFja0JsaXR6IHJ1bnMgTkdDQyBhZ2FpbnN0IGl0LlxuICAgICAgJ25nMi1kcmFndWxhJzogJzIuMS4xJyxcbiAgICAgIHJ4anM6ICdeNycsXG4gICAgICB0c2xpYjogJ14yLjMuMCcsXG4gICAgICB0eXBlc2NyaXB0OiAnfjQuOS40JyxcbiAgICAgICd6b25lLmpzJzogJ34wLjEyLjAnLFxuICAgIH07XG5cbiAgICBjb25zdCBtZXJnZWREZXBlbmRlbmNpZXMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBkZWZhdWx0RGVwZW5kZW5jaWVzLFxuICAgICAgY29kZUV4YW1wbGUucGFja2FnZURlcGVuZGVuY2llc1xuICAgICk7XG5cbiAgICAvLyBFbnN1cmUgYW55IEBza3l1eCBkZXBlbmRlbmNpZXMgbGlzdCB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIFNLWSBVWC5cbiAgICAvLyBlLmcuIGBcIkBza3l1eC9jb3JlXCI6IFwiKlwiYCAtLT4gYFwiQHNreXV4L2NvcmVcIjogXCI1LjAuMFwiYFxuICAgIGZvciAoY29uc3QgcGFja2FnZU5hbWUgaW4gbWVyZ2VkRGVwZW5kZW5jaWVzKSB7XG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmIChtZXJnZWREZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocGFja2FnZU5hbWUpKSB7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSBtZXJnZWREZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdmVyc2lvbiA9PT0gJyonICYmXG4gICAgICAgICAgL14oQGJsYWNrYmF1ZFxcL3NreXV4LWxpYi18QHNreXV4KS8udGVzdChwYWNrYWdlTmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgbWVyZ2VkRGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXSA9IHNreXV4VmVyc2lvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZpbGVzID0gdGhpcy5wYXJzZVN0YWNrQmxpdHpGaWxlcyhcbiAgICAgIGNvZGVFeGFtcGxlLnNvdXJjZUNvZGUsXG4gICAgICBtZXJnZWREZXBlbmRlbmNpZXMsXG4gICAgICBjb2RlRXhhbXBsZS50aGVtZSxcbiAgICAgIGNvZGVFeGFtcGxlLnN0eWxlc2hlZXRzXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmaWxlcyxcbiAgICAgIHRpdGxlOiAnU0tZIFVYIERlbW8nLFxuICAgICAgZGVzY3JpcHRpb246ICdTS1kgVVggRGVtbycsXG4gICAgICB0ZW1wbGF0ZTogJ25vZGUnLFxuICAgICAgZGVwZW5kZW5jaWVzOiBtZXJnZWREZXBlbmRlbmNpZXMsXG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICBjb21waWxlOiB7XG4gICAgICAgICAgY2xlYXJDb25zb2xlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VTdGFja0JsaXR6RmlsZXMoXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW10sXG4gICAgZGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMsXG4gICAgdGhlbWU6IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLFxuICAgIHN0eWxlc2hlZXRzOiBzdHJpbmdbXSA9IFtdXG4gICk6IHtcbiAgICBbcGF0aDogc3RyaW5nXTogc3RyaW5nO1xuICB9IHtcbiAgICBjb25zdCBzcmNQYXRoID0gJ3NyYy8nO1xuICAgIGNvbnN0IGFwcFBhdGggPSBgJHtzcmNQYXRofWFwcC9gO1xuXG4gICAgY29uc3QgYmFubmVyID0gYC8qKlxuICogVGhpcyBmaWxlIGlzIG5lZWRlZCBmb3IgdGhlIFN0YWNrQmxpdHogZGVtbyBvbmx5LlxuICogSXQgaXMgYXV0b21hdGljYWxseSBwcm92aWRlZCB3aGVuIHVzaW5nIHRoZSBBbmd1bGFyIENMSS5cbiAqKi9cbiBgO1xuXG4gICAgY29uc3QgbW9kdWxlSW1wb3J0U3RhdGVtZW50czogc3RyaW5nW10gPSBbXG4gICAgICBgaW1wb3J0IHtcXG4gIE5nTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBGb3Jtc01vZHVsZSxcXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZVxcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBSb3V0ZXJNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgU2t5QXBwTG9jYWxlUHJvdmlkZXJcXG59IGZyb20gJ0Bza3l1eC9pMThuJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBTa3lUaGVtZVNlcnZpY2VcXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgb2YgYXMgb2JzZXJ2YWJsZU9mXFxufSBmcm9tICdyeGpzJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBBcHBDb21wb25lbnRcXG59IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7YCxcbiAgICBdO1xuXG4gICAgY29uc3QgbW9kdWxlSW1wb3J0czogc3RyaW5nW10gPSBbXG4gICAgICAnQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUnLFxuICAgICAgJ0Zvcm1zTW9kdWxlJyxcbiAgICAgICdSZWFjdGl2ZUZvcm1zTW9kdWxlJyxcbiAgICAgICdSb3V0ZXJNb2R1bGUuZm9yUm9vdChbXSknLFxuICAgIF07XG5cbiAgICBjb25zdCBmaWxlczogeyBbXzogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgIGxldCBhcHBDb21wb25lbnRUZW1wbGF0ZSA9ICcnO1xuXG4gICAgc291cmNlQ29kZS5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICBmaWxlc1tgJHthcHBQYXRofSR7ZmlsZS5maWxlTmFtZX1gXSA9IGZpbGUucmF3Q29udGVudHM7XG5cbiAgICAgIC8vIFNldHVwIG1vZHVsZSBpbXBvcnRzIGFuZCBjb21wb25lbnQgc2VsZWN0b3JzLlxuICAgICAgaWYgKGZpbGUuZmlsZU5hbWUuaW5kZXhPZignLm1vZHVsZS50cycpID4gLTEpIHtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IHRoaXMuZ2V0TW9kdWxlTmFtZShmaWxlLnJhd0NvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IGAuLyR7dGhpcy5nZXRGaWxlbmFtZU5vRXh0ZW5zaW9uKGZpbGUuZmlsZU5hbWUpfWA7XG5cbiAgICAgICAgY29uc3QgZXhwb3J0ZWRDb21wb25lbnQgPSB0aGlzLmdldEV4cG9ydGVkQ29tcG9uZW50KGZpbGUucmF3Q29udGVudHMpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRTZWxlY3RvciA9IHRoaXMuZ2V0Q29tcG9uZW50U2VsZWN0b3IoXG4gICAgICAgICAgZXhwb3J0ZWRDb21wb25lbnQsXG4gICAgICAgICAgc291cmNlQ29kZVxuICAgICAgICApO1xuXG4gICAgICAgIGFwcENvbXBvbmVudFRlbXBsYXRlICs9IGA8JHtjb21wb25lbnRTZWxlY3Rvcn0+PC8ke2NvbXBvbmVudFNlbGVjdG9yfT5gO1xuXG4gICAgICAgIG1vZHVsZUltcG9ydHMucHVzaChtb2R1bGVOYW1lKTtcbiAgICAgICAgbW9kdWxlSW1wb3J0U3RhdGVtZW50cy5wdXNoKFxuICAgICAgICAgIGBpbXBvcnQge1xcbiAgJHttb2R1bGVOYW1lfVxcbn0gZnJvbSAnJHtpbXBvcnRQYXRofSc7YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZmlsZXNbYCR7YXBwUGF0aH1hcHAuY29tcG9uZW50LnRzYF0gPSBgJHtiYW5uZXJ9XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5VGhlbWUsXG4gIFNreVRoZW1lTW9kZSxcbiAgU2t5VGhlbWVTZXJ2aWNlLFxuICBTa3lUaGVtZVNldHRpbmdzXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kZW1vLWFwcCcsXG4gIHRlbXBsYXRlOiAnJHthcHBDb21wb25lbnRUZW1wbGF0ZX0nXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSxcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIGNvbnN0IHRoZW1lU2V0dGluZ3MgPSBuZXcgU2t5VGhlbWVTZXR0aW5ncyhcbiAgICAgIFNreVRoZW1lLnByZXNldHNbJyR7XG4gICAgICAgIHRoZW1lID09PSBTa3lEb2NzQ29kZUV4YW1wbGVUaGVtZS5Nb2Rlcm4gPyAnbW9kZXJuJyA6ICdkZWZhdWx0J1xuICAgICAgfSddLFxuICAgICAgU2t5VGhlbWVNb2RlLnByZXNldHMubGlnaHRcbiAgICApO1xuXG4gICAgdGhlbWVTdmMuaW5pdChcbiAgICAgIGRvY3VtZW50LmJvZHksXG4gICAgICByZW5kZXJlcixcbiAgICAgIHRoZW1lU2V0dGluZ3NcbiAgICApO1xuICB9XG5cbn1gO1xuXG4gICAgZmlsZXNbYCR7YXBwUGF0aH1hcHAubW9kdWxlLnRzYF0gPSBgJHttb2R1bGVJbXBvcnRTdGF0ZW1lbnRzLmpvaW4oJ1xcblxcbicpfVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgJHttb2R1bGVJbXBvcnRzLmpvaW4oJyxcXG4gICAgJyl9XG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFwcENvbXBvbmVudFxuICBdLFxuICBib290c3RyYXA6IFtcbiAgICBBcHBDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5VGhlbWVTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNreUFwcExvY2FsZVByb3ZpZGVyLFxuICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgZ2V0TG9jYWxlSW5mbzogKCkgPT4gb2JzZXJ2YWJsZU9mKHtcbiAgICAgICAgICBsb2NhbGU6ICdlbi1VUydcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwTW9kdWxlIHsgfVxuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9aW5kZXguaHRtbGBdID0gYDwhZG9jdHlwZSBodG1sPlxuPGh0bWwgbGFuZz1cImVuXCI+XG48aGVhZD5cbiAgPG1ldGEgY2hhcnNldD1cInV0Zi04XCI+XG4gIDx0aXRsZT5Ta3kgVVggRGVtbzwvdGl0bGU+XG4gIDxiYXNlIGhyZWY9XCIvXCI+XG4gIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiPlxuICA8IS0tXG4gICAgVGhlIENTUyBsaW5rcyBhcmUgbmVlZGVkIGZvciB0aGUgU3RhY2tCbGl0eiBkZW1vIG9ubHkuXG4gICAgVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGEga25vd24gYnVnIHRoYXQgcHJldmVudHMgZXh0ZXJuYWwgaW1wb3J0cyBpbiBDU1MuXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrYmxpdHovY29yZS9pc3N1ZXMvMTMzXG4gIC0tPlxuICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cImh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNy4wL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzc1wiIC8+XG4gIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiaHR0cHM6Ly9za3kuYmxhY2tiYXVkY2RuLm5ldC9zdGF0aWMvc2t5dXgtaWNvbnMvNi4wLjAvYXNzZXRzL2Nzcy9za3l1eC1pY29ucy5taW4uY3NzXCIgLz5cbjwvaGVhZD5cbjxib2R5PlxuICA8c2t5LWRlbW8tYXBwPlxuICAgIExvYWRpbmcuLi5cbiAgPC9za3ktZGVtby1hcHA+XG48L2JvZHk+XG48L2h0bWw+XG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1tYWluLnRzYF0gPSBgJHtiYW5uZXJ9XG5pbXBvcnQgeyBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcblxuaW1wb3J0IHsgQXBwTW9kdWxlIH0gZnJvbSAnLi9hcHAvYXBwLm1vZHVsZSc7XG5cbnBsYXRmb3JtQnJvd3NlckR5bmFtaWMoKS5ib290c3RyYXBNb2R1bGUoQXBwTW9kdWxlKVxuICAuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1zdHlsZXMuc2Nzc2BdID0gYEBpbXBvcnQgJ0Bza3l1eC90aGVtZS9jc3Mvc2t5JztcbkBpbXBvcnQgJ0Bza3l1eC90aGVtZS9jc3MvdGhlbWVzL21vZGVybi9zdHlsZXMnO1xuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAxNXB4O1xufWA7XG5cbiAgICBzdHlsZXNoZWV0cy5wdXNoKCdzcmMvc3R5bGVzLnNjc3MnKTtcblxuICAgIGZpbGVzWydhbmd1bGFyLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICAkc2NoZW1hOiAnLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2xpL2xpYi9jb25maWcvc2NoZW1hLmpzb24nLFxuICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgICBwcm9qZWN0czoge1xuICAgICAgICAgIGRlbW86IHtcbiAgICAgICAgICAgIHByb2plY3RUeXBlOiAnYXBwbGljYXRpb24nLFxuICAgICAgICAgICAgcm9vdDogJycsXG4gICAgICAgICAgICBzb3VyY2VSb290OiAnc3JjJyxcbiAgICAgICAgICAgIHByZWZpeDogJ2FwcCcsXG4gICAgICAgICAgICBhcmNoaXRlY3Q6IHtcbiAgICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YnJvd3NlcicsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgb3V0cHV0UGF0aDogJ2Rpc3QvZGVtbycsXG4gICAgICAgICAgICAgICAgICBpbmRleDogJ3NyYy9pbmRleC5odG1sJyxcbiAgICAgICAgICAgICAgICAgIG1haW46ICdzcmMvbWFpbi50cycsXG4gICAgICAgICAgICAgICAgICBwb2x5ZmlsbHM6IFsnem9uZS5qcycsICdAc2t5dXgvcGFja2FnZXMvcG9seWZpbGxzJ10sXG4gICAgICAgICAgICAgICAgICB0c0NvbmZpZzogJ3RzY29uZmlnLmFwcC5qc29uJyxcbiAgICAgICAgICAgICAgICAgIGlubGluZVN0eWxlTGFuZ3VhZ2U6ICdzY3NzJyxcbiAgICAgICAgICAgICAgICAgIGFzc2V0czogW10sXG4gICAgICAgICAgICAgICAgICBzdHlsZXM6IHN0eWxlc2hlZXRzLFxuICAgICAgICAgICAgICAgICAgc2NyaXB0czogW10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczoge1xuICAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRPcHRpbWl6ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB2ZW5kb3JDaHVuazogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFjdExpY2Vuc2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lZENodW5rczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2VydmU6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6ZGV2LXNlcnZlcicsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJUYXJnZXQ6ICdkZW1vOmJ1aWxkOmRldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgJ2V4dHJhY3QtaTE4bic6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6ZXh0cmFjdC1pMThuJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBicm93c2VyVGFyZ2V0OiAnZGVtbzpidWlsZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyXG4gICAgKTtcblxuICAgIGZpbGVzWydwYWNrYWdlLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc2t5dXgtc3BhLWRlbW8nLFxuICAgICAgICBkZXBlbmRlbmNpZXMsXG4gICAgICAgIHNjcmlwdHM6IHtcbiAgICAgICAgICBzdGFydDogJ25nIHNlcnZlJyxcbiAgICAgICAgICBidWlsZDogJ25nIGJ1aWxkJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyXG4gICAgKTtcblxuICAgIGZpbGVzWyd0c2NvbmZpZy5hcHAuanNvbiddID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIGV4dGVuZHM6ICcuL3RzY29uZmlnLmpzb24nLFxuICAgICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgICBvdXREaXI6ICcuL291dC10c2MvYXBwJyxcbiAgICAgICAgICB0eXBlczogW10sXG4gICAgICAgIH0sXG4gICAgICAgIGZpbGVzOiBbJ3NyYy9tYWluLnRzJ10sXG4gICAgICAgIGluY2x1ZGU6IFsnc3JjLyoqLyouZC50cyddLFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDJcbiAgICApO1xuICAgIGZpbGVzWyd0c2NvbmZpZy5qc29uJ10gPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgY29tcGlsZU9uU2F2ZTogZmFsc2UsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIGJhc2VVcmw6ICcuLycsXG4gICAgICAgICAgb3V0RGlyOiAnLi9kaXN0L291dC10c2MnLFxuICAgICAgICAgIGZvcmNlQ29uc2lzdGVudENhc2luZ0luRmlsZU5hbWVzOiB0cnVlLFxuICAgICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgICBub0ltcGxpY2l0T3ZlcnJpZGU6IHRydWUsXG4gICAgICAgICAgbm9Qcm9wZXJ0eUFjY2Vzc0Zyb21JbmRleFNpZ25hdHVyZTogdHJ1ZSxcbiAgICAgICAgICBub0ltcGxpY2l0UmV0dXJuczogdHJ1ZSxcbiAgICAgICAgICBub0ZhbGx0aHJvdWdoQ2FzZXNJblN3aXRjaDogdHJ1ZSxcbiAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgZGVjbGFyYXRpb246IGZhbHNlLFxuICAgICAgICAgIGRvd25sZXZlbEl0ZXJhdGlvbjogdHJ1ZSxcbiAgICAgICAgICBlc01vZHVsZUludGVyb3A6IHRydWUsXG4gICAgICAgICAgZXhwZXJpbWVudGFsRGVjb3JhdG9yczogdHJ1ZSxcbiAgICAgICAgICBtb2R1bGVSZXNvbHV0aW9uOiAnbm9kZScsXG4gICAgICAgICAgaW1wb3J0SGVscGVyczogdHJ1ZSxcbiAgICAgICAgICB0eXBlUm9vdHM6IFsnbm9kZV9tb2R1bGVzL0B0eXBlcyddLFxuICAgICAgICAgIHRhcmdldDogJ0VTMjAyMicsXG4gICAgICAgICAgbW9kdWxlOiAnRVMyMDIyJyxcbiAgICAgICAgICB1c2VEZWZpbmVGb3JDbGFzc0ZpZWxkczogZmFsc2UsXG4gICAgICAgICAgbGliOiBbJ0VTMjAyMicsICdkb20nXSxcbiAgICAgICAgfSxcbiAgICAgICAgYW5ndWxhckNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIGZ1bGxUZW1wbGF0ZVR5cGVDaGVjazogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVJMThuTGVnYWN5TWVzc2FnZUlkRm9ybWF0OiBmYWxzZSxcbiAgICAgICAgICBzdHJpY3RJbmplY3Rpb25QYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgICAgIHN0cmljdElucHV0QWNjZXNzTW9kaWZpZXJzOiB0cnVlLFxuICAgICAgICAgIHN0cmljdFRlbXBsYXRlczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyXG4gICAgKTtcblxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlTmFtZShjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29udGVudHMuc3BsaXQoJ2V4cG9ydCBjbGFzcyAnKVsxXS5zcGxpdCgnIHsnKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZW5hbWVOb0V4dGVuc2lvbihmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlTmFtZS5zcGxpdCgnLicpLnBvcCgpO1xuICAgIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKGAuJHtleHRlbnNpb259YCwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHBvcnRlZENvbXBvbmVudChjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmltbWVkID0gY29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIGxldCBmcmFnbWVudCA9IHRyaW1tZWQuc3BsaXQoJ2V4cG9ydHM6WycpWzFdO1xuICAgIGlmICghZnJhZ21lbnQpIHtcbiAgICAgIHRocm93ICdZb3UgbXVzdCBleHBvcnQgYSBjb21wb25lbnQgZnJvbSB0aGUgY29kZSBleGFtcGxlIG1vZHVsZSEnO1xuICAgIH1cblxuICAgIGZyYWdtZW50ID0gZnJhZ21lbnQuc3BsaXQoJ10nKVswXTtcblxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBmcmFnbWVudC5zcGxpdCgnLCcpLmZpbHRlcigoeCkgPT4geCk7XG5cbiAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyAoXG4gICAgICAgICdZb3UgbWF5IG9ubHkgZXhwb3J0IGEgc2luZ2xlIGNvbXBvbmVudCBmcm9tIHRoZSBjb2RlIGV4YW1wbGUgbW9kdWxlJyArXG4gICAgICAgIGAod2UgZm91bmQgJHtjb21wb25lbnRzLmxlbmd0aH06ICR7Y29tcG9uZW50cy5qb2luKCcsICcpfSkuYCArXG4gICAgICAgICdJcyBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSBuZXcgY29kZSBleGFtcGxlIHdpdGggdGhlIGV4dHJhIGNvbXBvbmVudHM/J1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50c1swXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50U2VsZWN0b3IoXG4gICAgY29tcG9uZW50Q2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW11cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBmb3VuZCA9IHNvdXJjZUNvZGUuZmluZCgoZmlsZSkgPT4ge1xuICAgICAgcmV0dXJuIGZpbGUucmF3Q29udGVudHMuaW5kZXhPZihgY2xhc3MgJHtjb21wb25lbnRDbGFzc05hbWV9YCkgPiAtMTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRyaW1tZWQgPSBmb3VuZC5yYXdDb250ZW50cy5yZXBsYWNlKC9cXHMvZywgJycpO1xuXG4gICAgcmV0dXJuIHRyaW1tZWQuc3BsaXQoYHNlbGVjdG9yOidgKVsxXS5zcGxpdChgJ2ApWzBdO1xuICB9XG59XG4iXX0=
@@ -1,83 +0,0 @@
1
- var _SkyDocsDemoControlPanelRadioGroupComponent_instances, _SkyDocsDemoControlPanelRadioGroupComponent_notifyChange;
2
- import { __classPrivateFieldGet } from "tslib";
3
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
4
- import { ReplaySubject } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@skyux/forms";
9
- /**
10
- * Renders a radio control group.
11
- * @example
12
- * ```markup
13
- * <sky-docs-demo-control-panel-radio-group
14
- * [choices]="[
15
- * { 'label': 'Red', value: '#f00' },
16
- * { 'label': 'Green', value: '#0f0' },
17
- * { 'label': 'Blue', value: '#00f' }
18
- * ]"
19
- * heading="Choose a color"
20
- * initialValue="Red"
21
- * propertyName="color"
22
- * >
23
- * </sky-docs-demo-control-panel-radio-group>
24
- * ```
25
- */
26
- export class SkyDocsDemoControlPanelRadioGroupComponent {
27
- constructor(changeDetector) {
28
- this.changeDetector = changeDetector;
29
- _SkyDocsDemoControlPanelRadioGroupComponent_instances.add(this);
30
- /**
31
- * Indicates whether to disable the radio group.
32
- */
33
- this.disabled = false;
34
- /**
35
- * @internal
36
- */
37
- this.selectionChange = new ReplaySubject();
38
- }
39
- ngOnInit() {
40
- this.value = this.cloneValue(this.initialValue);
41
- __classPrivateFieldGet(this, _SkyDocsDemoControlPanelRadioGroupComponent_instances, "m", _SkyDocsDemoControlPanelRadioGroupComponent_notifyChange).call(this);
42
- }
43
- ngOnDestroy() {
44
- this.selectionChange.complete();
45
- }
46
- onModelChange(value) {
47
- this.value = value;
48
- __classPrivateFieldGet(this, _SkyDocsDemoControlPanelRadioGroupComponent_instances, "m", _SkyDocsDemoControlPanelRadioGroupComponent_notifyChange).call(this);
49
- }
50
- resetValue() {
51
- this.value = this.cloneValue(this.initialValue);
52
- __classPrivateFieldGet(this, _SkyDocsDemoControlPanelRadioGroupComponent_instances, "m", _SkyDocsDemoControlPanelRadioGroupComponent_notifyChange).call(this);
53
- this.changeDetector.markForCheck();
54
- }
55
- cloneValue(value) {
56
- if (typeof value === 'object') {
57
- return JSON.parse(JSON.stringify(value));
58
- }
59
- return value;
60
- }
61
- }
62
- _SkyDocsDemoControlPanelRadioGroupComponent_instances = new WeakSet(), _SkyDocsDemoControlPanelRadioGroupComponent_notifyChange = function _SkyDocsDemoControlPanelRadioGroupComponent_notifyChange() {
63
- this.selectionChange.next({
64
- [this.propertyName]: this.value,
65
- });
66
- };
67
- SkyDocsDemoControlPanelRadioGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDocsDemoControlPanelRadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
68
- SkyDocsDemoControlPanelRadioGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "icon", "radioType"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i3.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "name", "required", "value", "tabIndex"] }, { kind: "component", type: i3.λ12, selector: "sky-radio-label" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDocsDemoControlPanelRadioGroupComponent, decorators: [{
70
- type: Component,
71
- 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"] }]
72
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { choices: [{
73
- type: Input
74
- }], disabled: [{
75
- type: Input
76
- }], heading: [{
77
- type: Input
78
- }], initialValue: [{
79
- type: Input
80
- }], propertyName: [{
81
- type: Input
82
- }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby1jb250cm9sLXBhbmVsLXJhZGlvLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwtcmFkaW8tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9jcy10b29scy9zcmMvbW9kdWxlcy9kZW1vL2RlbW8tY29udHJvbC1wYW5lbC1yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQU1yQzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQU9ILE1BQU0sT0FBTywwQ0FBMEM7SUE2Q3JELFlBQW9CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjs7UUFuQ3JEOztXQUVHO1FBRUksYUFBUSxHQUFZLEtBQUssQ0FBQztRQXFCakM7O1dBRUc7UUFDSSxvQkFBZSxHQUFHLElBQUksYUFBYSxFQUFpQyxDQUFDO0lBT3BCLENBQUM7SUFFbEQsUUFBUTtRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEQsdUJBQUEsSUFBSSx1SEFBYyxNQUFsQixJQUFJLENBQWdCLENBQUM7SUFDdkIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsdUJBQUEsSUFBSSx1SEFBYyxNQUFsQixJQUFJLENBQWdCLENBQUM7SUFDdkIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELHVCQUFBLElBQUksdUhBQWMsTUFBbEIsSUFBSSxDQUFnQixDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFVO1FBQzNCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDMUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztJQUdDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQ3hCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLO0tBQ2hDLENBQUMsQ0FBQztBQUNMLENBQUM7dUlBL0VVLDBDQUEwQzsySEFBMUMsMENBQTBDLHFOQ3RDdkQsbWhCQWlCQTsyRkRxQmEsMENBQTBDO2tCQU50RCxTQUFTOytCQUNFLHlDQUF5QyxtQkFHbEMsdUJBQXVCLENBQUMsTUFBTTt3R0FVeEMsT0FBTztzQkFEYixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBT0MsWUFBWTtzQkFEbEIsS0FBSztnQkFRQyxZQUFZO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5RG9jc0RlbW9Db250cm9sUGFuZWxDaGFuZ2UgfSBmcm9tICcuL2RlbW8tY29udHJvbC1wYW5lbC1jaGFuZ2UnO1xuXG5pbXBvcnQgeyBTa3lEb2NzRGVtb0NvbnRyb2xQYW5lbFJhZGlvQ2hvaWNlIH0gZnJvbSAnLi9kZW1vLWNvbnRyb2wtcGFuZWwtcmFkaW8tY2hvaWNlJztcblxuLyoqXG4gKiBSZW5kZXJzIGEgcmFkaW8gY29udHJvbCBncm91cC5cbiAqIEBleGFtcGxlXG4gKiBgYGBtYXJrdXBcbiAqIDxza3ktZG9jcy1kZW1vLWNvbnRyb2wtcGFuZWwtcmFkaW8tZ3JvdXBcbiAqICAgW2Nob2ljZXNdPVwiW1xuICogICAgIHsgJ2xhYmVsJzogJ1JlZCcsIHZhbHVlOiAnI2YwMCcgfSxcbiAqICAgICB7ICdsYWJlbCc6ICdHcmVlbicsIHZhbHVlOiAnIzBmMCcgfSxcbiAqICAgICB7ICdsYWJlbCc6ICdCbHVlJywgdmFsdWU6ICcjMDBmJyB9XG4gKiAgIF1cIlxuICogICBoZWFkaW5nPVwiQ2hvb3NlIGEgY29sb3JcIlxuICogICBpbml0aWFsVmFsdWU9XCJSZWRcIlxuICogICBwcm9wZXJ0eU5hbWU9XCJjb2xvclwiXG4gKiA+XG4gKiA8L3NreS1kb2NzLWRlbW8tY29udHJvbC1wYW5lbC1yYWRpby1ncm91cD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZG9jcy1kZW1vLWNvbnRyb2wtcGFuZWwtcmFkaW8tZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVtby1jb250cm9sLXBhbmVsLXJhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVtby1jb250cm9sLXBhbmVsLXJhZGlvLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzRGVtb0NvbnRyb2xQYW5lbFJhZGlvR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIHBvc3NpYmxlIGNob2ljZXMgdG8gYmUgcmVwcmVzZW50ZWQgYnkgcmFkaW8gY29udHJvbHMuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNob2ljZXM6IFNreURvY3NEZW1vQ29udHJvbFBhbmVsUmFkaW9DaG9pY2VbXTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgcmFkaW8gZ3JvdXAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGhlYWRpbmcgdGV4dCB0byBhcHBlYXIgYWJvdmUgdGhlIHJhZGlvIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRpbmc6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIHJhZGlvIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGluaXRpYWxWYWx1ZTogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IHByb3BlcnR5IHRoYXQgaXMgYWZmZWN0ZWQgYnkgdGhpcyByYWRpbyBncm91cC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcHJvcGVydHlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFNreURvY3NEZW1vQ29udHJvbFBhbmVsQ2hhbmdlPigpO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyB2YWx1ZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5jbG9uZVZhbHVlKHRoaXMuaW5pdGlhbFZhbHVlKTtcbiAgICB0aGlzLiNub3RpZnlDaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uTW9kZWxDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLiNub3RpZnlDaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmNsb25lVmFsdWUodGhpcy5pbml0aWFsVmFsdWUpO1xuICAgIHRoaXMuI25vdGlmeUNoYW5nZSgpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb25lVmFsdWUodmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgI25vdGlmeUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5uZXh0KHtcbiAgICAgIFt0aGlzLnByb3BlcnR5TmFtZV06IHRoaXMudmFsdWUsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktZGVtby1jb250cm9sLXBhbmVsLXJhZGlvLWdyb3VwXCI+XG4gIDxzdHJvbmcgKm5nSWY9XCJoZWFkaW5nXCI+e3sgaGVhZGluZyB9fTwvc3Ryb25nPlxuICA8c2t5LXJhZGlvLWdyb3VwXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbmFtZV09XCJwcm9wZXJ0eU5hbWVcIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPHVsIGNsYXNzPVwic2t5LWxpc3QtdW5zdHlsZWRcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIGNob2ljZXNcIj5cbiAgICAgICAgPHNreS1yYWRpbyBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCI+XG4gICAgICAgICAgPHNreS1yYWRpby1sYWJlbD57eyBjaG9pY2UubGFiZWwgfX08L3NreS1yYWRpby1sYWJlbD5cbiAgICAgICAgPC9za3ktcmFkaW8+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvc2t5LXJhZGlvLWdyb3VwPlxuPC9kaXY+XG4iXX0=