carbon-components-angular 5.59.2 → 5.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/docs/documentation/components/FileComponent.html +246 -57
  2. package/docs/documentation/components/FileUploader.html +125 -53
  3. package/docs/documentation/coverage.html +6 -6
  4. package/docs/documentation/js/search/search_index.js +2 -2
  5. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  6. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  7. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +41 -37
  8. package/docs/documentation/modules/DatePickerInputModule.html +41 -37
  9. package/docs/documentation/modules/DialogModule/dependencies.svg +34 -34
  10. package/docs/documentation/modules/DialogModule.html +34 -34
  11. package/docs/documentation/modules/FileUploaderModule/dependencies.svg +36 -36
  12. package/docs/documentation/modules/FileUploaderModule.html +36 -36
  13. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  14. package/docs/documentation/modules/NumberModule.html +4 -4
  15. package/docs/documentation/modules/RadioModule/dependencies.svg +48 -48
  16. package/docs/documentation/modules/RadioModule.html +48 -48
  17. package/docs/documentation/modules/SelectModule/dependencies.svg +43 -43
  18. package/docs/documentation/modules/SelectModule.html +43 -43
  19. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  20. package/docs/documentation/modules/SliderModule.html +4 -4
  21. package/docs/documentation/modules/TabsModule/dependencies.svg +69 -69
  22. package/docs/documentation/modules/TabsModule.html +69 -69
  23. package/docs/documentation/modules/TagModule/dependencies.svg +39 -39
  24. package/docs/documentation/modules/TagModule.html +39 -39
  25. package/docs/documentation/modules/ThemeModule/dependencies.svg +13 -13
  26. package/docs/documentation/modules/ThemeModule.html +13 -13
  27. package/docs/documentation/modules/TilesModule/dependencies.svg +91 -91
  28. package/docs/documentation/modules/TilesModule.html +91 -91
  29. package/docs/documentation/modules/TimePickerModule/dependencies.svg +38 -42
  30. package/docs/documentation/modules/TimePickerModule.html +38 -42
  31. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +30 -30
  32. package/docs/documentation/modules/TimePickerSelectModule.html +30 -30
  33. package/docs/documentation/modules/ToggleModule/dependencies.svg +20 -20
  34. package/docs/documentation/modules/ToggleModule.html +20 -20
  35. package/docs/documentation/modules/ToggletipModule/dependencies.svg +37 -37
  36. package/docs/documentation/modules/ToggletipModule.html +37 -37
  37. package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
  38. package/docs/documentation/modules/TooltipModule.html +28 -28
  39. package/docs/documentation/modules/TreeviewModule/dependencies.svg +32 -32
  40. package/docs/documentation/modules/TreeviewModule.html +32 -32
  41. package/docs/documentation.json +770 -118
  42. package/docs/storybook/1335.988334fd.iframe.bundle.js +1 -0
  43. package/docs/storybook/file-uploader-file-stories.28293d0d.iframe.bundle.js +1 -0
  44. package/docs/storybook/file-uploader-file-uploader-stories.fa3bd098.iframe.bundle.js +1 -0
  45. package/docs/storybook/iframe.html +2 -2
  46. package/docs/storybook/index.json +1 -1
  47. package/docs/storybook/main.be15134b.iframe.bundle.js +1 -0
  48. package/docs/storybook/project.json +1 -1
  49. package/docs/storybook/runtime~main.5491fa20.iframe.bundle.js +1 -0
  50. package/docs/storybook/stories.json +1 -1
  51. package/esm2020/file-uploader/file-uploader.component.mjs +15 -7
  52. package/esm2020/file-uploader/file.component.mjs +94 -42
  53. package/fesm2015/carbon-components-angular-file-uploader.mjs +107 -48
  54. package/fesm2015/carbon-components-angular-file-uploader.mjs.map +1 -1
  55. package/fesm2020/carbon-components-angular-file-uploader.mjs +107 -48
  56. package/fesm2020/carbon-components-angular-file-uploader.mjs.map +1 -1
  57. package/file-uploader/file-uploader.component.d.ts +9 -1
  58. package/file-uploader/file.component.d.ts +11 -2
  59. package/package.json +1 -1
  60. package/docs/storybook/file-uploader-file-uploader-stories.7cbeda49.iframe.bundle.js +0 -1
  61. package/docs/storybook/main.762d7fb4.iframe.bundle.js +0 -1
  62. package/docs/storybook/runtime~main.771b0b54.iframe.bundle.js +0 -1
@@ -198,7 +198,7 @@ export class FileUploader {
198
198
  */
199
199
  FileUploader.fileUploaderCount = 0;
200
200
  FileUploader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileUploader, deps: [{ token: i1.I18n }], target: i0.ɵɵFactoryTarget.Component });
201
- FileUploader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FileUploader, selector: "cds-file-uploader, ibm-file-uploader", inputs: { buttonText: "buttonText", buttonType: "buttonType", title: "title", description: "description", accept: "accept", multiple: "multiple", skeleton: "skeleton", size: "size", fileItemSize: "fileItemSize", drop: "drop", dropText: "dropText", fileUploaderId: "fileUploaderId", files: "files", disabled: "disabled" }, outputs: { filesChange: "filesChange" }, providers: [
201
+ FileUploader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FileUploader, selector: "cds-file-uploader, ibm-file-uploader", inputs: { buttonText: "buttonText", buttonType: "buttonType", title: "title", description: "description", accept: "accept", multiple: "multiple", skeleton: "skeleton", size: "size", fileItemSize: "fileItemSize", drop: "drop", dropText: "dropText", fileUploaderId: "fileUploaderId", files: "files", disabled: "disabled", fileNameTpl: "fileNameTpl", fileActionsTpl: "fileActionsTpl" }, outputs: { filesChange: "filesChange" }, providers: [
202
202
  {
203
203
  provide: NG_VALUE_ACCESSOR,
204
204
  useExisting: FileUploader,
@@ -253,8 +253,10 @@ FileUploader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
253
253
  <ng-container *ngFor="let fileItem of files">
254
254
  <cds-file
255
255
  [fileItem]="fileItem"
256
- (remove)="removeFile(fileItem)"
257
- [size]="fileItemSize">
256
+ [nameTpl]="fileNameTpl"
257
+ [actionsTpl]="fileActionsTpl"
258
+ [size]="fileItemSize"
259
+ (remove)="removeFile(fileItem)">
258
260
  </cds-file>
259
261
  </ng-container>
260
262
  </div>
@@ -266,7 +268,7 @@ FileUploader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
266
268
  <div class="cds--skeleton__text" style="width: 225px"></div>
267
269
  <button cdsButton skeleton="true"></button>
268
270
  </ng-template>
269
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.FileComponent, selector: "cds-file, ibm-file", inputs: ["translations", "fileItem", "size"], outputs: ["remove"] }] });
271
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.FileComponent, selector: "cds-file, ibm-file", inputs: ["translations", "fileItem", "size", "nameTpl", "actionsTpl"], outputs: ["remove"] }] });
270
272
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileUploader, decorators: [{
271
273
  type: Component,
272
274
  args: [{
@@ -320,8 +322,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
320
322
  <ng-container *ngFor="let fileItem of files">
321
323
  <cds-file
322
324
  [fileItem]="fileItem"
323
- (remove)="removeFile(fileItem)"
324
- [size]="fileItemSize">
325
+ [nameTpl]="fileNameTpl"
326
+ [actionsTpl]="fileActionsTpl"
327
+ [size]="fileItemSize"
328
+ (remove)="removeFile(fileItem)">
325
329
  </cds-file>
326
330
  </ng-container>
327
331
  </div>
@@ -373,7 +377,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
373
377
  type: Input
374
378
  }], disabled: [{
375
379
  type: Input
380
+ }], fileNameTpl: [{
381
+ type: Input
382
+ }], fileActionsTpl: [{
383
+ type: Input
376
384
  }], filesChange: [{
377
385
  type: Output
378
386
  }] } });
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFLekUsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXZCOzs7Ozs7OztHQVFHO0FBMEVILE1BQU0sT0FBTyxZQUFZO0lBZ0Z4QixZQUFzQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQTNFaEM7Ozs7V0FJRztRQUNNLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDekQ7O1dBRUc7UUFDTSxlQUFVLEdBQThELFNBQVMsQ0FBQztRQVMzRjs7V0FFRztRQUNNLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDckI7Ozs7V0FJRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSzFCOztXQUVHO1FBQ00saUJBQVksR0FBdUIsSUFBSSxDQUFDO1FBQ2pEOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQztRQUt0Qjs7V0FFRztRQUNNLG1CQUFjLEdBQUcsaUJBQWlCLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBSzVFOztXQUVHO1FBQ00sVUFBSyxHQUFHLElBQUksR0FBRyxFQUFZLENBQUM7UUFDckM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGdCQUFXLEdBQUcs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QUN6QixLQUFLLEVBQUUsSUFBSTt5QkFDWDtxQkFDRDtpQkFDRDsyRkFXUyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsTUFBTTtzQkFBZCxLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxjQUFjO3NCQUF0QixLQUFLO2dCQUlrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBSWIsS0FBSztzQkFBYixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRFdmVudEVtaXR0ZXIsXG5cdFRlbXBsYXRlUmVmXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgSTE4biB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2kxOG5cIjtcbmltcG9ydCB7IEZpbGVJdGVtIH0gZnJvbSBcIi4vZmlsZS1pdGVtLmludGVyZmFjZVwiO1xuXG5jb25zdCBub29wID0gKCkgPT4geyB9O1xuXG4vKipcbiAqIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgRmlsZVVwbG9hZGVyTW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLWZpbGUtdXBsb2FkZXItLWJhc2ljKVxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLWZpbGUtdXBsb2FkZXIsIGlibS1maWxlLXVwbG9hZGVyXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFza2VsZXRvbjsgZWxzZSBza2VsZXRvblRlbXBsYXRlXCI+XG5cdFx0XHQ8bGFiZWwgW2Zvcl09XCJmaWxlVXBsb2FkZXJJZFwiIGNsYXNzPVwiY2RzLS1maWxlLS1sYWJlbFwiPnt7dGl0bGV9fTwvbGFiZWw+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tbGFiZWwtZGVzY3JpcHRpb25cIiByb2xlPVwiYWxlcnRcIj57e2Rlc2NyaXB0aW9ufX08L3A+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1maWxlXCI+XG5cdFx0XHRcdDxsYWJlbFxuXHRcdFx0XHRcdCpuZ0lmPVwiZHJvcFwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWZpbGUtYnJvd3NlLWJ0blwiXG5cdFx0XHRcdFx0KGtleXVwLmVudGVyKT1cImZpbGVJbnB1dC5jbGljaygpXCJcblx0XHRcdFx0XHQoa2V5dXAuc3BhY2UpPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cInsnY2RzLS1maWxlLWJyb3dzZS1idG4tLWRpc2FibGVkJzogZGlzYWJsZWR9XCJcblx0XHRcdFx0XHR0YWJpbmRleD1cIjBcIj5cblx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tZmlsZV9fZHJvcC1jb250YWluZXJcIlxuXHRcdFx0XHRcdFx0W25nQ2xhc3NdPVwieydjZHMtLWZpbGVfX2Ryb3AtY29udGFpbmVyLS1kcmFnLW92ZXInOiBkcmFnT3Zlcn1cIlxuXHRcdFx0XHRcdFx0cm9sZT1cImJ1dHRvblwiXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuXHRcdFx0XHRcdFx0W2F0dHIuZm9yXT1cImZpbGVVcGxvYWRlcklkXCJcblx0XHRcdFx0XHRcdChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuXHRcdFx0XHRcdFx0KGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCI+XG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUoZHJvcFRleHQpXCI+e3tkcm9wVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGRyb3BUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3BUZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0PGJ1dHRvblxuXHRcdFx0XHRcdCpuZ0lmPVwiIWRyb3BcIlxuXHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0XHRcdFtjZHNCdXR0b25dPVwiYnV0dG9uVHlwZVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcblx0XHRcdFx0XHRbYXR0ci5mb3JdPVwiZmlsZVVwbG9hZGVySWRcIlxuXHRcdFx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuXHRcdFx0XHRcdHt7YnV0dG9uVGV4dH19XG5cdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHQjZmlsZUlucHV0XG5cdFx0XHRcdFx0dHlwZT1cImZpbGVcIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1maWxlLWlucHV0XCJcblx0XHRcdFx0XHRbYWNjZXB0XT1cImFjY2VwdFwiXG5cdFx0XHRcdFx0W2lkXT1cImZpbGVVcGxvYWRlcklkXCJcblx0XHRcdFx0XHRbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuXHRcdFx0XHRcdHRhYmluZGV4PVwiLTFcIlxuXHRcdFx0XHRcdChjaGFuZ2UpPVwib25GaWxlc0FkZGVkKClcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiLz5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tZmlsZS1jb250YWluZXJcIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlSXRlbSBvZiBmaWxlc1wiPlxuXHRcdFx0XHRcdFx0PGNkcy1maWxlXG5cdFx0XHRcdFx0XHRcdFtmaWxlSXRlbV09XCJmaWxlSXRlbVwiXG5cdFx0XHRcdFx0XHRcdChyZW1vdmUpPVwicmVtb3ZlRmlsZShmaWxlSXRlbSlcIlxuXHRcdFx0XHRcdFx0XHRbc2l6ZV09XCJmaWxlSXRlbVNpemVcIj5cblx0XHRcdFx0XHRcdDwvY2RzLWZpbGU+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHQ8bmctdGVtcGxhdGUgI3NrZWxldG9uVGVtcGxhdGU+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDEwMHB4XCI+PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDIyNXB4XCI+PC9kaXY+XG5cdFx0XHQ8YnV0dG9uIGNkc0J1dHRvbiBza2VsZXRvbj1cInRydWVcIj48L2J1dHRvbj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBGaWxlVXBsb2FkZXIsXG5cdFx0XHRtdWx0aTogdHJ1ZVxuXHRcdH1cblx0XVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkZXIgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cdC8qKlxuXHQgKiBDb3VudGVyIHVzZWQgdG8gY3JlYXRlIHVuaXF1ZSBpZHMgZm9yIGZpbGUtdXBsb2FkZXIgY29tcG9uZW50c1xuXHQgKi9cblx0c3RhdGljIGZpbGVVcGxvYWRlckNvdW50ID0gMDtcblx0LyoqXG5cdCAqIEFjY2Vzc2libGUgdGV4dCBmb3IgdGhlIGJ1dHRvbiB0aGF0IG9wZW5zIHRoZSB1cGxvYWQgd2luZG93LlxuXHQgKlxuXHQgKiBEZWZhdWx0cyB0byB0aGUgYEZJTEVfVVBMT0FERVIuT1BFTmAgdmFsdWUgZnJvbSB0aGUgaTE4biBzZXJ2aWNlXG5cdCAqL1xuXHRASW5wdXQoKSBidXR0b25UZXh0ID0gdGhpcy5pMThuLmdldCgpLkZJTEVfVVBMT0FERVIuT1BFTjtcblx0LyoqXG5cdCAqIFR5cGUgc2V0IGZvciBidXR0b25cblx0ICovXG5cdEBJbnB1dCgpIGJ1dHRvblR5cGU6IFwicHJpbWFyeVwiIHwgXCJzZWNvbmRhcnlcIiB8IFwidGVydGlhcnlcIiB8IFwiZ2hvc3RcIiB8IFwiZGFuZ2VyXCIgPSBcInByaW1hcnlcIjtcblx0LyoqXG5cdCAqIFRleHQgc2V0IHRvIHRoZSB0aXRsZVxuXHQgKi9cblx0QElucHV0KCkgdGl0bGU6IHN0cmluZztcblx0LyoqXG5cdCAqIFRleHQgc2V0IHRvIHRoZSBkZXNjcmlwdGlvblxuXHQgKi9cblx0QElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcblx0LyoqXG5cdCAqIFNwZWNpZnkgdGhlIHR5cGVzIG9mIGZpbGVzIHRoYXQgdGhlIGlucHV0IHNob3VsZCBiZSBhYmxlIHRvIHJlY2VpdmVcblx0ICovXG5cdEBJbnB1dCgpIGFjY2VwdCA9IFtdO1xuXHQvKipcblx0ICogU2V0IHRvIGBmYWxzZWAgdG8gdGVsbCB0aGUgY29tcG9uZW50IHRvIG9ubHkgYWNjZXB0IGEgc2luZ2xlIGZpbGUgb24gdXBsb2FkLlxuXHQgKlxuXHQgKiBEZWZhdWx0cyB0byBgdHJ1ZWAuIEFjY2VwdHMgbXVsdGlwbGUgZmlsZXMuXG5cdCAqL1xuXHRASW5wdXQoKSBtdWx0aXBsZSA9IHRydWU7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGxvYWRpbmcgZmlsZSB1cGxvYWRlci5cblx0ICovXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBzaXplIG9mIHRoZSBidXR0b24uXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCI7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBzaXplIG9mIHRoZSBmaWxlIGl0ZW1zXG5cdCAqL1xuXHRASW5wdXQoKSBmaWxlSXRlbVNpemU6IFwic21cIiB8IFwibWRcIiB8IFwibGdcIiA9IFwibGdcIjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGRyYWcgYW5kIGRyb3AuXG5cdCAqL1xuXHRASW5wdXQoKSBkcm9wID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB0ZXh0IHNob3duIGluIGRyYWcgYW5kIGRyb3AgYm94LlxuXHQgKi9cblx0QElucHV0KCkgZHJvcFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBQcm92aWRlcyBhIHVuaXF1ZSBpZCBmb3IgdGhlIHVuZGVybHlpbmcgYDxpbnB1dD5gIG5vZGVcblx0ICovXG5cdEBJbnB1dCgpIGZpbGVVcGxvYWRlcklkID0gYGZpbGUtdXBsb2FkZXItJHtGaWxlVXBsb2FkZXIuZmlsZVVwbG9hZGVyQ291bnR9YDtcblx0LyoqXG5cdCAqIE1haW50YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmlldyBET00gZWxlbWVudCBvZiB0aGUgdW5kZXJseWluZyA8aW5wdXQ+IG5vZGVcblx0ICovXG5cdEBWaWV3Q2hpbGQoXCJmaWxlSW5wdXRcIikgZmlsZUlucHV0O1xuXHQvKipcblx0ICogVGhlIGxpc3Qgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gc3VibWl0dGVkIHRvIGJlIHVwbG9hZGVkXG5cdCAqL1xuXHRASW5wdXQoKSBmaWxlcyA9IG5ldyBTZXQ8RmlsZUl0ZW0+KCk7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdXBsb2FkIGJ1dHRvblxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblxuXHRAT3V0cHV0KCkgZmlsZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuXHQvKipcblx0ICogQ29udHJvbHMgdGhlIHN0YXRlIG9mIHRoZSBkcmFnIGFuZCBkcm9wIGZpbGUgY29udGFpbmVyXG5cdCAqL1xuXHRwdWJsaWMgZHJhZ092ZXIgPSBmYWxzZTtcblxuXHRwcm90ZWN0ZWQgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuXHRwcm90ZWN0ZWQgb25DaGFuZ2VDYWxsYmFjazogKF86IFNldDxGaWxlSXRlbT4pID0+IHZvaWQgPSBub29wO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpMThuOiBJMThuKSB7XG5cdFx0RmlsZVVwbG9hZGVyLmZpbGVVcGxvYWRlckNvdW50Kys7XG5cdH1cblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBwcm9wZXJ0eSB0byBiZSB1c2VkIGFzIHRoZSByZXR1cm4gdmFsdWUgdG8gYG5nTW9kZWxgIGFuZCByZWFjdGl2ZSBmb3Jtcy5cblx0ICogVXBkYXRlcyBgdGhpcy5maWxlc2AuXG5cdCAqL1xuXHRnZXQgdmFsdWUoKTogU2V0PEZpbGVJdGVtPiB7XG5cdFx0cmV0dXJuIHRoaXMuZmlsZXM7XG5cdH1cblx0c2V0IHZhbHVlKHY6IFNldDxGaWxlSXRlbT4pIHtcblx0XHRpZiAodiAhPT0gdGhpcy5maWxlcykge1xuXHRcdFx0dGhpcy5maWxlcyA9IHY7XG5cdFx0XHR0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XG5cdFx0fVxuXHR9XG5cblx0b25CbHVyKCkge1xuXHRcdHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGdldCBmaWxlTGlzdCgpIHtcblx0XHRyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmZpbGVzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9wYWdhdGVzIHRoZSBpbmplY3RlZCBgdmFsdWVgLlxuXHQgKi9cblx0d3JpdGVWYWx1ZSh2YWx1ZTogU2V0PEZpbGVJdGVtPikge1xuXHRcdGlmICh2YWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuXHRcdFx0dGhpcy5maWxlcyA9IHZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGNyZWF0ZUZpbGVJdGVtKGZpbGUpOiBGaWxlSXRlbSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHVwbG9hZGVkOiBmYWxzZSxcblx0XHRcdHN0YXRlOiBcImVkaXRcIixcblx0XHRcdGludmFsaWQ6IGZhbHNlLFxuXHRcdFx0aW52YWxpZFRleHQ6IFwiXCIsXG5cdFx0XHRmaWxlOiBmaWxlXG5cdFx0fTtcblx0fVxuXG5cdG9uRmlsZXNBZGRlZCgpIHtcblx0XHRjb25zdCBuZXdGaWxlcyA9IG5ldyBTZXQ8RmlsZUl0ZW0+KHRoaXMuZmlsZXMpO1xuXHRcdGlmICghdGhpcy5tdWx0aXBsZSkge1xuXHRcdFx0bmV3RmlsZXMuY2xlYXIoKTtcblx0XHR9XG5cdFx0Zm9yIChsZXQgZmlsZSBvZiB0aGlzLmZpbGVMaXN0KSB7XG5cdFx0XHRjb25zdCBmaWxlSXRlbSA9IHRoaXMuY3JlYXRlRmlsZUl0ZW0oZmlsZSk7XG5cdFx0XHRuZXdGaWxlcy5hZGQoZmlsZUl0ZW0pO1xuXHRcdH1cblxuXHRcdHRoaXMudmFsdWUgPSBuZXdGaWxlcztcblx0XHR0aGlzLmZpbGVzQ2hhbmdlLmVtaXQobmV3RmlsZXMpO1xuXHR9XG5cblx0b25EcmFnT3ZlcihldmVudCkge1xuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kcmFnT3ZlciA9IHRydWU7XG5cdH1cblxuXHRvbkRyYWdMZWF2ZShldmVudCkge1xuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0dGhpcy5kcmFnT3ZlciA9IGZhbHNlO1xuXHR9XG5cblx0b25Ecm9wKGV2ZW50KSB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IHRyYW5zZmVycmVkRmlsZXM6IEFycmF5PEZpbGU+ID0gQXJyYXkuZnJvbShldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuXHRcdGNvbnN0IG5ld0ZpbGVzID0gbmV3IFNldDxGaWxlSXRlbT4odGhpcy5maWxlcyk7XG5cblx0XHR0cmFuc2ZlcnJlZEZpbGVzLmZpbHRlcigoeyBuYW1lLCB0eXBlIH0pID0+IHtcblx0XHRcdC8vIEdldCB0aGUgZmlsZSBleHRlbnNpb24gYW5kIGFkZCBhIFwiLlwiIHRvIHRoZSBiZWdpbm5pbmcuXG5cdFx0XHRjb25zdCBmaWxlRXh0ZW5zaW9uID0gbmFtZS5zcGxpdChcIi5cIikucG9wKCkucmVwbGFjZSgvXi8sIFwiLlwiKTtcblx0XHRcdC8vIENoZWNrIGlmIHRoZSBhY2NlcHQgYXJyYXkgY29udGFpbnMgdGhlIG1pbWUgdHlwZSBvciBleHRlbnNpb24gb2YgdGhlIGZpbGUuXG5cdFx0XHRyZXR1cm4gdGhpcy5hY2NlcHQuaW5jbHVkZXModHlwZSkgfHwgdGhpcy5hY2NlcHQuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikgfHwgIXRoaXMuYWNjZXB0Lmxlbmd0aDtcblx0XHR9KS5mb3JFYWNoKGZpbGUgPT4ge1xuXHRcdFx0aWYgKCFuZXdGaWxlcy5zaXplIHx8IHRoaXMubXVsdGlwbGUpIHtcblx0XHRcdFx0Y29uc3QgZmlsZUl0ZW0gPSB0aGlzLmNyZWF0ZUZpbGVJdGVtKGZpbGUpO1xuXHRcdFx0XHRuZXdGaWxlcy5hZGQoZmlsZUl0ZW0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy52YWx1ZSA9IG5ld0ZpbGVzO1xuXHRcdHRoaXMuZmlsZXNDaGFuZ2UuZW1pdChuZXdGaWxlcyk7XG5cdFx0dGhpcy5kcmFnT3ZlciA9IGZhbHNlO1xuXHR9XG5cblx0cmVtb3ZlRmlsZShmaWxlSXRlbSkge1xuXHRcdC8vIERlbGV0aW5nIGFuIGl0ZW0gZnJvbSB0aGlzLmZpbGVzIHJlbW92ZXMgdGhlIDxpYm0tZmlsZT4gY29tcG9uZW50LFxuXHRcdC8vIHdoaWNoIHRyaWdnZXJzIGl0cyBuZ09uRGVzdHJveSgpLCB3aGljaCBmaXJlcyB0aGUgKHJlbW92ZSkgZXZlbnQgYWdhaW4uXG5cdFx0Ly8gU28sIChyZW1vdmUpIG1heSBkb3VibGUtZmlyZSBhbmQgd2UgbmVlZCB0byBoYW5kbGUgaXQgaGVyZS5cblx0XHRpZiAodGhpcy5maWxlcyAmJiB0aGlzLmZpbGVzLmhhcyhmaWxlSXRlbSkpIHtcblx0XHRcdGNvbnN0IG5ld0ZpbGVzID0gbmV3IFNldDxGaWxlSXRlbT4odGhpcy5maWxlcyk7XG5cdFx0XHRuZXdGaWxlcy5kZWxldGUoZmlsZUl0ZW0pO1xuXHRcdFx0dGhpcy5maWxlc0NoYW5nZS5lbWl0KG5ld0ZpbGVzKTtcblx0XHRcdHRoaXMudmFsdWUgPSBuZXdGaWxlcztcblx0XHR9XG5cdFx0dGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XG5cdH1cblxuXHRwdWJsaWMgaXNUZW1wbGF0ZSh2YWx1ZSkge1xuXHRcdHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyB0aGUgaW5qZWN0ZWQgZnVuY3Rpb24gdG8gY29udHJvbCB0aGUgdG91Y2ggdXNlIG9mIHRoZSBgRmlsZVVwbG9hZGVyYC5cblx0ICovXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG5cdH1cblx0LyoqXG5cdCAqIFNldHMgYSBtZXRob2QgaW4gb3JkZXIgdG8gcHJvcGFnYXRlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybS5cblx0ICovXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuXHRcdHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuXHR9XG5cblx0LyoqXG5cdCAqIGBDb250cm9sVmFsdWVBY2Nlc3NvcmAgbWV0aG9kIHRvIHByb2dyYW1tYXRpY2FsbHkgZGlzYWJsZSB0aGUgY2hlY2tib3guXG5cdCAqXG5cdCAqIGV4OiBgdGhpcy5mb3JtR3JvdXAuZ2V0KFwibXlGaWxlVXBsb2FkZXJcIikuZGlzYWJsZSgpO2Bcblx0ICpcblx0ICogQHBhcmFtIGlzRGlzYWJsZWQgYHRydWVgIHRvIGRpc2FibGUgdGhlIGZpbGUgdXBsb2FkZXJcblx0ICovXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuXHRcdHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXHR9XG59XG4iXX0=
387
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFLekUsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXZCOzs7Ozs7OztHQVFHO0FBNEVILE1BQU0sT0FBTyxZQUFZO0lBd0Z4QixZQUFzQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQW5GaEM7Ozs7V0FJRztRQUNNLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDekQ7O1dBRUc7UUFDTSxlQUFVLEdBQThELFNBQVMsQ0FBQztRQVMzRjs7V0FFRztRQUNNLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDckI7Ozs7V0FJRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSzFCOztXQUVHO1FBQ00saUJBQVksR0FBdUIsSUFBSSxDQUFDO1FBQ2pEOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQztRQUt0Qjs7V0FFRztRQUNNLG1CQUFjLEdBQUcsaUJBQWlCLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBSzVFOztXQUVHO1FBQ00sVUFBSyxHQUFHLElBQUksR0FBRyxFQUFZLENBQUM7UUFDckM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBVWhCLGdCQUFXLEdBQUcs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Yzs0QkFDekIsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7aUJBQ0Q7MkZBV1MsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsY0FBYztzQkFBdEIsS0FBSztnQkFJa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUliLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsY0FBYztzQkFBdEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRWaWV3Q2hpbGQsXG5cdEV2ZW50RW1pdHRlcixcblx0VGVtcGxhdGVSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgRmlsZUl0ZW0gfSBmcm9tIFwiLi9maWxlLWl0ZW0uaW50ZXJmYWNlXCI7XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7IH07XG5cbi8qKlxuICogR2V0IHN0YXJ0ZWQgd2l0aCBpbXBvcnRpbmcgdGhlIG1vZHVsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBGaWxlVXBsb2FkZXJNb2R1bGUgfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbiAqIGBgYFxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtZmlsZS11cGxvYWRlci0tYmFzaWMpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtZmlsZS11cGxvYWRlciwgaWJtLWZpbGUtdXBsb2FkZXJcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNrZWxldG9uOyBlbHNlIHNrZWxldG9uVGVtcGxhdGVcIj5cblx0XHRcdDxsYWJlbCBbZm9yXT1cImZpbGVVcGxvYWRlcklkXCIgY2xhc3M9XCJjZHMtLWZpbGUtLWxhYmVsXCI+e3t0aXRsZX19PC9sYWJlbD5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1sYWJlbC1kZXNjcmlwdGlvblwiIHJvbGU9XCJhbGVydFwiPnt7ZGVzY3JpcHRpb259fTwvcD5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWZpbGVcIj5cblx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0Km5nSWY9XCJkcm9wXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tZmlsZS1icm93c2UtYnRuXCJcblx0XHRcdFx0XHQoa2V5dXAuZW50ZXIpPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuXHRcdFx0XHRcdChrZXl1cC5zcGFjZSk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwieydjZHMtLWZpbGUtYnJvd3NlLWJ0bi0tZGlzYWJsZWQnOiBkaXNhYmxlZH1cIlxuXHRcdFx0XHRcdHRhYmluZGV4PVwiMFwiPlxuXHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1maWxlX19kcm9wLWNvbnRhaW5lclwiXG5cdFx0XHRcdFx0XHRbbmdDbGFzc109XCJ7J2Nkcy0tZmlsZV9fZHJvcC1jb250YWluZXItLWRyYWctb3Zlcic6IGRyYWdPdmVyfVwiXG5cdFx0XHRcdFx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRcdFx0XHRcdChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG5cdFx0XHRcdFx0XHRbYXR0ci5mb3JdPVwiZmlsZVVwbG9hZGVySWRcIlxuXHRcdFx0XHRcdFx0KGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXG5cdFx0XHRcdFx0XHQoZHJhZ2xlYXZlKT1cIm9uRHJhZ0xlYXZlKCRldmVudClcIlxuXHRcdFx0XHRcdFx0KGRyb3ApPVwib25Ecm9wKCRldmVudClcIj5cblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShkcm9wVGV4dClcIj57e2Ryb3BUZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUoZHJvcFRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJvcFRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0Km5nSWY9XCIhZHJvcFwiXG5cdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRcdFx0W2Nkc0J1dHRvbl09XCJidXR0b25UeXBlXCJcblx0XHRcdFx0XHQoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuXHRcdFx0XHRcdFthdHRyLmZvcl09XCJmaWxlVXBsb2FkZXJJZFwiXG5cdFx0XHRcdFx0W3NpemVdPVwic2l6ZVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG5cdFx0XHRcdFx0e3tidXR0b25UZXh0fX1cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdCNmaWxlSW5wdXRcblx0XHRcdFx0XHR0eXBlPVwiZmlsZVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWZpbGUtaW5wdXRcIlxuXHRcdFx0XHRcdFthY2NlcHRdPVwiYWNjZXB0XCJcblx0XHRcdFx0XHRbaWRdPVwiZmlsZVVwbG9hZGVySWRcIlxuXHRcdFx0XHRcdFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG5cdFx0XHRcdFx0dGFiaW5kZXg9XCItMVwiXG5cdFx0XHRcdFx0KGNoYW5nZSk9XCJvbkZpbGVzQWRkZWQoKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCIvPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1maWxlLWNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGVJdGVtIG9mIGZpbGVzXCI+XG5cdFx0XHRcdFx0XHQ8Y2RzLWZpbGVcblx0XHRcdFx0XHRcdFx0W2ZpbGVJdGVtXT1cImZpbGVJdGVtXCJcblx0XHRcdFx0XHRcdFx0W25hbWVUcGxdPVwiZmlsZU5hbWVUcGxcIlxuXHRcdFx0XHRcdFx0XHRbYWN0aW9uc1RwbF09XCJmaWxlQWN0aW9uc1RwbFwiXG5cdFx0XHRcdFx0XHRcdFtzaXplXT1cImZpbGVJdGVtU2l6ZVwiXG5cdFx0XHRcdFx0XHRcdChyZW1vdmUpPVwicmVtb3ZlRmlsZShmaWxlSXRlbSlcIj5cblx0XHRcdFx0XHRcdDwvY2RzLWZpbGU+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHQ8bmctdGVtcGxhdGUgI3NrZWxldG9uVGVtcGxhdGU+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDEwMHB4XCI+PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDIyNXB4XCI+PC9kaXY+XG5cdFx0XHQ8YnV0dG9uIGNkc0J1dHRvbiBza2VsZXRvbj1cInRydWVcIj48L2J1dHRvbj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBGaWxlVXBsb2FkZXIsXG5cdFx0XHRtdWx0aTogdHJ1ZVxuXHRcdH1cblx0XVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkZXIgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cdC8qKlxuXHQgKiBDb3VudGVyIHVzZWQgdG8gY3JlYXRlIHVuaXF1ZSBpZHMgZm9yIGZpbGUtdXBsb2FkZXIgY29tcG9uZW50c1xuXHQgKi9cblx0c3RhdGljIGZpbGVVcGxvYWRlckNvdW50ID0gMDtcblx0LyoqXG5cdCAqIEFjY2Vzc2libGUgdGV4dCBmb3IgdGhlIGJ1dHRvbiB0aGF0IG9wZW5zIHRoZSB1cGxvYWQgd2luZG93LlxuXHQgKlxuXHQgKiBEZWZhdWx0cyB0byB0aGUgYEZJTEVfVVBMT0FERVIuT1BFTmAgdmFsdWUgZnJvbSB0aGUgaTE4biBzZXJ2aWNlXG5cdCAqL1xuXHRASW5wdXQoKSBidXR0b25UZXh0ID0gdGhpcy5pMThuLmdldCgpLkZJTEVfVVBMT0FERVIuT1BFTjtcblx0LyoqXG5cdCAqIFR5cGUgc2V0IGZvciBidXR0b25cblx0ICovXG5cdEBJbnB1dCgpIGJ1dHRvblR5cGU6IFwicHJpbWFyeVwiIHwgXCJzZWNvbmRhcnlcIiB8IFwidGVydGlhcnlcIiB8IFwiZ2hvc3RcIiB8IFwiZGFuZ2VyXCIgPSBcInByaW1hcnlcIjtcblx0LyoqXG5cdCAqIFRleHQgc2V0IHRvIHRoZSB0aXRsZVxuXHQgKi9cblx0QElucHV0KCkgdGl0bGU6IHN0cmluZztcblx0LyoqXG5cdCAqIFRleHQgc2V0IHRvIHRoZSBkZXNjcmlwdGlvblxuXHQgKi9cblx0QElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcblx0LyoqXG5cdCAqIFNwZWNpZnkgdGhlIHR5cGVzIG9mIGZpbGVzIHRoYXQgdGhlIGlucHV0IHNob3VsZCBiZSBhYmxlIHRvIHJlY2VpdmVcblx0ICovXG5cdEBJbnB1dCgpIGFjY2VwdCA9IFtdO1xuXHQvKipcblx0ICogU2V0IHRvIGBmYWxzZWAgdG8gdGVsbCB0aGUgY29tcG9uZW50IHRvIG9ubHkgYWNjZXB0IGEgc2luZ2xlIGZpbGUgb24gdXBsb2FkLlxuXHQgKlxuXHQgKiBEZWZhdWx0cyB0byBgdHJ1ZWAuIEFjY2VwdHMgbXVsdGlwbGUgZmlsZXMuXG5cdCAqL1xuXHRASW5wdXQoKSBtdWx0aXBsZSA9IHRydWU7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGxvYWRpbmcgZmlsZSB1cGxvYWRlci5cblx0ICovXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBzaXplIG9mIHRoZSBidXR0b24uXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCI7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBzaXplIG9mIHRoZSBmaWxlIGl0ZW1zXG5cdCAqL1xuXHRASW5wdXQoKSBmaWxlSXRlbVNpemU6IFwic21cIiB8IFwibWRcIiB8IFwibGdcIiA9IFwibGdcIjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGRyYWcgYW5kIGRyb3AuXG5cdCAqL1xuXHRASW5wdXQoKSBkcm9wID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB0ZXh0IHNob3duIGluIGRyYWcgYW5kIGRyb3AgYm94LlxuXHQgKi9cblx0QElucHV0KCkgZHJvcFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBQcm92aWRlcyBhIHVuaXF1ZSBpZCBmb3IgdGhlIHVuZGVybHlpbmcgYDxpbnB1dD5gIG5vZGVcblx0ICovXG5cdEBJbnB1dCgpIGZpbGVVcGxvYWRlcklkID0gYGZpbGUtdXBsb2FkZXItJHtGaWxlVXBsb2FkZXIuZmlsZVVwbG9hZGVyQ291bnR9YDtcblx0LyoqXG5cdCAqIE1haW50YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmlldyBET00gZWxlbWVudCBvZiB0aGUgdW5kZXJseWluZyA8aW5wdXQ+IG5vZGVcblx0ICovXG5cdEBWaWV3Q2hpbGQoXCJmaWxlSW5wdXRcIikgZmlsZUlucHV0O1xuXHQvKipcblx0ICogVGhlIGxpc3Qgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gc3VibWl0dGVkIHRvIGJlIHVwbG9hZGVkXG5cdCAqL1xuXHRASW5wdXQoKSBmaWxlcyA9IG5ldyBTZXQ8RmlsZUl0ZW0+KCk7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdXBsb2FkIGJ1dHRvblxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIEN1c3RvbSB0ZW1wbGF0ZSB1c2VkIHRvIHJlbmRlciB0aGUgZmlsZSBuYW1lIG9mIHVwbG9hZGVkIGZpbGVzXG5cdCAqL1xuXHRASW5wdXQoKSBmaWxlTmFtZVRwbDogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cdC8qKlxuXHQgKiBDdXN0b20gdGVtcGxhdGUgdXNlZCB0byByZW5kZXIgdGhlIGZpbGUgYWN0aW9ucyBvZiB1cGxvYWRlZCBmaWxlc1xuXHQgKi9cblx0QElucHV0KCkgZmlsZUFjdGlvbnNUcGw6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG5cdEBPdXRwdXQoKSBmaWxlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB0aGUgc3RhdGUgb2YgdGhlIGRyYWcgYW5kIGRyb3AgZmlsZSBjb250YWluZXJcblx0ICovXG5cdHB1YmxpYyBkcmFnT3ZlciA9IGZhbHNlO1xuXG5cdHByb3RlY3RlZCBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG5cdHByb3RlY3RlZCBvbkNoYW5nZUNhbGxiYWNrOiAoXzogU2V0PEZpbGVJdGVtPikgPT4gdm9pZCA9IG5vb3A7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGkxOG46IEkxOG4pIHtcblx0XHRGaWxlVXBsb2FkZXIuZmlsZVVwbG9hZGVyQ291bnQrKztcblx0fVxuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIHByb3BlcnR5IHRvIGJlIHVzZWQgYXMgdGhlIHJldHVybiB2YWx1ZSB0byBgbmdNb2RlbGAgYW5kIHJlYWN0aXZlIGZvcm1zLlxuXHQgKiBVcGRhdGVzIGB0aGlzLmZpbGVzYC5cblx0ICovXG5cdGdldCB2YWx1ZSgpOiBTZXQ8RmlsZUl0ZW0+IHtcblx0XHRyZXR1cm4gdGhpcy5maWxlcztcblx0fVxuXHRzZXQgdmFsdWUodjogU2V0PEZpbGVJdGVtPikge1xuXHRcdGlmICh2ICE9PSB0aGlzLmZpbGVzKSB7XG5cdFx0XHR0aGlzLmZpbGVzID0gdjtcblx0XHRcdHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcblx0XHR9XG5cdH1cblxuXHRvbkJsdXIoKSB7XG5cdFx0dGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0Z2V0IGZpbGVMaXN0KCkge1xuXHRcdHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuZmlsZXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFByb3BhZ2F0ZXMgdGhlIGluamVjdGVkIGB2YWx1ZWAuXG5cdCAqL1xuXHR3cml0ZVZhbHVlKHZhbHVlOiBTZXQ8RmlsZUl0ZW0+KSB7XG5cdFx0aWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG5cdFx0XHR0aGlzLmZpbGVzID0gdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0Y3JlYXRlRmlsZUl0ZW0oZmlsZSk6IEZpbGVJdGVtIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dXBsb2FkZWQ6IGZhbHNlLFxuXHRcdFx0c3RhdGU6IFwiZWRpdFwiLFxuXHRcdFx0aW52YWxpZDogZmFsc2UsXG5cdFx0XHRpbnZhbGlkVGV4dDogXCJcIixcblx0XHRcdGZpbGU6IGZpbGVcblx0XHR9O1xuXHR9XG5cblx0b25GaWxlc0FkZGVkKCkge1xuXHRcdGNvbnN0IG5ld0ZpbGVzID0gbmV3IFNldDxGaWxlSXRlbT4odGhpcy5maWxlcyk7XG5cdFx0aWYgKCF0aGlzLm11bHRpcGxlKSB7XG5cdFx0XHRuZXdGaWxlcy5jbGVhcigpO1xuXHRcdH1cblx0XHRmb3IgKGxldCBmaWxlIG9mIHRoaXMuZmlsZUxpc3QpIHtcblx0XHRcdGNvbnN0IGZpbGVJdGVtID0gdGhpcy5jcmVhdGVGaWxlSXRlbShmaWxlKTtcblx0XHRcdG5ld0ZpbGVzLmFkZChmaWxlSXRlbSk7XG5cdFx0fVxuXG5cdFx0dGhpcy52YWx1ZSA9IG5ld0ZpbGVzO1xuXHRcdHRoaXMuZmlsZXNDaGFuZ2UuZW1pdChuZXdGaWxlcyk7XG5cdH1cblxuXHRvbkRyYWdPdmVyKGV2ZW50KSB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmRyYWdPdmVyID0gdHJ1ZTtcblx0fVxuXG5cdG9uRHJhZ0xlYXZlKGV2ZW50KSB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR0aGlzLmRyYWdPdmVyID0gZmFsc2U7XG5cdH1cblxuXHRvbkRyb3AoZXZlbnQpIHtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdGlmICh0aGlzLmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgdHJhbnNmZXJyZWRGaWxlczogQXJyYXk8RmlsZT4gPSBBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyk7XG5cdFx0Y29uc3QgbmV3RmlsZXMgPSBuZXcgU2V0PEZpbGVJdGVtPih0aGlzLmZpbGVzKTtcblxuXHRcdHRyYW5zZmVycmVkRmlsZXMuZmlsdGVyKCh7IG5hbWUsIHR5cGUgfSkgPT4ge1xuXHRcdFx0Ly8gR2V0IHRoZSBmaWxlIGV4dGVuc2lvbiBhbmQgYWRkIGEgXCIuXCIgdG8gdGhlIGJlZ2lubmluZy5cblx0XHRcdGNvbnN0IGZpbGVFeHRlbnNpb24gPSBuYW1lLnNwbGl0KFwiLlwiKS5wb3AoKS5yZXBsYWNlKC9eLywgXCIuXCIpO1xuXHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIGFjY2VwdCBhcnJheSBjb250YWlucyB0aGUgbWltZSB0eXBlIG9yIGV4dGVuc2lvbiBvZiB0aGUgZmlsZS5cblx0XHRcdHJldHVybiB0aGlzLmFjY2VwdC5pbmNsdWRlcyh0eXBlKSB8fCB0aGlzLmFjY2VwdC5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSB8fCAhdGhpcy5hY2NlcHQubGVuZ3RoO1xuXHRcdH0pLmZvckVhY2goZmlsZSA9PiB7XG5cdFx0XHRpZiAoIW5ld0ZpbGVzLnNpemUgfHwgdGhpcy5tdWx0aXBsZSkge1xuXHRcdFx0XHRjb25zdCBmaWxlSXRlbSA9IHRoaXMuY3JlYXRlRmlsZUl0ZW0oZmlsZSk7XG5cdFx0XHRcdG5ld0ZpbGVzLmFkZChmaWxlSXRlbSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHR0aGlzLnZhbHVlID0gbmV3RmlsZXM7XG5cdFx0dGhpcy5maWxlc0NoYW5nZS5lbWl0KG5ld0ZpbGVzKTtcblx0XHR0aGlzLmRyYWdPdmVyID0gZmFsc2U7XG5cdH1cblxuXHRyZW1vdmVGaWxlKGZpbGVJdGVtKSB7XG5cdFx0Ly8gRGVsZXRpbmcgYW4gaXRlbSBmcm9tIHRoaXMuZmlsZXMgcmVtb3ZlcyB0aGUgPGlibS1maWxlPiBjb21wb25lbnQsXG5cdFx0Ly8gd2hpY2ggdHJpZ2dlcnMgaXRzIG5nT25EZXN0cm95KCksIHdoaWNoIGZpcmVzIHRoZSAocmVtb3ZlKSBldmVudCBhZ2Fpbi5cblx0XHQvLyBTbywgKHJlbW92ZSkgbWF5IGRvdWJsZS1maXJlIGFuZCB3ZSBuZWVkIHRvIGhhbmRsZSBpdCBoZXJlLlxuXHRcdGlmICh0aGlzLmZpbGVzICYmIHRoaXMuZmlsZXMuaGFzKGZpbGVJdGVtKSkge1xuXHRcdFx0Y29uc3QgbmV3RmlsZXMgPSBuZXcgU2V0PEZpbGVJdGVtPih0aGlzLmZpbGVzKTtcblx0XHRcdG5ld0ZpbGVzLmRlbGV0ZShmaWxlSXRlbSk7XG5cdFx0XHR0aGlzLmZpbGVzQ2hhbmdlLmVtaXQobmV3RmlsZXMpO1xuXHRcdFx0dGhpcy52YWx1ZSA9IG5ld0ZpbGVzO1xuXHRcdH1cblx0XHR0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcblx0fVxuXG5cdHB1YmxpYyBpc1RlbXBsYXRlKHZhbHVlKSB7XG5cdFx0cmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG5cdH1cblxuXHQvKipcblx0ICogUmVnaXN0ZXJzIHRoZSBpbmplY3RlZCBmdW5jdGlvbiB0byBjb250cm9sIHRoZSB0b3VjaCB1c2Ugb2YgdGhlIGBGaWxlVXBsb2FkZXJgLlxuXHQgKi9cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuXHRcdHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcblx0fVxuXHQvKipcblx0ICogU2V0cyBhIG1ldGhvZCBpbiBvcmRlciB0byBwcm9wYWdhdGUgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtLlxuXHQgKi9cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG5cdH1cblxuXHQvKipcblx0ICogYENvbnRyb2xWYWx1ZUFjY2Vzc29yYCBtZXRob2QgdG8gcHJvZ3JhbW1hdGljYWxseSBkaXNhYmxlIHRoZSBjaGVja2JveC5cblx0ICpcblx0ICogZXg6IGB0aGlzLmZvcm1Hcm91cC5nZXQoXCJteUZpbGVVcGxvYWRlclwiKS5kaXNhYmxlKCk7YFxuXHQgKlxuXHQgKiBAcGFyYW0gaXNEaXNhYmxlZCBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgZmlsZSB1cGxvYWRlclxuXHQgKi9cblx0c2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cdH1cbn1cbiJdfQ==
@@ -1,9 +1,10 @@
1
- import { Component, Input, Output, EventEmitter, HostBinding } from "@angular/core";
1
+ import { Component, EventEmitter, HostBinding, Input, Output, TemplateRef } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "carbon-components-angular/i18n";
4
4
  import * as i2 from "@angular/common";
5
- import * as i3 from "carbon-components-angular/loading";
6
- import * as i4 from "carbon-components-angular/icon";
5
+ import * as i3 from "carbon-components-angular/button";
6
+ import * as i4 from "carbon-components-angular/loading";
7
+ import * as i5 from "carbon-components-angular/icon";
7
8
  export class FileComponent {
8
9
  constructor(i18n) {
9
10
  this.i18n = i18n;
@@ -27,39 +28,57 @@ export class FileComponent {
27
28
  get fileSizeLarge() {
28
29
  return this.size === "lg";
29
30
  }
31
+ isTemplate(value) {
32
+ return value instanceof TemplateRef;
33
+ }
30
34
  ngOnDestroy() {
31
35
  this.remove.emit();
32
36
  }
33
37
  }
34
38
  FileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileComponent, deps: [{ token: i1.I18n }], target: i0.ɵɵFactoryTarget.Component });
35
- FileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FileComponent, selector: "cds-file, ibm-file", inputs: { translations: "translations", fileItem: "fileItem", size: "size" }, outputs: { remove: "remove" }, host: { properties: { "class.cds--file__selected-file": "this.selectedFile", "class.cds--file__selected-file--invalid": "this.isInvalidText", "class.cds--file__selected-file--sm": "this.fileSizeSmall", "class.cds--file__selected-file--md": "this.fileSizeMedium", "class.cds--file__selected-file--lg": "this.fileSizeLarge" } }, ngImport: i0, template: `
36
- <p class="cds--file-filename" [title]="fileItem.file.name">{{fileItem.file.name}}</p>
37
- <span
38
- *ngIf="fileItem.state === 'edit'"
39
- class="cds--file__state-container">
39
+ FileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FileComponent, selector: "cds-file, ibm-file", inputs: { translations: "translations", fileItem: "fileItem", size: "size", nameTpl: "nameTpl", actionsTpl: "actionsTpl" }, outputs: { remove: "remove" }, host: { properties: { "class.cds--file__selected-file": "this.selectedFile", "class.cds--file__selected-file--invalid": "this.isInvalidText", "class.cds--file__selected-file--sm": "this.fileSizeSmall", "class.cds--file__selected-file--md": "this.fileSizeMedium", "class.cds--file__selected-file--lg": "this.fileSizeLarge" } }, ngImport: i0, template: `
40
+ <p class="cds--file-filename" [title]="fileItem.file.name">
41
+ <ng-template
42
+ *ngIf="isTemplate(nameTpl); else defaultName"
43
+ [ngTemplateOutlet]="nameTpl"
44
+ [ngTemplateOutletContext]="{ $implicit: fileItem }">
45
+ </ng-template>
46
+ <ng-template #defaultName>{{ fileItem.file.name }}</ng-template>
47
+ </p>
48
+ <span *ngIf="fileItem.state === 'edit'" class="cds--file__state-container">
40
49
  <svg
41
50
  *ngIf="isInvalidText"
42
51
  cdsIcon="warning--filled"
43
52
  class="cds--file--invalid"
44
53
  size="16">
45
54
  </svg>
46
- <button
47
- type="button"
48
- class="cds--file-close"
49
- [attr.aria-label]="translations.REMOVE_BUTTON"
50
- tabindex="0"
51
- (click)="remove.emit()"
52
- (keyup.enter)="remove.emit()"
53
- (keyup.space)="remove.emit()">
54
- <svg cdsIcon="close" size="16"></svg>
55
- </button>
55
+ <ng-template
56
+ *ngIf="isTemplate(actionsTpl); else defaultActions"
57
+ [ngTemplateOutlet]="actionsTpl"
58
+ [ngTemplateOutletContext]="{ $implicit: fileItem }">
59
+ </ng-template>
60
+ <ng-template #defaultActions>
61
+ <button
62
+ type="button"
63
+ cdsButton="ghost"
64
+ iconOnly="true"
65
+ [size]="size"
66
+ [attr.aria-label]="translations.REMOVE_BUTTON"
67
+ (click)="remove.emit()"
68
+ (keyup.enter)="remove.emit()"
69
+ (keyup.space)="remove.emit()">
70
+ <svg cdsIcon="trash-can" size="16"></svg>
71
+ </button>
72
+ </ng-template>
56
73
  </span>
57
74
  <span *ngIf="fileItem.state === 'upload'">
58
75
  <div class="cds--inline-loading__animation">
59
76
  <cds-loading size="sm"></cds-loading>
60
77
  </div>
61
78
  </span>
62
- <span *ngIf="fileItem.state === 'complete'" class="cds--file__state-container">
79
+ <span
80
+ *ngIf="fileItem.state === 'complete'"
81
+ class="cds--file__state-container">
63
82
  <svg
64
83
  cdsIcon="checkmark--filled"
65
84
  size="16"
@@ -67,43 +86,65 @@ FileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
67
86
  [ariaLabel]="translations.CHECKMARK">
68
87
  </svg>
69
88
  </span>
70
- <div class="cds--form-requirement" role="alert" *ngIf="fileItem.invalid">
71
- <div class="cds--form-requirement__title">{{fileItem.invalidTitle}}</div>
72
- <p class="cds--form-requirement__supplement">{{fileItem.invalidText}}</p>
89
+ <div
90
+ class="cds--form-requirement"
91
+ role="alert"
92
+ *ngIf="fileItem.invalid">
93
+ <div class="cds--form-requirement__title">
94
+ {{ fileItem.invalidTitle }}
95
+ </div>
96
+ <p class="cds--form-requirement__supplement">
97
+ {{ fileItem.invalidText }}
98
+ </p>
73
99
  </div>
74
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }] });
100
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }] });
75
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileComponent, decorators: [{
76
102
  type: Component,
77
103
  args: [{
78
104
  selector: "cds-file, ibm-file",
79
105
  template: `
80
- <p class="cds--file-filename" [title]="fileItem.file.name">{{fileItem.file.name}}</p>
81
- <span
82
- *ngIf="fileItem.state === 'edit'"
83
- class="cds--file__state-container">
106
+ <p class="cds--file-filename" [title]="fileItem.file.name">
107
+ <ng-template
108
+ *ngIf="isTemplate(nameTpl); else defaultName"
109
+ [ngTemplateOutlet]="nameTpl"
110
+ [ngTemplateOutletContext]="{ $implicit: fileItem }">
111
+ </ng-template>
112
+ <ng-template #defaultName>{{ fileItem.file.name }}</ng-template>
113
+ </p>
114
+ <span *ngIf="fileItem.state === 'edit'" class="cds--file__state-container">
84
115
  <svg
85
116
  *ngIf="isInvalidText"
86
117
  cdsIcon="warning--filled"
87
118
  class="cds--file--invalid"
88
119
  size="16">
89
120
  </svg>
90
- <button
91
- type="button"
92
- class="cds--file-close"
93
- [attr.aria-label]="translations.REMOVE_BUTTON"
94
- tabindex="0"
95
- (click)="remove.emit()"
96
- (keyup.enter)="remove.emit()"
97
- (keyup.space)="remove.emit()">
98
- <svg cdsIcon="close" size="16"></svg>
99
- </button>
121
+ <ng-template
122
+ *ngIf="isTemplate(actionsTpl); else defaultActions"
123
+ [ngTemplateOutlet]="actionsTpl"
124
+ [ngTemplateOutletContext]="{ $implicit: fileItem }">
125
+ </ng-template>
126
+ <ng-template #defaultActions>
127
+ <button
128
+ type="button"
129
+ cdsButton="ghost"
130
+ iconOnly="true"
131
+ [size]="size"
132
+ [attr.aria-label]="translations.REMOVE_BUTTON"
133
+ (click)="remove.emit()"
134
+ (keyup.enter)="remove.emit()"
135
+ (keyup.space)="remove.emit()">
136
+ <svg cdsIcon="trash-can" size="16"></svg>
137
+ </button>
138
+ </ng-template>
100
139
  </span>
101
140
  <span *ngIf="fileItem.state === 'upload'">
102
141
  <div class="cds--inline-loading__animation">
103
142
  <cds-loading size="sm"></cds-loading>
104
143
  </div>
105
144
  </span>
106
- <span *ngIf="fileItem.state === 'complete'" class="cds--file__state-container">
145
+ <span
146
+ *ngIf="fileItem.state === 'complete'"
147
+ class="cds--file__state-container">
107
148
  <svg
108
149
  cdsIcon="checkmark--filled"
109
150
  size="16"
@@ -111,9 +152,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
111
152
  [ariaLabel]="translations.CHECKMARK">
112
153
  </svg>
113
154
  </span>
114
- <div class="cds--form-requirement" role="alert" *ngIf="fileItem.invalid">
115
- <div class="cds--form-requirement__title">{{fileItem.invalidTitle}}</div>
116
- <p class="cds--form-requirement__supplement">{{fileItem.invalidText}}</p>
155
+ <div
156
+ class="cds--form-requirement"
157
+ role="alert"
158
+ *ngIf="fileItem.invalid">
159
+ <div class="cds--form-requirement__title">
160
+ {{ fileItem.invalidTitle }}
161
+ </div>
162
+ <p class="cds--form-requirement__supplement">
163
+ {{ fileItem.invalidText }}
164
+ </p>
117
165
  </div>
118
166
  `
119
167
  }]
@@ -123,6 +171,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
123
171
  type: Input
124
172
  }], size: [{
125
173
  type: Input
174
+ }], nameTpl: [{
175
+ type: Input
176
+ }], actionsTpl: [{
177
+ type: Input
126
178
  }], remove: [{
127
179
  type: Output
128
180
  }], selectedFile: [{
@@ -141,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
141
193
  type: HostBinding,
142
194
  args: ["class.cds--file__selected-file--lg"]
143
195
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmlsZS11cGxvYWRlci9maWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFdBQVcsRUFFWCxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBZ0R2QixNQUFNLE9BQU8sYUFBYTtJQStCekIsWUFBc0IsSUFBVTtRQUFWLFNBQUksR0FBSixJQUFJLENBQU07UUE5QmhDOztXQUVHO1FBQ00saUJBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQU03QyxTQUFJLEdBQXVCLElBQUksQ0FBQztRQUUvQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVTLGlCQUFZLEdBQUcsSUFBSSxDQUFDO0lBaUJoQyxDQUFDO0lBZnBDLElBQTRELGFBQWE7UUFDeEUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBdUQsYUFBYTtRQUNuRSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUF1RCxjQUFjO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQXVELGFBQWE7UUFDbkUsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUMzQixDQUFDO0lBR0QsV0FBVztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7MEdBbkNXLGFBQWE7OEZBQWIsYUFBYSw4ZUF6Q2Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVDVDsyRkFFVyxhQUFhO2tCQTNDekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVDVDtpQkFDRDsyRkFLUyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFFd0MsWUFBWTtzQkFBMUQsV0FBVzt1QkFBQyxnQ0FBZ0M7Z0JBRWUsYUFBYTtzQkFBeEUsV0FBVzt1QkFBQyx5Q0FBeUM7Z0JBSUMsYUFBYTtzQkFBbkUsV0FBVzt1QkFBQyxvQ0FBb0M7Z0JBSU0sY0FBYztzQkFBcEUsV0FBVzt1QkFBQyxvQ0FBb0M7Z0JBSU0sYUFBYTtzQkFBbkUsV0FBVzt1QkFBQyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdEJpbmRpbmcsXG5cdE9uRGVzdHJveVxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgRmlsZUl0ZW0gfSBmcm9tIFwiLi9maWxlLWl0ZW0uaW50ZXJmYWNlXCI7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtZmlsZSwgaWJtLWZpbGVcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8cCBjbGFzcz1cImNkcy0tZmlsZS1maWxlbmFtZVwiIFt0aXRsZV09XCJmaWxlSXRlbS5maWxlLm5hbWVcIj57e2ZpbGVJdGVtLmZpbGUubmFtZX19PC9wPlxuXHRcdDxzcGFuXG5cdFx0XHQqbmdJZj1cImZpbGVJdGVtLnN0YXRlID09PSAnZWRpdCdcIlxuXHRcdFx0Y2xhc3M9XCJjZHMtLWZpbGVfX3N0YXRlLWNvbnRhaW5lclwiPlxuXHRcdFx0PHN2Z1xuXHRcdFx0XHQqbmdJZj1cImlzSW52YWxpZFRleHRcIlxuXHRcdFx0XHRjZHNJY29uPVwid2FybmluZy0tZmlsbGVkXCJcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLWZpbGUtLWludmFsaWRcIlxuXHRcdFx0XHRzaXplPVwiMTZcIj5cblx0XHRcdDwvc3ZnPlxuXHRcdFx0PGJ1dHRvblxuXHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLWZpbGUtY2xvc2VcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cInRyYW5zbGF0aW9ucy5SRU1PVkVfQlVUVE9OXCJcblx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRcdFx0KGNsaWNrKT1cInJlbW92ZS5lbWl0KClcIlxuXHRcdFx0XHQoa2V5dXAuZW50ZXIpPVwicmVtb3ZlLmVtaXQoKVwiXG5cdFx0XHRcdChrZXl1cC5zcGFjZSk9XCJyZW1vdmUuZW1pdCgpXCI+XG5cdFx0XHRcdDxzdmcgY2RzSWNvbj1cImNsb3NlXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG5cdFx0XHQ8L2J1dHRvbj5cblx0XHQ8L3NwYW4+XG5cdFx0PHNwYW4gKm5nSWY9XCJmaWxlSXRlbS5zdGF0ZSA9PT0gJ3VwbG9hZCdcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWlubGluZS1sb2FkaW5nX19hbmltYXRpb25cIj5cblx0XHRcdFx0PGNkcy1sb2FkaW5nIHNpemU9XCJzbVwiPjwvY2RzLWxvYWRpbmc+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L3NwYW4+XG5cdFx0PHNwYW4gKm5nSWY9XCJmaWxlSXRlbS5zdGF0ZSA9PT0gJ2NvbXBsZXRlJ1wiIGNsYXNzPVwiY2RzLS1maWxlX19zdGF0ZS1jb250YWluZXJcIj5cblx0XHRcdDxzdmdcblx0XHRcdFx0Y2RzSWNvbj1cImNoZWNrbWFyay0tZmlsbGVkXCJcblx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLWZpbGUtY29tcGxldGVcIlxuXHRcdFx0XHRbYXJpYUxhYmVsXT1cInRyYW5zbGF0aW9ucy5DSEVDS01BUktcIj5cblx0XHRcdDwvc3ZnPlxuXHRcdDwvc3Bhbj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCIgcm9sZT1cImFsZXJ0XCIgKm5nSWY9XCJmaWxlSXRlbS5pbnZhbGlkXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50X190aXRsZVwiPnt7ZmlsZUl0ZW0uaW52YWxpZFRpdGxlfX08L2Rpdj5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50X19zdXBwbGVtZW50XCI+e3tmaWxlSXRlbS5pbnZhbGlkVGV4dH19PC9wPlxuXHRcdDwvZGl2PlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXHQvKipcblx0ICogQWNjZXNzaWJsZSB0cmFuc2xhdGlvbnMgZm9yIHRoZSBjbG9zZSBhbmQgY29tcGxldGUgaWNvbnNcblx0ICovXG5cdEBJbnB1dCgpIHRyYW5zbGF0aW9ucyA9IHRoaXMuaTE4bi5nZXQoKS5GSUxFX1VQTE9BREVSO1xuXHQvKipcblx0ICogQSBzaW5nbGUgYEZpbGVJdGVtYCBmcm9tIHRoZSBzZXQgb2YgYEZpbGVJdGVtYHNcblx0ICovXG5cdEBJbnB1dCgpIGZpbGVJdGVtOiBGaWxlSXRlbTtcblxuXHRASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcImxnXCI7XG5cblx0QE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWZpbGVfX3NlbGVjdGVkLWZpbGVcIikgc2VsZWN0ZWRGaWxlID0gdHJ1ZTtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWZpbGVfX3NlbGVjdGVkLWZpbGUtLWludmFsaWRcIikgZ2V0IGlzSW52YWxpZFRleHQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZmlsZUl0ZW0uaW52YWxpZFRleHQ7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWZpbGVfX3NlbGVjdGVkLWZpbGUtLXNtXCIpIGdldCBmaWxlU2l6ZVNtYWxsKCkge1xuXHRcdHJldHVybiB0aGlzLnNpemUgPT09IFwic21cIjtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZmlsZV9fc2VsZWN0ZWQtZmlsZS0tbWRcIikgZ2V0IGZpbGVTaXplTWVkaXVtKCkge1xuXHRcdHJldHVybiB0aGlzLnNpemUgPT09IFwibWRcIjtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZmlsZV9fc2VsZWN0ZWQtZmlsZS0tbGdcIikgZ2V0IGZpbGVTaXplTGFyZ2UoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6ZSA9PT0gXCJsZ1wiO1xuXHR9XG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpMThuOiBJMThuKSB7fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMucmVtb3ZlLmVtaXQoKTtcblx0fVxufVxuIl19
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmlsZS11cGxvYWRlci9maWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFzRXZCLE1BQU0sT0FBTyxhQUFhO0lBMEN6QixZQUFzQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQXpDaEM7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBTTdDLFNBQUksR0FBdUIsSUFBSSxDQUFDO1FBWS9CLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRVMsaUJBQVksR0FBRyxJQUFJLENBQUM7SUFrQmhDLENBQUM7SUFoQnBDLElBQTRELGFBQWE7UUFDeEUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBdUQsYUFBYTtRQUNuRSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUF1RCxjQUFjO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQXVELGFBQWE7UUFDbkUsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUMzQixDQUFDO0lBSU0sVUFBVSxDQUFDLEtBQWM7UUFDL0IsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOzswR0FsRFcsYUFBYTs4RkFBYixhQUFhLDRoQkEvRGY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2RFQ7MkZBRVcsYUFBYTtrQkFqRXpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkRUO2lCQUNEOzJGQUtTLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUV3QyxZQUFZO3NCQUExRCxXQUFXO3VCQUFDLGdDQUFnQztnQkFFZSxhQUFhO3NCQUF4RSxXQUFXO3VCQUFDLHlDQUF5QztnQkFJQyxhQUFhO3NCQUFuRSxXQUFXO3VCQUFDLG9DQUFvQztnQkFJTSxjQUFjO3NCQUFwRSxXQUFXO3VCQUFDLG9DQUFvQztnQkFJTSxhQUFhO3NCQUFuRSxXQUFXO3VCQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0QmluZGluZyxcblx0SW5wdXQsXG5cdE9uRGVzdHJveSxcblx0T3V0cHV0LFxuXHRUZW1wbGF0ZVJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgRmlsZUl0ZW0gfSBmcm9tIFwiLi9maWxlLWl0ZW0uaW50ZXJmYWNlXCI7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtZmlsZSwgaWJtLWZpbGVcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8cCBjbGFzcz1cImNkcy0tZmlsZS1maWxlbmFtZVwiIFt0aXRsZV09XCJmaWxlSXRlbS5maWxlLm5hbWVcIj5cblx0XHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0XHQqbmdJZj1cImlzVGVtcGxhdGUobmFtZVRwbCk7IGVsc2UgZGVmYXVsdE5hbWVcIlxuXHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJuYW1lVHBsXCJcblx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBmaWxlSXRlbSB9XCI+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0TmFtZT57eyBmaWxlSXRlbS5maWxlLm5hbWUgfX08L25nLXRlbXBsYXRlPlxuXHRcdDwvcD5cblx0XHQ8c3BhbiAqbmdJZj1cImZpbGVJdGVtLnN0YXRlID09PSAnZWRpdCdcIiBjbGFzcz1cImNkcy0tZmlsZV9fc3RhdGUtY29udGFpbmVyXCI+XG5cdFx0XHQ8c3ZnXG5cdFx0XHRcdCpuZ0lmPVwiaXNJbnZhbGlkVGV4dFwiXG5cdFx0XHRcdGNkc0ljb249XCJ3YXJuaW5nLS1maWxsZWRcIlxuXHRcdFx0XHRjbGFzcz1cImNkcy0tZmlsZS0taW52YWxpZFwiXG5cdFx0XHRcdHNpemU9XCIxNlwiPlxuXHRcdFx0PC9zdmc+XG5cdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0Km5nSWY9XCJpc1RlbXBsYXRlKGFjdGlvbnNUcGwpOyBlbHNlIGRlZmF1bHRBY3Rpb25zXCJcblx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RwbFwiXG5cdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZmlsZUl0ZW0gfVwiPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEFjdGlvbnM+XG5cdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcblx0XHRcdFx0XHRjZHNCdXR0b249XCJnaG9zdFwiXG5cdFx0XHRcdFx0aWNvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRbc2l6ZV09XCJzaXplXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cInRyYW5zbGF0aW9ucy5SRU1PVkVfQlVUVE9OXCJcblx0XHRcdFx0XHQoY2xpY2spPVwicmVtb3ZlLmVtaXQoKVwiXG5cdFx0XHRcdFx0KGtleXVwLmVudGVyKT1cInJlbW92ZS5lbWl0KClcIlxuXHRcdFx0XHRcdChrZXl1cC5zcGFjZSk9XCJyZW1vdmUuZW1pdCgpXCI+XG5cdFx0XHRcdFx0PHN2ZyBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG5cdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8L3NwYW4+XG5cdFx0PHNwYW4gKm5nSWY9XCJmaWxlSXRlbS5zdGF0ZSA9PT0gJ3VwbG9hZCdcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWlubGluZS1sb2FkaW5nX19hbmltYXRpb25cIj5cblx0XHRcdFx0PGNkcy1sb2FkaW5nIHNpemU9XCJzbVwiPjwvY2RzLWxvYWRpbmc+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L3NwYW4+XG5cdFx0PHNwYW5cblx0XHRcdCpuZ0lmPVwiZmlsZUl0ZW0uc3RhdGUgPT09ICdjb21wbGV0ZSdcIlxuXHRcdFx0Y2xhc3M9XCJjZHMtLWZpbGVfX3N0YXRlLWNvbnRhaW5lclwiPlxuXHRcdFx0PHN2Z1xuXHRcdFx0XHRjZHNJY29uPVwiY2hlY2ttYXJrLS1maWxsZWRcIlxuXHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRjbGFzcz1cImNkcy0tZmlsZS1jb21wbGV0ZVwiXG5cdFx0XHRcdFthcmlhTGFiZWxdPVwidHJhbnNsYXRpb25zLkNIRUNLTUFSS1wiPlxuXHRcdFx0PC9zdmc+XG5cdFx0PC9zcGFuPlxuXHRcdDxkaXZcblx0XHRcdGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCJcblx0XHRcdHJvbGU9XCJhbGVydFwiXG5cdFx0XHQqbmdJZj1cImZpbGVJdGVtLmludmFsaWRcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRfX3RpdGxlXCI+XG5cdFx0XHRcdHt7IGZpbGVJdGVtLmludmFsaWRUaXRsZSB9fVxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudF9fc3VwcGxlbWVudFwiPlxuXHRcdFx0XHR7eyBmaWxlSXRlbS5pbnZhbGlkVGV4dCB9fVxuXHRcdFx0PC9wPlxuXHRcdDwvZGl2PlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXHQvKipcblx0ICogQWNjZXNzaWJsZSB0cmFuc2xhdGlvbnMgZm9yIHRoZSBjbG9zZSBhbmQgY29tcGxldGUgaWNvbnNcblx0ICovXG5cdEBJbnB1dCgpIHRyYW5zbGF0aW9ucyA9IHRoaXMuaTE4bi5nZXQoKS5GSUxFX1VQTE9BREVSO1xuXHQvKipcblx0ICogQSBzaW5nbGUgYEZpbGVJdGVtYCBmcm9tIHRoZSBzZXQgb2YgYEZpbGVJdGVtYHNcblx0ICovXG5cdEBJbnB1dCgpIGZpbGVJdGVtOiBGaWxlSXRlbTtcblxuXHRASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcImxnXCI7XG5cblx0LyoqXG5cdCAqIEEgY3VzdG9tIHRlbXBsYXRlIGZvciB0aGUgZmlsZSBuYW1lXG5cdCAqL1xuXHRASW5wdXQoKSBuYW1lVHBsOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuXHQvKipcblx0ICogQSBjdXN0b20gdGVtcGxhdGUgZm9yIHRoZSBhdmFpbGFibGUgZmlsZSBhY3Rpb25zXG5cdCAqL1xuXHRASW5wdXQoKSBhY3Rpb25zVHBsOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuXHRAT3V0cHV0KCkgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZmlsZV9fc2VsZWN0ZWQtZmlsZVwiKSBzZWxlY3RlZEZpbGUgPSB0cnVlO1xuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZmlsZV9fc2VsZWN0ZWQtZmlsZS0taW52YWxpZFwiKSBnZXQgaXNJbnZhbGlkVGV4dCgpIHtcblx0XHRyZXR1cm4gdGhpcy5maWxlSXRlbS5pbnZhbGlkVGV4dDtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZmlsZV9fc2VsZWN0ZWQtZmlsZS0tc21cIikgZ2V0IGZpbGVTaXplU21hbGwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6ZSA9PT0gXCJzbVwiO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1maWxlX19zZWxlY3RlZC1maWxlLS1tZFwiKSBnZXQgZmlsZVNpemVNZWRpdW0oKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6ZSA9PT0gXCJtZFwiO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1maWxlX19zZWxlY3RlZC1maWxlLS1sZ1wiKSBnZXQgZmlsZVNpemVMYXJnZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5zaXplID09PSBcImxnXCI7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaTE4bjogSTE4bikge31cblxuXHRwdWJsaWMgaXNUZW1wbGF0ZSh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5yZW1vdmUuZW1pdCgpO1xuXHR9XG59XG4iXX0=