@skyux/docs-tools 8.0.1 → 8.0.3
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.
|
@@ -15,13 +15,10 @@ export class SkyDocsCodeExamplesEditorService {
|
|
|
15
15
|
const angularVersion = '^15.0.0';
|
|
16
16
|
const skyuxVersion = '^8.0.0';
|
|
17
17
|
const defaultDependencies = {
|
|
18
|
-
'@angular-devkit/build-angular': angularVersion,
|
|
19
18
|
'@angular/animations': angularVersion,
|
|
20
19
|
'@angular/cdk': angularVersion,
|
|
21
|
-
'@angular/cli': angularVersion,
|
|
22
20
|
'@angular/common': angularVersion,
|
|
23
21
|
'@angular/compiler': angularVersion,
|
|
24
|
-
'@angular/compiler-cli': angularVersion,
|
|
25
22
|
'@angular/core': angularVersion,
|
|
26
23
|
'@angular/forms': angularVersion,
|
|
27
24
|
'@angular/platform-browser': angularVersion,
|
|
@@ -47,7 +44,6 @@ export class SkyDocsCodeExamplesEditorService {
|
|
|
47
44
|
'ng2-dragula': '2.1.1',
|
|
48
45
|
rxjs: '^7',
|
|
49
46
|
tslib: '^2.3.0',
|
|
50
|
-
typescript: '~4.9.4',
|
|
51
47
|
'zone.js': '~0.12.0',
|
|
52
48
|
};
|
|
53
49
|
const mergedDependencies = Object.assign({}, defaultDependencies, codeExample.packageDependencies);
|
|
@@ -68,7 +64,7 @@ export class SkyDocsCodeExamplesEditorService {
|
|
|
68
64
|
files,
|
|
69
65
|
title: 'SKY UX Demo',
|
|
70
66
|
description: 'SKY UX Demo',
|
|
71
|
-
template: '
|
|
67
|
+
template: 'angular-cli',
|
|
72
68
|
dependencies: mergedDependencies,
|
|
73
69
|
settings: {
|
|
74
70
|
compile: {
|
|
@@ -201,12 +197,21 @@ export class AppModule { }
|
|
|
201
197
|
</html>
|
|
202
198
|
`;
|
|
203
199
|
files[`${srcPath}main.ts`] = `${banner}
|
|
204
|
-
import
|
|
200
|
+
import 'zone.js';
|
|
201
|
+
import '@skyux/packages/polyfills';
|
|
205
202
|
|
|
206
|
-
import {
|
|
203
|
+
import {
|
|
204
|
+
platformBrowserDynamic
|
|
205
|
+
} from '@angular/platform-browser-dynamic';
|
|
206
|
+
|
|
207
|
+
import {
|
|
208
|
+
AppModule
|
|
209
|
+
} from './app/app.module';
|
|
210
|
+
|
|
211
|
+
platformBrowserDynamic()
|
|
212
|
+
.bootstrapModule(AppModule)
|
|
213
|
+
.catch((err) => console.error(err));
|
|
207
214
|
|
|
208
|
-
platformBrowserDynamic().bootstrapModule(AppModule)
|
|
209
|
-
.catch(err => console.error(err));
|
|
210
215
|
`;
|
|
211
216
|
files[`${srcPath}styles.scss`] = `@import '@skyux/theme/css/sky';
|
|
212
217
|
@import '@skyux/theme/css/themes/modern/styles';
|
|
@@ -217,53 +222,15 @@ body {
|
|
|
217
222
|
}`;
|
|
218
223
|
stylesheets.push('src/styles.scss');
|
|
219
224
|
files['angular.json'] = JSON.stringify({
|
|
220
|
-
$schema: './node_modules/@angular/cli/lib/config/schema.json',
|
|
221
|
-
version: 1,
|
|
222
225
|
projects: {
|
|
223
226
|
demo: {
|
|
224
|
-
projectType: 'application',
|
|
225
|
-
root: '',
|
|
226
|
-
sourceRoot: 'src',
|
|
227
|
-
prefix: 'app',
|
|
228
227
|
architect: {
|
|
229
228
|
build: {
|
|
230
|
-
builder: '@angular-devkit/build-angular:browser',
|
|
231
229
|
options: {
|
|
232
|
-
outputPath: 'dist/demo',
|
|
233
230
|
index: 'src/index.html',
|
|
234
231
|
main: 'src/main.ts',
|
|
235
|
-
polyfills: ['zone.js', '@skyux/packages/polyfills'],
|
|
236
|
-
tsConfig: 'tsconfig.app.json',
|
|
237
232
|
inlineStyleLanguage: 'scss',
|
|
238
|
-
assets: [],
|
|
239
233
|
styles: stylesheets,
|
|
240
|
-
scripts: [],
|
|
241
|
-
},
|
|
242
|
-
configurations: {
|
|
243
|
-
development: {
|
|
244
|
-
buildOptimizer: false,
|
|
245
|
-
optimization: false,
|
|
246
|
-
vendorChunk: true,
|
|
247
|
-
extractLicenses: false,
|
|
248
|
-
sourceMap: true,
|
|
249
|
-
namedChunks: true,
|
|
250
|
-
},
|
|
251
|
-
},
|
|
252
|
-
defaultConfiguration: 'development',
|
|
253
|
-
},
|
|
254
|
-
serve: {
|
|
255
|
-
builder: '@angular-devkit/build-angular:dev-server',
|
|
256
|
-
configurations: {
|
|
257
|
-
development: {
|
|
258
|
-
browserTarget: 'demo:build:development',
|
|
259
|
-
},
|
|
260
|
-
},
|
|
261
|
-
defaultConfiguration: 'development',
|
|
262
|
-
},
|
|
263
|
-
'extract-i18n': {
|
|
264
|
-
builder: '@angular-devkit/build-angular:extract-i18n',
|
|
265
|
-
options: {
|
|
266
|
-
browserTarget: 'demo:build',
|
|
267
234
|
},
|
|
268
235
|
},
|
|
269
236
|
},
|
|
@@ -271,29 +238,12 @@ body {
|
|
|
271
238
|
},
|
|
272
239
|
}, undefined, 2);
|
|
273
240
|
files['package.json'] = JSON.stringify({
|
|
274
|
-
name: 'skyux-spa-demo',
|
|
275
241
|
dependencies,
|
|
276
|
-
scripts: {
|
|
277
|
-
start: 'ng serve',
|
|
278
|
-
build: 'ng build',
|
|
279
|
-
},
|
|
280
|
-
}, undefined, 2);
|
|
281
|
-
files['tsconfig.app.json'] = JSON.stringify({
|
|
282
|
-
extends: './tsconfig.json',
|
|
283
|
-
compilerOptions: {
|
|
284
|
-
outDir: './out-tsc/app',
|
|
285
|
-
types: [],
|
|
286
|
-
},
|
|
287
|
-
files: ['src/main.ts'],
|
|
288
|
-
include: ['src/**/*.d.ts'],
|
|
289
242
|
}, undefined, 2);
|
|
290
243
|
files['tsconfig.json'] = JSON.stringify({
|
|
291
|
-
compileOnSave: false,
|
|
292
244
|
compilerOptions: {
|
|
293
|
-
baseUrl: './',
|
|
294
|
-
outDir: './dist/out-tsc',
|
|
295
|
-
forceConsistentCasingInFileNames: true,
|
|
296
245
|
strict: true,
|
|
246
|
+
forceConsistentCasingInFileNames: true,
|
|
297
247
|
noImplicitOverride: true,
|
|
298
248
|
noPropertyAccessFromIndexSignature: true,
|
|
299
249
|
noImplicitReturns: true,
|
|
@@ -301,6 +251,7 @@ body {
|
|
|
301
251
|
sourceMap: true,
|
|
302
252
|
declaration: false,
|
|
303
253
|
downlevelIteration: true,
|
|
254
|
+
esModuleInterop: true,
|
|
304
255
|
experimentalDecorators: true,
|
|
305
256
|
moduleResolution: 'node',
|
|
306
257
|
importHelpers: true,
|
|
@@ -358,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
358
309
|
providedIn: 'root',
|
|
359
310
|
}]
|
|
360
311
|
}] });
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFXNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBSS9EOztHQUVHO0FBSUgsTUFBTSxPQUFPLGdDQUFnQztJQUNwQyxZQUFZLENBQUMsV0FBK0I7UUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBMEIsRUFBRSxDQUFDO1FBRTFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxVQUFVLENBQUMsV0FBK0I7UUFDaEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUU5QixNQUFNLG1CQUFtQixHQUF5QztZQUNoRSwrQkFBK0IsRUFBRSxjQUFjO1lBQy9DLHFCQUFxQixFQUFFLGNBQWM7WUFDckMsY0FBYyxFQUFFLGNBQWM7WUFDOUIsY0FBYyxFQUFFLGNBQWM7WUFDOUIsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxtQkFBbUIsRUFBRSxjQUFjO1lBQ25DLHVCQUF1QixFQUFFLGNBQWM7WUFDdkMsZUFBZSxFQUFFLGNBQWM7WUFDL0IsZ0JBQWdCLEVBQUUsY0FBYztZQUNoQywyQkFBMkIsRUFBRSxjQUFjO1lBQzNDLG1DQUFtQyxFQUFFLGNBQWM7WUFDbkQsaUJBQWlCLEVBQUUsY0FB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QyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7OzZIQTVhVSxnQ0FBZ0M7aUlBQWhDLGdDQUFnQyxjQUYvQixNQUFNOzJGQUVQLGdDQUFnQztrQkFINUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCBTdGFja0JsaXR6U0RLIGZyb20gJ0BzdGFja2JsaXR6L3Nkayc7XG5cbmltcG9ydCB7XG4gIE9wZW5PcHRpb25zIGFzIFN0YWNrQmxpdHpPcGVuT3B0aW9ucyxcbiAgUHJvamVjdCBhcyBTdGFja0JsaXR6UHJvamVjdCxcbn0gZnJvbSAnQHN0YWNrYmxpdHovc2RrL3R5cGluZ3MvaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IFNreURvY3NTb3VyY2VDb2RlRmlsZSB9IGZyb20gJy4uL3NvdXJjZS1jb2RlL3NvdXJjZS1jb2RlLWZpbGUnO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMgfSBmcm9tICcuL2NvZGUtZXhhbXBsZS1tb2R1bGUtZGVwZW5kZW5jaWVzJztcblxuaW1wb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWUgfSBmcm9tICcuL2NvZGUtZXhhbXBsZS10aGVtZSc7XG5cbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZSB9IGZyb20gJy4vY29kZS1leGFtcGxlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreURvY3NDb2RlRXhhbXBsZXNFZGl0b3JTZXJ2aWNlIHtcbiAgcHVibGljIGxhdW5jaEVkaXRvcihjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlKTogdm9pZCB7XG4gICAgY29uc3QgcHJvamVjdCA9IHRoaXMuZ2V0UGF5bG9hZChjb2RlRXhhbXBsZSk7XG4gICAgY29uc3Qgb3B0aW9uczogU3RhY2tCbGl0ek9wZW5PcHRpb25zID0ge307XG5cbiAgICBTdGFja0JsaXR6U0RLLm9wZW5Qcm9qZWN0KHByb2plY3QsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXlsb2FkKGNvZGVFeGFtcGxlOiBTa3lEb2NzQ29kZUV4YW1wbGUpOiBTdGFja0JsaXR6UHJvamVjdCB7XG4gICAgY29uc3QgYW5ndWxhclZlcnNpb24gPSAnXjE1LjAuMCc7XG4gICAgY29uc3Qgc2t5dXhWZXJzaW9uID0gJ144LjAuMCc7XG5cbiAgICBjb25zdCBkZWZhdWx0RGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMgPSB7XG4gICAgICAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9hbmltYXRpb25zJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY2RrJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY2xpJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tbW9uJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tcGlsZXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb21waWxlci1jbGknOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb3JlJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvZm9ybXMnOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcm91dGVyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQHNreXV4L2FuaW1hdGlvbnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Fzc2V0cyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvY29uZmlnJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9jb3JlJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9lcnJvcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Zvcm1zJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9odHRwJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9pMThuJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9pbmRpY2F0b3JzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9sYXlvdXQnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L21vZGFscyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvcGFja2FnZXMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3BvcG92ZXJzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9yb3V0ZXInOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3RoZW1lJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0B0eXBlcy9qYXNtaW5lJzogJ340LjAuMycsXG4gICAgICAvLyBXZSBtdXN0IGRlZmluZSBEcmFndWxhIGRlbGliZXJhdGVseSBzbyB0aGF0IFN0YWNrQmxpdHogcnVucyBOR0NDIGFnYWluc3QgaXQuXG4gICAgICAnbmcyLWRyYWd1bGEnOiAnMi4xLjEnLFxuICAgICAgcnhqczogJ143JyxcbiAgICAgIHRzbGliOiAnXjIuMy4wJyxcbiAgICAgIHR5cGVzY3JpcHQ6ICd+NC45LjQnLFxuICAgICAgJ3pvbmUuanMnOiAnfjAuMTIuMCcsXG4gICAgfTtcblxuICAgIGNvbnN0IG1lcmdlZERlcGVuZGVuY2llcyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHREZXBlbmRlbmNpZXMsXG4gICAgICBjb2RlRXhhbXBsZS5wYWNrYWdlRGVwZW5kZW5jaWVzXG4gICAgKTtcblxuICAgIC8vIEVuc3VyZSBhbnkgQHNreXV4IGRlcGVuZGVuY2llcyBsaXN0IHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgU0tZIFVYLlxuICAgIC8vIGUuZy4gYFwiQHNreXV4L2NvcmVcIjogXCIqXCJgIC0tPiBgXCJAc2t5dXgvY29yZVwiOiBcIjUuMC4wXCJgXG4gICAgZm9yIChjb25zdCBwYWNrYWdlTmFtZSBpbiBtZXJnZWREZXBlbmRlbmNpZXMpIHtcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgaWYgKG1lcmdlZERlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShwYWNrYWdlTmFtZSkpIHtcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IG1lcmdlZERlcGVuZGVuY2llc1twYWNrYWdlTmFtZV07XG4gICAgICAgIGlmIChcbiAgICAgICAgICB2ZXJzaW9uID09PSAnKicgJiZcbiAgICAgICAgICAvXihAYmxhY2tiYXVkXFwvc2t5dXgtbGliLXxAc2t5dXgpLy50ZXN0KHBhY2thZ2VOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICBtZXJnZWREZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdID0gc2t5dXhWZXJzaW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLnBhcnNlU3RhY2tCbGl0ekZpbGVzKFxuICAgICAgY29kZUV4YW1wbGUuc291cmNlQ29kZSxcbiAgICAgIG1lcmdlZERlcGVuZGVuY2llcyxcbiAgICAgIGNvZGVFeGFtcGxlLnRoZW1lLFxuICAgICAgY29kZUV4YW1wbGUuc3R5bGVzaGVldHNcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVzLFxuICAgICAgdGl0bGU6ICdTS1kgVVggRGVtbycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1NLWSBVWCBEZW1vJyxcbiAgICAgIHRlbXBsYXRlOiAnbm9kZScsXG4gICAgICBkZXBlbmRlbmNpZXM6IG1lcmdlZERlcGVuZGVuY2llcyxcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIGNvbXBpbGU6IHtcbiAgICAgICAgICBjbGVhckNvbnNvbGU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVN0YWNrQmxpdHpGaWxlcyhcbiAgICBzb3VyY2VDb2RlOiBTa3lEb2NzU291cmNlQ29kZUZpbGVbXSxcbiAgICBkZXBlbmRlbmNpZXM6IFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llcyxcbiAgICB0aGVtZTogU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWUsXG4gICAgc3R5bGVzaGVldHM6IHN0cmluZ1tdID0gW11cbiAgKToge1xuICAgIFtwYXRoOiBzdHJpbmddOiBzdHJpbmc7XG4gIH0ge1xuICAgIGNvbnN0IHNyY1BhdGggPSAnc3JjLyc7XG4gICAgY29uc3QgYXBwUGF0aCA9IGAke3NyY1BhdGh9YXBwL2A7XG5cbiAgICBjb25zdCBiYW5uZXIgPSBgLyoqXG4gKiBUaGlzIGZpbGUgaXMgbmVlZGVkIGZvciB0aGUgU3RhY2tCbGl0eiBkZW1vIG9ubHkuXG4gKiBJdCBpcyBhdXRvbWF0aWNhbGx5IHByb3ZpZGVkIHdoZW4gdXNpbmcgdGhlIEFuZ3VsYXIgQ0xJLlxuICoqL1xuIGA7XG5cbiAgICBjb25zdCBtb2R1bGVJbXBvcnRTdGF0ZW1lbnRzOiBzdHJpbmdbXSA9IFtcbiAgICAgIGBpbXBvcnQge1xcbiAgTmdNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIEZvcm1zTW9kdWxlLFxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZVxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIFJvdXRlck1vZHVsZVxcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBTa3lBcHBMb2NhbGVQcm92aWRlclxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIFNreVRoZW1lU2VydmljZVxcbn0gZnJvbSAnQHNreXV4L3RoZW1lJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBvZiBhcyBvYnNlcnZhYmxlT2ZcXG59IGZyb20gJ3J4anMnO2AsXG4gICAgICBgaW1wb3J0IHtcXG4gIEFwcENvbXBvbmVudFxcbn0gZnJvbSAnLi9hcHAuY29tcG9uZW50JztgLFxuICAgIF07XG5cbiAgICBjb25zdCBtb2R1bGVJbXBvcnRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICdCcm93c2VyQW5pbWF0aW9uc01vZHVsZScsXG4gICAgICAnRm9ybXNNb2R1bGUnLFxuICAgICAgJ1JlYWN0aXZlRm9ybXNNb2R1bGUnLFxuICAgICAgJ1JvdXRlck1vZHVsZS5mb3JSb290KFtdKScsXG4gICAgXTtcblxuICAgIGNvbnN0IGZpbGVzOiB7IFtfOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgbGV0IGFwcENvbXBvbmVudFRlbXBsYXRlID0gJyc7XG5cbiAgICBzb3VyY2VDb2RlLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgIGZpbGVzW2Ake2FwcFBhdGh9JHtmaWxlLmZpbGVOYW1lfWBdID0gZmlsZS5yYXdDb250ZW50cztcblxuICAgICAgLy8gU2V0dXAgbW9kdWxlIGltcG9ydHMgYW5kIGNvbXBvbmVudCBzZWxlY3RvcnMuXG4gICAgICBpZiAoZmlsZS5maWxlTmFtZS5pbmRleE9mKCcubW9kdWxlLnRzJykgPiAtMSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lID0gdGhpcy5nZXRNb2R1bGVOYW1lKGZpbGUucmF3Q29udGVudHMpO1xuICAgICAgICBjb25zdCBpbXBvcnRQYXRoID0gYC4vJHt0aGlzLmdldEZpbGVuYW1lTm9FeHRlbnNpb24oZmlsZS5maWxlTmFtZSl9YDtcblxuICAgICAgICBjb25zdCBleHBvcnRlZENvbXBvbmVudCA9IHRoaXMuZ2V0RXhwb3J0ZWRDb21wb25lbnQoZmlsZS5yYXdDb250ZW50cyk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFNlbGVjdG9yID0gdGhpcy5nZXRDb21wb25lbnRTZWxlY3RvcihcbiAgICAgICAgICBleHBvcnRlZENvbXBvbmVudCxcbiAgICAgICAgICBzb3VyY2VDb2RlXG4gICAgICAgICk7XG5cbiAgICAgICAgYXBwQ29tcG9uZW50VGVtcGxhdGUgKz0gYDwke2NvbXBvbmVudFNlbGVjdG9yfT48LyR7Y29tcG9uZW50U2VsZWN0b3J9PmA7XG5cbiAgICAgICAgbW9kdWxlSW1wb3J0cy5wdXNoKG1vZHVsZU5hbWUpO1xuICAgICAgICBtb2R1bGVJbXBvcnRTdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgICAgYGltcG9ydCB7XFxuICAke21vZHVsZU5hbWV9XFxufSBmcm9tICcke2ltcG9ydFBhdGh9JztgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBmaWxlc1tgJHthcHBQYXRofWFwcC5jb21wb25lbnQudHNgXSA9IGAke2Jhbm5lcn1cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lUaGVtZSxcbiAgU2t5VGhlbWVNb2RlLFxuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3Ncbn0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRlbW8tYXBwJyxcbiAgdGVtcGxhdGU6ICcke2FwcENvbXBvbmVudFRlbXBsYXRlfSdcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0aGVtZVN2YzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgY29uc3QgdGhlbWVTZXR0aW5ncyA9IG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgU2t5VGhlbWUucHJlc2V0c1snJHtcbiAgICAgICAgdGhlbWUgPT09IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLk1vZGVybiA/ICdtb2Rlcm4nIDogJ2RlZmF1bHQnXG4gICAgICB9J10sXG4gICAgICBTa3lUaGVtZU1vZGUucHJlc2V0cy5saWdodFxuICAgICk7XG5cbiAgICB0aGVtZVN2Yy5pbml0KFxuICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgIHJlbmRlcmVyLFxuICAgICAgdGhlbWVTZXR0aW5nc1xuICAgICk7XG4gIH1cblxufWA7XG5cbiAgICBmaWxlc1tgJHthcHBQYXRofWFwcC5tb2R1bGUudHNgXSA9IGAke21vZHVsZUltcG9ydFN0YXRlbWVudHMuam9pbignXFxuXFxuJyl9XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICAke21vZHVsZUltcG9ydHMuam9pbignLFxcbiAgICAnKX1cbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQXBwQ29tcG9uZW50XG4gIF0sXG4gIGJvb3RzdHJhcDogW1xuICAgIEFwcENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lUaGVtZVNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5QXBwTG9jYWxlUHJvdmlkZXIsXG4gICAgICB1c2VWYWx1ZToge1xuICAgICAgICBnZXRMb2NhbGVJbmZvOiAoKSA9PiBvYnNlcnZhYmxlT2Yoe1xuICAgICAgICAgIGxvY2FsZTogJ2VuLVVTJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBNb2R1bGUgeyB9XG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1pbmRleC5odG1sYF0gPSBgPCFkb2N0eXBlIGh0bWw+XG48aHRtbCBsYW5nPVwiZW5cIj5cbjxoZWFkPlxuICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cbiAgPHRpdGxlPlNreSBVWCBEZW1vPC90aXRsZT5cbiAgPGJhc2UgaHJlZj1cIi9cIj5cbiAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCI+XG4gIDwhLS1cbiAgICBUaGUgQ1NTIGxpbmtzIGFyZSBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAgICBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBrbm93biBidWcgdGhhdCBwcmV2ZW50cyBleHRlcm5hbCBpbXBvcnRzIGluIENTUy5cbiAgICBodHRwczovL2dpdGh1Yi5jb20vc3RhY2tibGl0ei9jb3JlL2lzc3Vlcy8xMzNcbiAgLS0+XG4gIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC43LjAvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzXCIgLz5cbiAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCJodHRwczovL3NreS5ibGFja2JhdWRjZG4ubmV0L3N0YXRpYy9za3l1eC1pY29ucy82LjAuMC9hc3NldHMvY3NzL3NreXV4LWljb25zLm1pbi5jc3NcIiAvPlxuPC9oZWFkPlxuPGJvZHk+XG4gIDxza3ktZGVtby1hcHA+XG4gICAgTG9hZGluZy4uLlxuICA8L3NreS1kZW1vLWFwcD5cbjwvYm9keT5cbjwvaHRtbD5cbmA7XG5cbiAgICBmaWxlc1tgJHtzcmNQYXRofW1haW4udHNgXSA9IGAke2Jhbm5lcn1cbmltcG9ydCB7IHBsYXRmb3JtQnJvd3NlckR5bmFtaWMgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyLWR5bmFtaWMnO1xuXG5pbXBvcnQgeyBBcHBNb2R1bGUgfSBmcm9tICcuL2FwcC9hcHAubW9kdWxlJztcblxucGxhdGZvcm1Ccm93c2VyRHluYW1pYygpLmJvb3RzdHJhcE1vZHVsZShBcHBNb2R1bGUpXG4gIC5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpKTtcbmA7XG5cbiAgICBmaWxlc1tgJHtzcmNQYXRofXN0eWxlcy5zY3NzYF0gPSBgQGltcG9ydCAnQHNreXV4L3RoZW1lL2Nzcy9za3knO1xuQGltcG9ydCAnQHNreXV4L3RoZW1lL2Nzcy90aGVtZXMvbW9kZXJuL3N0eWxlcyc7XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBtYXJnaW46IDE1cHg7XG59YDtcblxuICAgIHN0eWxlc2hlZXRzLnB1c2goJ3NyYy9zdHlsZXMuc2NzcycpO1xuXG4gICAgZmlsZXNbJ2FuZ3VsYXIuanNvbiddID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgICRzY2hlbWE6ICcuL25vZGVfbW9kdWxlcy9AYW5ndWxhci9jbGkvbGliL2NvbmZpZy9zY2hlbWEuanNvbicsXG4gICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgIHByb2plY3RzOiB7XG4gICAgICAgICAgZGVtbzoge1xuICAgICAgICAgICAgcHJvamVjdFR5cGU6ICdhcHBsaWNhdGlvbicsXG4gICAgICAgICAgICByb290OiAnJyxcbiAgICAgICAgICAgIHNvdXJjZVJvb3Q6ICdzcmMnLFxuICAgICAgICAgICAgcHJlZml4OiAnYXBwJyxcbiAgICAgICAgICAgIGFyY2hpdGVjdDoge1xuICAgICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICAgIGJ1aWxkZXI6ICdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjpicm93c2VyJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBvdXRwdXRQYXRoOiAnZGlzdC9kZW1vJyxcbiAgICAgICAgICAgICAgICAgIGluZGV4OiAnc3JjL2luZGV4Lmh0bWwnLFxuICAgICAgICAgICAgICAgICAgbWFpbjogJ3NyYy9tYWluLnRzJyxcbiAgICAgICAgICAgICAgICAgIHBvbHlmaWxsczogWyd6b25lLmpzJywgJ0Bza3l1eC9wYWNrYWdlcy9wb2x5ZmlsbHMnXSxcbiAgICAgICAgICAgICAgICAgIHRzQ29uZmlnOiAndHNjb25maWcuYXBwLmpzb24nLFxuICAgICAgICAgICAgICAgICAgaW5saW5lU3R5bGVMYW5ndWFnZTogJ3Njc3MnLFxuICAgICAgICAgICAgICAgICAgYXNzZXRzOiBbXSxcbiAgICAgICAgICAgICAgICAgIHN0eWxlczogc3R5bGVzaGVldHMsXG4gICAgICAgICAgICAgICAgICBzY3JpcHRzOiBbXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBkZXZlbG9wbWVudDoge1xuICAgICAgICAgICAgICAgICAgICBidWlsZE9wdGltaXplcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZlbmRvckNodW5rOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleHRyYWN0TGljZW5zZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWVkQ2h1bmtzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uOiAnZGV2ZWxvcG1lbnQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzZXJ2ZToge1xuICAgICAgICAgICAgICAgIGJ1aWxkZXI6ICdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjpkZXYtc2VydmVyJyxcbiAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczoge1xuICAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlclRhcmdldDogJ2RlbW86YnVpbGQ6ZGV2ZWxvcG1lbnQnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uOiAnZGV2ZWxvcG1lbnQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAnZXh0cmFjdC1pMThuJzoge1xuICAgICAgICAgICAgICAgIGJ1aWxkZXI6ICdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjpleHRyYWN0LWkxOG4nLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGJyb3dzZXJUYXJnZXQ6ICdkZW1vOmJ1aWxkJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDJcbiAgICApO1xuXG4gICAgZmlsZXNbJ3BhY2thZ2UuanNvbiddID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdza3l1eC1zcGEtZGVtbycsXG4gICAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgICAgc2NyaXB0czoge1xuICAgICAgICAgIHN0YXJ0OiAnbmcgc2VydmUnLFxuICAgICAgICAgIGJ1aWxkOiAnbmcgYnVpbGQnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDJcbiAgICApO1xuXG4gICAgZmlsZXNbJ3RzY29uZmlnLmFwcC5qc29uJ10gPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgZXh0ZW5kczogJy4vdHNjb25maWcuanNvbicsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIG91dERpcjogJy4vb3V0LXRzYy9hcHAnLFxuICAgICAgICAgIHR5cGVzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgICAgZmlsZXM6IFsnc3JjL21haW4udHMnXSxcbiAgICAgICAgaW5jbHVkZTogWydzcmMvKiovKi5kLnRzJ10sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMlxuICAgICk7XG4gICAgZmlsZXNbJ3RzY29uZmlnLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICBjb21waWxlT25TYXZlOiBmYWxzZSxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgYmFzZVVybDogJy4vJyxcbiAgICAgICAgICBvdXREaXI6ICcuL2Rpc3Qvb3V0LXRzYycsXG4gICAgICAgICAgZm9yY2VDb25zaXN0ZW50Q2FzaW5nSW5GaWxlTmFtZXM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgIG5vSW1wbGljaXRPdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgICBub1Byb3BlcnR5QWNjZXNzRnJvbUluZGV4U2lnbmF0dXJlOiB0cnVlLFxuICAgICAgICAgIG5vSW1wbGljaXRSZXR1cm5zOiB0cnVlLFxuICAgICAgICAgIG5vRmFsbHRocm91Z2hDYXNlc0luU3dpdGNoOiB0cnVlLFxuICAgICAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcbiAgICAgICAgICBkZWNsYXJhdGlvbjogZmFsc2UsXG4gICAgICAgICAgZG93bmxldmVsSXRlcmF0aW9uOiB0cnVlLFxuICAgICAgICAgIGV4cGVyaW1lbnRhbERlY29yYXRvcnM6IHRydWUsXG4gICAgICAgICAgbW9kdWxlUmVzb2x1dGlvbjogJ25vZGUnLFxuICAgICAgICAgIGltcG9ydEhlbHBlcnM6IHRydWUsXG4gICAgICAgICAgdHlwZVJvb3RzOiBbJ25vZGVfbW9kdWxlcy9AdHlwZXMnXSxcbiAgICAgICAgICB0YXJnZXQ6ICdFUzIwMjInLFxuICAgICAgICAgIG1vZHVsZTogJ0VTMjAyMicsXG4gICAgICAgICAgdXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHM6IGZhbHNlLFxuICAgICAgICAgIGxpYjogWydFUzIwMjInLCAnZG9tJ10sXG4gICAgICAgIH0sXG4gICAgICAgIGFuZ3VsYXJDb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgICBmdWxsVGVtcGxhdGVUeXBlQ2hlY2s6IHRydWUsXG4gICAgICAgICAgZW5hYmxlSTE4bkxlZ2FjeU1lc3NhZ2VJZEZvcm1hdDogZmFsc2UsXG4gICAgICAgICAgc3RyaWN0SW5qZWN0aW9uUGFyYW1ldGVyczogdHJ1ZSxcbiAgICAgICAgICBzdHJpY3RJbnB1dEFjY2Vzc01vZGlmaWVyczogdHJ1ZSxcbiAgICAgICAgICBzdHJpY3RUZW1wbGF0ZXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMlxuICAgICk7XG5cbiAgICByZXR1cm4gZmlsZXM7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZHVsZU5hbWUoY29udGVudHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbnRlbnRzLnNwbGl0KCdleHBvcnQgY2xhc3MgJylbMV0uc3BsaXQoJyB7JylbMF07XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGVuYW1lTm9FeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZU5hbWUuc3BsaXQoJy4nKS5wb3AoKTtcbiAgICByZXR1cm4gZmlsZU5hbWUucmVwbGFjZShgLiR7ZXh0ZW5zaW9ufWAsICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXhwb3J0ZWRDb21wb25lbnQoY29udGVudHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJpbW1lZCA9IGNvbnRlbnRzLnJlcGxhY2UoL1xccy9nLCAnJyk7XG5cbiAgICBsZXQgZnJhZ21lbnQgPSB0cmltbWVkLnNwbGl0KCdleHBvcnRzOlsnKVsxXTtcbiAgICBpZiAoIWZyYWdtZW50KSB7XG4gICAgICB0aHJvdyAnWW91IG11c3QgZXhwb3J0IGEgY29tcG9uZW50IGZyb20gdGhlIGNvZGUgZXhhbXBsZSBtb2R1bGUhJztcbiAgICB9XG5cbiAgICBmcmFnbWVudCA9IGZyYWdtZW50LnNwbGl0KCddJylbMF07XG5cbiAgICBjb25zdCBjb21wb25lbnRzID0gZnJhZ21lbnQuc3BsaXQoJywnKS5maWx0ZXIoKHgpID0+IHgpO1xuXG4gICAgaWYgKGNvbXBvbmVudHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgKFxuICAgICAgICAnWW91IG1heSBvbmx5IGV4cG9ydCBhIHNpbmdsZSBjb21wb25lbnQgZnJvbSB0aGUgY29kZSBleGFtcGxlIG1vZHVsZScgK1xuICAgICAgICBgKHdlIGZvdW5kICR7Y29tcG9uZW50cy5sZW5ndGh9OiAke2NvbXBvbmVudHMuam9pbignLCAnKX0pLmAgK1xuICAgICAgICAnSXMgaXQgcG9zc2libGUgdG8gY3JlYXRlIGEgbmV3IGNvZGUgZXhhbXBsZSB3aXRoIHRoZSBleHRyYSBjb21wb25lbnRzPydcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvbmVudHNbMF07XG4gIH1cblxuICBwcml2YXRlIGdldENvbXBvbmVudFNlbGVjdG9yKFxuICAgIGNvbXBvbmVudENsYXNzTmFtZTogc3RyaW5nLFxuICAgIHNvdXJjZUNvZGU6IFNreURvY3NTb3VyY2VDb2RlRmlsZVtdXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZm91bmQgPSBzb3VyY2VDb2RlLmZpbmQoKGZpbGUpID0+IHtcbiAgICAgIHJldHVybiBmaWxlLnJhd0NvbnRlbnRzLmluZGV4T2YoYGNsYXNzICR7Y29tcG9uZW50Q2xhc3NOYW1lfWApID4gLTE7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0cmltbWVkID0gZm91bmQucmF3Q29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIHJldHVybiB0cmltbWVkLnNwbGl0KGBzZWxlY3RvcjonYClbMV0uc3BsaXQoYCdgKVswXTtcbiAgfVxufVxuIl19
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFXNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBSS9EOztHQUVHO0FBSUgsTUFBTSxPQUFPLGdDQUFnQztJQUNwQyxZQUFZLENBQUMsV0FBK0I7UUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBMEIsRUFBRSxDQUFDO1FBRTFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxVQUFVLENBQUMsV0FBK0I7UUFDaEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUU5QixNQUFNLG1CQUFtQixHQUF5QztZQUNoRSxxQkFBcUIsRUFBRSxjQUFjO1lBQ3JDLGNBQWMsRUFBRSxjQUFjO1lBQzlCLGlCQUFpQixFQUFFLGNBQWM7WUFDakMsbUJBQW1CLEVBQUUsY0FBYztZQUNuQyxlQUFlLEVBQUUsY0FBYztZQUMvQixnQkFBZ0IsRUFBRSxjQUFjO1lBQ2hDLDJCQUEyQixFQUFFLGNBQWM7WUFDM0MsbUNBQW1DLEVBQUUsY0FBYztZQUNuRCxpQkFBaUIsRUFBRSxjQUFjO1lBQ2pDLG1CQUFtQixFQUFFLFlBQVk7WUFDakMsZUFBZSxFQUFFLFlBQVk7WUFDN0IsZUFBZSxFQUFFLFlBQVk7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QUFDO1FBRWxDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sQ0FDSixxRUFBcUU7Z0JBQ3JFLGFBQWEsVUFBVSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUM1RCx3RUFBd0UsQ0FDekUsQ0FBQztTQUNIO1FBRUQsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVPLG9CQUFvQixDQUMxQixrQkFBMEIsRUFDMUIsVUFBbUM7UUFFbkMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs2SEF2WFUsZ0NBQWdDO2lJQUFoQyxnQ0FBZ0MsY0FGL0IsTUFBTTsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgU3RhY2tCbGl0elNESyBmcm9tICdAc3RhY2tibGl0ei9zZGsnO1xuXG5pbXBvcnQge1xuICBPcGVuT3B0aW9ucyBhcyBTdGFja0JsaXR6T3Blbk9wdGlvbnMsXG4gIFByb2plY3QgYXMgU3RhY2tCbGl0elByb2plY3QsXG59IGZyb20gJ0BzdGFja2JsaXR6L3Nkay90eXBpbmdzL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBTa3lEb2NzU291cmNlQ29kZUZpbGUgfSBmcm9tICcuLi9zb3VyY2UtY29kZS9zb3VyY2UtY29kZS1maWxlJztcblxuaW1wb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtbW9kdWxlLWRlcGVuZGVuY2llcyc7XG5cbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lIH0gZnJvbSAnLi9jb2RlLWV4YW1wbGUtdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ29kZUV4YW1wbGUgfSBmcm9tICcuL2NvZGUtZXhhbXBsZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzQ29kZUV4YW1wbGVzRWRpdG9yU2VydmljZSB7XG4gIHB1YmxpYyBsYXVuY2hFZGl0b3IoY29kZUV4YW1wbGU6IFNreURvY3NDb2RlRXhhbXBsZSk6IHZvaWQge1xuICAgIGNvbnN0IHByb2plY3QgPSB0aGlzLmdldFBheWxvYWQoY29kZUV4YW1wbGUpO1xuICAgIGNvbnN0IG9wdGlvbnM6IFN0YWNrQmxpdHpPcGVuT3B0aW9ucyA9IHt9O1xuXG4gICAgU3RhY2tCbGl0elNESy5vcGVuUHJvamVjdChwcm9qZWN0LCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF5bG9hZChjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlKTogU3RhY2tCbGl0elByb2plY3Qge1xuICAgIGNvbnN0IGFuZ3VsYXJWZXJzaW9uID0gJ14xNS4wLjAnO1xuICAgIGNvbnN0IHNreXV4VmVyc2lvbiA9ICdeOC4wLjAnO1xuXG4gICAgY29uc3QgZGVmYXVsdERlcGVuZGVuY2llczogU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzID0ge1xuICAgICAgJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jZGsnOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb21tb24nOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9jb21waWxlcic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NvcmUnOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9mb3Jtcyc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyLWR5bmFtaWMnOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAYW5ndWxhci9yb3V0ZXInOiBhbmd1bGFyVmVyc2lvbixcbiAgICAgICdAc2t5dXgvYW5pbWF0aW9ucyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvYXNzZXRzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9jb25maWcnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2NvcmUnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2Vycm9ycyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvZm9ybXMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2h0dHAnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2kxOG4nOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2luZGljYXRvcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2xheW91dCc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvbW9kYWxzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9wYWNrYWdlcyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvcG9wb3ZlcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3JvdXRlcic6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvdGhlbWUnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHR5cGVzL2phc21pbmUnOiAnfjQuMC4zJyxcbiAgICAgIC8vIFdlIG11c3QgZGVmaW5lIERyYWd1bGEgZGVsaWJlcmF0ZWx5IHNvIHRoYXQgU3RhY2tCbGl0eiBydW5zIE5HQ0MgYWdhaW5zdCBpdC5cbiAgICAgICduZzItZHJhZ3VsYSc6ICcyLjEuMScsXG4gICAgICByeGpzOiAnXjcnLFxuICAgICAgdHNsaWI6ICdeMi4zLjAnLFxuICAgICAgJ3pvbmUuanMnOiAnfjAuMTIuMCcsXG4gICAgfTtcblxuICAgIGNvbnN0IG1lcmdlZERlcGVuZGVuY2llcyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHREZXBlbmRlbmNpZXMsXG4gICAgICBjb2RlRXhhbXBsZS5wYWNrYWdlRGVwZW5kZW5jaWVzXG4gICAgKTtcblxuICAgIC8vIEVuc3VyZSBhbnkgQHNreXV4IGRlcGVuZGVuY2llcyBsaXN0IHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgU0tZIFVYLlxuICAgIC8vIGUuZy4gYFwiQHNreXV4L2NvcmVcIjogXCIqXCJgIC0tPiBgXCJAc2t5dXgvY29yZVwiOiBcIjUuMC4wXCJgXG4gICAgZm9yIChjb25zdCBwYWNrYWdlTmFtZSBpbiBtZXJnZWREZXBlbmRlbmNpZXMpIHtcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgaWYgKG1lcmdlZERlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShwYWNrYWdlTmFtZSkpIHtcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IG1lcmdlZERlcGVuZGVuY2llc1twYWNrYWdlTmFtZV07XG4gICAgICAgIGlmIChcbiAgICAgICAgICB2ZXJzaW9uID09PSAnKicgJiZcbiAgICAgICAgICAvXihAYmxhY2tiYXVkXFwvc2t5dXgtbGliLXxAc2t5dXgpLy50ZXN0KHBhY2thZ2VOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICBtZXJnZWREZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdID0gc2t5dXhWZXJzaW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLnBhcnNlU3RhY2tCbGl0ekZpbGVzKFxuICAgICAgY29kZUV4YW1wbGUuc291cmNlQ29kZSxcbiAgICAgIG1lcmdlZERlcGVuZGVuY2llcyxcbiAgICAgIGNvZGVFeGFtcGxlLnRoZW1lLFxuICAgICAgY29kZUV4YW1wbGUuc3R5bGVzaGVldHNcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVzLFxuICAgICAgdGl0bGU6ICdTS1kgVVggRGVtbycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1NLWSBVWCBEZW1vJyxcbiAgICAgIHRlbXBsYXRlOiAnYW5ndWxhci1jbGknLFxuICAgICAgZGVwZW5kZW5jaWVzOiBtZXJnZWREZXBlbmRlbmNpZXMsXG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICBjb21waWxlOiB7XG4gICAgICAgICAgY2xlYXJDb25zb2xlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VTdGFja0JsaXR6RmlsZXMoXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW10sXG4gICAgZGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMsXG4gICAgdGhlbWU6IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLFxuICAgIHN0eWxlc2hlZXRzOiBzdHJpbmdbXSA9IFtdXG4gICk6IHtcbiAgICBbcGF0aDogc3RyaW5nXTogc3RyaW5nO1xuICB9IHtcbiAgICBjb25zdCBzcmNQYXRoID0gJ3NyYy8nO1xuICAgIGNvbnN0IGFwcFBhdGggPSBgJHtzcmNQYXRofWFwcC9gO1xuXG4gICAgY29uc3QgYmFubmVyID0gYC8qKlxuICogVGhpcyBmaWxlIGlzIG5lZWRlZCBmb3IgdGhlIFN0YWNrQmxpdHogZGVtbyBvbmx5LlxuICogSXQgaXMgYXV0b21hdGljYWxseSBwcm92aWRlZCB3aGVuIHVzaW5nIHRoZSBBbmd1bGFyIENMSS5cbiAqKi9cbiBgO1xuXG4gICAgY29uc3QgbW9kdWxlSW1wb3J0U3RhdGVtZW50czogc3RyaW5nW10gPSBbXG4gICAgICBgaW1wb3J0IHtcXG4gIE5nTW9kdWxlXFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBGb3Jtc01vZHVsZSxcXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZVxcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBSb3V0ZXJNb2R1bGVcXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgU2t5QXBwTG9jYWxlUHJvdmlkZXJcXG59IGZyb20gJ0Bza3l1eC9pMThuJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBTa3lUaGVtZVNlcnZpY2VcXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7YCxcbiAgICAgIGBpbXBvcnQge1xcbiAgb2YgYXMgb2JzZXJ2YWJsZU9mXFxufSBmcm9tICdyeGpzJztgLFxuICAgICAgYGltcG9ydCB7XFxuICBBcHBDb21wb25lbnRcXG59IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7YCxcbiAgICBdO1xuXG4gICAgY29uc3QgbW9kdWxlSW1wb3J0czogc3RyaW5nW10gPSBbXG4gICAgICAnQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUnLFxuICAgICAgJ0Zvcm1zTW9kdWxlJyxcbiAgICAgICdSZWFjdGl2ZUZvcm1zTW9kdWxlJyxcbiAgICAgICdSb3V0ZXJNb2R1bGUuZm9yUm9vdChbXSknLFxuICAgIF07XG5cbiAgICBjb25zdCBmaWxlczogeyBbXzogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgIGxldCBhcHBDb21wb25lbnRUZW1wbGF0ZSA9ICcnO1xuXG4gICAgc291cmNlQ29kZS5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICBmaWxlc1tgJHthcHBQYXRofSR7ZmlsZS5maWxlTmFtZX1gXSA9IGZpbGUucmF3Q29udGVudHM7XG5cbiAgICAgIC8vIFNldHVwIG1vZHVsZSBpbXBvcnRzIGFuZCBjb21wb25lbnQgc2VsZWN0b3JzLlxuICAgICAgaWYgKGZpbGUuZmlsZU5hbWUuaW5kZXhPZignLm1vZHVsZS50cycpID4gLTEpIHtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IHRoaXMuZ2V0TW9kdWxlTmFtZShmaWxlLnJhd0NvbnRlbnRzKTtcbiAgICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IGAuLyR7dGhpcy5nZXRGaWxlbmFtZU5vRXh0ZW5zaW9uKGZpbGUuZmlsZU5hbWUpfWA7XG5cbiAgICAgICAgY29uc3QgZXhwb3J0ZWRDb21wb25lbnQgPSB0aGlzLmdldEV4cG9ydGVkQ29tcG9uZW50KGZpbGUucmF3Q29udGVudHMpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRTZWxlY3RvciA9IHRoaXMuZ2V0Q29tcG9uZW50U2VsZWN0b3IoXG4gICAgICAgICAgZXhwb3J0ZWRDb21wb25lbnQsXG4gICAgICAgICAgc291cmNlQ29kZVxuICAgICAgICApO1xuXG4gICAgICAgIGFwcENvbXBvbmVudFRlbXBsYXRlICs9IGA8JHtjb21wb25lbnRTZWxlY3Rvcn0+PC8ke2NvbXBvbmVudFNlbGVjdG9yfT5gO1xuXG4gICAgICAgIG1vZHVsZUltcG9ydHMucHVzaChtb2R1bGVOYW1lKTtcbiAgICAgICAgbW9kdWxlSW1wb3J0U3RhdGVtZW50cy5wdXNoKFxuICAgICAgICAgIGBpbXBvcnQge1xcbiAgJHttb2R1bGVOYW1lfVxcbn0gZnJvbSAnJHtpbXBvcnRQYXRofSc7YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZmlsZXNbYCR7YXBwUGF0aH1hcHAuY29tcG9uZW50LnRzYF0gPSBgJHtiYW5uZXJ9XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5VGhlbWUsXG4gIFNreVRoZW1lTW9kZSxcbiAgU2t5VGhlbWVTZXJ2aWNlLFxuICBTa3lUaGVtZVNldHRpbmdzXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kZW1vLWFwcCcsXG4gIHRlbXBsYXRlOiAnJHthcHBDb21wb25lbnRUZW1wbGF0ZX0nXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSxcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIGNvbnN0IHRoZW1lU2V0dGluZ3MgPSBuZXcgU2t5VGhlbWVTZXR0aW5ncyhcbiAgICAgIFNreVRoZW1lLnByZXNldHNbJyR7XG4gICAgICAgIHRoZW1lID09PSBTa3lEb2NzQ29kZUV4YW1wbGVUaGVtZS5Nb2Rlcm4gPyAnbW9kZXJuJyA6ICdkZWZhdWx0J1xuICAgICAgfSddLFxuICAgICAgU2t5VGhlbWVNb2RlLnByZXNldHMubGlnaHRcbiAgICApO1xuXG4gICAgdGhlbWVTdmMuaW5pdChcbiAgICAgIGRvY3VtZW50LmJvZHksXG4gICAgICByZW5kZXJlcixcbiAgICAgIHRoZW1lU2V0dGluZ3NcbiAgICApO1xuICB9XG5cbn1gO1xuXG4gICAgZmlsZXNbYCR7YXBwUGF0aH1hcHAubW9kdWxlLnRzYF0gPSBgJHttb2R1bGVJbXBvcnRTdGF0ZW1lbnRzLmpvaW4oJ1xcblxcbicpfVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgJHttb2R1bGVJbXBvcnRzLmpvaW4oJyxcXG4gICAgJyl9XG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFwcENvbXBvbmVudFxuICBdLFxuICBib290c3RyYXA6IFtcbiAgICBBcHBDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5VGhlbWVTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNreUFwcExvY2FsZVByb3ZpZGVyLFxuICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgZ2V0TG9jYWxlSW5mbzogKCkgPT4gb2JzZXJ2YWJsZU9mKHtcbiAgICAgICAgICBsb2NhbGU6ICdlbi1VUydcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwTW9kdWxlIHsgfVxuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9aW5kZXguaHRtbGBdID0gYDwhZG9jdHlwZSBodG1sPlxuPGh0bWwgbGFuZz1cImVuXCI+XG48aGVhZD5cbiAgPG1ldGEgY2hhcnNldD1cInV0Zi04XCI+XG4gIDx0aXRsZT5Ta3kgVVggRGVtbzwvdGl0bGU+XG4gIDxiYXNlIGhyZWY9XCIvXCI+XG4gIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiPlxuICA8IS0tXG4gICAgVGhlIENTUyBsaW5rcyBhcmUgbmVlZGVkIGZvciB0aGUgU3RhY2tCbGl0eiBkZW1vIG9ubHkuXG4gICAgVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGEga25vd24gYnVnIHRoYXQgcHJldmVudHMgZXh0ZXJuYWwgaW1wb3J0cyBpbiBDU1MuXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrYmxpdHovY29yZS9pc3N1ZXMvMTMzXG4gIC0tPlxuICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cImh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNy4wL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzc1wiIC8+XG4gIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiaHR0cHM6Ly9za3kuYmxhY2tiYXVkY2RuLm5ldC9zdGF0aWMvc2t5dXgtaWNvbnMvNi4wLjAvYXNzZXRzL2Nzcy9za3l1eC1pY29ucy5taW4uY3NzXCIgLz5cbjwvaGVhZD5cbjxib2R5PlxuICA8c2t5LWRlbW8tYXBwPlxuICAgIExvYWRpbmcuLi5cbiAgPC9za3ktZGVtby1hcHA+XG48L2JvZHk+XG48L2h0bWw+XG5gO1xuXG4gICAgZmlsZXNbYCR7c3JjUGF0aH1tYWluLnRzYF0gPSBgJHtiYW5uZXJ9XG5pbXBvcnQgJ3pvbmUuanMnO1xuaW1wb3J0ICdAc2t5dXgvcGFja2FnZXMvcG9seWZpbGxzJztcblxuaW1wb3J0IHtcbiAgcGxhdGZvcm1Ccm93c2VyRHluYW1pY1xufSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyLWR5bmFtaWMnO1xuXG5pbXBvcnQge1xuICBBcHBNb2R1bGVcbn0gZnJvbSAnLi9hcHAvYXBwLm1vZHVsZSc7XG5cbnBsYXRmb3JtQnJvd3NlckR5bmFtaWMoKVxuICAuYm9vdHN0cmFwTW9kdWxlKEFwcE1vZHVsZSlcbiAgLmNhdGNoKChlcnIpID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XG5cbmA7XG5cbiAgICBmaWxlc1tgJHtzcmNQYXRofXN0eWxlcy5zY3NzYF0gPSBgQGltcG9ydCAnQHNreXV4L3RoZW1lL2Nzcy9za3knO1xuQGltcG9ydCAnQHNreXV4L3RoZW1lL2Nzcy90aGVtZXMvbW9kZXJuL3N0eWxlcyc7XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBtYXJnaW46IDE1cHg7XG59YDtcblxuICAgIHN0eWxlc2hlZXRzLnB1c2goJ3NyYy9zdHlsZXMuc2NzcycpO1xuXG4gICAgZmlsZXNbJ2FuZ3VsYXIuanNvbiddID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIHByb2plY3RzOiB7XG4gICAgICAgICAgZGVtbzoge1xuICAgICAgICAgICAgYXJjaGl0ZWN0OiB7XG4gICAgICAgICAgICAgIGJ1aWxkOiB7XG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgaW5kZXg6ICdzcmMvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICAgICAgICBtYWluOiAnc3JjL21haW4udHMnLFxuICAgICAgICAgICAgICAgICAgaW5saW5lU3R5bGVMYW5ndWFnZTogJ3Njc3MnLFxuICAgICAgICAgICAgICAgICAgc3R5bGVzOiBzdHlsZXNoZWV0cyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDJcbiAgICApO1xuXG4gICAgZmlsZXNbJ3BhY2thZ2UuanNvbiddID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyXG4gICAgKTtcblxuICAgIGZpbGVzWyd0c2NvbmZpZy5qc29uJ10gPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgIGZvcmNlQ29uc2lzdGVudENhc2luZ0luRmlsZU5hbWVzOiB0cnVlLFxuICAgICAgICAgIG5vSW1wbGljaXRPdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgICBub1Byb3BlcnR5QWNjZXNzRnJvbUluZGV4U2lnbmF0dXJlOiB0cnVlLFxuICAgICAgICAgIG5vSW1wbGljaXRSZXR1cm5zOiB0cnVlLFxuICAgICAgICAgIG5vRmFsbHRocm91Z2hDYXNlc0luU3dpdGNoOiB0cnVlLFxuICAgICAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcbiAgICAgICAgICBkZWNsYXJhdGlvbjogZmFsc2UsXG4gICAgICAgICAgZG93bmxldmVsSXRlcmF0aW9uOiB0cnVlLFxuICAgICAgICAgIGVzTW9kdWxlSW50ZXJvcDogdHJ1ZSxcbiAgICAgICAgICBleHBlcmltZW50YWxEZWNvcmF0b3JzOiB0cnVlLFxuICAgICAgICAgIG1vZHVsZVJlc29sdXRpb246ICdub2RlJyxcbiAgICAgICAgICBpbXBvcnRIZWxwZXJzOiB0cnVlLFxuICAgICAgICAgIHR5cGVSb290czogWydub2RlX21vZHVsZXMvQHR5cGVzJ10sXG4gICAgICAgICAgdGFyZ2V0OiAnRVMyMDIyJyxcbiAgICAgICAgICBtb2R1bGU6ICdFUzIwMjInLFxuICAgICAgICAgIHVzZURlZmluZUZvckNsYXNzRmllbGRzOiBmYWxzZSxcbiAgICAgICAgICBsaWI6IFsnRVMyMDIyJywgJ2RvbSddLFxuICAgICAgICB9LFxuICAgICAgICBhbmd1bGFyQ29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgZnVsbFRlbXBsYXRlVHlwZUNoZWNrOiB0cnVlLFxuICAgICAgICAgIGVuYWJsZUkxOG5MZWdhY3lNZXNzYWdlSWRGb3JtYXQ6IGZhbHNlLFxuICAgICAgICAgIHN0cmljdEluamVjdGlvblBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0SW5wdXRBY2Nlc3NNb2RpZmllcnM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0VGVtcGxhdGVzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDJcbiAgICApO1xuXG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2R1bGVOYW1lKGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb250ZW50cy5zcGxpdCgnZXhwb3J0IGNsYXNzICcpWzFdLnNwbGl0KCcgeycpWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlbmFtZU5vRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGV4dGVuc2lvbiA9IGZpbGVOYW1lLnNwbGl0KCcuJykucG9wKCk7XG4gICAgcmV0dXJuIGZpbGVOYW1lLnJlcGxhY2UoYC4ke2V4dGVuc2lvbn1gLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGdldEV4cG9ydGVkQ29tcG9uZW50KGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyaW1tZWQgPSBjb250ZW50cy5yZXBsYWNlKC9cXHMvZywgJycpO1xuXG4gICAgbGV0IGZyYWdtZW50ID0gdHJpbW1lZC5zcGxpdCgnZXhwb3J0czpbJylbMV07XG4gICAgaWYgKCFmcmFnbWVudCkge1xuICAgICAgdGhyb3cgJ1lvdSBtdXN0IGV4cG9ydCBhIGNvbXBvbmVudCBmcm9tIHRoZSBjb2RlIGV4YW1wbGUgbW9kdWxlISc7XG4gICAgfVxuXG4gICAgZnJhZ21lbnQgPSBmcmFnbWVudC5zcGxpdCgnXScpWzBdO1xuXG4gICAgY29uc3QgY29tcG9uZW50cyA9IGZyYWdtZW50LnNwbGl0KCcsJykuZmlsdGVyKCh4KSA9PiB4KTtcblxuICAgIGlmIChjb21wb25lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IChcbiAgICAgICAgJ1lvdSBtYXkgb25seSBleHBvcnQgYSBzaW5nbGUgY29tcG9uZW50IGZyb20gdGhlIGNvZGUgZXhhbXBsZSBtb2R1bGUnICtcbiAgICAgICAgYCh3ZSBmb3VuZCAke2NvbXBvbmVudHMubGVuZ3RofTogJHtjb21wb25lbnRzLmpvaW4oJywgJyl9KS5gICtcbiAgICAgICAgJ0lzIGl0IHBvc3NpYmxlIHRvIGNyZWF0ZSBhIG5ldyBjb2RlIGV4YW1wbGUgd2l0aCB0aGUgZXh0cmEgY29tcG9uZW50cz8nXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wb25lbnRzWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21wb25lbnRTZWxlY3RvcihcbiAgICBjb21wb25lbnRDbGFzc05hbWU6IHN0cmluZyxcbiAgICBzb3VyY2VDb2RlOiBTa3lEb2NzU291cmNlQ29kZUZpbGVbXVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvdW5kID0gc291cmNlQ29kZS5maW5kKChmaWxlKSA9PiB7XG4gICAgICByZXR1cm4gZmlsZS5yYXdDb250ZW50cy5pbmRleE9mKGBjbGFzcyAke2NvbXBvbmVudENsYXNzTmFtZX1gKSA+IC0xO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdHJpbW1lZCA9IGZvdW5kLnJhd0NvbnRlbnRzLnJlcGxhY2UoL1xccy9nLCAnJyk7XG5cbiAgICByZXR1cm4gdHJpbW1lZC5zcGxpdChgc2VsZWN0b3I6J2ApWzFdLnNwbGl0KGAnYClbMF07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -308,13 +308,10 @@ class SkyDocsCodeExamplesEditorService {
|
|
|
308
308
|
const angularVersion = '^15.0.0';
|
|
309
309
|
const skyuxVersion = '^8.0.0';
|
|
310
310
|
const defaultDependencies = {
|
|
311
|
-
'@angular-devkit/build-angular': angularVersion,
|
|
312
311
|
'@angular/animations': angularVersion,
|
|
313
312
|
'@angular/cdk': angularVersion,
|
|
314
|
-
'@angular/cli': angularVersion,
|
|
315
313
|
'@angular/common': angularVersion,
|
|
316
314
|
'@angular/compiler': angularVersion,
|
|
317
|
-
'@angular/compiler-cli': angularVersion,
|
|
318
315
|
'@angular/core': angularVersion,
|
|
319
316
|
'@angular/forms': angularVersion,
|
|
320
317
|
'@angular/platform-browser': angularVersion,
|
|
@@ -340,7 +337,6 @@ class SkyDocsCodeExamplesEditorService {
|
|
|
340
337
|
'ng2-dragula': '2.1.1',
|
|
341
338
|
rxjs: '^7',
|
|
342
339
|
tslib: '^2.3.0',
|
|
343
|
-
typescript: '~4.9.4',
|
|
344
340
|
'zone.js': '~0.12.0',
|
|
345
341
|
};
|
|
346
342
|
const mergedDependencies = Object.assign({}, defaultDependencies, codeExample.packageDependencies);
|
|
@@ -361,7 +357,7 @@ class SkyDocsCodeExamplesEditorService {
|
|
|
361
357
|
files,
|
|
362
358
|
title: 'SKY UX Demo',
|
|
363
359
|
description: 'SKY UX Demo',
|
|
364
|
-
template: '
|
|
360
|
+
template: 'angular-cli',
|
|
365
361
|
dependencies: mergedDependencies,
|
|
366
362
|
settings: {
|
|
367
363
|
compile: {
|
|
@@ -494,12 +490,21 @@ export class AppModule { }
|
|
|
494
490
|
</html>
|
|
495
491
|
`;
|
|
496
492
|
files[`${srcPath}main.ts`] = `${banner}
|
|
497
|
-
import
|
|
493
|
+
import 'zone.js';
|
|
494
|
+
import '@skyux/packages/polyfills';
|
|
498
495
|
|
|
499
|
-
import {
|
|
496
|
+
import {
|
|
497
|
+
platformBrowserDynamic
|
|
498
|
+
} from '@angular/platform-browser-dynamic';
|
|
499
|
+
|
|
500
|
+
import {
|
|
501
|
+
AppModule
|
|
502
|
+
} from './app/app.module';
|
|
503
|
+
|
|
504
|
+
platformBrowserDynamic()
|
|
505
|
+
.bootstrapModule(AppModule)
|
|
506
|
+
.catch((err) => console.error(err));
|
|
500
507
|
|
|
501
|
-
platformBrowserDynamic().bootstrapModule(AppModule)
|
|
502
|
-
.catch(err => console.error(err));
|
|
503
508
|
`;
|
|
504
509
|
files[`${srcPath}styles.scss`] = `@import '@skyux/theme/css/sky';
|
|
505
510
|
@import '@skyux/theme/css/themes/modern/styles';
|
|
@@ -510,53 +515,15 @@ body {
|
|
|
510
515
|
}`;
|
|
511
516
|
stylesheets.push('src/styles.scss');
|
|
512
517
|
files['angular.json'] = JSON.stringify({
|
|
513
|
-
$schema: './node_modules/@angular/cli/lib/config/schema.json',
|
|
514
|
-
version: 1,
|
|
515
518
|
projects: {
|
|
516
519
|
demo: {
|
|
517
|
-
projectType: 'application',
|
|
518
|
-
root: '',
|
|
519
|
-
sourceRoot: 'src',
|
|
520
|
-
prefix: 'app',
|
|
521
520
|
architect: {
|
|
522
521
|
build: {
|
|
523
|
-
builder: '@angular-devkit/build-angular:browser',
|
|
524
522
|
options: {
|
|
525
|
-
outputPath: 'dist/demo',
|
|
526
523
|
index: 'src/index.html',
|
|
527
524
|
main: 'src/main.ts',
|
|
528
|
-
polyfills: ['zone.js', '@skyux/packages/polyfills'],
|
|
529
|
-
tsConfig: 'tsconfig.app.json',
|
|
530
525
|
inlineStyleLanguage: 'scss',
|
|
531
|
-
assets: [],
|
|
532
526
|
styles: stylesheets,
|
|
533
|
-
scripts: [],
|
|
534
|
-
},
|
|
535
|
-
configurations: {
|
|
536
|
-
development: {
|
|
537
|
-
buildOptimizer: false,
|
|
538
|
-
optimization: false,
|
|
539
|
-
vendorChunk: true,
|
|
540
|
-
extractLicenses: false,
|
|
541
|
-
sourceMap: true,
|
|
542
|
-
namedChunks: true,
|
|
543
|
-
},
|
|
544
|
-
},
|
|
545
|
-
defaultConfiguration: 'development',
|
|
546
|
-
},
|
|
547
|
-
serve: {
|
|
548
|
-
builder: '@angular-devkit/build-angular:dev-server',
|
|
549
|
-
configurations: {
|
|
550
|
-
development: {
|
|
551
|
-
browserTarget: 'demo:build:development',
|
|
552
|
-
},
|
|
553
|
-
},
|
|
554
|
-
defaultConfiguration: 'development',
|
|
555
|
-
},
|
|
556
|
-
'extract-i18n': {
|
|
557
|
-
builder: '@angular-devkit/build-angular:extract-i18n',
|
|
558
|
-
options: {
|
|
559
|
-
browserTarget: 'demo:build',
|
|
560
527
|
},
|
|
561
528
|
},
|
|
562
529
|
},
|
|
@@ -564,29 +531,12 @@ body {
|
|
|
564
531
|
},
|
|
565
532
|
}, undefined, 2);
|
|
566
533
|
files['package.json'] = JSON.stringify({
|
|
567
|
-
name: 'skyux-spa-demo',
|
|
568
534
|
dependencies,
|
|
569
|
-
scripts: {
|
|
570
|
-
start: 'ng serve',
|
|
571
|
-
build: 'ng build',
|
|
572
|
-
},
|
|
573
|
-
}, undefined, 2);
|
|
574
|
-
files['tsconfig.app.json'] = JSON.stringify({
|
|
575
|
-
extends: './tsconfig.json',
|
|
576
|
-
compilerOptions: {
|
|
577
|
-
outDir: './out-tsc/app',
|
|
578
|
-
types: [],
|
|
579
|
-
},
|
|
580
|
-
files: ['src/main.ts'],
|
|
581
|
-
include: ['src/**/*.d.ts'],
|
|
582
535
|
}, undefined, 2);
|
|
583
536
|
files['tsconfig.json'] = JSON.stringify({
|
|
584
|
-
compileOnSave: false,
|
|
585
537
|
compilerOptions: {
|
|
586
|
-
baseUrl: './',
|
|
587
|
-
outDir: './dist/out-tsc',
|
|
588
|
-
forceConsistentCasingInFileNames: true,
|
|
589
538
|
strict: true,
|
|
539
|
+
forceConsistentCasingInFileNames: true,
|
|
590
540
|
noImplicitOverride: true,
|
|
591
541
|
noPropertyAccessFromIndexSignature: true,
|
|
592
542
|
noImplicitReturns: true,
|
|
@@ -594,6 +544,7 @@ body {
|
|
|
594
544
|
sourceMap: true,
|
|
595
545
|
declaration: false,
|
|
596
546
|
downlevelIteration: true,
|
|
547
|
+
esModuleInterop: true,
|
|
597
548
|
experimentalDecorators: true,
|
|
598
549
|
moduleResolution: 'node',
|
|
599
550
|
importHelpers: true,
|