@seniorsistemas/data-seniorx-core 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/core/config/dynamic-view-builder.config.d.ts +3 -0
  2. package/core/constants/dynamic-view-builder.const.d.ts +15 -0
  3. package/core/constants/picklist.const.d.ts +4 -0
  4. package/core/constants/timeline.const.d.ts +6 -0
  5. package/core/types/confirm.type.d.ts +1 -0
  6. package/core/types/dynamic-view-builder.type.d.ts +130 -0
  7. package/core/types/row-card.type.d.ts +10 -0
  8. package/core/types/timeline.type.d.ts +22 -0
  9. package/esm2022/core/config/dynamic-view-builder.config.mjs +396 -0
  10. package/esm2022/core/config/row-card.type.config.mjs +2 -1
  11. package/esm2022/core/constants/dynamic-view-builder.const.mjs +24 -0
  12. package/esm2022/core/constants/picklist.const.mjs +5 -1
  13. package/esm2022/core/constants/timeline.const.mjs +6 -0
  14. package/esm2022/core/handlers/sqlFormatter.mjs +3 -2
  15. package/esm2022/core/types/confirm.type.mjs +1 -1
  16. package/esm2022/core/types/dynamic-view-builder.type.mjs +2 -0
  17. package/esm2022/core/types/row-card.type.mjs +1 -1
  18. package/esm2022/core/types/timeline.type.mjs +2 -0
  19. package/esm2022/core/utils/layout.util.mjs +4 -4
  20. package/esm2022/core/utils/number-input.util.mjs +2 -2
  21. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +21 -3
  22. package/esm2022/features/button/button.component.mjs +5 -5
  23. package/esm2022/features/card-list/card/card.component.mjs +4 -6
  24. package/esm2022/features/card-list/card-list.component.mjs +4 -7
  25. package/esm2022/features/code-editor/code-editor.component.mjs +5 -5
  26. package/esm2022/features/color-picker/color-picker.component.mjs +4 -4
  27. package/esm2022/features/combobox/combobox.component.mjs +8 -8
  28. package/esm2022/features/confirm/confirm.component.mjs +8 -4
  29. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +6 -8
  30. package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
  31. package/esm2022/features/hyperlink/hyperlink.component.mjs +10 -12
  32. package/esm2022/features/icon-picker/icon-picker.component.mjs +3 -3
  33. package/esm2022/features/info-sign/info-sign.component.mjs +3 -3
  34. package/esm2022/features/list/list.component.mjs +1 -1
  35. package/esm2022/features/loading-state/loading-state.component.mjs +20 -25
  36. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
  37. package/esm2022/features/mask/mask.component.mjs +4 -4
  38. package/esm2022/features/modal/modal.component.mjs +5 -5
  39. package/esm2022/features/modalc/modalc.component.mjs +1 -1
  40. package/esm2022/features/number-input/number-input.component.mjs +4 -4
  41. package/esm2022/features/numeric/numeric.component.mjs +4 -6
  42. package/esm2022/features/paginator/paginator.component.mjs +2 -2
  43. package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
  44. package/esm2022/features/picklist/picklist.component.mjs +50 -9
  45. package/esm2022/features/radio/radio.component.mjs +12 -12
  46. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +32 -9
  47. package/esm2022/features/row-card-list/row-card-list.component.mjs +3 -3
  48. package/esm2022/features/searchbox/searchbox.component.mjs +1 -1
  49. package/esm2022/features/sidebar/sidebar.component.mjs +7 -3
  50. package/esm2022/features/switch/switch.component.mjs +3 -3
  51. package/esm2022/features/table/table.component.mjs +3 -3
  52. package/esm2022/features/textarea/textarea.component.mjs +4 -4
  53. package/esm2022/features/textbox/textbox.component.mjs +4 -4
  54. package/esm2022/features/timeline/timeline.component.mjs +90 -0
  55. package/esm2022/features/toast/toast.component.mjs +4 -6
  56. package/esm2022/features/tooltip/tooltip.component.mjs +3 -3
  57. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2810 -0
  58. package/esm2022/locales/en.json +202 -1
  59. package/esm2022/locales/es-CO.json +202 -1
  60. package/esm2022/locales/pt.json +202 -1
  61. package/esm2022/public-api.mjs +6 -1
  62. package/features/breadcrumb/breadcrumb.component.d.ts +2 -0
  63. package/features/button/button.component.d.ts +2 -2
  64. package/features/code-editor/code-editor.component.d.ts +2 -2
  65. package/features/hyperlink/hyperlink.component.d.ts +3 -3
  66. package/features/loading-state/loading-state.component.d.ts +3 -4
  67. package/features/modal/modal.component.d.ts +2 -2
  68. package/features/picklist/picklist.component.d.ts +10 -1
  69. package/features/radio/radio.component.d.ts +4 -4
  70. package/features/row-card-list/row-card/row-card.component.d.ts +8 -1
  71. package/features/sidebar/sidebar.component.d.ts +2 -1
  72. package/features/timeline/timeline.component.d.ts +27 -0
  73. package/features/visual-sql-editor/visual-sql-editor.component.d.ts +560 -0
  74. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +4161 -176
  75. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  76. package/package.json +2 -2
  77. package/public-api.d.ts +7 -0
  78. package/src/locales/en.json +211 -1
  79. package/src/locales/es-CO.json +211 -1
  80. package/src/locales/pt.json +211 -1
  81. package/styles.css +1 -1
@@ -61,7 +61,7 @@ export class CodeEditorComponent {
61
61
  this.updateEditorExtensions();
62
62
  }
63
63
  }
64
- onDomainFilter = new EventEmitter();
64
+ domainFilterClick = new EventEmitter();
65
65
  editorContainer;
66
66
  $editor;
67
67
  $onChange = () => { };
@@ -175,7 +175,7 @@ export class CodeEditorComponent {
175
175
  sqlUppercaseHandler(),
176
176
  sqlFormatterHandler(),
177
177
  sql({ dialect: PostgreSQL }),
178
- sqlDomainFilterDecorator((token) => this.onDomainFilter.emit(token)),
178
+ sqlDomainFilterDecorator((token) => this.domainFilterClick.emit(token)),
179
179
  autocompletion({ override: [createSqlAutoCompletionHadler(this.$schema)] })
180
180
  ];
181
181
  case 'typescript':
@@ -198,7 +198,7 @@ export class CodeEditorComponent {
198
198
  this.$editor.dispatch({ effects: StateEffect.reconfigure.of(this.buildExtensions()) });
199
199
  }
200
200
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeEditorComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
201
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CodeEditorComponent, isStandalone: true, selector: "sdc-code-editor", inputs: { sql: "sql", height: "height", width: "width", showCopy: "showCopy", customHeaderItems: "customHeaderItems", activeHeaderKey: "activeHeaderKey", readOnly: "readOnly", language: "language", schema: "schema" }, outputs: { headerSelect: "headerSelect", copied: "onCopy", languageChange: "languageChange", onDomainFilter: "onDomainFilter" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CodeEditorComponent), multi: true }], viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"sdc-code-editor\">\n <label [attr.for]=\"editorId\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.code_editor' | translate }}\n </label>\n <div\n #editorContainer\n [attr.id]=\"editorId\"\n class=\"sdc-code-editor__surface\"\n [ngStyle]=\"getStyleMap()\"\n [attr.data-editor-type]=\"language\"\n [attr.aria-label]=\"'platform.datacore.accessibility.code_editor' | translate\"\n [attr.aria-multiline]=\"true\"\n [attr.aria-readonly]=\"readOnly\"\n ></div>\n\n @if (showCopy || customHeaderItems.length > 1) {\n <div class=\"sdc-code-editor__header\">\n @if (customHeaderItems.length > 1) {\n <fieldset class=\"sdc-code-editor__header-side sdc-code-editor__header-side--left\">\n <legend class=\"sr-only\">\n {{ 'platform.datacore.accessibility.language_selector' | translate }}\n </legend>\n <div\n class=\"sdc-code-editor__segmented\"\n [attr.aria-label]=\"'platform.datacore.accessibility.language_selector' | translate\"\n >\n @for (it of customHeaderItems; track it.value) {\n <button\n type=\"button\"\n class=\"sdc-code-editor__segmented-item\"\n [attr.id]=\"'lang-' + (it.key || it.value) + '-' + editorId\"\n [class.sdc-code-editor__segmented-item--active]=\"it.key ? it.key === activeHeaderKey : it.value === language\"\n [attr.aria-pressed]=\"it.key ? it.key === activeHeaderKey : it.value === language\"\n [attr.aria-label]=\"\n ('platform.datacore.accessibility.select_language' | translate)\n + ': '\n + (it.label | translate)\n \"\n (click)=\"pickHeader(it)\"\n >\n {{ it.label | translate }}\n </button>\n }\n </div>\n </fieldset>\n }\n\n <div class=\"sdc-code-editor__header-side sdc-code-editor__header-side--right\">\n @if (showCopy) {\n <button\n type=\"button\"\n class=\"sdc-code-editor__icon-button\"\n [attr.aria-label]=\"'platform.datacore.accessibility.copy_code' | translate\"\n (click)=\"copy()\"\n >\n <i class=\"fas fa-copy\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.copy_code' | translate }}\n </span>\n </button>\n }\n </div>\n </div>\n }\n</section>\n", styles: [":host{display:block;min-width:0;min-height:0}.sdc-code-editor{position:relative;display:block;width:100%}.sdc-code-editor__surface{border:var(--sql-editor-border);position:relative;isolation:isolate;display:block;width:100%}.sdc-code-editor__surface,.sdc-code-editor__surface .cm-editor,.sdc-code-editor__surface .cm-scroller{position:relative;z-index:0;height:100%}.sdc-code-editor__surface .cm-scroller{overflow:auto}.sdc-code-editor__header{position:absolute;top:var(--sdc-code-editor-header-offset, 8px);right:var(--sdc-code-editor-header-offset, 8px);display:flex;align-items:center;gap:var(--sdc-code-editor-header-gap, 8px);z-index:10;opacity:0;transform:translateY(var(--sdc-code-editor-header-translate-y, -4px));transition:opacity var(--sdc-transition-fast, .18s ease),transform var(--sdc-transition-fast, .18s ease);pointer-events:none}.sdc-code-editor__header-side{display:flex;align-items:center;gap:var(--sdc-code-editor-header-gap, 8px)}.sdc-code-editor__header-side fieldset{border:none;padding:0;margin:0}.sdc-code-editor__header-side legend{padding:0;margin:0}.sdc-code-editor__segmented{display:flex;gap:var(--sdc-code-editor-control-gap, 2px);padding:var(--sdc-code-editor-control-padding, 2px);border-radius:var(--sdc-radius-pill, 999px);background:var(--sdc-code-editor-control-bg, rgba(255, 255, 255, .92));border:1px solid var(--sdc-code-editor-control-border, rgba(0, 0, 0, .08));box-shadow:var(--sdc-code-editor-control-shadow, 0 2px 8px rgba(0, 0, 0, .08));backdrop-filter:saturate(180%) blur(6px);pointer-events:auto}.sdc-code-editor__segmented-item{appearance:none;border:0;background:transparent;padding:var(--sdc-code-editor-control-padding-block, 6px) var(--sdc-code-editor-control-padding-inline, 10px);border-radius:var(--sdc-radius-pill, 999px);font:500 12px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--sdc-code-editor-control-text, #111111);min-width:24px;min-height:24px}.sdc-code-editor__segmented-item:hover{background:var(--sdc-code-editor-control-hover-bg, rgba(17, 24, 39, .06))}.sdc-code-editor__segmented-item--active{background:var(--sdc-code-editor-control-active-bg, #eef2ff);box-shadow:inset 0 0 0 1px var(--sdc-code-editor-control-active-border, #c7d2fe)}.sdc-code-editor__segmented-item:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--sdc-code-editor-control-focus, #6366f1)}.sdc-code-editor__icon-button{appearance:none;border:1px solid var(--sdc-code-editor-control-border, rgba(0, 0, 0, .08));width:var(--sdc-code-editor-control-size, 32px);height:var(--sdc-code-editor-control-size, 32px);border-radius:var(--sdc-radius-pill, 999px);display:grid;place-items:center;background:var(--sdc-code-editor-control-bg, rgba(255, 255, 255, .92));box-shadow:var(--sdc-code-editor-control-shadow, 0 2px 8px rgba(0, 0, 0, .08));cursor:pointer;pointer-events:auto}.sdc-code-editor__icon-button:hover{filter:brightness(.98)}.sdc-code-editor__icon-button:active{transform:translateY(1px)}.sdc-code-editor__icon-button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sdc-code-editor-control-focus, #6366f1) inset}.sdc-code-editor:hover .sdc-code-editor__header,.sdc-code-editor:focus-within .sdc-code-editor__header{opacity:1;transform:translateY(0);pointer-events:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
201
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CodeEditorComponent, isStandalone: true, selector: "sdc-code-editor", inputs: { sql: "sql", height: "height", width: "width", showCopy: "showCopy", customHeaderItems: "customHeaderItems", activeHeaderKey: "activeHeaderKey", readOnly: "readOnly", language: "language", schema: "schema" }, outputs: { headerSelect: "headerSelect", copied: "onCopy", languageChange: "languageChange", domainFilterClick: "domainFilterClick" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CodeEditorComponent), multi: true }], viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"sdc-code-editor\">\n <label [attr.for]=\"editorId\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.code_editor' | translate }}\n </label>\n <div\n #editorContainer\n [attr.id]=\"editorId\"\n class=\"sdc-code-editor__surface\"\n [ngStyle]=\"getStyleMap()\"\n [attr.data-editor-type]=\"language\"\n [attr.aria-label]=\"'platform.datacore.accessibility.code_editor' | translate\"\n [attr.aria-multiline]=\"true\"\n [attr.aria-readonly]=\"readOnly\"\n ></div>\n\n @if (showCopy || customHeaderItems.length > 1) {\n <div class=\"sdc-code-editor__header\">\n @if (customHeaderItems.length > 1) {\n <fieldset class=\"sdc-code-editor__header-side sdc-code-editor__header-side--left\">\n <legend class=\"sr-only\">\n {{ 'platform.datacore.accessibility.language_selector' | translate }}\n </legend>\n <div\n class=\"sdc-code-editor__segmented\"\n [attr.aria-label]=\"'platform.datacore.accessibility.language_selector' | translate\"\n >\n @for (it of customHeaderItems; track it.value) {\n <button\n type=\"button\"\n class=\"sdc-code-editor__segmented-item\"\n [attr.id]=\"'lang-' + (it.key || it.value) + '-' + editorId\"\n [class.sdc-code-editor__segmented-item--active]=\"it.key ? it.key === activeHeaderKey : it.value === language\"\n [attr.aria-pressed]=\"it.key ? it.key === activeHeaderKey : it.value === language\"\n [attr.aria-label]=\"\n ('platform.datacore.accessibility.select_language' | translate)\n + ': '\n + (it.label | translate)\n \"\n (click)=\"pickHeader(it)\"\n >\n {{ it.label | translate }}\n </button>\n }\n </div>\n </fieldset>\n }\n\n <div class=\"sdc-code-editor__header-side sdc-code-editor__header-side--right\">\n @if (showCopy) {\n <button\n type=\"button\"\n class=\"sdc-code-editor__icon-button\"\n [attr.aria-label]=\"'platform.datacore.accessibility.copy_code' | translate\"\n (click)=\"copy()\"\n >\n <i class=\"fas fa-copy\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.copy_code' | translate }}\n </span>\n </button>\n }\n </div>\n </div>\n }\n</section>\n", styles: [":host{display:block;min-width:0;min-height:0}.sdc-code-editor{position:relative;display:block;width:100%}.sdc-code-editor__surface{border:var(--sql-editor-border);position:relative;isolation:isolate;display:block;width:100%}.sdc-code-editor__surface,.sdc-code-editor__surface .cm-editor,.sdc-code-editor__surface .cm-scroller{position:relative;z-index:0;height:100%}.sdc-code-editor__surface .cm-scroller{overflow:auto}.sdc-code-editor__header{position:absolute;top:var(--sdc-code-editor-header-offset, 8px);right:var(--sdc-code-editor-header-offset, 8px);display:flex;align-items:center;gap:var(--sdc-code-editor-header-gap, 8px);z-index:10;opacity:0;transform:translateY(var(--sdc-code-editor-header-translate-y, -4px));transition:opacity var(--sdc-transition-fast, .18s ease),transform var(--sdc-transition-fast, .18s ease);pointer-events:none}.sdc-code-editor__header-side{display:flex;align-items:center;gap:var(--sdc-code-editor-header-gap, 8px)}.sdc-code-editor__header-side fieldset{border:none;padding:0;margin:0}.sdc-code-editor__header-side legend{padding:0;margin:0}.sdc-code-editor__segmented{display:flex;gap:var(--sdc-code-editor-control-gap, 2px);padding:var(--sdc-code-editor-control-padding, 2px);border-radius:var(--sdc-radius-pill, 999px);background:var(--sdc-code-editor-control-bg, rgba(255, 255, 255, .92));border:1px solid var(--sdc-code-editor-control-border, rgba(0, 0, 0, .08));box-shadow:var(--sdc-code-editor-control-shadow, 0 2px 8px rgba(0, 0, 0, .08));backdrop-filter:saturate(180%) blur(6px);pointer-events:auto}.sdc-code-editor__segmented-item{appearance:none;border:0;background:transparent;padding:var(--sdc-code-editor-control-padding-block, 6px) var(--sdc-code-editor-control-padding-inline, 10px);border-radius:var(--sdc-radius-pill, 999px);font:500 12px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--sdc-code-editor-control-text, #111111);min-width:24px;min-height:24px}.sdc-code-editor__segmented-item:hover{background:var(--sdc-code-editor-control-hover-bg, rgba(17, 24, 39, .06))}.sdc-code-editor__segmented-item--active{background:var(--sdc-code-editor-control-active-bg, #eef2ff);box-shadow:inset 0 0 0 1px var(--sdc-code-editor-control-active-border, #c7d2fe)}.sdc-code-editor__segmented-item:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--sdc-code-editor-control-focus, #6366f1)}.sdc-code-editor__icon-button{appearance:none;border:1px solid var(--sdc-code-editor-control-border, rgba(0, 0, 0, .08));width:var(--sdc-code-editor-control-size, 32px);height:var(--sdc-code-editor-control-size, 32px);border-radius:var(--sdc-radius-pill, 999px);display:grid;place-items:center;background:var(--sdc-code-editor-control-bg, rgba(255, 255, 255, .92));box-shadow:var(--sdc-code-editor-control-shadow, 0 2px 8px rgba(0, 0, 0, .08));cursor:pointer;pointer-events:auto}.sdc-code-editor__icon-button:hover{filter:brightness(.98)}.sdc-code-editor__icon-button:active{transform:translateY(1px)}.sdc-code-editor__icon-button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sdc-code-editor-control-focus, #6366f1) inset}.sdc-code-editor:hover .sdc-code-editor__header,.sdc-code-editor:focus-within .sdc-code-editor__header{opacity:1;transform:translateY(0);pointer-events:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
202
202
  }
203
203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeEditorComponent, decorators: [{
204
204
  type: Component,
@@ -228,10 +228,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
228
228
  type: Input
229
229
  }], schema: [{
230
230
  type: Input
231
- }], onDomainFilter: [{
231
+ }], domainFilterClick: [{
232
232
  type: Output
233
233
  }], editorContainer: [{
234
234
  type: ViewChild,
235
235
  args: ['editorContainer', { static: true }]
236
236
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb2RlLWVkaXRvci9jb2RlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvZGUtZWRpdG9yL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENB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LElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGF1dG9jb21wbGV0aW9uIH0gZnJvbSAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IEV4dGVuc2lvbiwgU3RhdGVFZmZlY3QgfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBiYXNpY1NldHVwIH0gZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyBodG1sIGFzIGh0bWxMYW5nIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcbmltcG9ydCB7IGpzb24gYXMganNvbkxhbmcgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBQb3N0Z3JlU1FMLCBzcWwgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLXNxbCc7XG5pbXBvcnQgeyBheXVMaWdodCB9IGZyb20gJ3RoZW1lbWlycm9yJztcblxuaW1wb3J0IHtcbiAgQ09ERV9FRElUT1JfQ09QWV9FUlJPUl9NRVNTQUdFX0tFWSxcbiAgQ09ERV9FRElUT1JfQ09QWV9FUlJPUl9USVRMRV9LRVksXG4gIENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19NRVNTQUdFX0tFWSxcbiAgQ09ERV9FRElUT1JfQ09QWV9TVUNDRVNTX1RJVExFX0tFWSxcbiAgQ09ERV9FRElUT1JfREVGQVVMVF9MQU5HVUFHRVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jb2RlLWVkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBzcWxEb21haW5GaWx0ZXJEZWNvcmF0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMvc3FsRG9tYWluRmlsdGVyJztcbmltcG9ydCB7IGNyZWF0ZVNxbEF1dG9Db21wbGV0aW9uSGFkbGVyLCBTY2hlbWEgfSBmcm9tICcuLi8uLi9jb3JlL2hhbmRsZXJzL3NxbEF1dG9Db21wbGV0ZSc7XG5pbXBvcnQgeyBzcWxGb3JtYXR0ZXJIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9oYW5kbGVycy9zcWxGb3JtYXR0ZXInO1xuaW1wb3J0IHsgc3FsVXBwZXJjYXNlSGFuZGxlciB9IGZyb20gJy4uLy4uL2NvcmUvaGFuZGxlcnMvc3FsVXBwZXJjYXNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IEVkaXRvckxhbmd1YWdlLCBIZWFkZXJJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9jb2RlLWVkaXRvci50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY29kZS1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2RlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2RlRWRpdG9yQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIHJlYWRvbmx5IGVkaXRvcklkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWNvZGUtZWRpdG9yJyk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdG9hc3Q6IFRvYXN0U2VydmljZSkge31cblxuICBASW5wdXQoKSBzcWwgPSAnJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93Q29weSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGN1c3RvbUhlYWRlckl0ZW1zOiBIZWFkZXJJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlSGVhZGVyS2V5Pzogc3RyaW5nO1xuICBAT3V0cHV0KCkgaGVhZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleT86IHN0cmluZzsgbGFuZzogRWRpdG9yTGFuZ3VhZ2UgfT4oKTtcbiAgQE91dHB1dCgnb25Db3B5JykgY29waWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX3JlYWRPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWRPbmx5ID0gISF2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTtcbiAgfVxuXG4gIGdldCByZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZE9ubHk7XG4gIH1cblxuICBAT3V0cHV0KCkgbGFuZ3VhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckxhbmd1YWdlPigpO1xuXG4gIEBJbnB1dCgpIHNldCBsYW5ndWFnZSh2YWx1ZTogRWRpdG9yTGFuZ3VhZ2UpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHZhbHVlIHx8IENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0U7XG4gICAgaWYgKGxhbmd1YWdlICE9PSB0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgdGhpcy4kbGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICAgICAgdGhpcy5sYW5ndWFnZUNoYW5nZS5lbWl0KHRoaXMuJGxhbmd1YWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbGFuZ3VhZ2UoKTogRWRpdG9yTGFuZ3VhZ2Uge1xuICAgIHJldHVybiB0aGlzLiRsYW5ndWFnZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzY2hlbWEodmFsdWU6IFNjaGVtYSkge1xuICAgIHRoaXMuJHNjaGVtYSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLiRsYW5ndWFnZSA9PT0gJ3NxbCcpIHtcbiAgICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkRvbWFpbkZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0b3JDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcml2YXRlICRlZGl0b3IhOiBFZGl0b3JWaWV3O1xuICBwcml2YXRlICRvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSAkb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgJHNjaGVtYTogU2NoZW1hID0ge307XG4gIHByaXZhdGUgJGxhbmd1YWdlOiBFZGl0b3JMYW5ndWFnZSA9IENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0U7XG4gIHByaXZhdGUgJGRpc2FibGVkID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4kZWRpdG9yID0gbmV3IEVkaXRvclZpZXcoe1xuICAgICAgZG9jOiB0aGlzLnNxbCxcbiAgICAgIHBhcmVudDogdGhpcy5lZGl0b3JDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIGV4dGVuc2lvbnM6IHRoaXMuYnVpbGRFeHRlbnNpb25zKClcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc3FsJ10gJiYgIWNoYW5nZXNbJ3NxbCddLmZpcnN0Q2hhbmdlICYmIHRoaXMuJGVkaXRvcikge1xuICAgICAgY29uc3QgbmV4dCA9IChjaGFuZ2VzWydzcWwnXS5jdXJyZW50VmFsdWUgPz8gJycpIGFzIHN0cmluZztcbiAgICAgIGlmIChuZXh0ICE9PSB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgdGhpcy4kZWRpdG9yLmRpc3BhdGNoKHsgY2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogbmV4dCB9IH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJGVkaXRvcj8uZGVzdHJveSgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuJGVkaXRvciAmJiB2YWx1ZSAhPT0gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpKSB7XG4gICAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSA/PyAnJyB9IH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWw6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuJG9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuJG9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4kZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICghdGhpcy4kZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGUgPSAhKGlzRGlzYWJsZWQgfHwgdGhpcy5fcmVhZE9ubHkpO1xuICAgIHRoaXMuJGVkaXRvci5jb250ZW50RE9NLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgU3RyaW5nKGVkaXRhYmxlKSk7XG4gICAgdGhpcy51cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk7XG4gIH1cblxuICBnZXRTdHlsZU1hcCgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICBjb25zdCBzdHlsZTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiA9IHt9O1xuICAgIGlmICh0aGlzLndpZHRoICE9IG51bGwpIHtcbiAgICAgIHN0eWxlLndpZHRoID0gdHlwZW9mIHRoaXMud2lkdGggPT09ICdudW1iZXInID8gYCR7dGhpcy53aWR0aH1weGAgOiB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhlaWdodCAhPSBudWxsKSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSB0eXBlb2YgdGhpcy5oZWlnaHQgPT09ICdudW1iZXInID8gYCR7dGhpcy5oZWlnaHR9cHhgIDogdGhpcy5oZWlnaHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgcGlja0hlYWRlcihpdGVtOiBIZWFkZXJJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVIZWFkZXJLZXkgPSBpdGVtLmtleTtcbiAgICBpZiAoaXRlbS52YWx1ZSAhPT0gdGhpcy4kbGFuZ3VhZ2UpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2UgPSBpdGVtLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuaGVhZGVyU2VsZWN0LmVtaXQoeyBrZXk6IGl0ZW0ua2V5LCBsYW5nOiBpdGVtLnZhbHVlIH0pO1xuICB9XG5cbiAgYXN5bmMgY29weSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy4kZWRpdG9yID8gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpIDogdGhpcy5zcWwgfHwgJyc7XG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICB0aXRsZTogc3VjY2VzcyA/IENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19USVRMRV9LRVkgOiBDT0RFX0VESVRPUl9DT1BZX0VSUk9SX1RJVExFX0tFWSxcbiAgICAgIHRleHQ6IHN1Y2Nlc3MgPyBDT0RFX0VESVRPUl9DT1BZX1NVQ0NFU1NfTUVTU0FHRV9LRVkgOiBDT0RFX0VESVRPUl9DT1BZX0VSUk9SX01FU1NBR0VfS0VZLFxuICAgICAgc2V2ZXJpdHk6IHN1Y2Nlc3MgPyAnc3VjY2VzcycgOiAnZXJyb3InLFxuICAgICAgZHVyYXRpb246IDIwMDAsXG4gICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHRoaXMuY29waWVkLmVtaXQoc3VjY2Vzcyk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgY29uc3QgZWRpdGFibGUgPSAhKHRoaXMuX3JlYWRPbmx5IHx8IHRoaXMuJGRpc2FibGVkKTtcbiAgICBjb25zdCBndWFyZHMgPSBlZGl0YWJsZVxuICAgICAgPyBbXVxuICAgICAgOiBbXG4gICAgICAgICAgRWRpdG9yVmlldy5kb21FdmVudEhhbmRsZXJzKHtcbiAgICAgICAgICAgIGJlZm9yZWlucHV0OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBkcm9wOiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBwYXN0ZTogKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgICAgY3V0OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgIGNvbnN0IGJhc2U6IEV4dGVuc2lvbltdID0gW1xuICAgICAgYmFzaWNTZXR1cCxcbiAgICAgIGF5dUxpZ2h0LFxuICAgICAgRWRpdG9yVmlldy5lZGl0YWJsZS5vZihlZGl0YWJsZSksXG4gICAgICBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGUpID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZS5kb2NDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy4kb25DaGFuZ2UodXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICAuLi5ndWFyZHNcbiAgICBdO1xuICAgIHJldHVybiBbLi4uYmFzZSwgLi4udGhpcy5nZXRMYW5ndWFnZUV4dGVuc2lvbnMoKV07XG4gIH1cblxuICBwcml2YXRlIGdldExhbmd1YWdlRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgc3dpdGNoICh0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgY2FzZSAnc3FsJzpcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBzcWxVcHBlcmNhc2VIYW5kbGVyKCksXG4gICAgICAgICAgc3FsRm9ybWF0dGVySGFuZGxlcigpLFxuICAgICAgICAgIHNxbCh7IGRpYWxlY3Q6IFBvc3RncmVTUUwgfSksXG4gICAgICAgICAgc3FsRG9tYWluRmlsdGVyRGVjb3JhdG9yKCh0b2tlbikgPT4gdGhpcy5vbkRvbWFpbkZpbHRlci5lbWl0KHRva2VuKSksXG4gICAgICAgICAgYXV0b2NvbXBsZXRpb24oeyBvdmVycmlkZTogW2NyZWF0ZVNxbEF1dG9Db21wbGV0aW9uSGFkbGVyKHRoaXMuJHNjaGVtYSldIH0pXG4gICAgICAgIF07XG4gICAgICBjYXNlICd0eXBlc2NyaXB0JzpcbiAgICAgICAgcmV0dXJuIFtqYXZhc2NyaXB0KHsgdHlwZXNjcmlwdDogdHJ1ZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2phdmFzY3JpcHQnOlxuICAgICAgICByZXR1cm4gW2phdmFzY3JpcHQoeyB0eXBlc2NyaXB0OiBmYWxzZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICByZXR1cm4gW2pzb25MYW5nKCksIGF1dG9jb21wbGV0aW9uKCldO1xuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIHJldHVybiBbaHRtbExhbmcoKSwgYXV0b2NvbXBsZXRpb24oKV07XG4gICAgICBjYXNlICdwbGFpbnRleHQnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFthdXRvY29tcGxldGlvbigpXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiRlZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZih0aGlzLmJ1aWxkRXh0ZW5zaW9ucygpKSB9KTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JcIj5cbiAgPGxhYmVsIFthdHRyLmZvcl09XCJlZGl0b3JJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgIHt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmNvZGVfZWRpdG9yJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2xhYmVsPlxuICA8ZGl2XG4gICAgI2VkaXRvckNvbnRhaW5lclxuICAgIFthdHRyLmlkXT1cImVkaXRvcklkXCJcbiAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc3VyZmFjZVwiXG4gICAgW25nU3R5bGVdPVwiZ2V0U3R5bGVNYXAoKVwiXG4gICAgW2F0dHIuZGF0YS1lZGl0b3ItdHlwZV09XCJsYW5ndWFnZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5jb2RlX2VkaXRvcicgfCB0cmFuc2xhdGVcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlsaW5lXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZE9ubHlcIlxuICA+PC9kaXY+XG5cbiAgQGlmIChzaG93Q29weSB8fCBjdXN0b21IZWFkZXJJdGVtcy5sZW5ndGggPiAxKSB7XG4gIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2hlYWRlclwiPlxuICAgIEBpZiAoY3VzdG9tSGVhZGVySXRlbXMubGVuZ3RoID4gMSkge1xuICAgIDxmaWVsZHNldCBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUgc2RjLWNvZGUtZWRpdG9yX19oZWFkZXItc2lkZS0tbGVmdFwiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubGFuZ3VhZ2Vfc2VsZWN0b3InIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX3NlZ21lbnRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubGFuZ3VhZ2Vfc2VsZWN0b3InIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgQGZvciAoaXQgb2YgY3VzdG9tSGVhZGVySXRlbXM7IHRyYWNrIGl0LnZhbHVlKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc2VnbWVudGVkLWl0ZW1cIlxuICAgICAgICAgIFthdHRyLmlkXT1cIidsYW5nLScgKyAoaXQua2V5IHx8IGl0LnZhbHVlKSArICctJyArIGVkaXRvcklkXCJcbiAgICAgICAgICBbY2xhc3Muc2RjLWNvZGUtZWRpdG9yX19zZWdtZW50ZWQtaXRlbS0tYWN0aXZlXT1cIml0LmtleSA/IGl0LmtleSA9PT0gYWN0aXZlSGVhZGVyS2V5IDogaXQudmFsdWUgPT09IGxhbmd1YWdlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXQua2V5ID8gaXQua2V5ID09PSBhY3RpdmVIZWFkZXJLZXkgOiBpdC52YWx1ZSA9PT0gbGFuZ3VhZ2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuc2VsZWN0X2xhbmd1YWdlJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnOiAnXG4gICAgICAgICAgICAgICsgKGl0LmxhYmVsIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgKGNsaWNrKT1cInBpY2tIZWFkZXIoaXQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2hlYWRlci1zaWRlIHNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUtLXJpZ2h0XCI+XG4gICAgICBAaWYgKHNob3dDb3B5KSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faWNvbi1idXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmNvcHlfY29kZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAoY2xpY2spPVwiY29weSgpXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY29weVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY29weV9jb2RlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIH1cbjwvc2VjdGlvbj5cbiJdfQ==
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb2RlLWVkaXRvci9jb2RlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvZGUtZWRpdG9yL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENB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TSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGF1dG9jb21wbGV0aW9uIH0gZnJvbSAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IEV4dGVuc2lvbiwgU3RhdGVFZmZlY3QgfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBiYXNpY1NldHVwIH0gZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyBodG1sIGFzIGh0bWxMYW5nIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcbmltcG9ydCB7IGpzb24gYXMganNvbkxhbmcgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBQb3N0Z3JlU1FMLCBzcWwgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLXNxbCc7XG5pbXBvcnQgeyBheXVMaWdodCB9IGZyb20gJ3RoZW1lbWlycm9yJztcblxuaW1wb3J0IHtcbiAgQ09ERV9FRElUT1JfQ09QWV9FUlJPUl9NRVNTQUdFX0tFWSxcbiAgQ09ERV9FRElUT1JfQ09QWV9FUlJPUl9USVRMRV9LRVksXG4gIENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19NRVNTQUdFX0tFWSxcbiAgQ09ERV9FRElUT1JfQ09QWV9TVUNDRVNTX1RJVExFX0tFWSxcbiAgQ09ERV9FRElUT1JfREVGQVVMVF9MQU5HVUFHRVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jb2RlLWVkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBzcWxEb21haW5GaWx0ZXJEZWNvcmF0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMvc3FsRG9tYWluRmlsdGVyJztcbmltcG9ydCB7IGNyZWF0ZVNxbEF1dG9Db21wbGV0aW9uSGFkbGVyLCBTY2hlbWEgfSBmcm9tICcuLi8uLi9jb3JlL2hhbmRsZXJzL3NxbEF1dG9Db21wbGV0ZSc7XG5pbXBvcnQgeyBzcWxGb3JtYXR0ZXJIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9oYW5kbGVycy9zcWxGb3JtYXR0ZXInO1xuaW1wb3J0IHsgc3FsVXBwZXJjYXNlSGFuZGxlciB9IGZyb20gJy4uLy4uL2NvcmUvaGFuZGxlcnMvc3FsVXBwZXJjYXNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IEVkaXRvckxhbmd1YWdlLCBIZWFkZXJJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9jb2RlLWVkaXRvci50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY29kZS1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2RlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2RlRWRpdG9yQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIHJlYWRvbmx5IGVkaXRvcklkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWNvZGUtZWRpdG9yJyk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdG9hc3Q6IFRvYXN0U2VydmljZSkge31cblxuICBASW5wdXQoKSBzcWwgPSAnJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93Q29weSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGN1c3RvbUhlYWRlckl0ZW1zOiBIZWFkZXJJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlSGVhZGVyS2V5Pzogc3RyaW5nO1xuICBAT3V0cHV0KCkgaGVhZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleT86IHN0cmluZzsgbGFuZzogRWRpdG9yTGFuZ3VhZ2UgfT4oKTtcbiAgQE91dHB1dCgnb25Db3B5JykgY29waWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX3JlYWRPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWRPbmx5ID0gISF2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTtcbiAgfVxuXG4gIGdldCByZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZE9ubHk7XG4gIH1cblxuICBAT3V0cHV0KCkgbGFuZ3VhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckxhbmd1YWdlPigpO1xuXG4gIEBJbnB1dCgpIHNldCBsYW5ndWFnZSh2YWx1ZTogRWRpdG9yTGFuZ3VhZ2UpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHZhbHVlIHx8IENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0U7XG4gICAgaWYgKGxhbmd1YWdlICE9PSB0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgdGhpcy4kbGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICAgICAgdGhpcy5sYW5ndWFnZUNoYW5nZS5lbWl0KHRoaXMuJGxhbmd1YWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbGFuZ3VhZ2UoKTogRWRpdG9yTGFuZ3VhZ2Uge1xuICAgIHJldHVybiB0aGlzLiRsYW5ndWFnZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzY2hlbWEodmFsdWU6IFNjaGVtYSkge1xuICAgIHRoaXMuJHNjaGVtYSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLiRsYW5ndWFnZSA9PT0gJ3NxbCcpIHtcbiAgICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBkb21haW5GaWx0ZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0b3JDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcml2YXRlICRlZGl0b3IhOiBFZGl0b3JWaWV3O1xuICBwcml2YXRlICRvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSAkb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgJHNjaGVtYTogU2NoZW1hID0ge307XG4gIHByaXZhdGUgJGxhbmd1YWdlOiBFZGl0b3JMYW5ndWFnZSA9IENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0U7XG4gIHByaXZhdGUgJGRpc2FibGVkID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4kZWRpdG9yID0gbmV3IEVkaXRvclZpZXcoe1xuICAgICAgZG9jOiB0aGlzLnNxbCxcbiAgICAgIHBhcmVudDogdGhpcy5lZGl0b3JDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIGV4dGVuc2lvbnM6IHRoaXMuYnVpbGRFeHRlbnNpb25zKClcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc3FsJ10gJiYgIWNoYW5nZXNbJ3NxbCddLmZpcnN0Q2hhbmdlICYmIHRoaXMuJGVkaXRvcikge1xuICAgICAgY29uc3QgbmV4dCA9IChjaGFuZ2VzWydzcWwnXS5jdXJyZW50VmFsdWUgPz8gJycpIGFzIHN0cmluZztcbiAgICAgIGlmIChuZXh0ICE9PSB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgdGhpcy4kZWRpdG9yLmRpc3BhdGNoKHsgY2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogbmV4dCB9IH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJGVkaXRvcj8uZGVzdHJveSgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuJGVkaXRvciAmJiB2YWx1ZSAhPT0gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpKSB7XG4gICAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSA/PyAnJyB9IH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWw6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuJG9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuJG9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4kZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICghdGhpcy4kZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGUgPSAhKGlzRGlzYWJsZWQgfHwgdGhpcy5fcmVhZE9ubHkpO1xuICAgIHRoaXMuJGVkaXRvci5jb250ZW50RE9NLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgU3RyaW5nKGVkaXRhYmxlKSk7XG4gICAgdGhpcy51cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk7XG4gIH1cblxuICBnZXRTdHlsZU1hcCgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICBjb25zdCBzdHlsZTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiA9IHt9O1xuICAgIGlmICh0aGlzLndpZHRoICE9IG51bGwpIHtcbiAgICAgIHN0eWxlLndpZHRoID0gdHlwZW9mIHRoaXMud2lkdGggPT09ICdudW1iZXInID8gYCR7dGhpcy53aWR0aH1weGAgOiB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhlaWdodCAhPSBudWxsKSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSB0eXBlb2YgdGhpcy5oZWlnaHQgPT09ICdudW1iZXInID8gYCR7dGhpcy5oZWlnaHR9cHhgIDogdGhpcy5oZWlnaHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgcGlja0hlYWRlcihpdGVtOiBIZWFkZXJJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVIZWFkZXJLZXkgPSBpdGVtLmtleTtcbiAgICBpZiAoaXRlbS52YWx1ZSAhPT0gdGhpcy4kbGFuZ3VhZ2UpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2UgPSBpdGVtLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuaGVhZGVyU2VsZWN0LmVtaXQoeyBrZXk6IGl0ZW0ua2V5LCBsYW5nOiBpdGVtLnZhbHVlIH0pO1xuICB9XG5cbiAgYXN5bmMgY29weSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy4kZWRpdG9yID8gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpIDogdGhpcy5zcWwgfHwgJyc7XG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICB0aXRsZTogc3VjY2VzcyA/IENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19USVRMRV9LRVkgOiBDT0RFX0VESVRPUl9DT1BZX0VSUk9SX1RJVExFX0tFWSxcbiAgICAgIHRleHQ6IHN1Y2Nlc3MgPyBDT0RFX0VESVRPUl9DT1BZX1NVQ0NFU1NfTUVTU0FHRV9LRVkgOiBDT0RFX0VESVRPUl9DT1BZX0VSUk9SX01FU1NBR0VfS0VZLFxuICAgICAgc2V2ZXJpdHk6IHN1Y2Nlc3MgPyAnc3VjY2VzcycgOiAnZXJyb3InLFxuICAgICAgZHVyYXRpb246IDIwMDAsXG4gICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHRoaXMuY29waWVkLmVtaXQoc3VjY2Vzcyk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgY29uc3QgZWRpdGFibGUgPSAhKHRoaXMuX3JlYWRPbmx5IHx8IHRoaXMuJGRpc2FibGVkKTtcbiAgICBjb25zdCBndWFyZHMgPSBlZGl0YWJsZVxuICAgICAgPyBbXVxuICAgICAgOiBbXG4gICAgICAgICAgRWRpdG9yVmlldy5kb21FdmVudEhhbmRsZXJzKHtcbiAgICAgICAgICAgIGJlZm9yZWlucHV0OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBkcm9wOiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBwYXN0ZTogKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgICAgY3V0OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgIGNvbnN0IGJhc2U6IEV4dGVuc2lvbltdID0gW1xuICAgICAgYmFzaWNTZXR1cCxcbiAgICAgIGF5dUxpZ2h0LFxuICAgICAgRWRpdG9yVmlldy5lZGl0YWJsZS5vZihlZGl0YWJsZSksXG4gICAgICBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGUpID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZS5kb2NDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy4kb25DaGFuZ2UodXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICAuLi5ndWFyZHNcbiAgICBdO1xuICAgIHJldHVybiBbLi4uYmFzZSwgLi4udGhpcy5nZXRMYW5ndWFnZUV4dGVuc2lvbnMoKV07XG4gIH1cblxuICBwcml2YXRlIGdldExhbmd1YWdlRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgc3dpdGNoICh0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgY2FzZSAnc3FsJzpcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBzcWxVcHBlcmNhc2VIYW5kbGVyKCksXG4gICAgICAgICAgc3FsRm9ybWF0dGVySGFuZGxlcigpLFxuICAgICAgICAgIHNxbCh7IGRpYWxlY3Q6IFBvc3RncmVTUUwgfSksXG4gICAgICAgICAgc3FsRG9tYWluRmlsdGVyRGVjb3JhdG9yKCh0b2tlbikgPT4gdGhpcy5kb21haW5GaWx0ZXJDbGljay5lbWl0KHRva2VuKSksXG4gICAgICAgICAgYXV0b2NvbXBsZXRpb24oeyBvdmVycmlkZTogW2NyZWF0ZVNxbEF1dG9Db21wbGV0aW9uSGFkbGVyKHRoaXMuJHNjaGVtYSldIH0pXG4gICAgICAgIF07XG4gICAgICBjYXNlICd0eXBlc2NyaXB0JzpcbiAgICAgICAgcmV0dXJuIFtqYXZhc2NyaXB0KHsgdHlwZXNjcmlwdDogdHJ1ZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2phdmFzY3JpcHQnOlxuICAgICAgICByZXR1cm4gW2phdmFzY3JpcHQoeyB0eXBlc2NyaXB0OiBmYWxzZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICByZXR1cm4gW2pzb25MYW5nKCksIGF1dG9jb21wbGV0aW9uKCldO1xuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIHJldHVybiBbaHRtbExhbmcoKSwgYXV0b2NvbXBsZXRpb24oKV07XG4gICAgICBjYXNlICdwbGFpbnRleHQnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFthdXRvY29tcGxldGlvbigpXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiRlZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZih0aGlzLmJ1aWxkRXh0ZW5zaW9ucygpKSB9KTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JcIj5cbiAgPGxhYmVsIFthdHRyLmZvcl09XCJlZGl0b3JJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgIHt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmNvZGVfZWRpdG9yJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2xhYmVsPlxuICA8ZGl2XG4gICAgI2VkaXRvckNvbnRhaW5lclxuICAgIFthdHRyLmlkXT1cImVkaXRvcklkXCJcbiAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc3VyZmFjZVwiXG4gICAgW25nU3R5bGVdPVwiZ2V0U3R5bGVNYXAoKVwiXG4gICAgW2F0dHIuZGF0YS1lZGl0b3ItdHlwZV09XCJsYW5ndWFnZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5jb2RlX2VkaXRvcicgfCB0cmFuc2xhdGVcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlsaW5lXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZE9ubHlcIlxuICA+PC9kaXY+XG5cbiAgQGlmIChzaG93Q29weSB8fCBjdXN0b21IZWFkZXJJdGVtcy5sZW5ndGggPiAxKSB7XG4gIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2hlYWRlclwiPlxuICAgIEBpZiAoY3VzdG9tSGVhZGVySXRlbXMubGVuZ3RoID4gMSkge1xuICAgIDxmaWVsZHNldCBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUgc2RjLWNvZGUtZWRpdG9yX19oZWFkZXItc2lkZS0tbGVmdFwiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubGFuZ3VhZ2Vfc2VsZWN0b3InIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX3NlZ21lbnRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubGFuZ3VhZ2Vfc2VsZWN0b3InIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgQGZvciAoaXQgb2YgY3VzdG9tSGVhZGVySXRlbXM7IHRyYWNrIGl0LnZhbHVlKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc2VnbWVudGVkLWl0ZW1cIlxuICAgICAgICAgIFthdHRyLmlkXT1cIidsYW5nLScgKyAoaXQua2V5IHx8IGl0LnZhbHVlKSArICctJyArIGVkaXRvcklkXCJcbiAgICAgICAgICBbY2xhc3Muc2RjLWNvZGUtZWRpdG9yX19zZWdtZW50ZWQtaXRlbS0tYWN0aXZlXT1cIml0LmtleSA/IGl0LmtleSA9PT0gYWN0aXZlSGVhZGVyS2V5IDogaXQudmFsdWUgPT09IGxhbmd1YWdlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXQua2V5ID8gaXQua2V5ID09PSBhY3RpdmVIZWFkZXJLZXkgOiBpdC52YWx1ZSA9PT0gbGFuZ3VhZ2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuc2VsZWN0X2xhbmd1YWdlJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnOiAnXG4gICAgICAgICAgICAgICsgKGl0LmxhYmVsIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgKGNsaWNrKT1cInBpY2tIZWFkZXIoaXQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2hlYWRlci1zaWRlIHNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUtLXJpZ2h0XCI+XG4gICAgICBAaWYgKHNob3dDb3B5KSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faWNvbi1idXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmNvcHlfY29kZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAoY2xpY2spPVwiY29weSgpXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY29weVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY29weV9jb2RlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIH1cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -115,13 +115,13 @@ export class ColorPickerComponent extends InputsComponent {
115
115
  this.cdr.markForCheck();
116
116
  }
117
117
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
118
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ColorPickerComponent, isStandalone: true, selector: "sdc-color-picker", inputs: { infoTooltip: "infoTooltip", infoTooltipPosition: "infoTooltipPosition", infoTooltipEvent: "infoTooltipEvent" }, providers: [
118
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ColorPickerComponent, isStandalone: true, selector: "sdc-color-picker", inputs: { infoTooltip: "infoTooltip", infoTooltipPosition: "infoTooltipPosition", infoTooltipEvent: "infoTooltipEvent" }, providers: [
119
119
  {
120
120
  provide: NG_VALUE_ACCESSOR,
121
121
  useExisting: forwardRef(() => ColorPickerComponent),
122
122
  multi: true
123
123
  }
124
- ], viewQueries: [{ propertyName: "nativeInputRef", first: true, predicate: ["nativeInputRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-color-picker\">\n <div class=\"sdc-color-picker__label-row\" *ngIf=\"labelKey() || hasTooltip\">\n <label *ngIf=\"labelKey()\" [for]=\"controlId\" class=\"sdc-color-picker__label\">\n <span class=\"sdc-color-picker__label-text\">\n {{ labelKey() | translate }}\n <span *ngIf=\"required\" class=\"required-field\" aria-hidden=\"true\">*</span>\n <span *ngIf=\"required\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n </span>\n </label>\n\n <sdc-tooltip\n *ngIf=\"hasTooltip\"\n class=\"sdc-color-picker__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-color-picker__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n </div>\n\n <div\n class=\"sdc-color-picker__control\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-color-picker__control--invalid]=\"invalid\"\n [class.sdc-color-picker__control--disabled]=\"disabled\"\n >\n <input\n class=\"sdc-color-picker__input\"\n [id]=\"controlId\"\n [name]=\"identity.name\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [value]=\"displayValue\"\n [placeholder]=\"resolvedPlaceholder\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? controlId + '-error' : null\"\n [ngClass]=\"getInvalidClass()\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n (input)=\"onTextInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <button\n type=\"button\"\n class=\"sdc-color-picker__trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"resolvedTriggerAriaLabel\"\n (click)=\"openNativePicker()\"\n >\n <span class=\"sdc-color-picker__swatch\" [style.background]=\"previewColor\"></span>\n <i class=\"fas fa-eye-dropper sdc-color-picker__trigger-icon\" aria-hidden=\"true\"></i>\n </button>\n <label [for]=\"controlId + '-native'\" class=\"sr-only\">{{ resolvedTriggerAriaLabel }}</label>\n <input\n #nativeInputRef\n class=\"sdc-color-picker__native\"\n [id]=\"controlId + '-native'\"\n type=\"color\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"nativeColorValue\"\n [attr.aria-label]=\"resolvedTriggerAriaLabel\"\n (input)=\"onNativeColorInput($event)\"\n />\n </div>\n\n <small\n *ngIf=\"messageKey()\"\n [id]=\"controlId + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n</div>\n", styles: [".sdc-color-picker .sdc-color-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-color-picker .sdc-color-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-color-picker .sdc-color-picker__label-text{display:inline-flex;align-items:center}.sdc-color-picker .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-color-picker .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-color-picker .sdc-color-picker__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-color-picker .sdc-color-picker__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-color-picker .sdc-color-picker__control{position:relative;display:flex;align-items:stretch;width:100%;min-height:var(--sdc-formfield-default-height);height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background-color:var(--sdc-formfield-default-bg);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;box-sizing:border-box}.sdc-color-picker .sdc-color-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-color-picker .sdc-color-picker__control--invalid,.sdc-color-picker .sdc-color-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-color-picker .sdc-color-picker__control--disabled{background-color:var(--sdc-formfield-disabled-bg)}.sdc-color-picker .sdc-color-picker__input{flex:1 1 auto;min-width:0;border:0;outline:0;background:transparent;color:var(--p-text-color, #111827);font:inherit;padding:0 var(--sdc-form-input-padding-x)}.sdc-color-picker .sdc-color-picker__input::placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af)}.sdc-color-picker .sdc-color-picker__input:disabled{cursor:not-allowed}.sdc-color-picker .sdc-color-picker__trigger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;flex:0 0 var(--sdc-color-picker-trigger-width, 3.5rem);width:var(--sdc-color-picker-trigger-width, 3.5rem);border:0;border-left:1px solid var(--sdc-formfield-default-border);background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));cursor:pointer;transition:background-color .18s ease}.sdc-color-picker .sdc-color-picker__trigger:disabled{cursor:not-allowed;background:var(--sdc-formfield-disabled-bg)}.sdc-color-picker .sdc-color-picker__trigger:hover:not(:disabled){background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-color-picker .sdc-color-picker__swatch{width:var(--sdc-color-picker-swatch-size, 1.125rem);height:var(--sdc-color-picker-swatch-size, 1.125rem);border-radius:999px;border:1px solid var(--sdc-color-picker-swatch-border, rgba(17, 24, 39, .14));box-shadow:inset 0 0 0 1px #ffffff2e;flex:0 0 auto}.sdc-color-picker .sdc-color-picker__trigger-icon{font-size:.875rem}.sdc-color-picker .sdc-color-picker__native{position:absolute;inset:0;width:1px;height:1px;opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
+ ], viewQueries: [{ propertyName: "nativeInputRef", first: true, predicate: ["nativeInputRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-color-picker\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-color-picker__label-row\">\n @if (labelKey()) {\n <label [for]=\"controlId\" class=\"sdc-color-picker__label\">\n <span class=\"sdc-color-picker__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (hasTooltip) {\n <sdc-tooltip\n class=\"sdc-color-picker__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-color-picker__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <div\n class=\"sdc-color-picker__control\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-color-picker__control--invalid]=\"invalid\"\n [class.sdc-color-picker__control--disabled]=\"disabled\"\n >\n <input\n class=\"sdc-color-picker__input\"\n [id]=\"controlId\"\n [name]=\"identity.name\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [value]=\"displayValue\"\n [placeholder]=\"resolvedPlaceholder\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? controlId + '-error' : null\"\n [ngClass]=\"getInvalidClass()\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n (input)=\"onTextInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <button\n type=\"button\"\n class=\"sdc-color-picker__trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"resolvedTriggerAriaLabel\"\n (click)=\"openNativePicker()\"\n >\n <span class=\"sdc-color-picker__swatch\" [style.background]=\"previewColor\"></span>\n <i class=\"fas fa-eye-dropper sdc-color-picker__trigger-icon\" aria-hidden=\"true\"></i>\n </button>\n <label [for]=\"controlId + '-native'\" class=\"sr-only\">{{ resolvedTriggerAriaLabel }}</label>\n <input\n #nativeInputRef\n class=\"sdc-color-picker__native\"\n [id]=\"controlId + '-native'\"\n type=\"color\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"nativeColorValue\"\n [attr.aria-label]=\"resolvedTriggerAriaLabel\"\n (input)=\"onNativeColorInput($event)\"\n />\n </div>\n\n @if (messageKey()) {\n <small\n [id]=\"controlId + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-color-picker .sdc-color-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-color-picker .sdc-color-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-color-picker .sdc-color-picker__label-text{display:inline-flex;align-items:center}.sdc-color-picker .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-color-picker .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-color-picker .sdc-color-picker__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-color-picker .sdc-color-picker__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-color-picker .sdc-color-picker__control{position:relative;display:flex;align-items:stretch;width:100%;min-height:var(--sdc-formfield-default-height);height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background-color:var(--sdc-formfield-default-bg);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;box-sizing:border-box}.sdc-color-picker .sdc-color-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-color-picker .sdc-color-picker__control--invalid,.sdc-color-picker .sdc-color-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-color-picker .sdc-color-picker__control--disabled{background-color:var(--sdc-formfield-disabled-bg)}.sdc-color-picker .sdc-color-picker__input{flex:1 1 auto;min-width:0;border:0;outline:0;background:transparent;color:var(--p-text-color, #111827);font:inherit;padding:0 var(--sdc-form-input-padding-x)}.sdc-color-picker .sdc-color-picker__input::placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af)}.sdc-color-picker .sdc-color-picker__input:disabled{cursor:not-allowed}.sdc-color-picker .sdc-color-picker__trigger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;flex:0 0 var(--sdc-color-picker-trigger-width, 3.5rem);width:var(--sdc-color-picker-trigger-width, 3.5rem);border:0;border-left:1px solid var(--sdc-formfield-default-border);background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));cursor:pointer;transition:background-color .18s ease}.sdc-color-picker .sdc-color-picker__trigger:disabled{cursor:not-allowed;background:var(--sdc-formfield-disabled-bg)}.sdc-color-picker .sdc-color-picker__trigger:hover:not(:disabled){background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-color-picker .sdc-color-picker__swatch{width:var(--sdc-color-picker-swatch-size, 1.125rem);height:var(--sdc-color-picker-swatch-size, 1.125rem);border-radius:999px;border:1px solid var(--sdc-color-picker-swatch-border, rgba(17, 24, 39, .14));box-shadow:inset 0 0 0 1px #ffffff2e;flex:0 0 auto}.sdc-color-picker .sdc-color-picker__trigger-icon{font-size:.875rem}.sdc-color-picker .sdc-color-picker__native{position:absolute;inset:0;width:1px;height:1px;opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
125
125
  }
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorPickerComponent, decorators: [{
127
127
  type: Component,
@@ -131,7 +131,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
131
131
  useExisting: forwardRef(() => ColorPickerComponent),
132
132
  multi: true
133
133
  }
134
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-color-picker\">\n <div class=\"sdc-color-picker__label-row\" *ngIf=\"labelKey() || hasTooltip\">\n <label *ngIf=\"labelKey()\" [for]=\"controlId\" class=\"sdc-color-picker__label\">\n <span class=\"sdc-color-picker__label-text\">\n {{ labelKey() | translate }}\n <span *ngIf=\"required\" class=\"required-field\" aria-hidden=\"true\">*</span>\n <span *ngIf=\"required\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n </span>\n </label>\n\n <sdc-tooltip\n *ngIf=\"hasTooltip\"\n class=\"sdc-color-picker__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-color-picker__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n </div>\n\n <div\n class=\"sdc-color-picker__control\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-color-picker__control--invalid]=\"invalid\"\n [class.sdc-color-picker__control--disabled]=\"disabled\"\n >\n <input\n class=\"sdc-color-picker__input\"\n [id]=\"controlId\"\n [name]=\"identity.name\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [value]=\"displayValue\"\n [placeholder]=\"resolvedPlaceholder\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? controlId + '-error' : null\"\n [ngClass]=\"getInvalidClass()\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n (input)=\"onTextInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <button\n type=\"button\"\n class=\"sdc-color-picker__trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"resolvedTriggerAriaLabel\"\n (click)=\"openNativePicker()\"\n >\n <span class=\"sdc-color-picker__swatch\" [style.background]=\"previewColor\"></span>\n <i class=\"fas fa-eye-dropper sdc-color-picker__trigger-icon\" aria-hidden=\"true\"></i>\n </button>\n <label [for]=\"controlId + '-native'\" class=\"sr-only\">{{ resolvedTriggerAriaLabel }}</label>\n <input\n #nativeInputRef\n class=\"sdc-color-picker__native\"\n [id]=\"controlId + '-native'\"\n type=\"color\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"nativeColorValue\"\n [attr.aria-label]=\"resolvedTriggerAriaLabel\"\n (input)=\"onNativeColorInput($event)\"\n />\n </div>\n\n <small\n *ngIf=\"messageKey()\"\n [id]=\"controlId + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n</div>\n", styles: [".sdc-color-picker .sdc-color-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-color-picker .sdc-color-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-color-picker .sdc-color-picker__label-text{display:inline-flex;align-items:center}.sdc-color-picker .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-color-picker .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-color-picker .sdc-color-picker__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-color-picker .sdc-color-picker__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-color-picker .sdc-color-picker__control{position:relative;display:flex;align-items:stretch;width:100%;min-height:var(--sdc-formfield-default-height);height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background-color:var(--sdc-formfield-default-bg);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;box-sizing:border-box}.sdc-color-picker .sdc-color-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-color-picker .sdc-color-picker__control--invalid,.sdc-color-picker .sdc-color-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-color-picker .sdc-color-picker__control--disabled{background-color:var(--sdc-formfield-disabled-bg)}.sdc-color-picker .sdc-color-picker__input{flex:1 1 auto;min-width:0;border:0;outline:0;background:transparent;color:var(--p-text-color, #111827);font:inherit;padding:0 var(--sdc-form-input-padding-x)}.sdc-color-picker .sdc-color-picker__input::placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af)}.sdc-color-picker .sdc-color-picker__input:disabled{cursor:not-allowed}.sdc-color-picker .sdc-color-picker__trigger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;flex:0 0 var(--sdc-color-picker-trigger-width, 3.5rem);width:var(--sdc-color-picker-trigger-width, 3.5rem);border:0;border-left:1px solid var(--sdc-formfield-default-border);background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));cursor:pointer;transition:background-color .18s ease}.sdc-color-picker .sdc-color-picker__trigger:disabled{cursor:not-allowed;background:var(--sdc-formfield-disabled-bg)}.sdc-color-picker .sdc-color-picker__trigger:hover:not(:disabled){background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-color-picker .sdc-color-picker__swatch{width:var(--sdc-color-picker-swatch-size, 1.125rem);height:var(--sdc-color-picker-swatch-size, 1.125rem);border-radius:999px;border:1px solid var(--sdc-color-picker-swatch-border, rgba(17, 24, 39, .14));box-shadow:inset 0 0 0 1px #ffffff2e;flex:0 0 auto}.sdc-color-picker .sdc-color-picker__trigger-icon{font-size:.875rem}.sdc-color-picker .sdc-color-picker__native{position:absolute;inset:0;width:1px;height:1px;opacity:0;pointer-events:none}\n"] }]
134
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-color-picker\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-color-picker__label-row\">\n @if (labelKey()) {\n <label [for]=\"controlId\" class=\"sdc-color-picker__label\">\n <span class=\"sdc-color-picker__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (hasTooltip) {\n <sdc-tooltip\n class=\"sdc-color-picker__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-color-picker__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <div\n class=\"sdc-color-picker__control\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-color-picker__control--invalid]=\"invalid\"\n [class.sdc-color-picker__control--disabled]=\"disabled\"\n >\n <input\n class=\"sdc-color-picker__input\"\n [id]=\"controlId\"\n [name]=\"identity.name\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [value]=\"displayValue\"\n [placeholder]=\"resolvedPlaceholder\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? controlId + '-error' : null\"\n [ngClass]=\"getInvalidClass()\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n (input)=\"onTextInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <button\n type=\"button\"\n class=\"sdc-color-picker__trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"resolvedTriggerAriaLabel\"\n (click)=\"openNativePicker()\"\n >\n <span class=\"sdc-color-picker__swatch\" [style.background]=\"previewColor\"></span>\n <i class=\"fas fa-eye-dropper sdc-color-picker__trigger-icon\" aria-hidden=\"true\"></i>\n </button>\n <label [for]=\"controlId + '-native'\" class=\"sr-only\">{{ resolvedTriggerAriaLabel }}</label>\n <input\n #nativeInputRef\n class=\"sdc-color-picker__native\"\n [id]=\"controlId + '-native'\"\n type=\"color\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"nativeColorValue\"\n [attr.aria-label]=\"resolvedTriggerAriaLabel\"\n (input)=\"onNativeColorInput($event)\"\n />\n </div>\n\n @if (messageKey()) {\n <small\n [id]=\"controlId + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-color-picker .sdc-color-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-color-picker .sdc-color-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-color-picker .sdc-color-picker__label-text{display:inline-flex;align-items:center}.sdc-color-picker .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-color-picker .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-color-picker .sdc-color-picker__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-color-picker .sdc-color-picker__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-color-picker .sdc-color-picker__control{position:relative;display:flex;align-items:stretch;width:100%;min-height:var(--sdc-formfield-default-height);height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background-color:var(--sdc-formfield-default-bg);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;box-sizing:border-box}.sdc-color-picker .sdc-color-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-color-picker .sdc-color-picker__control--invalid,.sdc-color-picker .sdc-color-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-color-picker .sdc-color-picker__control--disabled{background-color:var(--sdc-formfield-disabled-bg)}.sdc-color-picker .sdc-color-picker__input{flex:1 1 auto;min-width:0;border:0;outline:0;background:transparent;color:var(--p-text-color, #111827);font:inherit;padding:0 var(--sdc-form-input-padding-x)}.sdc-color-picker .sdc-color-picker__input::placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af)}.sdc-color-picker .sdc-color-picker__input:disabled{cursor:not-allowed}.sdc-color-picker .sdc-color-picker__trigger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;flex:0 0 var(--sdc-color-picker-trigger-width, 3.5rem);width:var(--sdc-color-picker-trigger-width, 3.5rem);border:0;border-left:1px solid var(--sdc-formfield-default-border);background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));cursor:pointer;transition:background-color .18s ease}.sdc-color-picker .sdc-color-picker__trigger:disabled{cursor:not-allowed;background:var(--sdc-formfield-disabled-bg)}.sdc-color-picker .sdc-color-picker__trigger:hover:not(:disabled){background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-color-picker .sdc-color-picker__swatch{width:var(--sdc-color-picker-swatch-size, 1.125rem);height:var(--sdc-color-picker-swatch-size, 1.125rem);border-radius:999px;border:1px solid var(--sdc-color-picker-swatch-border, rgba(17, 24, 39, .14));box-shadow:inset 0 0 0 1px #ffffff2e;flex:0 0 auto}.sdc-color-picker .sdc-color-picker__trigger-icon{font-size:.875rem}.sdc-color-picker .sdc-color-picker__native{position:absolute;inset:0;width:1px;height:1px;opacity:0;pointer-events:none}\n"] }]
135
135
  }], ctorParameters: () => [], propDecorators: { infoTooltip: [{
136
136
  type: Input
137
137
  }], infoTooltipPosition: [{
@@ -142,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
142
142
  type: ViewChild,
143
143
  args: ['nativeInputRef']
144
144
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLDBCQUEwQixFQUMxQixnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQy9CLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDOUIsd0JBQXdCLEVBQ3pCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FB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SyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0ExSVUsb0JBQW9COzRGQUFwQixvQkFBb0IseUxBVnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLG1LQ25ESCx5OEZBc0ZBLDZ4SEQ1Q1ksWUFBWSxxVEFBRSxXQUFXLDhCQUFFLGVBQWUsNEZBQUUsZ0JBQWdCOzs0RkFhM0Qsb0JBQW9CO2tCQWhCaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsYUFHNUQ7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3dEQVFoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRXVCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBDT0xPUl9QSUNLRVJfQUNDRVNTSUJMRV9MQUJFTF9LRVksXG4gIENPTE9SX1BJQ0tFUl9ERUZBVUxUX0NPTE9SLFxuICBDT0xPUl9QSUNLRVJfREVGQVVMVF9QTEFDRUhPTERFUixcbiAgQ09MT1JfUElDS0VSX1RSSUdHRVJfTEFCRUxfS0VZXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL2NvbG9yLXBpY2tlci5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IENvbG9yUGlja2VyVmFsdWUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2NvbG9yLXBpY2tlci50eXBlJztcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZUNvbG9yUGlja2VyVmFsdWUsXG4gIHJlc29sdmVDb2xvclBpY2tlclByZXZpZXdDb2xvcixcbiAgc2FuaXRpemVDb2xvclBpY2tlcklucHV0XG59IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvY29sb3ItcGlja2VyLnV0aWwnO1xuaW1wb3J0IHsgSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kaXJlY3RpdmVzL2lucHV0cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbnR5cGUgTmF0aXZlQ29sb3JJbnB1dEVsZW1lbnQgPSBIVE1MSW5wdXRFbGVtZW50ICYge1xuICBzaG93UGlja2VyPzogKCkgPT4gdm9pZDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb2xvci1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbG9yUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBJbnB1dHNDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1jb2xvci1waWNrZXInKTtcblxuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwRXZlbnQ6IFRvb2x0aXBFdmVudCA9ICdib3RoJztcblxuICBAVmlld0NoaWxkKCduYXRpdmVJbnB1dFJlZicpIG5hdGl2ZUlucHV0UmVmPzogRWxlbWVudFJlZjxOYXRpdmVDb2xvcklucHV0RWxlbWVudD47XG5cbiAgZGlzcGxheVZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IENvbG9yUGlja2VyVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbm9ybWFsaXplQ29sb3JQaWNrZXJWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBnZXQgY29udHJvbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHkuaWQgPz8gdGhpcy5nZW5lcmF0ZWRJZDtcbiAgfVxuXG4gIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaW5mb1Rvb2x0aXA7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyXG4gICAgICA/IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnBsYWNlaG9sZGVyKVxuICAgICAgOiBDT0xPUl9QSUNLRVJfREVGQVVMVF9QTEFDRUhPTERFUjtcbiAgfVxuXG4gIGdldCByZXNvbHZlZEFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmxhYmVsS2V5KCkpIHtcbiAgICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5sYWJlbEtleSgpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIENPTE9SX1BJQ0tFUl9BQ0NFU1NJQkxFX0xBQkVMX0tFWSk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCBDT0xPUl9QSUNLRVJfVFJJR0dFUl9MQUJFTF9LRVkpO1xuICB9XG5cbiAgZ2V0IHByZXZpZXdDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlQ29sb3JQaWNrZXJQcmV2aWV3Q29sb3IodGhpcy5kaXNwbGF5VmFsdWUsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUNvbG9yVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9ybWFsaXplQ29sb3JQaWNrZXJWYWx1ZSh0aGlzLnZhbHVlKSA/PyBDT0xPUl9QSUNLRVJfREVGQVVMVF9DT0xPUjtcbiAgfVxuXG4gIG9uVGV4dElucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkID0gc2FuaXRpemVDb2xvclBpY2tlcklucHV0KHRhcmdldC52YWx1ZSk7XG5cbiAgICBpZiAoc2FuaXRpemVkICE9PSB0YXJnZXQudmFsdWUpIHtcbiAgICAgIHRhcmdldC52YWx1ZSA9IHNhbml0aXplZDtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHNhbml0aXplZDtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvclBpY2tlclZhbHVlKHNhbml0aXplZCk7XG5cbiAgICBpZiAobm9ybWFsaXplZCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShub3JtYWxpemVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXNhbml0aXplZCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25OYXRpdmVDb2xvcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCk/LnZhbHVlID8/ICcnO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvclBpY2tlclZhbHVlKHZhbHVlKSA/PyBDT0xPUl9QSUNLRVJfREVGQVVMVF9DT0xPUjtcblxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gbm9ybWFsaXplZDtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKG5vcm1hbGl6ZWQpO1xuICB9XG5cbiAgb3Blbk5hdGl2ZVBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5hdGl2ZUlucHV0ID0gdGhpcy5uYXRpdmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghbmF0aXZlSW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuYXRpdmVJbnB1dC52YWx1ZSA9IHRoaXMubmF0aXZlQ29sb3JWYWx1ZTtcblxuICAgIGlmICh0eXBlb2YgbmF0aXZlSW5wdXQuc2hvd1BpY2tlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbmF0aXZlSW5wdXQuc2hvd1BpY2tlcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5hdGl2ZUlucHV0LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlID8/ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlclwiPlxuICA8ZGl2IGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlcl9fbGFiZWwtcm93XCIgKm5nSWY9XCJsYWJlbEtleSgpIHx8IGhhc1Rvb2x0aXBcIj5cbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbEtleSgpXCIgW2Zvcl09XCJjb250cm9sSWRcIiBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2xhYmVsXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2xhYmVsLXRleHRcIj5cbiAgICAgICAge3sgbGFiZWxLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZC1maWVsZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8c2RjLXRvb2x0aXBcbiAgICAgICpuZ0lmPVwiaGFzVG9vbHRpcFwiXG4gICAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2luZm8tdG9vbHRpcC13cmFwXCJcbiAgICAgIFtwVG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImluZm9Ub29sdGlwUG9zaXRpb25cIlxuICAgICAgW3Rvb2x0aXBFdmVudF09XCJpbmZvVG9vbHRpcEV2ZW50XCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZSBzZGMtY29sb3ItcGlja2VyX19pbmZvLXRvb2x0aXAtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICA8L3NkYy10b29sdGlwPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19jb250cm9sXCJcbiAgICBbbmdTdHlsZV09XCJnZXRJbnB1dFN0eWxlKClcIlxuICAgIFtjbGFzcy5zZGMtY29sb3ItcGlja2VyX19jb250cm9sLS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFtjbGFzcy5zZGMtY29sb3ItcGlja2VyX19jb250cm9sLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlcl9faW5wdXRcIlxuICAgICAgW2lkXT1cImNvbnRyb2xJZFwiXG4gICAgICBbbmFtZV09XCJpZGVudGl0eS5uYW1lXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRQbGFjZWhvbGRlclwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkQXJpYUxhYmVsXCJcbiAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIm1lc3NhZ2VLZXkoKSA/IGNvbnRyb2xJZCArICctZXJyb3InIDogbnVsbFwiXG4gICAgICBbbmdDbGFzc109XCJnZXRJbnZhbGlkQ2xhc3MoKVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBpbnB1dG1vZGU9XCJ0ZXh0XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgKGlucHV0KT1cIm9uVGV4dElucHV0KCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgIC8+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlcl9fdHJpZ2dlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFRyaWdnZXJBcmlhTGFiZWxcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5OYXRpdmVQaWNrZXIoKVwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19zd2F0Y2hcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwcmV2aWV3Q29sb3JcIj48L3NwYW4+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1leWUtZHJvcHBlciBzZGMtY29sb3ItcGlja2VyX190cmlnZ2VyLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGxhYmVsIFtmb3JdPVwiY29udHJvbElkICsgJy1uYXRpdmUnXCIgY2xhc3M9XCJzci1vbmx5XCI+e3sgcmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsIH19PC9sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgICNuYXRpdmVJbnB1dFJlZlxuICAgICAgY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19uYXRpdmVcIlxuICAgICAgW2lkXT1cImNvbnRyb2xJZCArICctbmF0aXZlJ1wiXG4gICAgICB0eXBlPVwiY29sb3JcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgW3ZhbHVlXT1cIm5hdGl2ZUNvbG9yVmFsdWVcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFRyaWdnZXJBcmlhTGFiZWxcIlxuICAgICAgKGlucHV0KT1cIm9uTmF0aXZlQ29sb3JJbnB1dCgkZXZlbnQpXCJcbiAgICAvPlxuICA8L2Rpdj5cblxuICA8c21hbGxcbiAgICAqbmdJZj1cIm1lc3NhZ2VLZXkoKVwiXG4gICAgW2lkXT1cImNvbnRyb2xJZCArICctZXJyb3InXCJcbiAgICBbbmdDbGFzc109XCJnZXRJbnZhbGlkTWVzc2FnZUNsYXNzKClcIlxuICAgIHJvbGU9XCJhbGVydFwiXG4gICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgPlxuICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICA8L3NtYWxsPlxuPC9kaXY+XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLDBCQUEwQixFQUMxQixnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQy9CLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDOUIsd0JBQXdCLEVBQ3pCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FB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SyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0ExSVUsb0JBQW9COzRGQUFwQixvQkFBb0IseUxBVnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLG1LQ25ESCx1dUdBK0ZBLDZ4SERyRFksWUFBWSxpTkFBRSxXQUFXLDhCQUFFLGVBQWUsNEZBQUUsZ0JBQWdCOzs0RkFhM0Qsb0JBQW9CO2tCQWhCaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsYUFHNUQ7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3dEQVFoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRXVCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBDT0xPUl9QSUNLRVJfQUNDRVNTSUJMRV9MQUJFTF9LRVksXG4gIENPTE9SX1BJQ0tFUl9ERUZBVUxUX0NPTE9SLFxuICBDT0xPUl9QSUNLRVJfREVGQVVMVF9QTEFDRUhPTERFUixcbiAgQ09MT1JfUElDS0VSX1RSSUdHRVJfTEFCRUxfS0VZXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL2NvbG9yLXBpY2tlci5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IENvbG9yUGlja2VyVmFsdWUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2NvbG9yLXBpY2tlci50eXBlJztcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZUNvbG9yUGlja2VyVmFsdWUsXG4gIHJlc29sdmVDb2xvclBpY2tlclByZXZpZXdDb2xvcixcbiAgc2FuaXRpemVDb2xvclBpY2tlcklucHV0XG59IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvY29sb3ItcGlja2VyLnV0aWwnO1xuaW1wb3J0IHsgSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kaXJlY3RpdmVzL2lucHV0cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbnR5cGUgTmF0aXZlQ29sb3JJbnB1dEVsZW1lbnQgPSBIVE1MSW5wdXRFbGVtZW50ICYge1xuICBzaG93UGlja2VyPzogKCkgPT4gdm9pZDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb2xvci1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbG9yUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBJbnB1dHNDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1jb2xvci1waWNrZXInKTtcblxuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwRXZlbnQ6IFRvb2x0aXBFdmVudCA9ICdib3RoJztcblxuICBAVmlld0NoaWxkKCduYXRpdmVJbnB1dFJlZicpIG5hdGl2ZUlucHV0UmVmPzogRWxlbWVudFJlZjxOYXRpdmVDb2xvcklucHV0RWxlbWVudD47XG5cbiAgZGlzcGxheVZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IENvbG9yUGlja2VyVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbm9ybWFsaXplQ29sb3JQaWNrZXJWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBnZXQgY29udHJvbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHkuaWQgPz8gdGhpcy5nZW5lcmF0ZWRJZDtcbiAgfVxuXG4gIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaW5mb1Rvb2x0aXA7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyXG4gICAgICA/IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnBsYWNlaG9sZGVyKVxuICAgICAgOiBDT0xPUl9QSUNLRVJfREVGQVVMVF9QTEFDRUhPTERFUjtcbiAgfVxuXG4gIGdldCByZXNvbHZlZEFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmxhYmVsS2V5KCkpIHtcbiAgICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5sYWJlbEtleSgpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIENPTE9SX1BJQ0tFUl9BQ0NFU1NJQkxFX0xBQkVMX0tFWSk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCBDT0xPUl9QSUNLRVJfVFJJR0dFUl9MQUJFTF9LRVkpO1xuICB9XG5cbiAgZ2V0IHByZXZpZXdDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlQ29sb3JQaWNrZXJQcmV2aWV3Q29sb3IodGhpcy5kaXNwbGF5VmFsdWUsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUNvbG9yVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9ybWFsaXplQ29sb3JQaWNrZXJWYWx1ZSh0aGlzLnZhbHVlKSA/PyBDT0xPUl9QSUNLRVJfREVGQVVMVF9DT0xPUjtcbiAgfVxuXG4gIG9uVGV4dElucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkID0gc2FuaXRpemVDb2xvclBpY2tlcklucHV0KHRhcmdldC52YWx1ZSk7XG5cbiAgICBpZiAoc2FuaXRpemVkICE9PSB0YXJnZXQudmFsdWUpIHtcbiAgICAgIHRhcmdldC52YWx1ZSA9IHNhbml0aXplZDtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHNhbml0aXplZDtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvclBpY2tlclZhbHVlKHNhbml0aXplZCk7XG5cbiAgICBpZiAobm9ybWFsaXplZCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShub3JtYWxpemVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXNhbml0aXplZCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25OYXRpdmVDb2xvcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCk/LnZhbHVlID8/ICcnO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvclBpY2tlclZhbHVlKHZhbHVlKSA/PyBDT0xPUl9QSUNLRVJfREVGQVVMVF9DT0xPUjtcblxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gbm9ybWFsaXplZDtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKG5vcm1hbGl6ZWQpO1xuICB9XG5cbiAgb3Blbk5hdGl2ZVBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5hdGl2ZUlucHV0ID0gdGhpcy5uYXRpdmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghbmF0aXZlSW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuYXRpdmVJbnB1dC52YWx1ZSA9IHRoaXMubmF0aXZlQ29sb3JWYWx1ZTtcblxuICAgIGlmICh0eXBlb2YgbmF0aXZlSW5wdXQuc2hvd1BpY2tlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbmF0aXZlSW5wdXQuc2hvd1BpY2tlcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5hdGl2ZUlucHV0LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlID8/ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlclwiPlxuICBAaWYgKGxhYmVsS2V5KCkgfHwgaGFzVG9vbHRpcCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19sYWJlbC1yb3dcIj5cbiAgICAgIEBpZiAobGFiZWxLZXkoKSkge1xuICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb250cm9sSWRcIiBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2xhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19sYWJlbC10ZXh0XCI+XG4gICAgICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIH1cbiAgICAgIEBpZiAoaGFzVG9vbHRpcCkge1xuICAgICAgICA8c2RjLXRvb2x0aXBcbiAgICAgICAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2luZm8tdG9vbHRpcC13cmFwXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiaW5mb1Rvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiaW5mb1Rvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBFdmVudF09XCJpbmZvVG9vbHRpcEV2ZW50XCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZSBzZGMtY29sb3ItcGlja2VyX19pbmZvLXRvb2x0aXAtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9zZGMtdG9vbHRpcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2xcIlxuICAgIFtuZ1N0eWxlXT1cImdldElucHV0U3R5bGUoKVwiXG4gICAgW2NsYXNzLnNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2wtLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW2NsYXNzLnNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2wtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2lucHV0XCJcbiAgICAgIFtpZF09XCJjb250cm9sSWRcIlxuICAgICAgW25hbWVdPVwiaWRlbnRpdHkubmFtZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUGxhY2Vob2xkZXJcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZEFyaWFMYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtZXNzYWdlS2V5KCkgPyBjb250cm9sSWQgKyAnLWVycm9yJyA6IG51bGxcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZENsYXNzKClcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaW5wdXRtb2RlPVwidGV4dFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgIChpbnB1dCk9XCJvblRleHRJbnB1dCgkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIC8+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlcl9fdHJpZ2dlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5OYXRpdmVQaWNrZXIoKVwiXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19zd2F0Y2hcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwcmV2aWV3Q29sb3JcIj48L3NwYW4+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWV5ZS1kcm9wcGVyIHNkYy1jb2xvci1waWNrZXJfX3RyaWdnZXItaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiY29udHJvbElkICsgJy1uYXRpdmUnXCIgY2xhc3M9XCJzci1vbmx5XCI+e3sgcmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsIH19PC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjbmF0aXZlSW5wdXRSZWZcbiAgICAgICAgY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19uYXRpdmVcIlxuICAgICAgICBbaWRdPVwiY29udHJvbElkICsgJy1uYXRpdmUnXCJcbiAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIFt2YWx1ZV09XCJuYXRpdmVDb2xvclZhbHVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFRyaWdnZXJBcmlhTGFiZWxcIlxuICAgICAgICAoaW5wdXQpPVwib25OYXRpdmVDb2xvcklucHV0KCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobWVzc2FnZUtleSgpKSB7XG4gICAgICAgIDxzbWFsbFxuICAgICAgICAgIFtpZF09XCJjb250cm9sSWQgKyAnLWVycm9yJ1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICAgICAgICByb2xlPVwiYWxlcnRcIlxuICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NtYWxsPlxuICAgICAgfVxuICAgIDwvZGl2PlxuIl19