@skyux/docs-tools 5.0.0-beta.8 → 5.0.0-beta.9

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9jcy10b29scy9zcmMvbW9kdWxlcy9jb2RlLWV4YW1wbGVzL2NvZGUtZXhhbXBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgU2t5RG9jc1NvdXJjZUNvZGVGaWxlXG59IGZyb20gJy4uL3NvdXJjZS1jb2RlL3NvdXJjZS1jb2RlLWZpbGUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXNcbn0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtbW9kdWxlLWRlcGVuZGVuY2llcyc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDb2RlRXhhbXBsZVRoZW1lXG59IGZyb20gJy4vY29kZS1leGFtcGxlLXRoZW1lJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lEb2NzQ29kZUV4YW1wbGUge1xuXG4gIGhlYWRpbmc6IHN0cmluZztcblxuICBwYWNrYWdlRGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXM7XG5cbiAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW107XG5cbiAgdGhlbWU6IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lO1xuXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9jcy10b29scy9zcmMvbW9kdWxlcy9jb2RlLWV4YW1wbGVzL2NvZGUtZXhhbXBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgU2t5RG9jc1NvdXJjZUNvZGVGaWxlXG59IGZyb20gJy4uL3NvdXJjZS1jb2RlL3NvdXJjZS1jb2RlLWZpbGUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXNcbn0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtbW9kdWxlLWRlcGVuZGVuY2llcyc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDb2RlRXhhbXBsZVRoZW1lXG59IGZyb20gJy4vY29kZS1leGFtcGxlLXRoZW1lJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lEb2NzQ29kZUV4YW1wbGUge1xuXG4gIGhlYWRpbmc6IHN0cmluZztcblxuICBwYWNrYWdlRGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXM7XG5cbiAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW107XG5cbiAgdGhlbWU6IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lO1xuXG4gIHN0eWxlc2hlZXRzPzogc3RyaW5nW107XG5cbn1cbiJdfQ==
@@ -53,7 +53,7 @@ export class SkyDocsCodeExamplesEditorService {
53
53
  }
54
54
  }
55
55
  }
56
- const files = this.parseStackBlitzFiles(codeExample.sourceCode, mergedDependencies, codeExample.theme);
56
+ const files = this.parseStackBlitzFiles(codeExample.sourceCode, mergedDependencies, codeExample.theme, codeExample.stylesheets);
57
57
  return {
58
58
  files,
59
59
  title: 'SKY UX Demo',
@@ -67,7 +67,7 @@ export class SkyDocsCodeExamplesEditorService {
67
67
  }
68
68
  };
69
69
  }
70
- parseStackBlitzFiles(sourceCode, dependencies, theme) {
70
+ parseStackBlitzFiles(sourceCode, dependencies, theme, stylesheets = []) {
71
71
  const srcPath = 'src/';
72
72
  const appPath = `${srcPath}app/`;
73
73
  const banner = `/**
@@ -76,10 +76,9 @@ export class SkyDocsCodeExamplesEditorService {
76
76
  **/
77
77
  `;
78
78
  const moduleImportStatements = [
79
- `import {\n Component,\n NgModule\n} from '@angular/core';`,
79
+ `import {\n NgModule\n} from '@angular/core';`,
80
80
  `import {\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';`,
81
- `import {\n platformBrowserDynamic\n} from '@angular/platform-browser-dynamic';`,
82
- `import {\n BrowserModule\n} from '@angular/platform-browser';`,
81
+ `import {\n BrowserAnimationsModule\n} from '@angular/platform-browser/animations';`,
83
82
  `import {\n RouterModule\n} from '@angular/router';`,
84
83
  `import {\n SkyAppLocaleProvider\n} from '@skyux/i18n';`,
85
84
  `import {\n SkyThemeService\n} from '@skyux/theme';`,
@@ -87,7 +86,7 @@ export class SkyDocsCodeExamplesEditorService {
87
86
  `import {\n AppComponent\n} from './app.component';`
88
87
  ];
89
88
  const moduleImports = [
90
- 'BrowserModule',
89
+ 'BrowserAnimationsModule',
91
90
  'FormsModule',
92
91
  'ReactiveFormsModule',
93
92
  'RouterModule.forRoot([])'
@@ -130,16 +129,16 @@ export class AppComponent {
130
129
  themeSvc: SkyThemeService,
131
130
  renderer?: Renderer2
132
131
  ) {
133
- const themeSettings = new SkyThemeSettings(
134
- SkyTheme.presets['${theme === SkyDocsCodeExampleTheme.Modern ? 'modern' : 'default'}'],
135
- SkyThemeMode.presets.light
136
- );
132
+ const themeSettings = new SkyThemeSettings(
133
+ SkyTheme.presets['${theme === SkyDocsCodeExampleTheme.Modern ? 'modern' : 'default'}'],
134
+ SkyThemeMode.presets.light
135
+ );
137
136
 
138
- themeSvc.init(
139
- document.body,
140
- renderer,
141
- themeSettings
142
- );
137
+ themeSvc.init(
138
+ document.body,
139
+ renderer,
140
+ themeSettings
141
+ );
143
142
  }
144
143
 
145
144
  }`;
@@ -182,10 +181,6 @@ export class AppModule { }
182
181
  files[`${srcPath}main.ts`] = `${banner}
183
182
  import './polyfills';
184
183
 
185
- import {
186
- enableProdMode
187
- } from '@angular/core';
188
-
189
184
  import {
190
185
  platformBrowserDynamic
191
186
  } from '@angular/platform-browser-dynamic';
@@ -211,6 +206,7 @@ body {
211
206
  background-color: #fff;
212
207
  margin: 15px;
213
208
  }`;
209
+ stylesheets.push("src/styles.scss");
214
210
  files['angular.json'] = `{
215
211
  "projects": {
216
212
  "demo": {
@@ -218,9 +214,7 @@ body {
218
214
  "build": {
219
215
  "options": {
220
216
  "index": "src/index.html",
221
- "styles": [
222
- "src/styles.scss"
223
- ]
217
+ "styles": ${JSON.stringify(stylesheets)}
224
218
  }
225
219
  }
226
220
  }
@@ -292,4 +286,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
292
286
  providedIn: 'root'
293
287
  }]
294
288
  }] });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFlNUMsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLHNCQUFzQixDQUFDOztBQU05Qjs7R0FFRztBQUlILE1BQU0sT0FBTyxnQ0FBZ0M7SUFFcEMsWUFBWSxDQUFDLFdBQStCO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQTBCLEVBQUUsQ0FBQztRQUUxQyxhQUFhLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sVUFBVSxDQUFDLFdBQStCO1FBQ2hELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7UUFFaEMsTUFBTSxtQkFBbUIsR0FBeUM7WUFDaEUscUJBQXFCLEVBQUUsY0FBYztZQUNyQyxpQkFBaUIsRUFBRSxjQUFjO1lBQ2pDLG1CQUFtQixFQUFFLGNBQWM7WUFDbkMsZUFBZSxFQUFFLGNBQWM7WUFDL0IsZ0JBQWdCLEVBQUUsY0FBYztZQUNoQywyQkFBMkIsRUFBRSxjQUFjO1lBQzNDLG1DQUFtQyxFQUFFLGNBQWM7WUFDbkQsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxtQkFBbUIsRUFBRSxZQUFZO1lBQ2pDLGVBQWUsRUFBRSxZQUFZO1lBQzdCLGVBQWUsRUFBRSxZQUFZO1lBQzdCLGFBQWEsRUFBRSxZQUFZ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YWJsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IFN0YWNrQmxpdHpTREsgZnJvbSAnQHN0YWNrYmxpdHovc2RrJztcblxuaW1wb3J0IHtcbiAgT3Blbk9wdGlvbnMgYXMgU3RhY2tCbGl0ek9wZW5PcHRpb25zLFxuICBQcm9qZWN0IGFzIFN0YWNrQmxpdHpQcm9qZWN0XG59IGZyb20gJ0BzdGFja2JsaXR6L3Nkay90eXBpbmdzL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzU291cmNlQ29kZUZpbGVcbn0gZnJvbSAnLi4vc291cmNlLWNvZGUvc291cmNlLWNvZGUtZmlsZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llc1xufSBmcm9tICcuL2NvZGUtZXhhbXBsZS1tb2R1bGUtZGVwZW5kZW5jaWVzJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWVcbn0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtdGhlbWUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29kZUV4YW1wbGVcbn0gZnJvbSAnLi9jb2RlLWV4YW1wbGUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzQ29kZUV4YW1wbGVzRWRpdG9yU2VydmljZSB7XG5cbiAgcHVibGljIGxhdW5jaEVkaXRvcihjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlKTogdm9pZCB7XG4gICAgY29uc3QgcHJvamVjdCA9IHRoaXMuZ2V0UGF5bG9hZChjb2RlRXhhbXBsZSk7XG4gICAgY29uc3Qgb3B0aW9uczogU3RhY2tCbGl0ek9wZW5PcHRpb25zID0ge307XG5cbiAgICBTdGFja0JsaXR6U0RLLm9wZW5Qcm9qZWN0KHByb2plY3QsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXlsb2FkKGNvZGVFeGFtcGxlOiBTa3lEb2NzQ29kZUV4YW1wbGUpOiBTdGFja0JsaXR6UHJvamVjdCB7XG4gICAgY29uc3QgYW5ndWxhclZlcnNpb24gPSAnXjEyLjIuMCc7XG4gICAgY29uc3Qgc2t5dXhWZXJzaW9uID0gJ141LjAuMC0wJztcblxuICAgIGNvbnN0IGRlZmF1bHREZXBlbmRlbmNpZXM6IFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llcyA9IHtcbiAgICAgICdAYW5ndWxhci9hbmltYXRpb25zJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tbW9uJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tcGlsZXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb3JlJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvZm9ybXMnOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcm91dGVyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQHNreXV4L2FuaW1hdGlvbnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Fzc2V0cyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvY29uZmlnJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9jb3JlJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9lcnJvcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Zvcm1zJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9odHRwJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9pMThuJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9pbmRpY2F0b3JzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9sYXlvdXQnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L21vZGFscyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvcG9wb3ZlcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3JvdXRlcic6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvdGhlbWUnOiBza3l1eFZlcnNpb24sXG4gICAgICAncnhqcyc6ICdeNi42LjAnLFxuICAgICAgJ3RzbGliJzogJ14yLjMuMCcsXG4gICAgICAnem9uZS5qcyc6ICd+MC4xMS40J1xuICAgIH07XG5cbiAgICBjb25zdCBtZXJnZWREZXBlbmRlbmNpZXMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBkZWZhdWx0RGVwZW5kZW5jaWVzLFxuICAgICAgY29kZUV4YW1wbGUucGFja2FnZURlcGVuZGVuY2llc1xuICAgICk7XG5cbiAgICAvLyBFbnN1cmUgYW55IEBza3l1eCBkZXBlbmRlbmNpZXMgbGlzdCB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIFNLWSBVWC5cbiAgICAvLyBlLmcuIGBcIkBza3l1eC9jb3JlXCI6IFwiKlwiYCAtLT4gYFwiQHNreXV4L2NvcmVcIjogXCI1LjAuMFwiYFxuICAgIGZvciAoY29uc3QgcGFja2FnZU5hbWUgaW4gbWVyZ2VkRGVwZW5kZW5jaWVzKSB7XG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmIChtZXJnZWREZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocGFja2FnZU5hbWUpKSB7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSBtZXJnZWREZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdO1xuICAgICAgICBpZiAodmVyc2lvbiA9PT0gJyonICYmIC9eKEBibGFja2JhdWRcXC9za3l1eC1saWItfEBza3l1eCkvLnRlc3QocGFja2FnZU5hbWUpKSB7XG4gICAgICAgICAgbWVyZ2VkRGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXSA9IHNreXV4VmVyc2lvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZpbGVzID0gdGhpcy5wYXJzZVN0YWNrQmxpdHpGaWxlcyhcbiAgICAgIGNvZGVFeGFtcGxlLnNvdXJjZUNvZGUsXG4gICAgICBtZXJnZWREZXBlbmRlbmNpZXMsXG4gICAgICBjb2RlRXhhbXBsZS50aGVtZVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmlsZXMsXG4gICAgICB0aXRsZTogJ1NLWSBVWCBEZW1vJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnU0tZIFVYIERlbW8nLFxuICAgICAgdGVtcGxhdGU6ICdhbmd1bGFyLWNsaScsXG4gICAgICBkZXBlbmRlbmNpZXM6IG1lcmdlZERlcGVuZGVuY2llcyxcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIGNvbXBpbGU6IHtcbiAgICAgICAgICBjbGVhckNvbnNvbGU6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVN0YWNrQmxpdHpGaWxlcyhcbiAgICBzb3VyY2VDb2RlOiBTa3lEb2NzU291cmNlQ29kZUZpbGVbXSxcbiAgICBkZXBlbmRlbmNpZXM6IFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llcyxcbiAgICB0aGVtZTogU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWVcbiAgKToge1xuICAgIFtwYXRoOiBzdHJpbmddOiBzdHJpbmc7XG4gIH0ge1xuXG4gICAgY29uc3Qgc3JjUGF0aCA9ICdzcmMvJztcbiAgICBjb25zdCBhcHBQYXRoID0gYCR7c3JjUGF0aH1hcHAvYDtcblxuICAgIGNvbnN0IGJhbm5lciA9IGAvKipcbiAqIFRoaXMgZmlsZSBpcyBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgcHJvdmlkZWQgd2hlbiB1c2luZyB0aGUgQW5ndWxhciBDTEkuXG4gKiovXG4gYDtcblxuICAgIGNvbnN0IG1vZHVsZUltcG9ydFN0YXRlbWVudHM6IHN0cmluZ1tdID0gW1xuICAgICAgYGltcG9ydCB7XFxuICBDb21wb25lbnQsXFxuICBOZ01vZHVsZVxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgRm9ybXNNb2R1bGUsXFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgcGxhdGZvcm1Ccm93c2VyRHluYW1pY1xcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBCcm93c2VyTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBSb3V0ZXJNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgU2t5QXBwTG9jYWxlUHJvdmlkZXJcXG59IGZyb20gJ0Bza3l1eC9pMThuJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBTa3lUaGVtZVNlcnZpY2VcXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgb2YgYXMgb2JzZXJ2YWJsZU9mXFxufSBmcm9tICdyeGpzJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBBcHBDb21wb25lbnRcXG59IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7YFxuICAgIF07XG5cbiAgICBjb25zdCBtb2R1bGVJbXBvcnRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICdCcm93c2VyTW9kdWxlJyxcbiAgICAgICdGb3Jtc01vZHVsZScsXG4gICAgICAnUmVhY3RpdmVGb3Jtc01vZHVsZScsXG4gICAgICAnUm91dGVyTW9kdWxlLmZvclJvb3QoW10pJ1xuICAgIF07XG5cbiAgICBjb25zdCBmaWxlczoge1tfOiBzdHJpbmddOiBzdHJpbmd9ID0ge307XG5cbiAgICBsZXQgYXBwQ29tcG9uZW50VGVtcGxhdGUgPSAnJztcblxuICAgIHNvdXJjZUNvZGUuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgZmlsZXNbYCR7YXBwUGF0aH0ke2ZpbGUuZmlsZU5hbWV9YF0gPSBmaWxlLnJhd0NvbnRlbnRzO1xuXG4gICAgICAvLyBTZXR1cCBtb2R1bGUgaW1wb3J0cyBhbmQgY29tcG9uZW50IHNlbGVjdG9ycy5cbiAgICAgIGlmIChmaWxlLmZpbGVOYW1lLmluZGV4T2YoJy5tb2R1bGUudHMnKSA+IC0xKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0aGlzLmdldE1vZHVsZU5hbWUoZmlsZS5yYXdDb250ZW50cyk7XG4gICAgICAgIGNvbnN0IGltcG9ydFBhdGggPSBgLi8ke3RoaXMuZ2V0RmlsZW5hbWVOb0V4dGVuc2lvbihmaWxlLmZpbGVOYW1lKX1gO1xuXG4gICAgICAgIGNvbnN0IGV4cG9ydGVkQ29tcG9uZW50ID0gdGhpcy5nZXRFeHBvcnRlZENvbXBvbmVudChmaWxlLnJhd0NvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50U2VsZWN0b3IgPSB0aGlzLmdldENvbXBvbmVudFNlbGVjdG9yKGV4cG9ydGVkQ29tcG9uZW50LCBzb3VyY2VDb2RlKTtcblxuICAgICAgICBhcHBDb21wb25lbnRUZW1wbGF0ZSArPSBgPCR7Y29tcG9uZW50U2VsZWN0b3J9PjwvJHtjb21wb25lbnRTZWxlY3Rvcn0+YDtcblxuICAgICAgICBtb2R1bGVJbXBvcnRzLnB1c2gobW9kdWxlTmFtZSk7XG4gICAgICAgIG1vZHVsZUltcG9ydFN0YXRlbWVudHMucHVzaChgaW1wb3J0IHtcXG4gICR7bW9kdWxlTmFtZX1cXG59IGZyb20gJyR7aW1wb3J0UGF0aH0nO2ApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgICBmaWxlc1tgJHthcHBQYXRofWFwcC5jb21wb25lbnQudHNgXSA9IGAke2Jhbm5lcn1cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lUaGVtZSxcbiAgU2t5VGhlbWVNb2RlLFxuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3Ncbn0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRlbW8tYXBwJyxcbiAgdGVtcGxhdGU6ICcke2FwcENvbXBvbmVudFRlbXBsYXRlfSdcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0aGVtZVN2YzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIHJlbmRlcmVyPzogUmVuZGVyZXIyXG4gICkge1xuICAgICAgY29uc3QgdGhlbWVTZXR0aW5ncyA9IG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgICBTa3lUaGVtZS5wcmVzZXRzWycke3RoZW1lID09PSBTa3lEb2NzQ29kZUV4YW1wbGVUaGVtZS5Nb2Rlcm4gPyAnbW9kZXJuJyA6ICdkZWZhdWx0J30nXSxcbiAgICAgICAgU2t5VGhlbWVNb2RlLnByZXNldHMubGlnaHRcbiAgICAgICk7XG5cbiAgICAgIHRoZW1lU3ZjLmluaXQoXG4gICAgICAgIGRvY3VtZW50LmJvZHksXG4gICAgICAgIHJlbmRlcmVyLFxuICAgICAgICB0aGVtZVNldHRpbmdzXG4gICAgICApO1xuICB9XG5cbn1gO1xuXG4gICAgZmlsZXNbYCR7YXBwUGF0aH1hcHAubW9kdWxlLnRzYF0gPSBgJHttb2R1bGVJbXBvcnRTdGF0ZW1lbnRzLmpvaW4oJ1xcblxcbicpfVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgJHttb2R1bGVJbXBvcnRzLmpvaW4oJyxcXG4gICAgJyl9XG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFwcENvbXBvbmVudFxuICBdLFxuICBib290c3RyYXA6IFtcbiAgICBBcHBDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5VGhlbWVTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNreUFwcExvY2FsZVByb3ZpZGVyLFxuICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgZ2V0TG9jYWxlSW5mbzogKCkgPT4gb2JzZXJ2YWJsZU9mKHtcbiAgICAgICAgICBsb2NhbGU6ICdlbi1VUydcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwTW9kdWxlIHsgfVxuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9aW5kZXguaHRtbGBdID0gYDwhLS1cbiAgVGhlIENTUyBsaW5rcyBhcmUgbmVlZGVkIGZvciB0aGUgU3RhY2tCbGl0eiBkZW1vIG9ubHkuXG4gIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhIGtub3duIGJ1ZyB0aGF0IHByZXZlbnRzIGV4dGVybmFsIGltcG9ydHMgaW4gQ1NTLlxuICBodHRwczovL2dpdGh1Yi5jb20vc3RhY2tibGl0ei9jb3JlL2lzc3Vlcy8xMzNcbi0tPlxuPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2ZvbnQtYXdlc29tZS80LjcuMC9jc3MvZm9udC1hd2Vzb21lLm1pbi5jc3NcIiAvPiR7dGhlbWUgPT09IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLk1vZGVybiA/IGA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cImh0dHBzOi8vc2t5LmJsYWNrYmF1ZGNkbi5uZXQvc3RhdGljL3NreXV4LWljb25zLzUuMC4wL2Fzc2V0cy9jc3Mvc2t5dXgtaWNvbnMubWluLmNzc1wiIC8+YCA6IGBgfVxuXG48c2t5LWRlbW8tYXBwPlxuICBMb2FkaW5nLi4uXG48L3NreS1kZW1vLWFwcD5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1tYWluLnRzYF0gPSBgJHtiYW5uZXJ9XG5pbXBvcnQgJy4vcG9seWZpbGxzJztcblxuaW1wb3J0IHtcbiAgZW5hYmxlUHJvZE1vZGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIHBsYXRmb3JtQnJvd3NlckR5bmFtaWNcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcblxuaW1wb3J0IHtcbiAgQXBwTW9kdWxlXG59IGZyb20gJy4vYXBwL2FwcC5tb2R1bGUnO1xuXG5wbGF0Zm9ybUJyb3dzZXJEeW5hbWljKCkuYm9vdHN0cmFwTW9kdWxlKEFwcE1vZHVsZSkudGhlbihyZWYgPT4ge1xuICBpZiAod2luZG93WyduZ1JlZiddKSB7XG4gICAgd2luZG93WyduZ1JlZiddLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHdpbmRvd1snbmdSZWYnXSA9IHJlZjtcbn0pLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9cG9seWZpbGxzLnRzYF0gPSBgJHtiYW5uZXJ9XG5pbXBvcnQgJ3pvbmUuanMnO1xuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9c3R5bGVzLnNjc3NgXSA9IGBAaW1wb3J0ICd+QHNreXV4L3RoZW1lL2Nzcy9za3knO1xuJHt0aGVtZSA9PT0gU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWUuTW9kZXJuID8gYEBpbXBvcnQgJ35Ac2t5dXgvdGhlbWUvY3NzL3RoZW1lcy9tb2Rlcm4vc3R5bGVzJztgIDogYGB9XG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAxNXB4O1xufWA7XG5cbiAgICBmaWxlc1snYW5ndWxhci5qc29uJ10gPSBge1xuICBcInByb2plY3RzXCI6IHtcbiAgICBcImRlbW9cIjoge1xuICAgICAgXCJhcmNoaXRlY3RcIjoge1xuICAgICAgICBcImJ1aWxkXCI6IHtcbiAgICAgICAgICBcIm9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJpbmRleFwiOiBcInNyYy9pbmRleC5odG1sXCIsXG4gICAgICAgICAgICBcInN0eWxlc1wiOiBbXG4gICAgICAgICAgICAgIFwic3JjL3N0eWxlcy5zY3NzXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1gO1xuXG4gICAgZmlsZXNbJ3BhY2thZ2UuanNvbiddID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZGVwZW5kZW5jaWVzXG4gICAgfSwgdW5kZWZpbmVkLCAyKTtcblxuICAgIGZpbGVzWyd0c2NvbmZpZy5qc29uJ10gPSBge1xuICBcImNvbXBpbGVyT3B0aW9uc1wiOiB7XG4gICAgXCJ0YXJnZXRcIjogXCJlczIwMTdcIixcbiAgICBcIm1vZHVsZVwiOiBcImVzMjAyMFwiLFxuICAgIFwibW9kdWxlUmVzb2x1dGlvblwiOiBcIm5vZGVcIixcbiAgICBcImVtaXREZWNvcmF0b3JNZXRhZGF0YVwiOiB0cnVlLFxuICAgIFwiZXhwZXJpbWVudGFsRGVjb3JhdG9yc1wiOiB0cnVlLFxuICAgIFwiaW1wb3J0SGVscGVyc1wiOiB0cnVlLFxuICAgIFwidHlwZVJvb3RzXCI6IFtcIm5vZGVfbW9kdWxlcy9AdHlwZXNcIl0sXG4gICAgXCJsaWJcIjogW1xuICAgICAgXCJlczIwMThcIixcbiAgICAgIFwiZG9tXCJcbiAgICBdXG4gIH0sXG4gIFwiYW5ndWxhckNvbXBpbGVyT3B0aW9uc1wiOiB7XG4gICAgXCJmdWxsVGVtcGxhdGVUeXBlQ2hlY2tcIjogdHJ1ZSxcbiAgICBcInN0cmljdEluamVjdGlvblBhcmFtZXRlcnNcIjogdHJ1ZSxcbiAgICBcInN0cmljdElucHV0QWNjZXNzTW9kaWZpZXJzXCI6IHRydWUsXG4gICAgXCJzdHJpY3RUZW1wbGF0ZXNcIjogdHJ1ZSxcbiAgICBcImVuYWJsZUl2eVwiOiBmYWxzZVxuICB9XG59YDtcblxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlTmFtZShjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29udGVudHMuc3BsaXQoJ2V4cG9ydCBjbGFzcyAnKVsxXS5zcGxpdCgnIHsnKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZW5hbWVOb0V4dGVuc2lvbihmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlTmFtZS5zcGxpdCgnLicpLnBvcCgpO1xuICAgIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKGAuJHtleHRlbnNpb259YCwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHBvcnRlZENvbXBvbmVudChjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmltbWVkID0gY29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIGxldCBmcmFnbWVudCA9IHRyaW1tZWQuc3BsaXQoJ2V4cG9ydHM6WycpWzFdO1xuICAgIGlmICghZnJhZ21lbnQpIHtcbiAgICAgIHRocm93ICdZb3UgbXVzdCBleHBvcnQgYSBjb21wb25lbnQgZnJvbSB0aGUgY29kZSBleGFtcGxlIG1vZHVsZSEnO1xuICAgIH1cblxuICAgIGZyYWdtZW50ID0gZnJhZ21lbnQuc3BsaXQoJ10nKVswXTtcblxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBmcmFnbWVudC5zcGxpdCgnLCcpLmZpbHRlcih4ID0+IHgpO1xuXG4gICAgaWYgKGNvbXBvbmVudHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgJ1lvdSBtYXkgb25seSBleHBvcnQgYSBzaW5nbGUgY29tcG9uZW50IGZyb20gdGhlIGNvZGUgZXhhbXBsZSBtb2R1bGUnICtcbiAgICAgICAgYCh3ZSBmb3VuZCAke2NvbXBvbmVudHMubGVuZ3RofTogJHtjb21wb25lbnRzLmpvaW4oJywgJyl9KS5gICtcbiAgICAgICAgJ0lzIGl0IHBvc3NpYmxlIHRvIGNyZWF0ZSBhIG5ldyBjb2RlIGV4YW1wbGUgd2l0aCB0aGUgZXh0cmEgY29tcG9uZW50cz8nO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wb25lbnRzWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21wb25lbnRTZWxlY3RvcihcbiAgICBjb21wb25lbnRDbGFzc05hbWU6IHN0cmluZyxcbiAgICBzb3VyY2VDb2RlOiBTa3lEb2NzU291cmNlQ29kZUZpbGVbXVxuICApOiBzdHJpbmcge1xuXG4gICAgY29uc3QgZm91bmQgPSBzb3VyY2VDb2RlLmZpbmQoKGZpbGUpID0+IHtcbiAgICAgIHJldHVybiAoZmlsZS5yYXdDb250ZW50cy5pbmRleE9mKGNvbXBvbmVudENsYXNzTmFtZSkgPiAtMSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0cmltbWVkID0gZm91bmQucmF3Q29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIHJldHVybiB0cmltbWVkLnNwbGl0KGBzZWxlY3RvcjonYClbMV0uc3BsaXQoYCdgKVswXTtcbiAgfVxuXG59XG4iXX0=
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFlNUMsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLHNCQUFzQixDQUFDOztBQU05Qjs7R0FFRztBQUlILE1BQU0sT0FBTyxnQ0FBZ0M7SUFFcEMsWUFBWSxDQUFDLFdBQStCO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQTBCLEVBQUUsQ0FBQztRQUUxQyxhQUFhLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sVUFBVSxDQUFDLFdBQStCO1FBQ2hELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7UUFFaEMsTUFBTSxtQkFBbUIsR0FBeUM7WUFDaEUscUJBQXFCLEVBQUUsY0FBYztZQUNyQyxpQkFBaUIsRUFBRSxjQUFjO1lBQ2pDLG1CQUFtQixFQUFFLGNBQWM7WUFDbkMsZUFBZSxFQUFFLGNBQWM7WUFDL0IsZ0JBQWdCLEVBQUUsY0FBYztZQUNoQywyQkFBMkIsRUFBRSxjQUFjO1lBQzNDLG1DQUFtQyxFQUFFLGNBQWM7WUFDbkQsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxtQkFBbUIsRUFBRSxZQUFZO1lBQ2pDLGVBQWUsRUFBRSxZQUFZO1lBQzdCLGVBQWUsRUFBRSxZQUFZO1lBQzdCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGVBQWUsRUFBRSxZQUFZO1lBQzdCLGNBQWMsRUFBRSxZQUFZO1lBQzVCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLG1CQUFtQixFQUFFLFlBQVk7WUFDakMsZUFBZSxFQUFFLFlBQVk7WUFDN0IsZUFBZSxFQUFFLFlBQVk7WUFDN0IsaUJBQWlCLEVBQUUsWUFBWTtZQUMvQixlQUFlLEVBQUUsWUFBWTtZQUM3QixjQUFjLEVBQUUsWUFBWTtZQUM1QixNQUFNLEVBQUUsUUFBUTtZQUNoQixPQUFPLEVBQUUsUUFBUTtZQUNqQixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUN0QyxFQUFFLEVBQ0YsbUJBQW1CLEVBQ25CLFdBQVcsQ0FBQyxtQkFBbUIsQ0FDaEMsQ0FBQztRQUVGLHFFQUFxRTtRQUNyRSx5REFBeUQ7UUFDekQsS0FBSyxNQUFNLFdBQVcsSUFBSSxrQkFBa0IsRUFBRTtZQUM1Qyx3QkFBd0I7WUFDeEIsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ2xELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLE9BQU8sS0FBSyxHQUFHLElBQUksa0NBQWtDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUMzRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxZQUFZLENBQUM7aUJBQ2hEO2FBQ0Y7U0FDRjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDckMsV0FBVyxDQUFDLFVBQVUsRUFDdEIsa0JBQWtCLEVBQ2xCLFdBQVcsQ0FBQyxLQUFLLEVBQ2pCLFdBQVcsQ0FBQyxXQUFXLENBQ3hCLENBQUM7UUFFRixPQUFPO1lBQ0wsS0FBSztZQUNMLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFdBQVcsRUFBRSxhQUFhO1lBQzFCLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFlBQVksRUFBRSxrQkFBa0I7WUFDaEMsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZLEVBQUUsS0FBSztpQkFDcEI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CLENBQzFCLFVBQW1DLEVBQ25DLFlBQWtELEVBQ2xELEtBQThCLEVBQzlCLGNBQXdCLEVBQUU7UUFLMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLEdBQUcsT0FBTyxNQUFNLENBQUM7UUFFakMsTUFBTSxNQUFNLEdBQUc7Ozs7RUFJakIsQ0FBQztRQUVDLE1BQU0sc0JBQXNCLEdBQWE7WUFDdkMsK0NBQStDO1lBQy9DLDJFQUEyRTtZQUMzRSxxRkFBcUY7WUFDckYscURBQXFEO1lBQ3JELHlEQUF5RDtZQUN6RCxxREFBcUQ7WUFDckQsZ0RBQWdEO1lBQ2hELHFEQUFxRDtTQUN0RCxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQWE7WUFDOUIseUJBQXlCO1lBQ3pCLGFBQWE7WUFDYixxQkFBcUI7WUFDckIsMEJBQTBCO1NBQzNCLENBQUM7UUFFRixNQUFNLEtBQUssR0FBMEIsRUFBRSxDQUFDO1FBRXhDLElBQUksb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRTlCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQixLQUFLLENBQUMsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUV2RCxnREFBZ0Q7WUFDaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3hELE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUVyRSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3RFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUVuRixvQkFBb0IsSUFBSSxJQUFJLGlCQUFpQixNQUFNLGlCQUFpQixHQUFHLENBQUM7Z0JBRXhFLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQy9CLHNCQUFzQixDQUFDLElBQUksQ0FBQyxlQUFlLFVBQVUsYUFBYSxVQUFVLElBQUksQ0FBQyxDQUFDO2FBQ25GO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFRCxLQUFLLENBQUMsR0FBRyxPQUFPLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7ZUFldEMsb0JBQW9COzs7Ozs7Ozs7MEJBU1QsS0FBSyxLQUFLLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTOzs7Ozs7Ozs7OztFQVd2RixDQUFDO1FBRUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxlQUFlLENBQUMsR0FBRyxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7TUFJdkUsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCbEMsQ0FBQztRQUVFLEtBQUssQ0FBQyxHQUFHLE9BQU8sWUFBWSxDQUFDLEdBQUc7Ozs7OzhIQUswRixLQUFLLEtBQUssdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyx1SUFBdUksQ0FBQyxDQUFDLENBQUMsRUFBRTs7OztnQkFJclMsQ0FBQztRQUViLEtBQUssQ0FBQyxHQUFHLE9BQU8sU0FBUyxDQUFDLEdBQUcsR0FBRyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQnpDLENBQUM7UUFFRSxLQUFLLENBQUMsR0FBRyxPQUFPLGNBQWMsQ0FBQyxHQUFHLEdBQUcsTUFBTTs7Q0FFOUMsQ0FBQztRQUVFLEtBQUssQ0FBQyxHQUFHLE9BQU8sYUFBYSxDQUFDLEdBQUc7RUFDbkMsS0FBSyxLQUFLLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsbURBQW1ELENBQUMsQ0FBQyxDQUFDLEVBQUU7Ozs7RUFJbkcsQ0FBQztRQUVDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVwQyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUc7Ozs7Ozs7d0JBT0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7Ozs7OztFQU1qRCxDQUFDO1FBRUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDckMsWUFBWTtTQUNiLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWpCLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUIzQixDQUFDO1FBRUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWdCO1FBQ3BDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFFBQWdCO1FBQzdDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDNUMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFFBQWdCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE1BQU0sMkRBQTJELENBQUM7U0FDbkU7UUFFRCxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRELElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsTUFBTSxxRUFBcUU7Z0JBQ3pFLGFBQWEsVUFBVSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUM1RCx3RUFBd0UsQ0FBQztTQUM1RTtRQUVELE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxvQkFBb0IsQ0FDMUIsa0JBQTBCLEVBQzFCLFVBQW1DO1FBR25DLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7OEhBN1VVLGdDQUFnQztrSUFBaEMsZ0NBQWdDLGNBRi9CLE1BQU07NEZBRVAsZ0NBQWdDO2tCQUg1QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCBTdGFja0JsaXR6U0RLIGZyb20gJ0BzdGFja2JsaXR6L3Nkayc7XG5cbmltcG9ydCB7XG4gIE9wZW5PcHRpb25zIGFzIFN0YWNrQmxpdHpPcGVuT3B0aW9ucyxcbiAgUHJvamVjdCBhcyBTdGFja0JsaXR6UHJvamVjdFxufSBmcm9tICdAc3RhY2tibGl0ei9zZGsvdHlwaW5ncy9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1NvdXJjZUNvZGVGaWxlXG59IGZyb20gJy4uL3NvdXJjZS1jb2RlL3NvdXJjZS1jb2RlLWZpbGUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXNcbn0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtbW9kdWxlLWRlcGVuZGVuY2llcyc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDb2RlRXhhbXBsZVRoZW1lXG59IGZyb20gJy4vY29kZS1leGFtcGxlLXRoZW1lJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0NvZGVFeGFtcGxlXG59IGZyb20gJy4vY29kZS1leGFtcGxlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9jc0NvZGVFeGFtcGxlc0VkaXRvclNlcnZpY2Uge1xuXG4gIHB1YmxpYyBsYXVuY2hFZGl0b3IoY29kZUV4YW1wbGU6IFNreURvY3NDb2RlRXhhbXBsZSk6IHZvaWQge1xuICAgIGNvbnN0IHByb2plY3QgPSB0aGlzLmdldFBheWxvYWQoY29kZUV4YW1wbGUpO1xuICAgIGNvbnN0IG9wdGlvbnM6IFN0YWNrQmxpdHpPcGVuT3B0aW9ucyA9IHt9O1xuXG4gICAgU3RhY2tCbGl0elNESy5vcGVuUHJvamVjdChwcm9qZWN0LCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF5bG9hZChjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlKTogU3RhY2tCbGl0elByb2plY3Qge1xuICAgIGNvbnN0IGFuZ3VsYXJWZXJzaW9uID0gJ14xMi4yLjAnO1xuICAgIGNvbnN0IHNreXV4VmVyc2lvbiA9ICdeNS4wLjAtMCc7XG5cbiAgICBjb25zdCBkZWZhdWx0RGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMgPSB7XG4gICAgICAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NvbW1vbic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NvbXBpbGVyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29yZSc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2Zvcm1zJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYyc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL3JvdXRlcic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9hbmltYXRpb25zJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9hc3NldHMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2NvbmZpZyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvY29yZSc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvZXJyb3JzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9mb3Jtcyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaHR0cCc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaTE4bic6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaW5kaWNhdG9ycyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvbGF5b3V0Jzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9tb2RhbHMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3BvcG92ZXJzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9yb3V0ZXInOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3RoZW1lJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ3J4anMnOiAnXjYuNi4wJyxcbiAgICAgICd0c2xpYic6ICdeMi4zLjAnLFxuICAgICAgJ3pvbmUuanMnOiAnfjAuMTEuNCdcbiAgICB9O1xuXG4gICAgY29uc3QgbWVyZ2VkRGVwZW5kZW5jaWVzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdERlcGVuZGVuY2llcyxcbiAgICAgIGNvZGVFeGFtcGxlLnBhY2thZ2VEZXBlbmRlbmNpZXNcbiAgICApO1xuXG4gICAgLy8gRW5zdXJlIGFueSBAc2t5dXggZGVwZW5kZW5jaWVzIGxpc3QgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiBTS1kgVVguXG4gICAgLy8gZS5nLiBgXCJAc2t5dXgvY29yZVwiOiBcIipcImAgLS0+IGBcIkBza3l1eC9jb3JlXCI6IFwiNS4wLjBcImBcbiAgICBmb3IgKGNvbnN0IHBhY2thZ2VOYW1lIGluIG1lcmdlZERlcGVuZGVuY2llcykge1xuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgICBpZiAobWVyZ2VkRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHBhY2thZ2VOYW1lKSkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gbWVyZ2VkRGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXTtcbiAgICAgICAgaWYgKHZlcnNpb24gPT09ICcqJyAmJiAvXihAYmxhY2tiYXVkXFwvc2t5dXgtbGliLXxAc2t5dXgpLy50ZXN0KHBhY2thZ2VOYW1lKSkge1xuICAgICAgICAgIG1lcmdlZERlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gPSBza3l1eFZlcnNpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWxlcyA9IHRoaXMucGFyc2VTdGFja0JsaXR6RmlsZXMoXG4gICAgICBjb2RlRXhhbXBsZS5zb3VyY2VDb2RlLFxuICAgICAgbWVyZ2VkRGVwZW5kZW5jaWVzLFxuICAgICAgY29kZUV4YW1wbGUudGhlbWUsXG4gICAgICBjb2RlRXhhbXBsZS5zdHlsZXNoZWV0c1xuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmlsZXMsXG4gICAgICB0aXRsZTogJ1NLWSBVWCBEZW1vJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnU0tZIFVYIERlbW8nLFxuICAgICAgdGVtcGxhdGU6ICdhbmd1bGFyLWNsaScsXG4gICAgICBkZXBlbmRlbmNpZXM6IG1lcmdlZERlcGVuZGVuY2llcyxcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIGNvbXBpbGU6IHtcbiAgICAgICAgICBjbGVhckNvbnNvbGU6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVN0YWNrQmxpdHpGaWxlcyhcbiAgICBzb3VyY2VDb2RlOiBTa3lEb2NzU291cmNlQ29kZUZpbGVbXSxcbiAgICBkZXBlbmRlbmNpZXM6IFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llcyxcbiAgICB0aGVtZTogU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWUsXG4gICAgc3R5bGVzaGVldHM6IHN0cmluZ1tdID0gW11cbiAgKToge1xuICAgIFtwYXRoOiBzdHJpbmddOiBzdHJpbmc7XG4gIH0ge1xuXG4gICAgY29uc3Qgc3JjUGF0aCA9ICdzcmMvJztcbiAgICBjb25zdCBhcHBQYXRoID0gYCR7c3JjUGF0aH1hcHAvYDtcblxuICAgIGNvbnN0IGJhbm5lciA9IGAvKipcbiAqIFRoaXMgZmlsZSBpcyBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgcHJvdmlkZWQgd2hlbiB1c2luZyB0aGUgQW5ndWxhciBDTEkuXG4gKiovXG4gYDtcblxuICAgIGNvbnN0IG1vZHVsZUltcG9ydFN0YXRlbWVudHM6IHN0cmluZ1tdID0gW1xuICAgICAgYGltcG9ydCB7XFxuICBOZ01vZHVsZVxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgRm9ybXNNb2R1bGUsXFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgUm91dGVyTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIFNreUFwcExvY2FsZVByb3ZpZGVyXFxufSBmcm9tICdAc2t5dXgvaTE4bic7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgU2t5VGhlbWVTZXJ2aWNlXFxufSBmcm9tICdAc2t5dXgvdGhlbWUnO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIG9mIGFzIG9ic2VydmFibGVPZlxcbn0gZnJvbSAncnhqcyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgQXBwQ29tcG9uZW50XFxufSBmcm9tICcuL2FwcC5jb21wb25lbnQnO2BcbiAgICBdO1xuXG4gICAgY29uc3QgbW9kdWxlSW1wb3J0czogc3RyaW5nW10gPSBbXG4gICAgICAnQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUnLFxuICAgICAgJ0Zvcm1zTW9kdWxlJyxcbiAgICAgICdSZWFjdGl2ZUZvcm1zTW9kdWxlJyxcbiAgICAgICdSb3V0ZXJNb2R1bGUuZm9yUm9vdChbXSknXG4gICAgXTtcblxuICAgIGNvbnN0IGZpbGVzOiB7W186IHN0cmluZ106IHN0cmluZ30gPSB7fTtcblxuICAgIGxldCBhcHBDb21wb25lbnRUZW1wbGF0ZSA9ICcnO1xuXG4gICAgc291cmNlQ29kZS5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICBmaWxlc1tgJHthcHBQYXRofSR7ZmlsZS5maWxlTmFtZX1gXSA9IGZpbGUucmF3Q29udGVudHM7XG5cbiAgICAgIC8vIFNldHVwIG1vZHVsZSBpbXBvcnRzIGFuZCBjb21wb25lbnQgc2VsZWN0b3JzLlxuICAgICAgaWYgKGZpbGUuZmlsZU5hbWUuaW5kZXhPZignLm1vZHVsZS50cycpID4gLTEpIHtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IHRoaXMuZ2V0TW9kdWxlTmFtZShmaWxlLnJhd0NvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IGAuLyR7dGhpcy5nZXRGaWxlbmFtZU5vRXh0ZW5zaW9uKGZpbGUuZmlsZU5hbWUpfWA7XG5cbiAgICAgICAgY29uc3QgZXhwb3J0ZWRDb21wb25lbnQgPSB0aGlzLmdldEV4cG9ydGVkQ29tcG9uZW50KGZpbGUucmF3Q29udGVudHMpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRTZWxlY3RvciA9IHRoaXMuZ2V0Q29tcG9uZW50U2VsZWN0b3IoZXhwb3J0ZWRDb21wb25lbnQsIHNvdXJjZUNvZGUpO1xuXG4gICAgICAgIGFwcENvbXBvbmVudFRlbXBsYXRlICs9IGA8JHtjb21wb25lbnRTZWxlY3Rvcn0+PC8ke2NvbXBvbmVudFNlbGVjdG9yfT5gO1xuXG4gICAgICAgIG1vZHVsZUltcG9ydHMucHVzaChtb2R1bGVOYW1lKTtcbiAgICAgICAgbW9kdWxlSW1wb3J0U3RhdGVtZW50cy5wdXNoKGBpbXBvcnQge1xcbiAgJHttb2R1bGVOYW1lfVxcbn0gZnJvbSAnJHtpbXBvcnRQYXRofSc7YCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAgIGZpbGVzW2Ake2FwcFBhdGh9YXBwLmNvbXBvbmVudC50c2BdID0gYCR7YmFubmVyfVxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreVRoZW1lLFxuICBTa3lUaGVtZU1vZGUsXG4gIFNreVRoZW1lU2VydmljZSxcbiAgU2t5VGhlbWVTZXR0aW5nc1xufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGVtby1hcHAnLFxuICB0ZW1wbGF0ZTogJyR7YXBwQ29tcG9uZW50VGVtcGxhdGV9J1xufSlcbmV4cG9ydCBjbGFzcyBBcHBDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRoZW1lU3ZjOiBTa3lUaGVtZVNlcnZpY2UsXG4gICAgcmVuZGVyZXI/OiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgY29uc3QgdGhlbWVTZXR0aW5ncyA9IG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgU2t5VGhlbWUucHJlc2V0c1snJHt0aGVtZSA9PT0gU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWUuTW9kZXJuID8gJ21vZGVybicgOiAnZGVmYXVsdCd9J10sXG4gICAgICBTa3lUaGVtZU1vZGUucHJlc2V0cy5saWdodFxuICAgICk7XG5cbiAgICB0aGVtZVN2Yy5pbml0KFxuICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgIHJlbmRlcmVyLFxuICAgICAgdGhlbWVTZXR0aW5nc1xuICAgICk7XG4gIH1cblxufWA7XG5cbiAgICBmaWxlc1tgJHthcHBQYXRofWFwcC5tb2R1bGUudHNgXSA9IGAke21vZHVsZUltcG9ydFN0YXRlbWVudHMuam9pbignXFxuXFxuJyl9XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICAke21vZHVsZUltcG9ydHMuam9pbignLFxcbiAgICAnKX1cbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQXBwQ29tcG9uZW50XG4gIF0sXG4gIGJvb3RzdHJhcDogW1xuICAgIEFwcENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lUaGVtZVNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5QXBwTG9jYWxlUHJvdmlkZXIsXG4gICAgICB1c2VWYWx1ZToge1xuICAgICAgICBnZXRMb2NhbGVJbmZvOiAoKSA9PiBvYnNlcnZhYmxlT2Yoe1xuICAgICAgICAgIGxvY2FsZTogJ2VuLVVTJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBNb2R1bGUgeyB9XG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1pbmRleC5odG1sYF0gPSBgPCEtLVxuICBUaGUgQ1NTIGxpbmtzIGFyZSBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAgVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGEga25vd24gYnVnIHRoYXQgcHJldmVudHMgZXh0ZXJuYWwgaW1wb3J0cyBpbiBDU1MuXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja2JsaXR6L2NvcmUvaXNzdWVzLzEzM1xuLS0+XG48bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cImh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNy4wL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzc1wiIC8+JHt0aGVtZSA9PT0gU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWUuTW9kZXJuID8gYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiaHR0cHM6Ly9za3kuYmxhY2tiYXVkY2RuLm5ldC9zdGF0aWMvc2t5dXgtaWNvbnMvNS4wLjAvYXNzZXRzL2Nzcy9za3l1eC1pY29ucy5taW4uY3NzXCIgLz5gIDogYGB9XG5cbjxza3ktZGVtby1hcHA+XG4gIExvYWRpbmcuLi5cbjwvc2t5LWRlbW8tYXBwPmA7XG5cbiAgICBmaWxlc1tgJHtzcmNQYXRofW1haW4udHNgXSA9IGAke2Jhbm5lcn1cbmltcG9ydCAnLi9wb2x5ZmlsbHMnO1xuXG5pbXBvcnQge1xuICBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljXG59IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYyc7XG5cbmltcG9ydCB7XG4gIEFwcE1vZHVsZVxufSBmcm9tICcuL2FwcC9hcHAubW9kdWxlJztcblxucGxhdGZvcm1Ccm93c2VyRHluYW1pYygpLmJvb3RzdHJhcE1vZHVsZShBcHBNb2R1bGUpLnRoZW4ocmVmID0+IHtcbiAgaWYgKHdpbmRvd1snbmdSZWYnXSkge1xuICAgIHdpbmRvd1snbmdSZWYnXS5kZXN0cm95KCk7XG4gIH1cblxuICB3aW5kb3dbJ25nUmVmJ10gPSByZWY7XG59KS5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpKTtcbmA7XG5cbiAgICBmaWxlc1tgJHtzcmNQYXRofXBvbHlmaWxscy50c2BdID0gYCR7YmFubmVyfVxuaW1wb3J0ICd6b25lLmpzJztcbmA7XG5cbiAgICBmaWxlc1tgJHtzcmNQYXRofXN0eWxlcy5zY3NzYF0gPSBgQGltcG9ydCAnfkBza3l1eC90aGVtZS9jc3Mvc2t5JztcbiR7dGhlbWUgPT09IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLk1vZGVybiA/IGBAaW1wb3J0ICd+QHNreXV4L3RoZW1lL2Nzcy90aGVtZXMvbW9kZXJuL3N0eWxlcyc7YCA6IGBgfVxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1hcmdpbjogMTVweDtcbn1gO1xuXG4gICAgc3R5bGVzaGVldHMucHVzaChcInNyYy9zdHlsZXMuc2Nzc1wiKTtcblxuICAgIGZpbGVzWydhbmd1bGFyLmpzb24nXSA9IGB7XG4gIFwicHJvamVjdHNcIjoge1xuICAgIFwiZGVtb1wiOiB7XG4gICAgICBcImFyY2hpdGVjdFwiOiB7XG4gICAgICAgIFwiYnVpbGRcIjoge1xuICAgICAgICAgIFwib3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImluZGV4XCI6IFwic3JjL2luZGV4Lmh0bWxcIixcbiAgICAgICAgICAgIFwic3R5bGVzXCI6ICR7SlNPTi5zdHJpbmdpZnkoc3R5bGVzaGVldHMpfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufWA7XG5cbiAgICBmaWxlc1sncGFja2FnZS5qc29uJ10gPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBkZXBlbmRlbmNpZXNcbiAgICB9LCB1bmRlZmluZWQsIDIpO1xuXG4gICAgZmlsZXNbJ3RzY29uZmlnLmpzb24nXSA9IGB7XG4gIFwiY29tcGlsZXJPcHRpb25zXCI6IHtcbiAgICBcInRhcmdldFwiOiBcImVzMjAxN1wiLFxuICAgIFwibW9kdWxlXCI6IFwiZXMyMDIwXCIsXG4gICAgXCJtb2R1bGVSZXNvbHV0aW9uXCI6IFwibm9kZVwiLFxuICAgIFwiZW1pdERlY29yYXRvck1ldGFkYXRhXCI6IHRydWUsXG4gICAgXCJleHBlcmltZW50YWxEZWNvcmF0b3JzXCI6IHRydWUsXG4gICAgXCJpbXBvcnRIZWxwZXJzXCI6IHRydWUsXG4gICAgXCJ0eXBlUm9vdHNcIjogW1wibm9kZV9tb2R1bGVzL0B0eXBlc1wiXSxcbiAgICBcImxpYlwiOiBbXG4gICAgICBcImVzMjAxOFwiLFxuICAgICAgXCJkb21cIlxuICAgIF1cbiAgfSxcbiAgXCJhbmd1bGFyQ29tcGlsZXJPcHRpb25zXCI6IHtcbiAgICBcImZ1bGxUZW1wbGF0ZVR5cGVDaGVja1wiOiB0cnVlLFxuICAgIFwic3RyaWN0SW5qZWN0aW9uUGFyYW1ldGVyc1wiOiB0cnVlLFxuICAgIFwic3RyaWN0SW5wdXRBY2Nlc3NNb2RpZmllcnNcIjogdHJ1ZSxcbiAgICBcInN0cmljdFRlbXBsYXRlc1wiOiB0cnVlLFxuICAgIFwiZW5hYmxlSXZ5XCI6IGZhbHNlXG4gIH1cbn1gO1xuXG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2R1bGVOYW1lKGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb250ZW50cy5zcGxpdCgnZXhwb3J0IGNsYXNzICcpWzFdLnNwbGl0KCcgeycpWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlbmFtZU5vRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGV4dGVuc2lvbiA9IGZpbGVOYW1lLnNwbGl0KCcuJykucG9wKCk7XG4gICAgcmV0dXJuIGZpbGVOYW1lLnJlcGxhY2UoYC4ke2V4dGVuc2lvbn1gLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGdldEV4cG9ydGVkQ29tcG9uZW50KGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyaW1tZWQgPSBjb250ZW50cy5yZXBsYWNlKC9cXHMvZywgJycpO1xuXG4gICAgbGV0IGZyYWdtZW50ID0gdHJpbW1lZC5zcGxpdCgnZXhwb3J0czpbJylbMV07XG4gICAgaWYgKCFmcmFnbWVudCkge1xuICAgICAgdGhyb3cgJ1lvdSBtdXN0IGV4cG9ydCBhIGNvbXBvbmVudCBmcm9tIHRoZSBjb2RlIGV4YW1wbGUgbW9kdWxlISc7XG4gICAgfVxuXG4gICAgZnJhZ21lbnQgPSBmcmFnbWVudC5zcGxpdCgnXScpWzBdO1xuXG4gICAgY29uc3QgY29tcG9uZW50cyA9IGZyYWdtZW50LnNwbGl0KCcsJykuZmlsdGVyKHggPT4geCk7XG5cbiAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyAnWW91IG1heSBvbmx5IGV4cG9ydCBhIHNpbmdsZSBjb21wb25lbnQgZnJvbSB0aGUgY29kZSBleGFtcGxlIG1vZHVsZScgK1xuICAgICAgICBgKHdlIGZvdW5kICR7Y29tcG9uZW50cy5sZW5ndGh9OiAke2NvbXBvbmVudHMuam9pbignLCAnKX0pLmAgK1xuICAgICAgICAnSXMgaXQgcG9zc2libGUgdG8gY3JlYXRlIGEgbmV3IGNvZGUgZXhhbXBsZSB3aXRoIHRoZSBleHRyYSBjb21wb25lbnRzPyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvbmVudHNbMF07XG4gIH1cblxuICBwcml2YXRlIGdldENvbXBvbmVudFNlbGVjdG9yKFxuICAgIGNvbXBvbmVudENsYXNzTmFtZTogc3RyaW5nLFxuICAgIHNvdXJjZUNvZGU6IFNreURvY3NTb3VyY2VDb2RlRmlsZVtdXG4gICk6IHN0cmluZyB7XG5cbiAgICBjb25zdCBmb3VuZCA9IHNvdXJjZUNvZGUuZmluZCgoZmlsZSkgPT4ge1xuICAgICAgcmV0dXJuIChmaWxlLnJhd0NvbnRlbnRzLmluZGV4T2YoY29tcG9uZW50Q2xhc3NOYW1lKSA+IC0xKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRyaW1tZWQgPSBmb3VuZC5yYXdDb250ZW50cy5yZXBsYWNlKC9cXHMvZywgJycpO1xuXG4gICAgcmV0dXJuIHRyaW1tZWQuc3BsaXQoYHNlbGVjdG9yOidgKVsxXS5zcGxpdChgJ2ApWzBdO1xuICB9XG5cbn1cbiJdfQ==
@@ -28,6 +28,7 @@ export class SkyDocsCodeExamplesComponent {
28
28
  constructor(editorService, sourceCodeService) {
29
29
  this.editorService = editorService;
30
30
  this.sourceCodeService = sourceCodeService;
31
+ this.stylesheets = [];
31
32
  this.codeExamples = [];
32
33
  }
33
34
  /**
@@ -56,6 +57,7 @@ export class SkyDocsCodeExamplesComponent {
56
57
  heading: component.heading,
57
58
  packageDependencies: this.packageDependencies,
58
59
  sourceCode,
60
+ stylesheets: this.stylesheets,
59
61
  theme: component.theme
60
62
  });
61
63
  });
@@ -80,7 +82,7 @@ export class SkyDocsCodeExamplesComponent {
80
82
  }
81
83
  }
82
84
  SkyDocsCodeExamplesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDocsCodeExamplesComponent, deps: [{ token: i1.SkyDocsCodeExamplesEditorService }, { token: i2.SkyDocsSourceCodeService }], target: i0.ɵɵFactoryTarget.Component });
83
- SkyDocsCodeExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDocsCodeExamplesComponent, selector: "sky-docs-code-examples", inputs: { packageDependencies: "packageDependencies" }, queries: [{ propertyName: "codeExampleComponents", predicate: SkyDocsCodeExampleComponent }], ngImport: i0, template: "<div *ngIf=\"codeExamples && codeExamples.length\"\n class=\"sky-docs-code-examples\"\n>\n <sky-repeater *ngIf=\"codeExamples.length > 1 else singleCodeExample\"\n expandMode=\"multiple\"\n >\n <sky-repeater-item *ngFor=\"let codeExample of codeExamples\"\n [isExpanded]=\"false\"\n >\n <sky-repeater-item-title>\n <ng-container *ngTemplateOutlet=\"codeExampleHeaderTemplate; context: {$implicit: codeExample}\">\n </ng-container>\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n <ng-container *ngTemplateOutlet=\"codeExampleTemplate; context: {$implicit: codeExample}\">\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n</div>\n\n<ng-template>\n <ng-content\n select=\"sky-docs-code-example\"\n >\n </ng-content>\n</ng-template>\n\n<ng-template\n let-item\n #codeExampleTemplate\n>\n <div class=\"sky-docs-code-example-wrapper\">\n <sky-vertical-tabset *ngIf=\"item.sourceCode && item.sourceCode.length\">\n <sky-vertical-tab *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\n #singleCodeExample\n>\n <ng-container *ngTemplateOutlet=\"codeExampleHeaderTemplate; context: {$implicit: codeExamples[0]}\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"codeExampleTemplate; context: {$implicit: codeExamples[0]}\">\n </ng-container>\n</ng-template>\n\n<ng-template\n let-codeExample\n #codeExampleHeaderTemplate\n>\n <div\n class=\"sky-docs-code-example-header\"\n >\n <div\n class=\"sky-docs-code-example-header-title sky-emphasized\"\n >\n {{ codeExample.heading }}\n </div>\n <div\n class=\"sky-docs-code-example-header-controls\"\n >\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"launchEditor(codeExample);$event.stopPropagation();\"\n >\n <sky-icon\n icon=\"pencil\"\n ></sky-icon>\n {{ 'sky-docs-code-example-launch-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</ng-template>", 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:normal}.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: ["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", "ariaRole", "maintainTabContent"], outputs: ["activeChange"] }, { type: i4.λ4, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaInvalid", "ariaRequired", "ariaRole", "disabled", "errorIndicator", "tabHeaderCount", "tabHeading", "showTabRightArrow", "tabId"] }, { type: i5.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i8.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
85
+ SkyDocsCodeExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", 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\"\n class=\"sky-docs-code-examples\"\n>\n <sky-repeater *ngIf=\"codeExamples.length > 1 else singleCodeExample\"\n expandMode=\"multiple\"\n >\n <sky-repeater-item *ngFor=\"let codeExample of codeExamples\"\n [isExpanded]=\"false\"\n >\n <sky-repeater-item-title>\n <ng-container *ngTemplateOutlet=\"codeExampleHeaderTemplate; context: {$implicit: codeExample}\">\n </ng-container>\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n <ng-container *ngTemplateOutlet=\"codeExampleTemplate; context: {$implicit: codeExample}\">\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n</div>\n\n<ng-template>\n <ng-content\n select=\"sky-docs-code-example\"\n >\n </ng-content>\n</ng-template>\n\n<ng-template\n let-item\n #codeExampleTemplate\n>\n <div class=\"sky-docs-code-example-wrapper\">\n <sky-vertical-tabset *ngIf=\"item.sourceCode && item.sourceCode.length\">\n <sky-vertical-tab *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\n #singleCodeExample\n>\n <ng-container *ngTemplateOutlet=\"codeExampleHeaderTemplate; context: {$implicit: codeExamples[0]}\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"codeExampleTemplate; context: {$implicit: codeExamples[0]}\">\n </ng-container>\n</ng-template>\n\n<ng-template\n let-codeExample\n #codeExampleHeaderTemplate\n>\n <div\n class=\"sky-docs-code-example-header\"\n >\n <div\n class=\"sky-docs-code-example-header-title sky-emphasized\"\n >\n {{ codeExample.heading }}\n </div>\n <div\n class=\"sky-docs-code-example-header-controls\"\n >\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"launchEditor(codeExample);$event.stopPropagation();\"\n >\n <sky-icon\n icon=\"pencil\"\n ></sky-icon>\n {{ 'sky-docs-code-example-launch-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</ng-template>", 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:normal}.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: ["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", "ariaRole", "maintainTabContent"], outputs: ["activeChange"] }, { type: i4.λ4, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaInvalid", "ariaRequired", "ariaRole", "disabled", "errorIndicator", "tabHeaderCount", "tabHeading", "showTabRightArrow", "tabId"] }, { type: i5.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i8.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
84
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDocsCodeExamplesComponent, decorators: [{
85
87
  type: Component,
86
88
  args: [{
@@ -91,8 +93,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
91
93
  }]
92
94
  }], ctorParameters: function () { return [{ type: i1.SkyDocsCodeExamplesEditorService }, { type: i2.SkyDocsSourceCodeService }]; }, propDecorators: { packageDependencies: [{
93
95
  type: Input
96
+ }], stylesheets: [{
97
+ type: Input
94
98
  }], codeExampleComponents: [{
95
99
  type: ContentChildren,
96
100
  args: [SkyDocsCodeExampleComponent]
97
101
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUVOLE1BQU0sZUFBZSxDQUFDO0FBVXZCLE9BQU8sRUFDTCwyQkFBMkIsRUFDNUIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQVVsQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU9ILE1BQU0sT0FBTyw0QkFBNEI7SUFzQnZDLFlBQ1UsYUFBK0MsRUFDL0MsaUJBQTJDO1FBRDNDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQztRQUMvQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBVDlDLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQztJQVUzQyxDQUFDO0lBdkJMOzs7T0FHRztJQUNILElBQ1csbUJBQW1CLENBQUMsS0FBMkM7UUFDeEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFjTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBRS9DLHVHQUF1RztZQUN2RyxJQUFJLGNBQWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1lBQzlDLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtnQkFDcEMsY0FBYyxJQUFJLEdBQUcsQ0FBQzthQUN2QjtZQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFeEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLGNBQWMsVUFBVSxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEcsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztnQkFDMUIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtnQkFDN0MsVUFBVTtnQkFDVixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWSxDQUFDLFdBQStCO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxxQkFBcUIsQ0FBQyxRQUFnQjtRQUMzQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTFELFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssSUFBSTtnQkFDUCxPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxRQUFRLENBQUM7WUFDbEI7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDSCxDQUFDOzswSEF2RVUsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsNEpBaUJ0QiwyQkFBMkIsNkJDbkU5QywwNEVBb0ZjOzRGRGxDRCw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7b0JBQzdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4SkFRWSxtQkFBbUI7c0JBRDdCLEtBQUs7Z0JBWUUscUJBQXFCO3NCQUQ1QixlQUFlO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1NvdXJjZUNvZGVTZXJ2aWNlXG59IGZyb20gJy4uL3NvdXJjZS1jb2RlL3NvdXJjZS1jb2RlLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29kZUV4YW1wbGVzRWRpdG9yU2VydmljZVxufSBmcm9tICcuL2NvZGUtZXhhbXBsZXMtZWRpdG9yLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29kZUV4YW1wbGVDb21wb25lbnRcbn0gZnJvbSAnLi9jb2RlLWV4YW1wbGUuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzXG59IGZyb20gJy4vY29kZS1leGFtcGxlLW1vZHVsZS1kZXBlbmRlbmNpZXMnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29kZUV4YW1wbGVcbn0gZnJvbSAnLi9jb2RlLWV4YW1wbGUnO1xuXG4vKipcbiAqIFdyYXBzIGFsbCBjb2RlIGV4YW1wbGVzIGFuZCBoYW5kbGVzIHRoZWlyIGNvbmZpZ3VyYXRpb24gYW5kIHN0eWxlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGBcbiAqIDxza3ktZG9jcy1jb2RlLWV4YW1wbGVzXG4gKiAgIFtwYWNrYWdlRGVwZW5kZW5jaWVzXT1cIntcbiAqICAgICBcImZvb2JhclwiOiBcIipcIixcbiAqICAgICBcImJhelwiOiBcIjEuMi4zXCJcbiAqICAgfVwiXG4gKiA+XG4gKiAgIDxza3ktZG9jcy1jb2RlLWV4YW1wbGU+XG4gKiAgIDwvc2t5LWRvY3MtY29kZS1leGFtcGxlPlxuICogPC9za3ktZG9jcy1jb2RlLWV4YW1wbGVzPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kb2NzLWNvZGUtZXhhbXBsZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kZS1leGFtcGxlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZGUtZXhhbXBsZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9jc0NvZGVFeGFtcGxlc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuXG4gIC8qKlxuICAgKiBBbnkgZXh0cmEgTlBNIHBhY2thZ2UgZGVwZW5kZW5jaWVzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIGVkaXRvciB0byBydW4gdGhlIGNvZGUgZXhhbXBsZS5cbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFja2FnZURlcGVuZGVuY2llcyh2YWx1ZTogU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzKSB7XG4gICAgdGhpcy5fcGFja2FnZURlcGVuZGVuY2llcyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWNrYWdlRGVwZW5kZW5jaWVzKCk6IFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIHRoaXMuX3BhY2thZ2VEZXBlbmRlbmNpZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgY29kZUV4YW1wbGVzOiBTa3lEb2NzQ29kZUV4YW1wbGVbXSA9IFtdO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5RG9jc0NvZGVFeGFtcGxlQ29tcG9uZW50KVxuICBwcml2YXRlIGNvZGVFeGFtcGxlQ29tcG9uZW50czogUXVlcnlMaXN0PFNreURvY3NDb2RlRXhhbXBsZUNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBfcGFja2FnZURlcGVuZGVuY2llczogU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWRpdG9yU2VydmljZTogU2t5RG9jc0NvZGVFeGFtcGxlc0VkaXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzb3VyY2VDb2RlU2VydmljZTogU2t5RG9jc1NvdXJjZUNvZGVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGVFeGFtcGxlQ29tcG9uZW50cy5mb3JFYWNoKChjb21wb25lbnQpID0+IHtcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoZSBzb3VyY2UgY29kZSBwYXRoIGVuZHMgaW4gYSBzbGFzaCwgc28gdGhhdCBzaW1pbGFybHkgbmFtZWQgZGlyZWN0b3JpZXMgYXJlbid0IGluY2x1ZGVkLlxuICAgICAgbGV0IHNvdXJjZUNvZGVQYXRoID0gY29tcG9uZW50LnNvdXJjZUNvZGVQYXRoO1xuICAgICAgaWYgKHNvdXJjZUNvZGVQYXRoLnNsaWNlKC0xKSAhPT0gJy8nKSB7XG4gICAgICAgIHNvdXJjZUNvZGVQYXRoICs9ICcvJztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc291cmNlQ29kZSA9IHRoaXMuc291cmNlQ29kZVNlcnZpY2UuZ2V0U291cmNlQ29kZShzb3VyY2VDb2RlUGF0aCk7XG5cbiAgICAgIGlmICghc291cmNlQ29kZS5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBTb3VyY2UgY29kZSBub3QgZm91bmQgYXQgbG9jYXRpb24gXCIke3NvdXJjZUNvZGVQYXRofVwiIGZvciBcIiR7Y29tcG9uZW50LmhlYWRpbmd9XCIhYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb2RlRXhhbXBsZXMucHVzaCh7XG4gICAgICAgIGhlYWRpbmc6IGNvbXBvbmVudC5oZWFkaW5nLFxuICAgICAgICBwYWNrYWdlRGVwZW5kZW5jaWVzOiB0aGlzLnBhY2thZ2VEZXBlbmRlbmNpZXMsXG4gICAgICAgIHNvdXJjZUNvZGUsXG4gICAgICAgIHRoZW1lOiBjb21wb25lbnQudGhlbWVcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxhdW5jaEVkaXRvcihjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmxhdW5jaEVkaXRvcihjb2RlRXhhbXBsZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgb25lIG9mIFByaXNtSlMncyBzdXBwb3J0ZWQgbGFuZ3VhZ2UgdHlwZXMuXG4gICAqIFNlZTogaHR0cHM6Ly9wcmlzbWpzLmNvbS8jc3VwcG9ydGVkLWxhbmd1YWdlc1xuICAgKi9cbiAgcHVibGljIHBhcnNlQ29kZUxhbmd1YWdlVHlwZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlTmFtZS5zcGxpdCgnLicpLnBvcCgpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBzd2l0Y2ggKGV4dGVuc2lvbikge1xuICAgICAgY2FzZSAndHMnOlxuICAgICAgICByZXR1cm4gJ3R5cGVzY3JpcHQnO1xuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIHJldHVybiAnbWFya3VwJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBleHRlbnNpb247XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiY29kZUV4YW1wbGVzICYmIGNvZGVFeGFtcGxlcy5sZW5ndGhcIlxuICBjbGFzcz1cInNreS1kb2NzLWNvZGUtZXhhbXBsZXNcIlxuPlxuICA8c2t5LXJlcGVhdGVyICpuZ0lmPVwiY29kZUV4YW1wbGVzLmxlbmd0aCA+IDEgZWxzZSBzaW5nbGVDb2RlRXhhbXBsZVwiXG4gICAgZXhwYW5kTW9kZT1cIm11bHRpcGxlXCJcbiAgPlxuICAgIDxza3ktcmVwZWF0ZXItaXRlbSAqbmdGb3I9XCJsZXQgY29kZUV4YW1wbGUgb2YgY29kZUV4YW1wbGVzXCJcbiAgICAgIFtpc0V4cGFuZGVkXT1cImZhbHNlXCJcbiAgICA+XG4gICAgICA8c2t5LXJlcGVhdGVyLWl0ZW0tdGl0bGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2RlRXhhbXBsZUhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjb2RlRXhhbXBsZX1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NreS1yZXBlYXRlci1pdGVtLXRpdGxlPlxuICAgICAgPHNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2RlRXhhbXBsZVRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjb2RlRXhhbXBsZX1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgPC9za3ktcmVwZWF0ZXItaXRlbT5cbiAgPC9za3ktcmVwZWF0ZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlPlxuICA8bmctY29udGVudFxuICAgIHNlbGVjdD1cInNreS1kb2NzLWNvZGUtZXhhbXBsZVwiXG4gID5cbiAgPC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gIGxldC1pdGVtXG4gICNjb2RlRXhhbXBsZVRlbXBsYXRlXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktZG9jcy1jb2RlLWV4YW1wbGUtd3JhcHBlclwiPlxuICAgIDxza3ktdmVydGljYWwtdGFic2V0ICpuZ0lmPVwiaXRlbS5zb3VyY2VDb2RlICYmIGl0ZW0uc291cmNlQ29kZS5sZW5ndGhcIj5cbiAgICAgIDxza3ktdmVydGljYWwtdGFiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGl0ZW0uc291cmNlQ29kZTsgbGV0IGkgPSBpbmRleDtcIlxuICAgICAgICBbYWN0aXZlXT1cImkgPT09IDBcIlxuICAgICAgICBbdGFiSGVhZGluZ109XCJmaWxlLmZpbGVOYW1lXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1jb2RlLWJsb2NrXG4gICAgICAgICAgW2NvZGVdPVwiZmlsZS5yYXdDb250ZW50c1wiXG4gICAgICAgICAgW2xhbmd1YWdlVHlwZV09XCJwYXJzZUNvZGVMYW5ndWFnZVR5cGUoZmlsZS5maWxlTmFtZSlcIlxuICAgICAgICA+XG4gICAgICAgIDwvc2t5LWNvZGUtYmxvY2s+XG4gICAgICA8L3NreS12ZXJ0aWNhbC10YWI+XG4gICAgPC9za3ktdmVydGljYWwtdGFic2V0PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjc2luZ2xlQ29kZUV4YW1wbGVcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvZGVFeGFtcGxlSGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvZGVFeGFtcGxlc1swXX1cIj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2RlRXhhbXBsZVRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjb2RlRXhhbXBsZXNbMF19XCI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gIGxldC1jb2RlRXhhbXBsZVxuICAjY29kZUV4YW1wbGVIZWFkZXJUZW1wbGF0ZVxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZG9jcy1jb2RlLWV4YW1wbGUtaGVhZGVyXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWRvY3MtY29kZS1leGFtcGxlLWhlYWRlci10aXRsZSBza3ktZW1waGFzaXplZFwiXG4gICAgPlxuICAgICAge3sgY29kZUV4YW1wbGUuaGVhZGluZyB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWRvY3MtY29kZS1leGFtcGxlLWhlYWRlci1jb250cm9sc1wiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJsYXVuY2hFZGl0b3IoY29kZUV4YW1wbGUpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICBpY29uPVwicGVuY2lsXCJcbiAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgIHt7ICdza3ktZG9jcy1jb2RlLWV4YW1wbGUtbGF1bmNoLWJ1dHRvbi1sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUVOLE1BQU0sZUFBZSxDQUFDO0FBVXZCLE9BQU8sRUFDTCwyQkFBMkIsRUFDNUIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQVVsQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU9ILE1BQU0sT0FBTyw0QkFBNEI7SUF5QnZDLFlBQ1UsYUFBK0MsRUFDL0MsaUJBQTJDO1FBRDNDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQztRQUMvQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBWDlDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBRTNCLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQztJQVUzQyxDQUFDO0lBMUJMOzs7T0FHRztJQUNILElBQ1csbUJBQW1CLENBQUMsS0FBMkM7UUFDeEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFpQk0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUUvQyx1R0FBdUc7WUFDdkcsSUFBSSxjQUFjLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQztZQUM5QyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ3BDLGNBQWMsSUFBSSxHQUFHLENBQUM7YUFDdkI7WUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXhFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxjQUFjLFVBQVUsU0FBUyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ2xHLE9BQU87YUFDUjtZQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNyQixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87Z0JBQzFCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7Z0JBQzdDLFVBQVU7Z0JBQ1YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWSxDQUFDLFdBQStCO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxxQkFBcUIsQ0FBQyxRQUFnQjtRQUMzQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTFELFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssSUFBSTtnQkFDUCxPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxRQUFRLENBQUM7WUFDbEI7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDSCxDQUFDOzswSEEzRVUsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsd0xBb0J0QiwyQkFBMkIsNkJDdEU5QywwNEVBb0ZjOzRGRGxDRCw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7b0JBQzdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4SkFRWSxtQkFBbUI7c0JBRDdCLEtBQUs7Z0JBVUMsV0FBVztzQkFEakIsS0FBSztnQkFNRSxxQkFBcUI7c0JBRDVCLGVBQWU7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBJbnB1dCxcbiAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzU291cmNlQ29kZVNlcnZpY2Vcbn0gZnJvbSAnLi4vc291cmNlLWNvZGUvc291cmNlLWNvZGUuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDb2RlRXhhbXBsZXNFZGl0b3JTZXJ2aWNlXG59IGZyb20gJy4vY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDb2RlRXhhbXBsZUNvbXBvbmVudFxufSBmcm9tICcuL2NvZGUtZXhhbXBsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXNcbn0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtbW9kdWxlLWRlcGVuZGVuY2llcyc7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDb2RlRXhhbXBsZVxufSBmcm9tICcuL2NvZGUtZXhhbXBsZSc7XG5cbi8qKlxuICogV3JhcHMgYWxsIGNvZGUgZXhhbXBsZXMgYW5kIGhhbmRsZXMgdGhlaXIgY29uZmlndXJhdGlvbiBhbmQgc3R5bGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYFxuICogPHNreS1kb2NzLWNvZGUtZXhhbXBsZXNcbiAqICAgW3BhY2thZ2VEZXBlbmRlbmNpZXNdPVwie1xuICogICAgIFwiZm9vYmFyXCI6IFwiKlwiLFxuICogICAgIFwiYmF6XCI6IFwiMS4yLjNcIlxuICogICB9XCJcbiAqID5cbiAqICAgPHNreS1kb2NzLWNvZGUtZXhhbXBsZT5cbiAqICAgPC9za3ktZG9jcy1jb2RlLWV4YW1wbGU+XG4gKiA8L3NreS1kb2NzLWNvZGUtZXhhbXBsZXM+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRvY3MtY29kZS1leGFtcGxlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2RlLWV4YW1wbGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kZS1leGFtcGxlcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzQ29kZUV4YW1wbGVzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgLyoqXG4gICAqIEFueSBleHRyYSBOUE0gcGFja2FnZSBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgbmVlZGVkIGZvciB0aGUgZWRpdG9yIHRvIHJ1biB0aGUgY29kZSBleGFtcGxlLlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYWNrYWdlRGVwZW5kZW5jaWVzKHZhbHVlOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMpIHtcbiAgICB0aGlzLl9wYWNrYWdlRGVwZW5kZW5jaWVzID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhY2thZ2VEZXBlbmRlbmNpZXMoKTogU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4gdGhpcy5fcGFja2FnZURlcGVuZGVuY2llcyB8fCB7fTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdHlsZXNoZWV0czogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgY29kZUV4YW1wbGVzOiBTa3lEb2NzQ29kZUV4YW1wbGVbXSA9IFtdO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5RG9jc0NvZGVFeGFtcGxlQ29tcG9uZW50KVxuICBwcml2YXRlIGNvZGVFeGFtcGxlQ29tcG9uZW50czogUXVlcnlMaXN0PFNreURvY3NDb2RlRXhhbXBsZUNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBfcGFja2FnZURlcGVuZGVuY2llczogU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWRpdG9yU2VydmljZTogU2t5RG9jc0NvZGVFeGFtcGxlc0VkaXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzb3VyY2VDb2RlU2VydmljZTogU2t5RG9jc1NvdXJjZUNvZGVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGVFeGFtcGxlQ29tcG9uZW50cy5mb3JFYWNoKChjb21wb25lbnQpID0+IHtcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoZSBzb3VyY2UgY29kZSBwYXRoIGVuZHMgaW4gYSBzbGFzaCwgc28gdGhhdCBzaW1pbGFybHkgbmFtZWQgZGlyZWN0b3JpZXMgYXJlbid0IGluY2x1ZGVkLlxuICAgICAgbGV0IHNvdXJjZUNvZGVQYXRoID0gY29tcG9uZW50LnNvdXJjZUNvZGVQYXRoO1xuICAgICAgaWYgKHNvdXJjZUNvZGVQYXRoLnNsaWNlKC0xKSAhPT0gJy8nKSB7XG4gICAgICAgIHNvdXJjZUNvZGVQYXRoICs9ICcvJztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc291cmNlQ29kZSA9IHRoaXMuc291cmNlQ29kZVNlcnZpY2UuZ2V0U291cmNlQ29kZShzb3VyY2VDb2RlUGF0aCk7XG5cbiAgICAgIGlmICghc291cmNlQ29kZS5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBTb3VyY2UgY29kZSBub3QgZm91bmQgYXQgbG9jYXRpb24gXCIke3NvdXJjZUNvZGVQYXRofVwiIGZvciBcIiR7Y29tcG9uZW50LmhlYWRpbmd9XCIhYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb2RlRXhhbXBsZXMucHVzaCh7XG4gICAgICAgIGhlYWRpbmc6IGNvbXBvbmVudC5oZWFkaW5nLFxuICAgICAgICBwYWNrYWdlRGVwZW5kZW5jaWVzOiB0aGlzLnBhY2thZ2VEZXBlbmRlbmNpZXMsXG4gICAgICAgIHNvdXJjZUNvZGUsXG4gICAgICAgIHN0eWxlc2hlZXRzOiB0aGlzLnN0eWxlc2hlZXRzLFxuICAgICAgICB0aGVtZTogY29tcG9uZW50LnRoZW1lXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBsYXVuY2hFZGl0b3IoY29kZUV4YW1wbGU6IFNreURvY3NDb2RlRXhhbXBsZSk6IHZvaWQge1xuICAgIHRoaXMuZWRpdG9yU2VydmljZS5sYXVuY2hFZGl0b3IoY29kZUV4YW1wbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIG9uZSBvZiBQcmlzbUpTJ3Mgc3VwcG9ydGVkIGxhbmd1YWdlIHR5cGVzLlxuICAgKiBTZWU6IGh0dHBzOi8vcHJpc21qcy5jb20vI3N1cHBvcnRlZC1sYW5ndWFnZXNcbiAgICovXG4gIHB1YmxpYyBwYXJzZUNvZGVMYW5ndWFnZVR5cGUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZU5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoIChleHRlbnNpb24pIHtcbiAgICAgIGNhc2UgJ3RzJzpcbiAgICAgICAgcmV0dXJuICd0eXBlc2NyaXB0JztcbiAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgICByZXR1cm4gJ21hcmt1cCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZXh0ZW5zaW9uO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImNvZGVFeGFtcGxlcyAmJiBjb2RlRXhhbXBsZXMubGVuZ3RoXCJcbiAgY2xhc3M9XCJza3ktZG9jcy1jb2RlLWV4YW1wbGVzXCJcbj5cbiAgPHNreS1yZXBlYXRlciAqbmdJZj1cImNvZGVFeGFtcGxlcy5sZW5ndGggPiAxIGVsc2Ugc2luZ2xlQ29kZUV4YW1wbGVcIlxuICAgIGV4cGFuZE1vZGU9XCJtdWx0aXBsZVwiXG4gID5cbiAgICA8c2t5LXJlcGVhdGVyLWl0ZW0gKm5nRm9yPVwibGV0IGNvZGVFeGFtcGxlIG9mIGNvZGVFeGFtcGxlc1wiXG4gICAgICBbaXNFeHBhbmRlZF09XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPHNreS1yZXBlYXRlci1pdGVtLXRpdGxlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29kZUV4YW1wbGVIZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY29kZUV4YW1wbGV9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS10aXRsZT5cbiAgICAgIDxza3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29kZUV4YW1wbGVUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY29kZUV4YW1wbGV9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0+XG4gIDwvc2t5LXJlcGVhdGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnRcbiAgICBzZWxlY3Q9XCJza3ktZG9jcy1jb2RlLWV4YW1wbGVcIlxuICA+XG4gIDwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICBsZXQtaXRlbVxuICAjY29kZUV4YW1wbGVUZW1wbGF0ZVxuPlxuICA8ZGl2IGNsYXNzPVwic2t5LWRvY3MtY29kZS1leGFtcGxlLXdyYXBwZXJcIj5cbiAgICA8c2t5LXZlcnRpY2FsLXRhYnNldCAqbmdJZj1cIml0ZW0uc291cmNlQ29kZSAmJiBpdGVtLnNvdXJjZUNvZGUubGVuZ3RoXCI+XG4gICAgICA8c2t5LXZlcnRpY2FsLXRhYiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBpdGVtLnNvdXJjZUNvZGU7IGxldCBpID0gaW5kZXg7XCJcbiAgICAgICAgW2FjdGl2ZV09XCJpID09PSAwXCJcbiAgICAgICAgW3RhYkhlYWRpbmddPVwiZmlsZS5maWxlTmFtZVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktY29kZS1ibG9ja1xuICAgICAgICAgIFtjb2RlXT1cImZpbGUucmF3Q29udGVudHNcIlxuICAgICAgICAgIFtsYW5ndWFnZVR5cGVdPVwicGFyc2VDb2RlTGFuZ3VhZ2VUeXBlKGZpbGUuZmlsZU5hbWUpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jb2RlLWJsb2NrPlxuICAgICAgPC9za3ktdmVydGljYWwtdGFiPlxuICAgIDwvc2t5LXZlcnRpY2FsLXRhYnNldD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3NpbmdsZUNvZGVFeGFtcGxlXG4+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2RlRXhhbXBsZUhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjb2RlRXhhbXBsZXNbMF19XCI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29kZUV4YW1wbGVUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY29kZUV4YW1wbGVzWzBdfVwiPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICBsZXQtY29kZUV4YW1wbGVcbiAgI2NvZGVFeGFtcGxlSGVhZGVyVGVtcGxhdGVcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWRvY3MtY29kZS1leGFtcGxlLWhlYWRlclwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1kb2NzLWNvZGUtZXhhbXBsZS1oZWFkZXItdGl0bGUgc2t5LWVtcGhhc2l6ZWRcIlxuICAgID5cbiAgICAgIHt7IGNvZGVFeGFtcGxlLmhlYWRpbmcgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1kb2NzLWNvZGUtZXhhbXBsZS1oZWFkZXItY29udHJvbHNcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwibGF1bmNoRWRpdG9yKGNvZGVFeGFtcGxlKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgaWNvbj1cInBlbmNpbFwiXG4gICAgICAgID48L3NreS1pY29uPlxuICAgICAgICB7eyAnc2t5LWRvY3MtY29kZS1leGFtcGxlLWxhdW5jaC1idXR0b24tbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -274,7 +274,7 @@ class SkyDocsCodeExamplesEditorService {
274
274
  }
275
275
  }
276
276
  }
277
- const files = this.parseStackBlitzFiles(codeExample.sourceCode, mergedDependencies, codeExample.theme);
277
+ const files = this.parseStackBlitzFiles(codeExample.sourceCode, mergedDependencies, codeExample.theme, codeExample.stylesheets);
278
278
  return {
279
279
  files,
280
280
  title: 'SKY UX Demo',
@@ -288,7 +288,7 @@ class SkyDocsCodeExamplesEditorService {
288
288
  }
289
289
  };
290
290
  }
291
- parseStackBlitzFiles(sourceCode, dependencies, theme) {
291
+ parseStackBlitzFiles(sourceCode, dependencies, theme, stylesheets = []) {
292
292
  const srcPath = 'src/';
293
293
  const appPath = `${srcPath}app/`;
294
294
  const banner = `/**
@@ -297,10 +297,9 @@ class SkyDocsCodeExamplesEditorService {
297
297
  **/
298
298
  `;
299
299
  const moduleImportStatements = [
300
- `import {\n Component,\n NgModule\n} from '@angular/core';`,
300
+ `import {\n NgModule\n} from '@angular/core';`,
301
301
  `import {\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';`,
302
- `import {\n platformBrowserDynamic\n} from '@angular/platform-browser-dynamic';`,
303
- `import {\n BrowserModule\n} from '@angular/platform-browser';`,
302
+ `import {\n BrowserAnimationsModule\n} from '@angular/platform-browser/animations';`,
304
303
  `import {\n RouterModule\n} from '@angular/router';`,
305
304
  `import {\n SkyAppLocaleProvider\n} from '@skyux/i18n';`,
306
305
  `import {\n SkyThemeService\n} from '@skyux/theme';`,
@@ -308,7 +307,7 @@ class SkyDocsCodeExamplesEditorService {
308
307
  `import {\n AppComponent\n} from './app.component';`
309
308
  ];
310
309
  const moduleImports = [
311
- 'BrowserModule',
310
+ 'BrowserAnimationsModule',
312
311
  'FormsModule',
313
312
  'ReactiveFormsModule',
314
313
  'RouterModule.forRoot([])'
@@ -351,16 +350,16 @@ export class AppComponent {
351
350
  themeSvc: SkyThemeService,
352
351
  renderer?: Renderer2
353
352
  ) {
354
- const themeSettings = new SkyThemeSettings(
355
- SkyTheme.presets['${theme === SkyDocsCodeExampleTheme.Modern ? 'modern' : 'default'}'],
356
- SkyThemeMode.presets.light
357
- );
358
-
359
- themeSvc.init(
360
- document.body,
361
- renderer,
362
- themeSettings
363
- );
353
+ const themeSettings = new SkyThemeSettings(
354
+ SkyTheme.presets['${theme === SkyDocsCodeExampleTheme.Modern ? 'modern' : 'default'}'],
355
+ SkyThemeMode.presets.light
356
+ );
357
+
358
+ themeSvc.init(
359
+ document.body,
360
+ renderer,
361
+ themeSettings
362
+ );
364
363
  }
365
364
 
366
365
  }`;
@@ -403,10 +402,6 @@ export class AppModule { }
403
402
  files[`${srcPath}main.ts`] = `${banner}
404
403
  import './polyfills';
405
404
 
406
- import {
407
- enableProdMode
408
- } from '@angular/core';
409
-
410
405
  import {
411
406
  platformBrowserDynamic
412
407
  } from '@angular/platform-browser-dynamic';
@@ -432,6 +427,7 @@ body {
432
427
  background-color: #fff;
433
428
  margin: 15px;
434
429
  }`;
430
+ stylesheets.push("src/styles.scss");
435
431
  files['angular.json'] = `{
436
432
  "projects": {
437
433
  "demo": {
@@ -439,9 +435,7 @@ body {
439
435
  "build": {
440
436
  "options": {
441
437
  "index": "src/index.html",
442
- "styles": [
443
- "src/styles.scss"
444
- ]
438
+ "styles": ${JSON.stringify(stylesheets)}
445
439
  }
446
440
  }
447
441
  }
@@ -583,6 +577,7 @@ class SkyDocsCodeExamplesComponent {
583
577
  constructor(editorService, sourceCodeService) {
584
578
  this.editorService = editorService;
585
579
  this.sourceCodeService = sourceCodeService;
580
+ this.stylesheets = [];
586
581
  this.codeExamples = [];
587
582
  }
588
583
  /**
@@ -611,6 +606,7 @@ class SkyDocsCodeExamplesComponent {
611
606
  heading: component.heading,
612
607
  packageDependencies: this.packageDependencies,
613
608
  sourceCode,
609
+ stylesheets: this.stylesheets,
614
610
  theme: component.theme
615
611
  });
616
612
  });
@@ -635,7 +631,7 @@ class SkyDocsCodeExamplesComponent {
635
631
  }
636
632
  }
637
633
  SkyDocsCodeExamplesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDocsCodeExamplesComponent, deps: [{ token: SkyDocsCodeExamplesEditorService }, { token: SkyDocsSourceCodeService }], target: i0.ɵɵFactoryTarget.Component });
638
- SkyDocsCodeExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDocsCodeExamplesComponent, selector: "sky-docs-code-examples", inputs: { packageDependencies: "packageDependencies" }, queries: [{ propertyName: "codeExampleComponents", predicate: SkyDocsCodeExampleComponent }], ngImport: i0, template: "<div *ngIf=\"codeExamples && codeExamples.length\"\n class=\"sky-docs-code-examples\"\n>\n <sky-repeater *ngIf=\"codeExamples.length > 1 else singleCodeExample\"\n expandMode=\"multiple\"\n >\n <sky-repeater-item *ngFor=\"let codeExample of codeExamples\"\n [isExpanded]=\"false\"\n >\n <sky-repeater-item-title>\n <ng-container *ngTemplateOutlet=\"codeExampleHeaderTemplate; context: {$implicit: codeExample}\">\n </ng-container>\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n <ng-container *ngTemplateOutlet=\"codeExampleTemplate; context: {$implicit: codeExample}\">\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n</div>\n\n<ng-template>\n <ng-content\n select=\"sky-docs-code-example\"\n >\n </ng-content>\n</ng-template>\n\n<ng-template\n let-item\n #codeExampleTemplate\n>\n <div class=\"sky-docs-code-example-wrapper\">\n <sky-vertical-tabset *ngIf=\"item.sourceCode && item.sourceCode.length\">\n <sky-vertical-tab *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\n #singleCodeExample\n>\n <ng-container *ngTemplateOutlet=\"codeExampleHeaderTemplate; context: {$implicit: codeExamples[0]}\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"codeExampleTemplate; context: {$implicit: codeExamples[0]}\">\n </ng-container>\n</ng-template>\n\n<ng-template\n let-codeExample\n #codeExampleHeaderTemplate\n>\n <div\n class=\"sky-docs-code-example-header\"\n >\n <div\n class=\"sky-docs-code-example-header-title sky-emphasized\"\n >\n {{ codeExample.heading }}\n </div>\n <div\n class=\"sky-docs-code-example-header-controls\"\n >\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"launchEditor(codeExample);$event.stopPropagation();\"\n >\n <sky-icon\n icon=\"pencil\"\n ></sky-icon>\n {{ 'sky-docs-code-example-launch-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</ng-template>", 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:normal}.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: ["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", "ariaRole", "maintainTabContent"], outputs: ["activeChange"] }, { type: i4.λ4, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaInvalid", "ariaRequired", "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 });
634
+ SkyDocsCodeExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", 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\"\n class=\"sky-docs-code-examples\"\n>\n <sky-repeater *ngIf=\"codeExamples.length > 1 else singleCodeExample\"\n expandMode=\"multiple\"\n >\n <sky-repeater-item *ngFor=\"let codeExample of codeExamples\"\n [isExpanded]=\"false\"\n >\n <sky-repeater-item-title>\n <ng-container *ngTemplateOutlet=\"codeExampleHeaderTemplate; context: {$implicit: codeExample}\">\n </ng-container>\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n <ng-container *ngTemplateOutlet=\"codeExampleTemplate; context: {$implicit: codeExample}\">\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n</div>\n\n<ng-template>\n <ng-content\n select=\"sky-docs-code-example\"\n >\n </ng-content>\n</ng-template>\n\n<ng-template\n let-item\n #codeExampleTemplate\n>\n <div class=\"sky-docs-code-example-wrapper\">\n <sky-vertical-tabset *ngIf=\"item.sourceCode && item.sourceCode.length\">\n <sky-vertical-tab *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\n #singleCodeExample\n>\n <ng-container *ngTemplateOutlet=\"codeExampleHeaderTemplate; context: {$implicit: codeExamples[0]}\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"codeExampleTemplate; context: {$implicit: codeExamples[0]}\">\n </ng-container>\n</ng-template>\n\n<ng-template\n let-codeExample\n #codeExampleHeaderTemplate\n>\n <div\n class=\"sky-docs-code-example-header\"\n >\n <div\n class=\"sky-docs-code-example-header-title sky-emphasized\"\n >\n {{ codeExample.heading }}\n </div>\n <div\n class=\"sky-docs-code-example-header-controls\"\n >\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"launchEditor(codeExample);$event.stopPropagation();\"\n >\n <sky-icon\n icon=\"pencil\"\n ></sky-icon>\n {{ 'sky-docs-code-example-launch-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</ng-template>", 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:normal}.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: ["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", "ariaRole", "maintainTabContent"], outputs: ["activeChange"] }, { type: i4.λ4, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaInvalid", "ariaRequired", "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 });
639
635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDocsCodeExamplesComponent, decorators: [{
640
636
  type: Component,
641
637
  args: [{
@@ -646,6 +642,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
646
642
  }]
647
643
  }], ctorParameters: function () { return [{ type: SkyDocsCodeExamplesEditorService }, { type: SkyDocsSourceCodeService }]; }, propDecorators: { packageDependencies: [{
648
644
  type: Input
645
+ }], stylesheets: [{
646
+ type: Input
649
647
  }], codeExampleComponents: [{
650
648
  type: ContentChildren,
651
649
  args: [SkyDocsCodeExampleComponent]