@skyux/docs-tools 10.0.0 → 10.1.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.
@@ -8,8 +8,8 @@ import * as i0 from "@angular/core";
8
8
  * @internal
9
9
  */
10
10
  export class SkyDocsCodeExamplesEditorService {
11
- launchEditor(codeExample) {
12
- const project = this.#getPayload(codeExample);
11
+ launchEditor(codeExample, template = 'angular-cli') {
12
+ const project = this.#getPayload(codeExample, template);
13
13
  const openFile = [];
14
14
  if (project.files['src/app/demo.component.html']) {
15
15
  openFile.push('src/app/demo.component.html');
@@ -22,7 +22,7 @@ export class SkyDocsCodeExamplesEditorService {
22
22
  };
23
23
  StackBlitzSDK.openProject(project, options);
24
24
  }
25
- #getPayload(codeExample) {
25
+ #getPayload(codeExample, template) {
26
26
  const angularVersion = `^${ANGULAR_VERSION.major}`;
27
27
  const skyuxVersion = `^${SKY_UX_VERSION.full}`;
28
28
  const defaultDependencies = {
@@ -44,6 +44,7 @@ export class SkyDocsCodeExamplesEditorService {
44
44
  '@skyux/core': skyuxVersion,
45
45
  '@skyux/errors': skyuxVersion,
46
46
  '@skyux/forms': skyuxVersion,
47
+ '@skyux/help-inline': skyuxVersion,
47
48
  '@skyux/i18n': skyuxVersion,
48
49
  '@skyux/indicators': skyuxVersion,
49
50
  '@skyux/layout': skyuxVersion,
@@ -52,12 +53,12 @@ export class SkyDocsCodeExamplesEditorService {
52
53
  '@skyux/popovers': skyuxVersion,
53
54
  '@skyux/router': skyuxVersion,
54
55
  '@skyux/theme': skyuxVersion,
55
- '@types/jasmine': '~4.3.1',
56
- 'ng2-dragula': '^5.0.1',
56
+ '@types/jasmine': '~5.1.4',
57
+ 'ng2-dragula': '5.1.0',
57
58
  rxjs: '^7',
58
- tslib: '^2.5.0',
59
- typescript: '~5.1.6',
60
- 'zone.js': '~0.13.1',
59
+ tslib: '^2.6.2',
60
+ typescript: '~5.3.3',
61
+ 'zone.js': '~0.14.4',
61
62
  };
62
63
  const mergedDependencies = Object.assign({}, defaultDependencies, codeExample.packageDependencies);
63
64
  // Ensure any @skyux dependencies list the correct version of SKY UX.
@@ -77,8 +78,7 @@ export class SkyDocsCodeExamplesEditorService {
77
78
  files,
78
79
  title: 'SKY UX Demo',
79
80
  description: 'SKY UX Demo',
80
- template: 'angular-cli',
81
- // template: 'node', // web-container
81
+ template,
82
82
  dependencies: mergedDependencies,
83
83
  settings: {
84
84
  compile: {
@@ -377,4 +377,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
377
377
  providedIn: 'root',
378
378
  }]
379
379
  }] });
380
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxJQUFJLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxJQUFJLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBVTVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUUvRDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQ0FBZ0M7SUFDcEMsWUFBWSxDQUFDLFdBQStCO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBQzlCLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLENBQUM7WUFDakQsUUFBUSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO1lBQ3RELFFBQVEsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQTBCO1lBQ3JDLFFBQVE7U0FDVCxDQUFDO1FBRUYsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FB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YmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWRVJTSU9OIGFzIFNLWV9VWF9WRVJTSU9OIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgVkVSU0lPTiBhcyBTS1lfVVhfSUNPTlNfVkVSU0lPTiB9IGZyb20gJ0Bza3l1eC9pY29ucyc7XG5pbXBvcnQgU3RhY2tCbGl0elNESyBmcm9tICdAc3RhY2tibGl0ei9zZGsnO1xuaW1wb3J0IHtcbiAgT3Blbk9wdGlvbnMgYXMgU3RhY2tCbGl0ek9wZW5PcHRpb25zLFxuICBQcm9qZWN0IGFzIFN0YWNrQmxpdHpQcm9qZWN0LFxufSBmcm9tICdAc3RhY2tibGl0ei9zZGsnO1xuXG5pbXBvcnQgeyBTa3lEb2NzU291cmNlQ29kZUZpbGUgfSBmcm9tICcuLi9zb3VyY2UtY29kZS9zb3VyY2UtY29kZS1maWxlJztcblxuaW1wb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlIH0gZnJvbSAnLi9jb2RlLWV4YW1wbGUnO1xuaW1wb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtbW9kdWxlLWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBTa3lEb2NzQ29kZUV4YW1wbGVUaGVtZSB9IGZyb20gJy4vY29kZS1leGFtcGxlLXRoZW1lJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreURvY3NDb2RlRXhhbXBsZXNFZGl0b3JTZXJ2aWNlIHtcbiAgcHVibGljIGxhdW5jaEVkaXRvcihjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlKTogdm9pZCB7XG4gICAgY29uc3QgcHJvamVjdCA9IHRoaXMuI2dldFBheWxvYWQoY29kZUV4YW1wbGUpO1xuICAgIGNvbnN0IG9wZW5GaWxlOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChwcm9qZWN0LmZpbGVzWydzcmMvYXBwL2RlbW8uY29tcG9uZW50Lmh0bWwnXSkge1xuICAgICAgb3BlbkZpbGUucHVzaCgnc3JjL2FwcC9kZW1vLmNvbXBvbmVudC5odG1sJyk7XG4gICAgfSBlbHNlIGlmIChwcm9qZWN0LmZpbGVzWydzcmMvYXBwL2RlbW8uY29tcG9uZW50LnRzJ10pIHtcbiAgICAgIG9wZW5GaWxlLnB1c2goJ3NyYy9hcHAvZGVtby5jb21wb25lbnQudHMnKTtcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9uczogU3RhY2tCbGl0ek9wZW5PcHRpb25zID0ge1xuICAgICAgb3BlbkZpbGUsXG4gICAgfTtcblxuICAgIFN0YWNrQmxpdHpTREsub3BlblByb2plY3QocHJvamVjdCwgb3B0aW9ucyk7XG4gIH1cblxuICAjZ2V0UGF5bG9hZChjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlKTogU3RhY2tCbGl0elByb2plY3Qge1xuICAgIGNvbnN0IGFuZ3VsYXJWZXJzaW9uID0gYF4ke0FOR1VMQVJfVkVSU0lPTi5tYWpvcn1gO1xuICAgIGNvbnN0IHNreXV4VmVyc2lvbiA9IGBeJHtTS1lfVVhfVkVSU0lPTi5mdWxsfWA7XG5cbiAgICBjb25zdCBkZWZhdWx0RGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMgPSB7XG4gICAgICAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9hbmltYXRpb25zJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY2RrJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY2xpJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tbW9uJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tcGlsZXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb21waWxlci1jbGknOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb3JlJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvZm9ybXMnOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcm91dGVyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQHNreXV4L2FuaW1hdGlvbnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Fzc2V0cyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvY29uZmlnJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9jb3JlJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9lcnJvcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Zvcm1zJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9pMThuJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9pbmRpY2F0b3JzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9sYXlvdXQnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L21vZGFscyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvcGFja2FnZXMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3BvcG92ZXJzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9yb3V0ZXInOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3RoZW1lJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0B0eXBlcy9qYXNtaW5lJzogJ340LjMuMScsXG4gICAgICAnbmcyLWRyYWd1bGEnOiAnXjUuMC4xJyxcbiAgICAgIHJ4anM6ICdeNycsXG4gICAgICB0c2xpYjogJ14yLjUuMCcsXG4gICAgICB0eXBlc2NyaXB0OiAnfjUuMS42JyxcbiAgICAgICd6b25lLmpzJzogJ34wLjEzLjEnLFxuICAgIH07XG5cbiAgICBjb25zdCBtZXJnZWREZXBlbmRlbmNpZXMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBkZWZhdWx0RGVwZW5kZW5jaWVzLFxuICAgICAgY29kZUV4YW1wbGUucGFja2FnZURlcGVuZGVuY2llcyxcbiAgICApO1xuXG4gICAgLy8gRW5zdXJlIGFueSBAc2t5dXggZGVwZW5kZW5jaWVzIGxpc3QgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiBTS1kgVVguXG4gICAgLy8gZS5nLiBgXCJAc2t5dXgvY29yZVwiOiBcIipcImAgLS0+IGBcIkBza3l1eC9jb3JlXCI6IFwiNS4wLjBcImBcbiAgICBmb3IgKGNvbnN0IHBhY2thZ2VOYW1lIGluIG1lcmdlZERlcGVuZGVuY2llcykge1xuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgICBpZiAobWVyZ2VkRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHBhY2thZ2VOYW1lKSkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gbWVyZ2VkRGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHZlcnNpb24gPT09ICcqJyAmJlxuICAgICAgICAgIC9eKEBibGFja2JhdWRcXC9za3l1eC1saWItfEBza3l1eCkvLnRlc3QocGFja2FnZU5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIG1lcmdlZERlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gPSBza3l1eFZlcnNpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWxlcyA9IHRoaXMucGFyc2VTdGFja0JsaXR6RmlsZXMoXG4gICAgICBjb2RlRXhhbXBsZS5zb3VyY2VDb2RlLFxuICAgICAgbWVyZ2VkRGVwZW5kZW5jaWVzLFxuICAgICAgY29kZUV4YW1wbGUudGhlbWUsXG4gICAgICBjb2RlRXhhbXBsZS5zdHlsZXNoZWV0cyxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVzLFxuICAgICAgdGl0bGU6ICdTS1kgVVggRGVtbycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1NLWSBVWCBEZW1vJyxcbiAgICAgIHRlbXBsYXRlOiAnYW5ndWxhci1jbGknLFxuICAgICAgLy8gdGVtcGxhdGU6ICdub2RlJywgLy8gd2ViLWNvbnRhaW5lclxuICAgICAgZGVwZW5kZW5jaWVzOiBtZXJnZWREZXBlbmRlbmNpZXMsXG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICBjb21waWxlOiB7XG4gICAgICAgICAgY2xlYXJDb25zb2xlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VTdGFja0JsaXR6RmlsZXMoXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW10sXG4gICAgZGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMsXG4gICAgdGhlbWU6IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLFxuICAgIHN0eWxlc2hlZXRzOiBzdHJpbmdbXSA9IFtdLFxuICApOiB7XG4gICAgW3BhdGg6IHN0cmluZ106IHN0cmluZztcbiAgfSB7XG4gICAgY29uc3Qgc3JjUGF0aCA9ICdzcmMvJztcbiAgICBjb25zdCBhcHBQYXRoID0gYCR7c3JjUGF0aH1hcHAvYDtcblxuICAgIGNvbnN0IGJhbm5lciA9IGAvKipcbiAqIFRoaXMgZmlsZSBpcyBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgcHJvdmlkZWQgd2hlbiB1c2luZyB0aGUgQW5ndWxhciBDTEkuXG4gKiovXG4gYDtcblxuICAgIGNvbnN0IG1vZHVsZUltcG9ydFN0YXRlbWVudHM6IHN0cmluZ1tdID0gW1xuICAgICAgYGltcG9ydCB7XFxuICBOZ01vZHVsZVxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgRm9ybXNNb2R1bGUsXFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgUm91dGVyTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIFNreUFwcExvY2FsZVByb3ZpZGVyXFxufSBmcm9tICdAc2t5dXgvaTE4bic7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgU2t5VGhlbWVTZXJ2aWNlXFxufSBmcm9tICdAc2t5dXgvdGhlbWUnO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIG9mIGFzIG9ic2VydmFibGVPZlxcbn0gZnJvbSAncnhqcyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgQXBwQ29tcG9uZW50XFxufSBmcm9tICcuL2FwcC5jb21wb25lbnQnO2AsXG4gICAgXTtcblxuICAgIGNvbnN0IG1vZHVsZUltcG9ydHM6IHN0cmluZ1tdID0gW1xuICAgICAgJ0Jyb3dzZXJBbmltYXRpb25zTW9kdWxlJyxcbiAgICAgICdGb3Jtc01vZHVsZScsXG4gICAgICAnUmVhY3RpdmVGb3Jtc01vZHVsZScsXG4gICAgICAnUm91dGVyTW9kdWxlLmZvclJvb3QoW10pJyxcbiAgICBdO1xuXG4gICAgY29uc3QgZmlsZXM6IHsgW186IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICBsZXQgYXBwQ29tcG9uZW50VGVtcGxhdGUgPSAnJztcblxuICAgIHNvdXJjZUNvZGUuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgZmlsZXNbYCR7YXBwUGF0aH0ke2ZpbGUuZmlsZU5hbWV9YF0gPSBmaWxlLnJhd0NvbnRlbnRzO1xuXG4gICAgICAvLyBTZXR1cCBtb2R1bGUgaW1wb3J0cyBhbmQgY29tcG9uZW50IHNlbGVjdG9ycy5cbiAgICAgIGlmIChmaWxlLmZpbGVOYW1lLmluZGV4T2YoJy5tb2R1bGUudHMnKSA+IC0xKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0aGlzLmdldE1vZHVsZU5hbWUoZmlsZS5yYXdDb250ZW50cyk7XG4gICAgICAgIGNvbnN0IGltcG9ydFBhdGggPSBgLi8ke3RoaXMuZ2V0RmlsZW5hbWVOb0V4dGVuc2lvbihmaWxlLmZpbGVOYW1lKX1gO1xuXG4gICAgICAgIGNvbnN0IGV4cG9ydGVkQ29tcG9uZW50ID0gdGhpcy5nZXRFeHBvcnRlZENvbXBvbmVudChmaWxlLnJhd0NvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50U2VsZWN0b3IgPSB0aGlzLmdldENvbXBvbmVudFNlbGVjdG9yKFxuICAgICAgICAgIGV4cG9ydGVkQ29tcG9uZW50LFxuICAgICAgICAgIHNvdXJjZUNvZGUsXG4gICAgICAgICk7XG5cbiAgICAgICAgYXBwQ29tcG9uZW50VGVtcGxhdGUgKz0gYDwke2NvbXBvbmVudFNlbGVjdG9yfT48LyR7Y29tcG9uZW50U2VsZWN0b3J9PmA7XG5cbiAgICAgICAgbW9kdWxlSW1wb3J0cy5wdXNoKG1vZHVsZU5hbWUpO1xuICAgICAgICBtb2R1bGVJbXBvcnRTdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgICAgYGltcG9ydCB7XFxuICAke21vZHVsZU5hbWV9XFxufSBmcm9tICcke2ltcG9ydFBhdGh9JztgLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBTdGFuZGFsb25lIGVudHJ5IGNvbXBvbmVudHMgYXJlIG5hbWVkIGRlbW8uY29tcG9uZW50LnRzLlxuICAgICAgaWYgKGZpbGUuZmlsZU5hbWUgPT09ICdkZW1vLmNvbXBvbmVudC50cycpIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50TmFtZSA9ICdEZW1vQ29tcG9uZW50JztcbiAgICAgICAgY29uc3QgY29tcG9uZW50U2VsZWN0b3IgPSAnYXBwLWRlbW8nO1xuICAgICAgICBjb25zdCBpbXBvcnRQYXRoID0gYC4vJHt0aGlzLmdldEZpbGVuYW1lTm9FeHRlbnNpb24oZmlsZS5maWxlTmFtZSl9YDtcblxuICAgICAgICBhcHBDb21wb25lbnRUZW1wbGF0ZSArPSBgPCR7Y29tcG9uZW50U2VsZWN0b3J9IC8+YDtcblxuICAgICAgICBtb2R1bGVJbXBvcnRzLnB1c2goY29tcG9uZW50TmFtZSk7XG4gICAgICAgIG1vZHVsZUltcG9ydFN0YXRlbWVudHMucHVzaChcbiAgICAgICAgICBgaW1wb3J0IHtcXG4gICR7Y29tcG9uZW50TmFtZX1cXG59IGZyb20gJyR7aW1wb3J0UGF0aH0nO2AsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBmaWxlc1tgJHthcHBQYXRofWFwcC5jb21wb25lbnQudHNgXSA9IGAke2Jhbm5lcn1cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lUaGVtZSxcbiAgU2t5VGhlbWVNb2RlLFxuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3Ncbn0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRlbW8tYXBwJyxcbiAgdGVtcGxhdGU6ICcke2FwcENvbXBvbmVudFRlbXBsYXRlfSdcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0aGVtZVN2YzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgY29uc3QgdGhlbWVTZXR0aW5ncyA9IG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgU2t5VGhlbWUucHJlc2V0c1snJHtcbiAgICAgICAgdGhlbWUgPT09IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLk1vZGVybiA/ICdtb2Rlcm4nIDogJ2RlZmF1bHQnXG4gICAgICB9J10sXG4gICAgICBTa3lUaGVtZU1vZGUucHJlc2V0cy5saWdodFxuICAgICk7XG5cbiAgICB0aGVtZVN2Yy5pbml0KFxuICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgIHJlbmRlcmVyLFxuICAgICAgdGhlbWVTZXR0aW5nc1xuICAgICk7XG4gIH1cblxufWA7XG5cbiAgICBmaWxlc1tgJHthcHBQYXRofWFwcC5tb2R1bGUudHNgXSA9IGAke21vZHVsZUltcG9ydFN0YXRlbWVudHMuam9pbignXFxuXFxuJyl9XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICAke21vZHVsZUltcG9ydHMuam9pbignLFxcbiAgICAnKX1cbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQXBwQ29tcG9uZW50XG4gIF0sXG4gIGJvb3RzdHJhcDogW1xuICAgIEFwcENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lUaGVtZVNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5QXBwTG9jYWxlUHJvdmlkZXIsXG4gICAgICB1c2VWYWx1ZToge1xuICAgICAgICBnZXRMb2NhbGVJbmZvOiAoKSA9PiBvYnNlcnZhYmxlT2Yoe1xuICAgICAgICAgIGxvY2FsZTogJ2VuLVVTJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBNb2R1bGUgeyB9XG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1pbmRleC5odG1sYF0gPSBgPCFkb2N0eXBlIGh0bWw+XG48aHRtbCBsYW5nPVwiZW5cIj5cbjxoZWFkPlxuICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cbiAgPHRpdGxlPlNreSBVWCBEZW1vPC90aXRsZT5cbiAgPGJhc2UgaHJlZj1cIi9cIj5cbiAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCI+XG4gIDwhLS1cbiAgICBUaGUgQ1NTIGxpbmtzIGFyZSBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAgICBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBrbm93biBidWcgdGhhdCBwcmV2ZW50cyBleHRlcm5hbCBpbXBvcnRzIGluIENTUy5cbiAgICBodHRwczovL2dpdGh1Yi5jb20vc3RhY2tibGl0ei9jb3JlL2lzc3Vlcy8xMzNcbiAgLS0+XG4gIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC43LjAvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzXCIgY3Jvc3NvcmlnaW49XCJhbm9ueW1vdXNcIj5cbiAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCJodHRwczovL3NreS5ibGFja2JhdWRjZG4ubmV0L3N0YXRpYy9za3l1eC1pY29ucy8ke1NLWV9VWF9JQ09OU19WRVJTSU9OLmZ1bGx9L2Fzc2V0cy9jc3Mvc2t5dXgtaWNvbnMubWluLmNzc1wiIGNyb3Nzb3JpZ2luPVwiYW5vbnltb3VzXCI+XG48L2hlYWQ+XG48Ym9keT5cbiAgPHNreS1kZW1vLWFwcD5cbiAgICBMb2FkaW5nLi4uXG4gIDwvc2t5LWRlbW8tYXBwPlxuPC9ib2R5PlxuPC9odG1sPlxuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9bWFpbi50c2BdID0gYCR7YmFubmVyfVxuaW1wb3J0ICd6b25lLmpzJztcbmltcG9ydCAnQHNreXV4L3BhY2thZ2VzL3BvbHlmaWxscyc7XG5cbmltcG9ydCB7XG4gIHBsYXRmb3JtQnJvd3NlckR5bmFtaWNcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcblxuaW1wb3J0IHtcbiAgQXBwTW9kdWxlXG59IGZyb20gJy4vYXBwL2FwcC5tb2R1bGUnO1xuXG5wbGF0Zm9ybUJyb3dzZXJEeW5hbWljKClcbiAgLmJvb3RzdHJhcE1vZHVsZShBcHBNb2R1bGUpXG4gIC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuXG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1zdHlsZXMuc2Nzc2BdID0gYEBpbXBvcnQgJ0Bza3l1eC90aGVtZS9jc3Mvc2t5JztcbkBpbXBvcnQgJ0Bza3l1eC90aGVtZS9jc3MvdGhlbWVzL21vZGVybi9zdHlsZXMnO1xuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAxNXB4O1xufWA7XG5cbiAgICBzdHlsZXNoZWV0cy5wdXNoKCdzcmMvc3R5bGVzLnNjc3MnKTtcblxuICAgIGZpbGVzWydhbmd1bGFyLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICAkc2NoZW1hOiAnLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2xpL2xpYi9jb25maWcvc2NoZW1hLmpzb24nLFxuICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgICBwcm9qZWN0czoge1xuICAgICAgICAgIGRlbW86IHtcbiAgICAgICAgICAgIHByb2plY3RUeXBlOiAnYXBwbGljYXRpb24nLFxuICAgICAgICAgICAgcm9vdDogJycsXG4gICAgICAgICAgICBzb3VyY2VSb290OiAnc3JjJyxcbiAgICAgICAgICAgIHByZWZpeDogJ2FwcCcsXG4gICAgICAgICAgICBhcmNoaXRlY3Q6IHtcbiAgICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YnJvd3NlcicsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgaW5kZXg6ICdzcmMvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICAgICAgICBtYWluOiAnc3JjL21haW4udHMnLFxuICAgICAgICAgICAgICAgICAgb3V0cHV0UGF0aDogJ2Rpc3QvZGVtbycsXG4gICAgICAgICAgICAgICAgICB0c0NvbmZpZzogJ3RzY29uZmlnLmFwcC5qc29uJyxcbiAgICAgICAgICAgICAgICAgIGlubGluZVN0eWxlTGFuZ3VhZ2U6ICdzY3NzJyxcbiAgICAgICAgICAgICAgICAgIHN0eWxlczogc3R5bGVzaGVldHMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczoge1xuICAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRPcHRpbWl6ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB2ZW5kb3JDaHVuazogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFjdExpY2Vuc2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lZENodW5rczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2VydmU6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6ZGV2LXNlcnZlcicsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJUYXJnZXQ6ICdkZW1vOmJ1aWxkOmRldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyLFxuICAgICk7XG5cbiAgICBmaWxlc1sncGFja2FnZS5qc29uJ10gPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NreXV4LXNwYS1kZW1vJyxcbiAgICAgICAgdmVyc2lvbjogJzAuMC4wJyxcbiAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICBzY3JpcHRzOiB7XG4gICAgICAgICAgc3RhcnQ6ICduZyBzZXJ2ZScsXG4gICAgICAgICAgYnVpbGQ6ICduZyBidWlsZCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMixcbiAgICApO1xuXG4gICAgZmlsZXNbJ3RzY29uZmlnLmFwcC5qc29uJ10gPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgZXh0ZW5kczogJy4vdHNjb25maWcuanNvbicsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIG91dERpcjogJy4vb3V0LXRzYy9hcHAnLFxuICAgICAgICAgIHR5cGVzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgICAgZmlsZXM6IFsnc3JjL21haW4udHMnXSxcbiAgICAgICAgaW5jbHVkZTogWydzcmMvKiovKi5kLnRzJ10sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMixcbiAgICApO1xuXG4gICAgZmlsZXNbJ3RzY29uZmlnLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICBjb21waWxlT25TYXZlOiBmYWxzZSxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgIGZvcmNlQ29uc2lzdGVudENhc2luZ0luRmlsZU5hbWVzOiB0cnVlLFxuICAgICAgICAgIG5vSW1wbGljaXRPdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgICBub1Byb3BlcnR5QWNjZXNzRnJvbUluZGV4U2lnbmF0dXJlOiB0cnVlLFxuICAgICAgICAgIG5vSW1wbGljaXRSZXR1cm5zOiB0cnVlLFxuICAgICAgICAgIG5vRmFsbHRocm91Z2hDYXNlc0luU3dpdGNoOiB0cnVlLFxuICAgICAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcbiAgICAgICAgICBkZWNsYXJhdGlvbjogZmFsc2UsXG4gICAgICAgICAgZG93bmxldmVsSXRlcmF0aW9uOiB0cnVlLFxuICAgICAgICAgIGVzTW9kdWxlSW50ZXJvcDogdHJ1ZSxcbiAgICAgICAgICBleHBlcmltZW50YWxEZWNvcmF0b3JzOiB0cnVlLFxuICAgICAgICAgIG1vZHVsZVJlc29sdXRpb246ICdub2RlJyxcbiAgICAgICAgICBpbXBvcnRIZWxwZXJzOiB0cnVlLFxuICAgICAgICAgIHR5cGVSb290czogWydub2RlX21vZHVsZXMvQHR5cGVzJ10sXG4gICAgICAgICAgdGFyZ2V0OiAnRVMyMDE1JyxcbiAgICAgICAgICBtb2R1bGU6ICdFUzIwMjInLFxuICAgICAgICAgIHVzZURlZmluZUZvckNsYXNzRmllbGRzOiBmYWxzZSxcbiAgICAgICAgICBsaWI6IFsnRVMyMDIyJywgJ2RvbSddLFxuICAgICAgICB9LFxuICAgICAgICBhbmd1bGFyQ29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgZnVsbFRlbXBsYXRlVHlwZUNoZWNrOiB0cnVlLFxuICAgICAgICAgIGVuYWJsZUkxOG5MZWdhY3lNZXNzYWdlSWRGb3JtYXQ6IGZhbHNlLFxuICAgICAgICAgIHN0cmljdEluamVjdGlvblBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0SW5wdXRBY2Nlc3NNb2RpZmllcnM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0VGVtcGxhdGVzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIsXG4gICAgKTtcblxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlTmFtZShjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29udGVudHMuc3BsaXQoJ2V4cG9ydCBjbGFzcyAnKVsxXS5zcGxpdCgnIHsnKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZW5hbWVOb0V4dGVuc2lvbihmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlTmFtZS5zcGxpdCgnLicpLnBvcCgpO1xuICAgIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKGAuJHtleHRlbnNpb259YCwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHBvcnRlZENvbXBvbmVudChjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmltbWVkID0gY29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIGxldCBmcmFnbWVudCA9IHRyaW1tZWQuc3BsaXQoJ2V4cG9ydHM6WycpWzFdO1xuICAgIGlmICghZnJhZ21lbnQpIHtcbiAgICAgIHRocm93ICdZb3UgbXVzdCBleHBvcnQgYSBjb21wb25lbnQgZnJvbSB0aGUgY29kZSBleGFtcGxlIG1vZHVsZSEnO1xuICAgIH1cblxuICAgIGZyYWdtZW50ID0gZnJhZ21lbnQuc3BsaXQoJ10nKVswXTtcblxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBmcmFnbWVudC5zcGxpdCgnLCcpLmZpbHRlcigoeCkgPT4geCk7XG5cbiAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyAoXG4gICAgICAgICdZb3UgbWF5IG9ubHkgZXhwb3J0IGEgc2luZ2xlIGNvbXBvbmVudCBmcm9tIHRoZSBjb2RlIGV4YW1wbGUgbW9kdWxlJyArXG4gICAgICAgIGAod2UgZm91bmQgJHtjb21wb25lbnRzLmxlbmd0aH06ICR7Y29tcG9uZW50cy5qb2luKCcsICcpfSkuYCArXG4gICAgICAgICdJcyBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSBuZXcgY29kZSBleGFtcGxlIHdpdGggdGhlIGV4dHJhIGNvbXBvbmVudHM/J1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50c1swXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50U2VsZWN0b3IoXG4gICAgY29tcG9uZW50Q2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW10sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZm91bmQgPSBzb3VyY2VDb2RlLmZpbmQoKGZpbGUpID0+IHtcbiAgICAgIHJldHVybiBmaWxlLnJhd0NvbnRlbnRzLmluZGV4T2YoYGNsYXNzICR7Y29tcG9uZW50Q2xhc3NOYW1lfWApID4gLTE7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0cmltbWVkID0gZm91bmQucmF3Q29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIHJldHVybiB0cmltbWVkLnNwbGl0KGBzZWxlY3RvcjonYClbMV0uc3BsaXQoYCdgKVswXTtcbiAgfVxufVxuIl19
380
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxJQUFJLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxJQUFJLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBVTVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUkvRDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQ0FBZ0M7SUFDcEMsWUFBWSxDQUNqQixXQUErQixFQUMvQixXQUErQixhQUFhO1FBRTVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMvQyxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQztZQUN0RCxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUEwQjtZQUNyQyxRQUFRO1NBQ1QsQ0FBQztRQUVGLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxF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dCB7IFZFUlNJT04gYXMgQU5HVUxBUl9WRVJTSU9OLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWRVJTSU9OIGFzIFNLWV9VWF9WRVJTSU9OIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgVkVSU0lPTiBhcyBTS1lfVVhfSUNPTlNfVkVSU0lPTiB9IGZyb20gJ0Bza3l1eC9pY29ucyc7XG5pbXBvcnQgU3RhY2tCbGl0elNESyBmcm9tICdAc3RhY2tibGl0ei9zZGsnO1xuaW1wb3J0IHtcbiAgT3Blbk9wdGlvbnMgYXMgU3RhY2tCbGl0ek9wZW5PcHRpb25zLFxuICBQcm9qZWN0IGFzIFN0YWNrQmxpdHpQcm9qZWN0LFxufSBmcm9tICdAc3RhY2tibGl0ei9zZGsnO1xuXG5pbXBvcnQgeyBTa3lEb2NzU291cmNlQ29kZUZpbGUgfSBmcm9tICcuLi9zb3VyY2UtY29kZS9zb3VyY2UtY29kZS1maWxlJztcblxuaW1wb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlIH0gZnJvbSAnLi9jb2RlLWV4YW1wbGUnO1xuaW1wb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtbW9kdWxlLWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBTa3lEb2NzQ29kZUV4YW1wbGVUaGVtZSB9IGZyb20gJy4vY29kZS1leGFtcGxlLXRoZW1lJztcblxudHlwZSBTdGFja2JsaXR6VGVtcGxhdGUgPSAnYW5ndWxhci1jbGknIHwgJ25vZGUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9jc0NvZGVFeGFtcGxlc0VkaXRvclNlcnZpY2Uge1xuICBwdWJsaWMgbGF1bmNoRWRpdG9yKFxuICAgIGNvZGVFeGFtcGxlOiBTa3lEb2NzQ29kZUV4YW1wbGUsXG4gICAgdGVtcGxhdGU6IFN0YWNrYmxpdHpUZW1wbGF0ZSA9ICdhbmd1bGFyLWNsaScsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHByb2plY3QgPSB0aGlzLiNnZXRQYXlsb2FkKGNvZGVFeGFtcGxlLCB0ZW1wbGF0ZSk7XG4gICAgY29uc3Qgb3BlbkZpbGU6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHByb2plY3QuZmlsZXNbJ3NyYy9hcHAvZGVtby5jb21wb25lbnQuaHRtbCddKSB7XG4gICAgICBvcGVuRmlsZS5wdXNoKCdzcmMvYXBwL2RlbW8uY29tcG9uZW50Lmh0bWwnKTtcbiAgICB9IGVsc2UgaWYgKHByb2plY3QuZmlsZXNbJ3NyYy9hcHAvZGVtby5jb21wb25lbnQudHMnXSkge1xuICAgICAgb3BlbkZpbGUucHVzaCgnc3JjL2FwcC9kZW1vLmNvbXBvbmVudC50cycpO1xuICAgIH1cbiAgICBjb25zdCBvcHRpb25zOiBTdGFja0JsaXR6T3Blbk9wdGlvbnMgPSB7XG4gICAgICBvcGVuRmlsZSxcbiAgICB9O1xuXG4gICAgU3RhY2tCbGl0elNESy5vcGVuUHJvamVjdChwcm9qZWN0LCBvcHRpb25zKTtcbiAgfVxuXG4gICNnZXRQYXlsb2FkKFxuICAgIGNvZGVFeGFtcGxlOiBTa3lEb2NzQ29kZUV4YW1wbGUsXG4gICAgdGVtcGxhdGU6IFN0YWNrYmxpdHpUZW1wbGF0ZSxcbiAgKTogU3RhY2tCbGl0elByb2plY3Qge1xuICAgIGNvbnN0IGFuZ3VsYXJWZXJzaW9uID0gYF4ke0FOR1VMQVJfVkVSU0lPTi5tYWpvcn1gO1xuICAgIGNvbnN0IHNreXV4VmVyc2lvbiA9IGBeJHtTS1lfVVhfVkVSU0lPTi5mdWxsfWA7XG5cbiAgICBjb25zdCBkZWZhdWx0RGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMgPSB7XG4gICAgICAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9hbmltYXRpb25zJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY2RrJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY2xpJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tbW9uJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tcGlsZXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb21waWxlci1jbGknOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb3JlJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvZm9ybXMnOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcm91dGVyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQHNreXV4L2FuaW1hdGlvbnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Fzc2V0cyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvY29uZmlnJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9jb3JlJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9lcnJvcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Zvcm1zJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9oZWxwLWlubGluZSc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaTE4bic6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaW5kaWNhdG9ycyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvbGF5b3V0Jzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9tb2RhbHMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3BhY2thZ2VzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9wb3BvdmVycyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvcm91dGVyJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC90aGVtZSc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAdHlwZXMvamFzbWluZSc6ICd+NS4xLjQnLFxuICAgICAgJ25nMi1kcmFndWxhJzogJzUuMS4wJyxcbiAgICAgIHJ4anM6ICdeNycsXG4gICAgICB0c2xpYjogJ14yLjYuMicsXG4gICAgICB0eXBlc2NyaXB0OiAnfjUuMy4zJyxcbiAgICAgICd6b25lLmpzJzogJ34wLjE0LjQnLFxuICAgIH07XG5cbiAgICBjb25zdCBtZXJnZWREZXBlbmRlbmNpZXMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBkZWZhdWx0RGVwZW5kZW5jaWVzLFxuICAgICAgY29kZUV4YW1wbGUucGFja2FnZURlcGVuZGVuY2llcyxcbiAgICApO1xuXG4gICAgLy8gRW5zdXJlIGFueSBAc2t5dXggZGVwZW5kZW5jaWVzIGxpc3QgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiBTS1kgVVguXG4gICAgLy8gZS5nLiBgXCJAc2t5dXgvY29yZVwiOiBcIipcImAgLS0+IGBcIkBza3l1eC9jb3JlXCI6IFwiNS4wLjBcImBcbiAgICBmb3IgKGNvbnN0IHBhY2thZ2VOYW1lIGluIG1lcmdlZERlcGVuZGVuY2llcykge1xuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgICBpZiAobWVyZ2VkRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHBhY2thZ2VOYW1lKSkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gbWVyZ2VkRGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHZlcnNpb24gPT09ICcqJyAmJlxuICAgICAgICAgIC9eKEBibGFja2JhdWRcXC9za3l1eC1saWItfEBza3l1eCkvLnRlc3QocGFja2FnZU5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIG1lcmdlZERlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gPSBza3l1eFZlcnNpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWxlcyA9IHRoaXMucGFyc2VTdGFja0JsaXR6RmlsZXMoXG4gICAgICBjb2RlRXhhbXBsZS5zb3VyY2VDb2RlLFxuICAgICAgbWVyZ2VkRGVwZW5kZW5jaWVzLFxuICAgICAgY29kZUV4YW1wbGUudGhlbWUsXG4gICAgICBjb2RlRXhhbXBsZS5zdHlsZXNoZWV0cyxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVzLFxuICAgICAgdGl0bGU6ICdTS1kgVVggRGVtbycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1NLWSBVWCBEZW1vJyxcbiAgICAgIHRlbXBsYXRlLFxuICAgICAgZGVwZW5kZW5jaWVzOiBtZXJnZWREZXBlbmRlbmNpZXMsXG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICBjb21waWxlOiB7XG4gICAgICAgICAgY2xlYXJDb25zb2xlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VTdGFja0JsaXR6RmlsZXMoXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW10sXG4gICAgZGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMsXG4gICAgdGhlbWU6IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLFxuICAgIHN0eWxlc2hlZXRzOiBzdHJpbmdbXSA9IFtdLFxuICApOiB7XG4gICAgW3BhdGg6IHN0cmluZ106IHN0cmluZztcbiAgfSB7XG4gICAgY29uc3Qgc3JjUGF0aCA9ICdzcmMvJztcbiAgICBjb25zdCBhcHBQYXRoID0gYCR7c3JjUGF0aH1hcHAvYDtcblxuICAgIGNvbnN0IGJhbm5lciA9IGAvKipcbiAqIFRoaXMgZmlsZSBpcyBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgcHJvdmlkZWQgd2hlbiB1c2luZyB0aGUgQW5ndWxhciBDTEkuXG4gKiovXG4gYDtcblxuICAgIGNvbnN0IG1vZHVsZUltcG9ydFN0YXRlbWVudHM6IHN0cmluZ1tdID0gW1xuICAgICAgYGltcG9ydCB7XFxuICBOZ01vZHVsZVxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgRm9ybXNNb2R1bGUsXFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgUm91dGVyTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIFNreUFwcExvY2FsZVByb3ZpZGVyXFxufSBmcm9tICdAc2t5dXgvaTE4bic7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgU2t5VGhlbWVTZXJ2aWNlXFxufSBmcm9tICdAc2t5dXgvdGhlbWUnO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIG9mIGFzIG9ic2VydmFibGVPZlxcbn0gZnJvbSAncnhqcyc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgQXBwQ29tcG9uZW50XFxufSBmcm9tICcuL2FwcC5jb21wb25lbnQnO2AsXG4gICAgXTtcblxuICAgIGNvbnN0IG1vZHVsZUltcG9ydHM6IHN0cmluZ1tdID0gW1xuICAgICAgJ0Jyb3dzZXJBbmltYXRpb25zTW9kdWxlJyxcbiAgICAgICdGb3Jtc01vZHVsZScsXG4gICAgICAnUmVhY3RpdmVGb3Jtc01vZHVsZScsXG4gICAgICAnUm91dGVyTW9kdWxlLmZvclJvb3QoW10pJyxcbiAgICBdO1xuXG4gICAgY29uc3QgZmlsZXM6IHsgW186IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICBsZXQgYXBwQ29tcG9uZW50VGVtcGxhdGUgPSAnJztcblxuICAgIHNvdXJjZUNvZGUuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgZmlsZXNbYCR7YXBwUGF0aH0ke2ZpbGUuZmlsZU5hbWV9YF0gPSBmaWxlLnJhd0NvbnRlbnRzO1xuXG4gICAgICAvLyBTZXR1cCBtb2R1bGUgaW1wb3J0cyBhbmQgY29tcG9uZW50IHNlbGVjdG9ycy5cbiAgICAgIGlmIChmaWxlLmZpbGVOYW1lLmluZGV4T2YoJy5tb2R1bGUudHMnKSA+IC0xKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0aGlzLmdldE1vZHVsZU5hbWUoZmlsZS5yYXdDb250ZW50cyk7XG4gICAgICAgIGNvbnN0IGltcG9ydFBhdGggPSBgLi8ke3RoaXMuZ2V0RmlsZW5hbWVOb0V4dGVuc2lvbihmaWxlLmZpbGVOYW1lKX1gO1xuXG4gICAgICAgIGNvbnN0IGV4cG9ydGVkQ29tcG9uZW50ID0gdGhpcy5nZXRFeHBvcnRlZENvbXBvbmVudChmaWxlLnJhd0NvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50U2VsZWN0b3IgPSB0aGlzLmdldENvbXBvbmVudFNlbGVjdG9yKFxuICAgICAgICAgIGV4cG9ydGVkQ29tcG9uZW50LFxuICAgICAgICAgIHNvdXJjZUNvZGUsXG4gICAgICAgICk7XG5cbiAgICAgICAgYXBwQ29tcG9uZW50VGVtcGxhdGUgKz0gYDwke2NvbXBvbmVudFNlbGVjdG9yfT48LyR7Y29tcG9uZW50U2VsZWN0b3J9PmA7XG5cbiAgICAgICAgbW9kdWxlSW1wb3J0cy5wdXNoKG1vZHVsZU5hbWUpO1xuICAgICAgICBtb2R1bGVJbXBvcnRTdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgICAgYGltcG9ydCB7XFxuICAke21vZHVsZU5hbWV9XFxufSBmcm9tICcke2ltcG9ydFBhdGh9JztgLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBTdGFuZGFsb25lIGVudHJ5IGNvbXBvbmVudHMgYXJlIG5hbWVkIGRlbW8uY29tcG9uZW50LnRzLlxuICAgICAgaWYgKGZpbGUuZmlsZU5hbWUgPT09ICdkZW1vLmNvbXBvbmVudC50cycpIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50TmFtZSA9ICdEZW1vQ29tcG9uZW50JztcbiAgICAgICAgY29uc3QgY29tcG9uZW50U2VsZWN0b3IgPSAnYXBwLWRlbW8nO1xuICAgICAgICBjb25zdCBpbXBvcnRQYXRoID0gYC4vJHt0aGlzLmdldEZpbGVuYW1lTm9FeHRlbnNpb24oZmlsZS5maWxlTmFtZSl9YDtcblxuICAgICAgICBhcHBDb21wb25lbnRUZW1wbGF0ZSArPSBgPCR7Y29tcG9uZW50U2VsZWN0b3J9IC8+YDtcblxuICAgICAgICBtb2R1bGVJbXBvcnRzLnB1c2goY29tcG9uZW50TmFtZSk7XG4gICAgICAgIG1vZHVsZUltcG9ydFN0YXRlbWVudHMucHVzaChcbiAgICAgICAgICBgaW1wb3J0IHtcXG4gICR7Y29tcG9uZW50TmFtZX1cXG59IGZyb20gJyR7aW1wb3J0UGF0aH0nO2AsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBmaWxlc1tgJHthcHBQYXRofWFwcC5jb21wb25lbnQudHNgXSA9IGAke2Jhbm5lcn1cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lUaGVtZSxcbiAgU2t5VGhlbWVNb2RlLFxuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3Ncbn0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRlbW8tYXBwJyxcbiAgdGVtcGxhdGU6ICcke2FwcENvbXBvbmVudFRlbXBsYXRlfSdcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0aGVtZVN2YzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgY29uc3QgdGhlbWVTZXR0aW5ncyA9IG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgU2t5VGhlbWUucHJlc2V0c1snJHtcbiAgICAgICAgdGhlbWUgPT09IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLk1vZGVybiA/ICdtb2Rlcm4nIDogJ2RlZmF1bHQnXG4gICAgICB9J10sXG4gICAgICBTa3lUaGVtZU1vZGUucHJlc2V0cy5saWdodFxuICAgICk7XG5cbiAgICB0aGVtZVN2Yy5pbml0KFxuICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgIHJlbmRlcmVyLFxuICAgICAgdGhlbWVTZXR0aW5nc1xuICAgICk7XG4gIH1cblxufWA7XG5cbiAgICBmaWxlc1tgJHthcHBQYXRofWFwcC5tb2R1bGUudHNgXSA9IGAke21vZHVsZUltcG9ydFN0YXRlbWVudHMuam9pbignXFxuXFxuJyl9XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICAke21vZHVsZUltcG9ydHMuam9pbignLFxcbiAgICAnKX1cbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQXBwQ29tcG9uZW50XG4gIF0sXG4gIGJvb3RzdHJhcDogW1xuICAgIEFwcENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lUaGVtZVNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5QXBwTG9jYWxlUHJvdmlkZXIsXG4gICAgICB1c2VWYWx1ZToge1xuICAgICAgICBnZXRMb2NhbGVJbmZvOiAoKSA9PiBvYnNlcnZhYmxlT2Yoe1xuICAgICAgICAgIGxvY2FsZTogJ2VuLVVTJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBNb2R1bGUgeyB9XG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1pbmRleC5odG1sYF0gPSBgPCFkb2N0eXBlIGh0bWw+XG48aHRtbCBsYW5nPVwiZW5cIj5cbjxoZWFkPlxuICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cbiAgPHRpdGxlPlNreSBVWCBEZW1vPC90aXRsZT5cbiAgPGJhc2UgaHJlZj1cIi9cIj5cbiAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCI+XG4gIDwhLS1cbiAgICBUaGUgQ1NTIGxpbmtzIGFyZSBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAgICBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBrbm93biBidWcgdGhhdCBwcmV2ZW50cyBleHRlcm5hbCBpbXBvcnRzIGluIENTUy5cbiAgICBodHRwczovL2dpdGh1Yi5jb20vc3RhY2tibGl0ei9jb3JlL2lzc3Vlcy8xMzNcbiAgLS0+XG4gIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC43LjAvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzXCIgY3Jvc3NvcmlnaW49XCJhbm9ueW1vdXNcIj5cbiAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCJodHRwczovL3NreS5ibGFja2JhdWRjZG4ubmV0L3N0YXRpYy9za3l1eC1pY29ucy8ke1NLWV9VWF9JQ09OU19WRVJTSU9OLmZ1bGx9L2Fzc2V0cy9jc3Mvc2t5dXgtaWNvbnMubWluLmNzc1wiIGNyb3Nzb3JpZ2luPVwiYW5vbnltb3VzXCI+XG48L2hlYWQ+XG48Ym9keT5cbiAgPHNreS1kZW1vLWFwcD5cbiAgICBMb2FkaW5nLi4uXG4gIDwvc2t5LWRlbW8tYXBwPlxuPC9ib2R5PlxuPC9odG1sPlxuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9bWFpbi50c2BdID0gYCR7YmFubmVyfVxuaW1wb3J0ICd6b25lLmpzJztcbmltcG9ydCAnQHNreXV4L3BhY2thZ2VzL3BvbHlmaWxscyc7XG5cbmltcG9ydCB7XG4gIHBsYXRmb3JtQnJvd3NlckR5bmFtaWNcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcblxuaW1wb3J0IHtcbiAgQXBwTW9kdWxlXG59IGZyb20gJy4vYXBwL2FwcC5tb2R1bGUnO1xuXG5wbGF0Zm9ybUJyb3dzZXJEeW5hbWljKClcbiAgLmJvb3RzdHJhcE1vZHVsZShBcHBNb2R1bGUpXG4gIC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuXG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1zdHlsZXMuc2Nzc2BdID0gYEBpbXBvcnQgJ0Bza3l1eC90aGVtZS9jc3Mvc2t5JztcbkBpbXBvcnQgJ0Bza3l1eC90aGVtZS9jc3MvdGhlbWVzL21vZGVybi9zdHlsZXMnO1xuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAxNXB4O1xufWA7XG5cbiAgICBzdHlsZXNoZWV0cy5wdXNoKCdzcmMvc3R5bGVzLnNjc3MnKTtcblxuICAgIGZpbGVzWydhbmd1bGFyLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICAkc2NoZW1hOiAnLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2xpL2xpYi9jb25maWcvc2NoZW1hLmpzb24nLFxuICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgICBwcm9qZWN0czoge1xuICAgICAgICAgIGRlbW86IHtcbiAgICAgICAgICAgIHByb2plY3RUeXBlOiAnYXBwbGljYXRpb24nLFxuICAgICAgICAgICAgcm9vdDogJycsXG4gICAgICAgICAgICBzb3VyY2VSb290OiAnc3JjJyxcbiAgICAgICAgICAgIHByZWZpeDogJ2FwcCcsXG4gICAgICAgICAgICBhcmNoaXRlY3Q6IHtcbiAgICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YnJvd3NlcicsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgaW5kZXg6ICdzcmMvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICAgICAgICBtYWluOiAnc3JjL21haW4udHMnLFxuICAgICAgICAgICAgICAgICAgb3V0cHV0UGF0aDogJ2Rpc3QvZGVtbycsXG4gICAgICAgICAgICAgICAgICB0c0NvbmZpZzogJ3RzY29uZmlnLmFwcC5qc29uJyxcbiAgICAgICAgICAgICAgICAgIGlubGluZVN0eWxlTGFuZ3VhZ2U6ICdzY3NzJyxcbiAgICAgICAgICAgICAgICAgIHN0eWxlczogc3R5bGVzaGVldHMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczoge1xuICAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRPcHRpbWl6ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB2ZW5kb3JDaHVuazogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFjdExpY2Vuc2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lZENodW5rczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2VydmU6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6ZGV2LXNlcnZlcicsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJUYXJnZXQ6ICdkZW1vOmJ1aWxkOmRldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyLFxuICAgICk7XG5cbiAgICBmaWxlc1sncGFja2FnZS5qc29uJ10gPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NreXV4LXNwYS1kZW1vJyxcbiAgICAgICAgdmVyc2lvbjogJzAuMC4wJyxcbiAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICBzY3JpcHRzOiB7XG4gICAgICAgICAgc3RhcnQ6ICduZyBzZXJ2ZScsXG4gICAgICAgICAgYnVpbGQ6ICduZyBidWlsZCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMixcbiAgICApO1xuXG4gICAgZmlsZXNbJ3RzY29uZmlnLmFwcC5qc29uJ10gPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgZXh0ZW5kczogJy4vdHNjb25maWcuanNvbicsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIG91dERpcjogJy4vb3V0LXRzYy9hcHAnLFxuICAgICAgICAgIHR5cGVzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgICAgZmlsZXM6IFsnc3JjL21haW4udHMnXSxcbiAgICAgICAgaW5jbHVkZTogWydzcmMvKiovKi5kLnRzJ10sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMixcbiAgICApO1xuXG4gICAgZmlsZXNbJ3RzY29uZmlnLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICBjb21waWxlT25TYXZlOiBmYWxzZSxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgIGZvcmNlQ29uc2lzdGVudENhc2luZ0luRmlsZU5hbWVzOiB0cnVlLFxuICAgICAgICAgIG5vSW1wbGljaXRPdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgICBub1Byb3BlcnR5QWNjZXNzRnJvbUluZGV4U2lnbmF0dXJlOiB0cnVlLFxuICAgICAgICAgIG5vSW1wbGljaXRSZXR1cm5zOiB0cnVlLFxuICAgICAgICAgIG5vRmFsbHRocm91Z2hDYXNlc0luU3dpdGNoOiB0cnVlLFxuICAgICAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcbiAgICAgICAgICBkZWNsYXJhdGlvbjogZmFsc2UsXG4gICAgICAgICAgZG93bmxldmVsSXRlcmF0aW9uOiB0cnVlLFxuICAgICAgICAgIGVzTW9kdWxlSW50ZXJvcDogdHJ1ZSxcbiAgICAgICAgICBleHBlcmltZW50YWxEZWNvcmF0b3JzOiB0cnVlLFxuICAgICAgICAgIG1vZHVsZVJlc29sdXRpb246ICdub2RlJyxcbiAgICAgICAgICBpbXBvcnRIZWxwZXJzOiB0cnVlLFxuICAgICAgICAgIHR5cGVSb290czogWydub2RlX21vZHVsZXMvQHR5cGVzJ10sXG4gICAgICAgICAgdGFyZ2V0OiAnRVMyMDE1JyxcbiAgICAgICAgICBtb2R1bGU6ICdFUzIwMjInLFxuICAgICAgICAgIHVzZURlZmluZUZvckNsYXNzRmllbGRzOiBmYWxzZSxcbiAgICAgICAgICBsaWI6IFsnRVMyMDIyJywgJ2RvbSddLFxuICAgICAgICB9LFxuICAgICAgICBhbmd1bGFyQ29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgZnVsbFRlbXBsYXRlVHlwZUNoZWNrOiB0cnVlLFxuICAgICAgICAgIGVuYWJsZUkxOG5MZWdhY3lNZXNzYWdlSWRGb3JtYXQ6IGZhbHNlLFxuICAgICAgICAgIHN0cmljdEluamVjdGlvblBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0SW5wdXRBY2Nlc3NNb2RpZmllcnM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0VGVtcGxhdGVzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIsXG4gICAgKTtcblxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlTmFtZShjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29udGVudHMuc3BsaXQoJ2V4cG9ydCBjbGFzcyAnKVsxXS5zcGxpdCgnIHsnKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZW5hbWVOb0V4dGVuc2lvbihmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlTmFtZS5zcGxpdCgnLicpLnBvcCgpO1xuICAgIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKGAuJHtleHRlbnNpb259YCwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHBvcnRlZENvbXBvbmVudChjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmltbWVkID0gY29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIGxldCBmcmFnbWVudCA9IHRyaW1tZWQuc3BsaXQoJ2V4cG9ydHM6WycpWzFdO1xuICAgIGlmICghZnJhZ21lbnQpIHtcbiAgICAgIHRocm93ICdZb3UgbXVzdCBleHBvcnQgYSBjb21wb25lbnQgZnJvbSB0aGUgY29kZSBleGFtcGxlIG1vZHVsZSEnO1xuICAgIH1cblxuICAgIGZyYWdtZW50ID0gZnJhZ21lbnQuc3BsaXQoJ10nKVswXTtcblxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBmcmFnbWVudC5zcGxpdCgnLCcpLmZpbHRlcigoeCkgPT4geCk7XG5cbiAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyAoXG4gICAgICAgICdZb3UgbWF5IG9ubHkgZXhwb3J0IGEgc2luZ2xlIGNvbXBvbmVudCBmcm9tIHRoZSBjb2RlIGV4YW1wbGUgbW9kdWxlJyArXG4gICAgICAgIGAod2UgZm91bmQgJHtjb21wb25lbnRzLmxlbmd0aH06ICR7Y29tcG9uZW50cy5qb2luKCcsICcpfSkuYCArXG4gICAgICAgICdJcyBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSBuZXcgY29kZSBleGFtcGxlIHdpdGggdGhlIGV4dHJhIGNvbXBvbmVudHM/J1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50c1swXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50U2VsZWN0b3IoXG4gICAgY29tcG9uZW50Q2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW10sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZm91bmQgPSBzb3VyY2VDb2RlLmZpbmQoKGZpbGUpID0+IHtcbiAgICAgIHJldHVybiBmaWxlLnJhd0NvbnRlbnRzLmluZGV4T2YoYGNsYXNzICR7Y29tcG9uZW50Q2xhc3NOYW1lfWApID4gLTE7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0cmltbWVkID0gZm91bmQucmF3Q29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIHJldHVybiB0cmltbWVkLnNwbGl0KGBzZWxlY3RvcjonYClbMV0uc3BsaXQoYCdgKVswXTtcbiAgfVxufVxuIl19
@@ -300,8 +300,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
300
300
  * @internal
301
301
  */
302
302
  class SkyDocsCodeExamplesEditorService {
303
- launchEditor(codeExample) {
304
- const project = this.#getPayload(codeExample);
303
+ launchEditor(codeExample, template = 'angular-cli') {
304
+ const project = this.#getPayload(codeExample, template);
305
305
  const openFile = [];
306
306
  if (project.files['src/app/demo.component.html']) {
307
307
  openFile.push('src/app/demo.component.html');
@@ -314,7 +314,7 @@ class SkyDocsCodeExamplesEditorService {
314
314
  };
315
315
  StackBlitzSDK.openProject(project, options);
316
316
  }
317
- #getPayload(codeExample) {
317
+ #getPayload(codeExample, template) {
318
318
  const angularVersion = `^${VERSION.major}`;
319
319
  const skyuxVersion = `^${VERSION$1.full}`;
320
320
  const defaultDependencies = {
@@ -336,6 +336,7 @@ class SkyDocsCodeExamplesEditorService {
336
336
  '@skyux/core': skyuxVersion,
337
337
  '@skyux/errors': skyuxVersion,
338
338
  '@skyux/forms': skyuxVersion,
339
+ '@skyux/help-inline': skyuxVersion,
339
340
  '@skyux/i18n': skyuxVersion,
340
341
  '@skyux/indicators': skyuxVersion,
341
342
  '@skyux/layout': skyuxVersion,
@@ -344,12 +345,12 @@ class SkyDocsCodeExamplesEditorService {
344
345
  '@skyux/popovers': skyuxVersion,
345
346
  '@skyux/router': skyuxVersion,
346
347
  '@skyux/theme': skyuxVersion,
347
- '@types/jasmine': '~4.3.1',
348
- 'ng2-dragula': '^5.0.1',
348
+ '@types/jasmine': '~5.1.4',
349
+ 'ng2-dragula': '5.1.0',
349
350
  rxjs: '^7',
350
- tslib: '^2.5.0',
351
- typescript: '~5.1.6',
352
- 'zone.js': '~0.13.1',
351
+ tslib: '^2.6.2',
352
+ typescript: '~5.3.3',
353
+ 'zone.js': '~0.14.4',
353
354
  };
354
355
  const mergedDependencies = Object.assign({}, defaultDependencies, codeExample.packageDependencies);
355
356
  // Ensure any @skyux dependencies list the correct version of SKY UX.
@@ -369,8 +370,7 @@ class SkyDocsCodeExamplesEditorService {
369
370
  files,
370
371
  title: 'SKY UX Demo',
371
372
  description: 'SKY UX Demo',
372
- template: 'angular-cli',
373
- // template: 'node', // web-container
373
+ template,
374
374
  dependencies: mergedDependencies,
375
375
  settings: {
376
376
  compile: {