@seniorsistemas/data-seniorx-core 3.1.0 → 3.2.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 (191) hide show
  1. package/core/constants/accordion.const.d.ts +4 -4
  2. package/core/constants/alert.const.d.ts +1 -1
  3. package/core/constants/autocomplete.const.d.ts +2 -2
  4. package/core/constants/badge.const.d.ts +1 -1
  5. package/core/constants/card.const.d.ts +8 -8
  6. package/core/constants/chips.const.d.ts +2 -2
  7. package/core/constants/code-editor.const.d.ts +4 -4
  8. package/core/constants/collapse-link.const.d.ts +2 -2
  9. package/core/constants/color-picker.const.d.ts +2 -2
  10. package/core/constants/combobox.const.d.ts +3 -3
  11. package/core/constants/context-selector.const.d.ts +1 -1
  12. package/core/constants/editable-overlay.const.d.ts +4 -4
  13. package/core/constants/fileupload.const.d.ts +3 -3
  14. package/core/constants/gantt.const.d.ts +1 -1
  15. package/core/constants/help-popover.const.d.ts +2 -2
  16. package/core/constants/hyperlink.const.d.ts +2 -2
  17. package/core/constants/info-sign.const.d.ts +1 -1
  18. package/core/constants/inline-edit.const.d.ts +4 -4
  19. package/core/constants/kanban.const.d.ts +2 -2
  20. package/core/constants/list.const.d.ts +1 -1
  21. package/core/constants/modalc.const.d.ts +1 -1
  22. package/core/constants/navigation-button.const.d.ts +3 -3
  23. package/core/constants/object-card.const.d.ts +2 -2
  24. package/core/constants/picklist.const.d.ts +2 -2
  25. package/core/constants/pin-code-field.const.d.ts +3 -3
  26. package/core/constants/popover.const.d.ts +1 -1
  27. package/core/constants/progressbar.const.d.ts +1 -1
  28. package/core/constants/radio.const.d.ts +2 -2
  29. package/core/constants/rating-scale.const.d.ts +1 -1
  30. package/core/constants/sidebar.const.d.ts +1 -1
  31. package/core/constants/slider.const.d.ts +1 -1
  32. package/core/constants/split-button.const.d.ts +2 -2
  33. package/core/constants/spotlight.const.d.ts +8 -8
  34. package/core/constants/star-rating.const.d.ts +2 -2
  35. package/core/constants/tab.const.d.ts +3 -3
  36. package/core/constants/table.const.d.ts +1 -0
  37. package/core/constants/thumbnails.const.d.ts +4 -4
  38. package/core/constants/token-list.const.d.ts +1 -1
  39. package/core/types/table-column.type.d.ts +4 -0
  40. package/core/types/table-options.type.d.ts +3 -0
  41. package/core/types/table-shared.type.d.ts +1 -1
  42. package/core/types/tile-select.type.d.ts +17 -0
  43. package/esm2022/core/constants/accordion.const.mjs +5 -5
  44. package/esm2022/core/constants/alert.const.mjs +2 -2
  45. package/esm2022/core/constants/autocomplete.const.mjs +3 -3
  46. package/esm2022/core/constants/badge.const.mjs +2 -2
  47. package/esm2022/core/constants/card.const.mjs +9 -9
  48. package/esm2022/core/constants/chips.const.mjs +3 -3
  49. package/esm2022/core/constants/code-editor.const.mjs +5 -5
  50. package/esm2022/core/constants/collapse-link.const.mjs +3 -3
  51. package/esm2022/core/constants/color-picker.const.mjs +3 -3
  52. package/esm2022/core/constants/combobox.const.mjs +7 -4
  53. package/esm2022/core/constants/context-selector.const.mjs +2 -2
  54. package/esm2022/core/constants/editable-overlay.const.mjs +5 -5
  55. package/esm2022/core/constants/fileupload.const.mjs +4 -4
  56. package/esm2022/core/constants/gantt.const.mjs +2 -2
  57. package/esm2022/core/constants/help-popover.const.mjs +3 -3
  58. package/esm2022/core/constants/hyperlink.const.mjs +3 -3
  59. package/esm2022/core/constants/info-sign.const.mjs +2 -2
  60. package/esm2022/core/constants/inline-edit.const.mjs +5 -5
  61. package/esm2022/core/constants/kanban.const.mjs +3 -3
  62. package/esm2022/core/constants/list.const.mjs +2 -2
  63. package/esm2022/core/constants/loading-state.const.mjs +2 -2
  64. package/esm2022/core/constants/modalc.const.mjs +2 -2
  65. package/esm2022/core/constants/navigation-button.const.mjs +4 -4
  66. package/esm2022/core/constants/object-card.const.mjs +3 -3
  67. package/esm2022/core/constants/picklist.const.mjs +3 -3
  68. package/esm2022/core/constants/pin-code-field.const.mjs +4 -4
  69. package/esm2022/core/constants/popover.const.mjs +8 -2
  70. package/esm2022/core/constants/progressbar.const.mjs +2 -2
  71. package/esm2022/core/constants/radio.const.mjs +3 -3
  72. package/esm2022/core/constants/rating-scale.const.mjs +2 -2
  73. package/esm2022/core/constants/sidebar.const.mjs +2 -2
  74. package/esm2022/core/constants/slider.const.mjs +2 -2
  75. package/esm2022/core/constants/split-button.const.mjs +3 -3
  76. package/esm2022/core/constants/spotlight.const.mjs +9 -9
  77. package/esm2022/core/constants/star-rating.const.mjs +3 -3
  78. package/esm2022/core/constants/tab.const.mjs +4 -4
  79. package/esm2022/core/constants/table.const.mjs +4 -3
  80. package/esm2022/core/constants/thumbnails.const.mjs +5 -5
  81. package/esm2022/core/constants/token-list.const.mjs +2 -2
  82. package/esm2022/core/data/fontawesome-v5-solid-icons.data.mjs +2 -2
  83. package/esm2022/core/types/table-column.type.mjs +1 -1
  84. package/esm2022/core/types/table-options.type.mjs +1 -1
  85. package/esm2022/core/types/table-shared.type.mjs +1 -1
  86. package/esm2022/core/types/tile-select.type.mjs +8 -0
  87. package/esm2022/core/utils/combobox.util.mjs +6 -6
  88. package/esm2022/features/accordion/components/accordion-item/accordion-item.component.mjs +3 -3
  89. package/esm2022/features/autocomplete/autocomplete.component.mjs +3 -3
  90. package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
  91. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +3 -3
  92. package/esm2022/features/button/button.component.mjs +7 -3
  93. package/esm2022/features/card-list/card/card.component.mjs +2 -2
  94. package/esm2022/features/card-list/card-list.component.mjs +7 -3
  95. package/esm2022/features/chat/chat.component.mjs +4 -4
  96. package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
  97. package/esm2022/features/checkbox-list/checkbox-list.component.mjs +3 -3
  98. package/esm2022/features/chips/chips.component.mjs +3 -3
  99. package/esm2022/features/code-editor/code-editor.component.mjs +23 -5
  100. package/esm2022/features/color-picker/color-picker.component.mjs +3 -3
  101. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +3 -3
  102. package/esm2022/features/currency/currency.component.mjs +1 -1
  103. package/esm2022/features/editable-overlay/editable-overlay.component.mjs +3 -3
  104. package/esm2022/features/empty-state/empty-state.component.mjs +1 -1
  105. package/esm2022/features/fileupload/fileupload.component.mjs +4 -4
  106. package/esm2022/features/filters/filters.component.mjs +3 -3
  107. package/esm2022/features/help-popover/help-popover.component.mjs +2 -2
  108. package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
  109. package/esm2022/features/icon-picker/icon-picker.component.mjs +1 -1
  110. package/esm2022/features/image-cropper/image-cropper.component.mjs +9 -9
  111. package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  112. package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
  113. package/esm2022/features/list/list.component.mjs +7 -3
  114. package/esm2022/features/loading-state/loading-state.component.mjs +5 -5
  115. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
  116. package/esm2022/features/lookup/lookup.component.mjs +5 -5
  117. package/esm2022/features/mask/mask.component.mjs +4 -4
  118. package/esm2022/features/modal/modal.component.mjs +3 -3
  119. package/esm2022/features/modalc/modalc.component.mjs +3 -3
  120. package/esm2022/features/number-input/number-input.component.mjs +32 -5
  121. package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +1 -1
  122. package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +1 -1
  123. package/esm2022/features/object-card/object-card.component.mjs +2 -2
  124. package/esm2022/features/paginator/paginator.component.mjs +3 -3
  125. package/esm2022/features/panel/panel.component.mjs +6 -6
  126. package/esm2022/features/password-strength/password-strength.component.mjs +6 -6
  127. package/esm2022/features/picklist/picklist.component.mjs +6 -4
  128. package/esm2022/features/pin-code-field/pin-code-field.component.mjs +3 -3
  129. package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +11 -11
  130. package/esm2022/features/rating-scale/rating-scale.component.mjs +3 -3
  131. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +100 -7
  132. package/esm2022/features/row-card-list/row-card-list.component.mjs +7 -3
  133. package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
  134. package/esm2022/features/searchbox/searchbox.component.mjs +4 -4
  135. package/esm2022/features/select-button/select-button.component.mjs +5 -5
  136. package/esm2022/features/sidebar/sidebar.component.mjs +3 -3
  137. package/esm2022/features/slider/slider.component.mjs +3 -3
  138. package/esm2022/features/speech-recognition/speech-recognition.component.mjs +12 -12
  139. package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
  140. package/esm2022/features/star-rating/star-rating.component.mjs +3 -3
  141. package/esm2022/features/switch/switch.component.mjs +4 -4
  142. package/esm2022/features/table/components/table-actions-menu.component.mjs +2 -2
  143. package/esm2022/features/table/components/table-cell-content.component.mjs +16 -10
  144. package/esm2022/features/table/table.component.mjs +46 -16
  145. package/esm2022/features/table/utils/table-visual.util.mjs +25 -7
  146. package/esm2022/features/textarea/textarea.component.mjs +3 -3
  147. package/esm2022/features/textbox/textbox.component.mjs +3 -3
  148. package/esm2022/features/tile-select/tile-select.component.mjs +80 -0
  149. package/esm2022/features/toast/toast.component.mjs +3 -3
  150. package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +6 -6
  151. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
  152. package/esm2022/locales/en.json +4760 -4749
  153. package/esm2022/locales/es-CO.json +4760 -4749
  154. package/esm2022/locales/pt.json +4760 -4749
  155. package/esm2022/providers/features.provider.mjs +3 -1
  156. package/esm2022/public-api.mjs +3 -1
  157. package/features/button/button.component.d.ts +2 -1
  158. package/features/card-list/card-list.component.d.ts +3 -1
  159. package/features/code-editor/code-editor.component.d.ts +2 -1
  160. package/features/help-popover/help-popover.component.d.ts +1 -1
  161. package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +4 -4
  162. package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +2 -2
  163. package/features/list/list.component.d.ts +3 -1
  164. package/features/navigation-button/navigation-button.component.d.ts +3 -3
  165. package/features/number-input/number-input.component.d.ts +7 -1
  166. package/features/panel/panel.component.d.ts +1 -1
  167. package/features/picklist/picklist.component.d.ts +3 -2
  168. package/features/pin-code-field/pin-code-field.component.d.ts +3 -3
  169. package/features/row-card-list/row-card/row-card.component.d.ts +15 -2
  170. package/features/row-card-list/row-card-list.component.d.ts +3 -1
  171. package/features/spotlight/spotlight.component.d.ts +8 -8
  172. package/features/table/components/table-cell-content.component.d.ts +4 -1
  173. package/features/table/table.component.d.ts +9 -2
  174. package/features/table/utils/table-visual.util.d.ts +5 -0
  175. package/features/textarea/textarea.component.d.ts +1 -1
  176. package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +3 -3
  177. package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
  178. package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +1 -1
  179. package/features/tile-select/tile-select.component.d.ts +21 -0
  180. package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs +4 -0
  181. package/fesm2022/{seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs.map → seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs.map} +1 -1
  182. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14859 -14534
  183. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  184. package/package.json +57 -22
  185. package/public-api.d.ts +3 -0
  186. package/src/locales/en.json +4760 -4749
  187. package/src/locales/es-CO.json +4760 -4749
  188. package/src/locales/pt.json +4760 -4749
  189. package/styles/sdc-global-variables.scss +2 -2
  190. package/styles.css +2 -2
  191. package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs +0 -4
@@ -3,8 +3,8 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewCh
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { TranslateModule } from '@ngx-translate/core';
5
5
  import { autocompletion } from '@codemirror/autocomplete';
6
- import { StateEffect } from '@codemirror/state';
7
- import { EditorView } from '@codemirror/view';
6
+ import { Prec, StateEffect } from '@codemirror/state';
7
+ import { EditorView, keymap } from '@codemirror/view';
8
8
  import { basicSetup } from 'codemirror';
9
9
  import { html as htmlLang } from '@codemirror/lang-html';
10
10
  import { json as jsonLang } from '@codemirror/lang-json';
@@ -64,6 +64,12 @@ export class CodeEditorComponent {
64
64
  }
65
65
  }
66
66
  domainFilterClick = new EventEmitter();
67
+ // Ctrl/Cmd+Enter dentro do editor - keymap do próprio CodeMirror (não um listener Angular
68
+ // no host) porque só assim dá pra interceptar ANTES do keymap padrão de "Enter" (que insere
69
+ // quebra de linha) rodar. Um (keydown) no host do componente só reage durante o bubbling,
70
+ // depois que o CodeMirror já processou a tecla no próprio estado - um preventDefault() ali
71
+ // já chega tarde demais pra desfazer a quebra de linha.
72
+ ctrlEnter = new EventEmitter();
67
73
  editorContainer;
68
74
  $editor;
69
75
  $onChange = () => { };
@@ -169,6 +175,16 @@ export class CodeEditorComponent {
169
175
  this.$onChange(update.state.doc.toString());
170
176
  }
171
177
  }),
178
+ Prec.highest(keymap.of([
179
+ {
180
+ key: 'Mod-Enter',
181
+ preventDefault: true,
182
+ run: () => {
183
+ this.ctrlEnter.emit();
184
+ return true;
185
+ }
186
+ }
187
+ ])),
172
188
  ...guards
173
189
  ];
174
190
  return [...base, ...this.getLanguageExtensions()];
@@ -203,11 +219,11 @@ export class CodeEditorComponent {
203
219
  this.$editor.dispatch({ effects: StateEffect.reconfigure.of(this.buildExtensions()) });
204
220
  }
205
221
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeEditorComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
206
- 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", label: "label", required: "required", 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 @if (labelKey()) {\n <div class=\"sdc-code-editor__label-row\">\n <label [attr.for]=\"editorId\" class=\"sdc-code-editor__label\">\n <span class=\"sdc-code-editor__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n </label>\n </div>\n } @else {\n <label [attr.for]=\"editorId\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.code_editor' | translate }}\n </label>\n }\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]=\"\n labelKey()\n ? (labelKey() | translate)\n : ('platform.datacore.accessibility.code_editor' | translate)\n \"\n [attr.aria-multiline]=\"true\"\n [attr.aria-required]=\"required\"\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__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-code-editor__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-code-editor__label-text{display:inline-flex;align-items:center}.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)}fieldset.sdc-code-editor__header-side{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 });
222
+ 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", label: "label", required: "required", customHeaderItems: "customHeaderItems", activeHeaderKey: "activeHeaderKey", readOnly: "readOnly", language: "language", schema: "schema" }, outputs: { headerSelect: "headerSelect", copied: "onCopy", languageChange: "languageChange", domainFilterClick: "domainFilterClick", ctrlEnter: "ctrlEnter" }, 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 @if (labelKey()) {\n <div class=\"sdc-code-editor__label-row\">\n <label [attr.for]=\"editorId\" class=\"sdc-code-editor__label\">\n <span class=\"sdc-code-editor__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility_required_field' | translate }}</span>\n }\n </span>\n </label>\n </div>\n } @else {\n <label [attr.for]=\"editorId\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility_code_editor' | translate }}\n </label>\n }\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]=\"\n labelKey()\n ? (labelKey() | translate)\n : ('platform.datacore.accessibility_code_editor' | translate)\n \"\n [attr.aria-multiline]=\"true\"\n [attr.aria-required]=\"required\"\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__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-code-editor__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-code-editor__label-text{display:inline-flex;align-items:center}.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)}fieldset.sdc-code-editor__header-side{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 });
207
223
  }
208
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeEditorComponent, decorators: [{
209
225
  type: Component,
210
- args: [{ selector: 'sdc-code-editor', standalone: true, imports: [CommonModule, TranslateModule], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CodeEditorComponent), multi: true }], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<section class=\"sdc-code-editor\">\n @if (labelKey()) {\n <div class=\"sdc-code-editor__label-row\">\n <label [attr.for]=\"editorId\" class=\"sdc-code-editor__label\">\n <span class=\"sdc-code-editor__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n </label>\n </div>\n } @else {\n <label [attr.for]=\"editorId\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.code_editor' | translate }}\n </label>\n }\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]=\"\n labelKey()\n ? (labelKey() | translate)\n : ('platform.datacore.accessibility.code_editor' | translate)\n \"\n [attr.aria-multiline]=\"true\"\n [attr.aria-required]=\"required\"\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__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-code-editor__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-code-editor__label-text{display:inline-flex;align-items:center}.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)}fieldset.sdc-code-editor__header-side{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"] }]
226
+ args: [{ selector: 'sdc-code-editor', standalone: true, imports: [CommonModule, TranslateModule], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CodeEditorComponent), multi: true }], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<section class=\"sdc-code-editor\">\n @if (labelKey()) {\n <div class=\"sdc-code-editor__label-row\">\n <label [attr.for]=\"editorId\" class=\"sdc-code-editor__label\">\n <span class=\"sdc-code-editor__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility_required_field' | translate }}</span>\n }\n </span>\n </label>\n </div>\n } @else {\n <label [attr.for]=\"editorId\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility_code_editor' | translate }}\n </label>\n }\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]=\"\n labelKey()\n ? (labelKey() | translate)\n : ('platform.datacore.accessibility_code_editor' | translate)\n \"\n [attr.aria-multiline]=\"true\"\n [attr.aria-required]=\"required\"\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__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-code-editor__label{display:inline-flex;align-items:center;font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py)}.sdc-code-editor__label-text{display:inline-flex;align-items:center}.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)}fieldset.sdc-code-editor__header-side{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"] }]
211
227
  }], ctorParameters: () => [{ type: i1.ToastService }], propDecorators: { sql: [{
212
228
  type: Input
213
229
  }], height: [{
@@ -239,8 +255,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
239
255
  type: Input
240
256
  }], domainFilterClick: [{
241
257
  type: Output
258
+ }], ctrlEnter: [{
259
+ type: Output
242
260
  }], editorContainer: [{
243
261
  type: ViewChild,
244
262
  args: ['editorContainer', { static: true }]
245
263
  }] } });
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb2RlLWVkaXRvci9jb2RlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvZGUtZWRpdG9yL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENB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O3NCQUFyQixNQUFNO2dCQUNXLE1BQU07c0JBQXZCLE1BQU07dUJBQUMsUUFBUTtnQkFHSCxRQUFRO3NCQUFwQixLQUFLO2dCQVNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBRU0sUUFBUTtzQkFBcEIsS0FBSztnQkFhTyxNQUFNO3NCQUFsQixLQUFLO2dCQU9JLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDeUMsZUFBZTtzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBFeHRlbnNpb24sIFN0YXRlRWZmZWN0IH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xuaW1wb3J0IHsgYmFzaWNTZXR1cCB9IGZyb20gJ2NvZGVtaXJyb3InO1xuaW1wb3J0IHsgaHRtbCBhcyBodG1sTGFuZyB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctaHRtbCc7XG5pbXBvcnQgeyBqc29uIGFzIGpzb25MYW5nIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1qc29uJztcbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWphdmFzY3JpcHQnO1xuaW1wb3J0IHsgUG9zdGdyZVNRTCwgc3FsIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1zcWwnO1xuaW1wb3J0IHsgYXl1TGlnaHQgfSBmcm9tICd0aGVtZW1pcnJvcic7XG5cbmltcG9ydCB7XG4gIENPREVfRURJVE9SX0NPUFlfRVJST1JfTUVTU0FHRV9LRVksXG4gIENPREVfRURJVE9SX0NPUFlfRVJST1JfVElUTEVfS0VZLFxuICBDT0RFX0VESVRPUl9DT1BZX1NVQ0NFU1NfTUVTU0FHRV9LRVksXG4gIENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19USVRMRV9LRVksXG4gIENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0Vcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvY29kZS1lZGl0b3IuY29uc3QnO1xuaW1wb3J0IHsgc3FsRG9tYWluRmlsdGVyRGVjb3JhdG9yIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzL3NxbERvbWFpbkZpbHRlcic7XG5pbXBvcnQgeyBjcmVhdGVTcWxBdXRvQ29tcGxldGlvbkhhZGxlciwgU2NoZW1hIH0gZnJvbSAnLi4vLi4vY29yZS9oYW5kbGVycy9zcWxBdXRvQ29tcGxldGUnO1xuaW1wb3J0IHsgc3FsRm9ybWF0dGVySGFuZGxlciB9IGZyb20gJy4uLy4uL2NvcmUvaGFuZGxlcnMvc3FsRm9ybWF0dGVyJztcbmltcG9ydCB7IHNxbFVwcGVyY2FzZUhhbmRsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2hhbmRsZXJzL3NxbFVwcGVyY2FzZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHR5cGUgeyBFZGl0b3JMYW5ndWFnZSwgSGVhZGVySXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvY29kZS1lZGl0b3IudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0Jvb2xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY29kZS1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2RlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2RlRWRpdG9yQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIHJlYWRvbmx5IGVkaXRvcklkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWNvZGUtZWRpdG9yJyk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdG9hc3Q6IFRvYXN0U2VydmljZSkge31cblxuICBASW5wdXQoKSBzcWwgPSAnJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93Q29weSA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbDogU3RyaW5nQm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGN1c3RvbUhlYWRlckl0ZW1zOiBIZWFkZXJJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlSGVhZGVyS2V5Pzogc3RyaW5nO1xuICBAT3V0cHV0KCkgaGVhZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleT86IHN0cmluZzsgbGFuZzogRWRpdG9yTGFuZ3VhZ2UgfT4oKTtcbiAgQE91dHB1dCgnb25Db3B5JykgY29waWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX3JlYWRPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWRPbmx5ID0gISF2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTtcbiAgfVxuXG4gIGdldCByZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZE9ubHk7XG4gIH1cblxuICBAT3V0cHV0KCkgbGFuZ3VhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckxhbmd1YWdlPigpO1xuXG4gIEBJbnB1dCgpIHNldCBsYW5ndWFnZSh2YWx1ZTogRWRpdG9yTGFuZ3VhZ2UpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHZhbHVlIHx8IENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0U7XG4gICAgaWYgKGxhbmd1YWdlICE9PSB0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgdGhpcy4kbGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICAgICAgdGhpcy5sYW5ndWFnZUNoYW5nZS5lbWl0KHRoaXMuJGxhbmd1YWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbGFuZ3VhZ2UoKTogRWRpdG9yTGFuZ3VhZ2Uge1xuICAgIHJldHVybiB0aGlzLiRsYW5ndWFnZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzY2hlbWEodmFsdWU6IFNjaGVtYSkge1xuICAgIHRoaXMuJHNjaGVtYSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLiRsYW5ndWFnZSA9PT0gJ3NxbCcpIHtcbiAgICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBkb21haW5GaWx0ZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0b3JDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcml2YXRlICRlZGl0b3IhOiBFZGl0b3JWaWV3O1xuICBwcml2YXRlICRvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSAkb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgJHNjaGVtYTogU2NoZW1hID0ge307XG4gIHByaXZhdGUgJGxhbmd1YWdlOiBFZGl0b3JMYW5ndWFnZSA9IENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0U7XG4gIHByaXZhdGUgJGRpc2FibGVkID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4kZWRpdG9yID0gbmV3IEVkaXRvclZpZXcoe1xuICAgICAgZG9jOiB0aGlzLnNxbCxcbiAgICAgIHBhcmVudDogdGhpcy5lZGl0b3JDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIGV4dGVuc2lvbnM6IHRoaXMuYnVpbGRFeHRlbnNpb25zKClcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc3FsJ10gJiYgIWNoYW5nZXNbJ3NxbCddLmZpcnN0Q2hhbmdlICYmIHRoaXMuJGVkaXRvcikge1xuICAgICAgY29uc3QgbmV4dCA9IChjaGFuZ2VzWydzcWwnXS5jdXJyZW50VmFsdWUgPz8gJycpIGFzIHN0cmluZztcbiAgICAgIGlmIChuZXh0ICE9PSB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgdGhpcy4kZWRpdG9yLmRpc3BhdGNoKHsgY2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogbmV4dCB9IH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJGVkaXRvcj8uZGVzdHJveSgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuJGVkaXRvciAmJiB2YWx1ZSAhPT0gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpKSB7XG4gICAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSA/PyAnJyB9IH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWw6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuJG9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuJG9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4kZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICghdGhpcy4kZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGUgPSAhKGlzRGlzYWJsZWQgfHwgdGhpcy5fcmVhZE9ubHkpO1xuICAgIHRoaXMuJGVkaXRvci5jb250ZW50RE9NLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgU3RyaW5nKGVkaXRhYmxlKSk7XG4gICAgdGhpcy51cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk7XG4gIH1cblxuICBsYWJlbEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5sYWJlbCA9PT0gJ3N0cmluZycgPyB0aGlzLmxhYmVsIDogJyc7XG4gIH1cblxuICBnZXRTdHlsZU1hcCgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICBjb25zdCBzdHlsZTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiA9IHt9O1xuICAgIGlmICh0aGlzLndpZHRoICE9IG51bGwpIHtcbiAgICAgIHN0eWxlLndpZHRoID0gdHlwZW9mIHRoaXMud2lkdGggPT09ICdudW1iZXInID8gYCR7dGhpcy53aWR0aH1weGAgOiB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhlaWdodCAhPSBudWxsKSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSB0eXBlb2YgdGhpcy5oZWlnaHQgPT09ICdudW1iZXInID8gYCR7dGhpcy5oZWlnaHR9cHhgIDogdGhpcy5oZWlnaHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgcGlja0hlYWRlcihpdGVtOiBIZWFkZXJJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVIZWFkZXJLZXkgPSBpdGVtLmtleTtcbiAgICBpZiAoaXRlbS52YWx1ZSAhPT0gdGhpcy4kbGFuZ3VhZ2UpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2UgPSBpdGVtLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuaGVhZGVyU2VsZWN0LmVtaXQoeyBrZXk6IGl0ZW0ua2V5LCBsYW5nOiBpdGVtLnZhbHVlIH0pO1xuICB9XG5cbiAgYXN5bmMgY29weSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy4kZWRpdG9yID8gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpIDogdGhpcy5zcWwgfHwgJyc7XG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICB0aXRsZTogc3VjY2VzcyA/IENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19USVRMRV9LRVkgOiBDT0RFX0VESVRPUl9DT1BZX0VSUk9SX1RJVExFX0tFWSxcbiAgICAgIHRleHQ6IHN1Y2Nlc3MgPyBDT0RFX0VESVRPUl9DT1BZX1NVQ0NFU1NfTUVTU0FHRV9LRVkgOiBDT0RFX0VESVRPUl9DT1BZX0VSUk9SX01FU1NBR0VfS0VZLFxuICAgICAgc2V2ZXJpdHk6IHN1Y2Nlc3MgPyAnc3VjY2VzcycgOiAnZXJyb3InLFxuICAgICAgZHVyYXRpb246IDIwMDAsXG4gICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHRoaXMuY29waWVkLmVtaXQoc3VjY2Vzcyk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgY29uc3QgZWRpdGFibGUgPSAhKHRoaXMuX3JlYWRPbmx5IHx8IHRoaXMuJGRpc2FibGVkKTtcbiAgICBjb25zdCBndWFyZHMgPSBlZGl0YWJsZVxuICAgICAgPyBbXVxuICAgICAgOiBbXG4gICAgICAgICAgRWRpdG9yVmlldy5kb21FdmVudEhhbmRsZXJzKHtcbiAgICAgICAgICAgIGJlZm9yZWlucHV0OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBkcm9wOiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBwYXN0ZTogKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgICAgY3V0OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgIGNvbnN0IGJhc2U6IEV4dGVuc2lvbltdID0gW1xuICAgICAgYmFzaWNTZXR1cCxcbiAgICAgIGF5dUxpZ2h0LFxuICAgICAgRWRpdG9yVmlldy5lZGl0YWJsZS5vZihlZGl0YWJsZSksXG4gICAgICBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGUpID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZS5kb2NDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy4kb25DaGFuZ2UodXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICAuLi5ndWFyZHNcbiAgICBdO1xuICAgIHJldHVybiBbLi4uYmFzZSwgLi4udGhpcy5nZXRMYW5ndWFnZUV4dGVuc2lvbnMoKV07XG4gIH1cblxuICBwcml2YXRlIGdldExhbmd1YWdlRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgc3dpdGNoICh0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgY2FzZSAnc3FsJzpcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBzcWxVcHBlcmNhc2VIYW5kbGVyKCksXG4gICAgICAgICAgc3FsRm9ybWF0dGVySGFuZGxlcigpLFxuICAgICAgICAgIHNxbCh7IGRpYWxlY3Q6IFBvc3RncmVTUUwgfSksXG4gICAgICAgICAgc3FsRG9tYWluRmlsdGVyRGVjb3JhdG9yKCh0b2tlbikgPT4gdGhpcy5kb21haW5GaWx0ZXJDbGljay5lbWl0KHRva2VuKSksXG4gICAgICAgICAgYXV0b2NvbXBsZXRpb24oeyBvdmVycmlkZTogW2NyZWF0ZVNxbEF1dG9Db21wbGV0aW9uSGFkbGVyKHRoaXMuJHNjaGVtYSldIH0pXG4gICAgICAgIF07XG4gICAgICBjYXNlICd0eXBlc2NyaXB0JzpcbiAgICAgICAgcmV0dXJuIFtqYXZhc2NyaXB0KHsgdHlwZXNjcmlwdDogdHJ1ZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2phdmFzY3JpcHQnOlxuICAgICAgICByZXR1cm4gW2phdmFzY3JpcHQoeyB0eXBlc2NyaXB0OiBmYWxzZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICByZXR1cm4gW2pzb25MYW5nKCksIGF1dG9jb21wbGV0aW9uKCldO1xuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIHJldHVybiBbaHRtbExhbmcoKSwgYXV0b2NvbXBsZXRpb24oKV07XG4gICAgICBjYXNlICdwbGFpbnRleHQnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFthdXRvY29tcGxldGlvbigpXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiRlZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZih0aGlzLmJ1aWxkRXh0ZW5zaW9ucygpKSB9KTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JcIj5cbiAgQGlmIChsYWJlbEtleSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fbGFiZWwtcm93XCI+XG4gICAgICA8bGFiZWwgW2F0dHIuZm9yXT1cImVkaXRvcklkXCIgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2xhYmVsXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvZGUtZWRpdG9yX19sYWJlbC10ZXh0XCI+XG4gICAgICAgICAge3sgbGFiZWxLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucmVxdWlyZWRfZmllbGQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJlZGl0b3JJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY29kZV9lZGl0b3InIHwgdHJhbnNsYXRlIH19XG4gICAgPC9sYWJlbD5cbiAgfVxuICA8ZGl2XG4gICAgI2VkaXRvckNvbnRhaW5lclxuICAgIFthdHRyLmlkXT1cImVkaXRvcklkXCJcbiAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc3VyZmFjZVwiXG4gICAgW25nU3R5bGVdPVwiZ2V0U3R5bGVNYXAoKVwiXG4gICAgW2F0dHIuZGF0YS1lZGl0b3ItdHlwZV09XCJsYW5ndWFnZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgIGxhYmVsS2V5KClcbiAgICAgICAgPyAobGFiZWxLZXkoKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY29kZV9lZGl0b3InIHwgdHJhbnNsYXRlKVxuICAgIFwiXG4gICAgW2F0dHIuYXJpYS1tdWx0aWxpbmVdPVwidHJ1ZVwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1yZWFkb25seV09XCJyZWFkT25seVwiXG4gID48L2Rpdj5cblxuICBAaWYgKHNob3dDb3B5IHx8IGN1c3RvbUhlYWRlckl0ZW1zLmxlbmd0aCA+IDEpIHtcbiAgPGRpdiBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faGVhZGVyXCI+XG4gICAgQGlmIChjdXN0b21IZWFkZXJJdGVtcy5sZW5ndGggPiAxKSB7XG4gICAgPGZpZWxkc2V0IGNsYXNzPVwic2RjLWNvZGUtZWRpdG9yX19oZWFkZXItc2lkZSBzZGMtY29kZS1lZGl0b3JfX2hlYWRlci1zaWRlLS1sZWZ0XCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5sYW5ndWFnZV9zZWxlY3RvcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbGVnZW5kPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc2VnbWVudGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5sYW5ndWFnZV9zZWxlY3RvcicgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICBAZm9yIChpdCBvZiBjdXN0b21IZWFkZXJJdGVtczsgdHJhY2sgaXQudmFsdWUpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwic2RjLWNvZGUtZWRpdG9yX19zZWdtZW50ZWQtaXRlbVwiXG4gICAgICAgICAgW2F0dHIuaWRdPVwiJ2xhbmctJyArIChpdC5rZXkgfHwgaXQudmFsdWUpICsgJy0nICsgZWRpdG9ySWRcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtY29kZS1lZGl0b3JfX3NlZ21lbnRlZC1pdGVtLS1hY3RpdmVdPVwiaXQua2V5ID8gaXQua2V5ID09PSBhY3RpdmVIZWFkZXJLZXkgOiBpdC52YWx1ZSA9PT0gbGFuZ3VhZ2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtcHJlc3NlZF09XCJpdC5rZXkgPyBpdC5rZXkgPT09IGFjdGl2ZUhlYWRlcktleSA6IGl0LnZhbHVlID09PSBsYW5ndWFnZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICgncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5zZWxlY3RfbGFuZ3VhZ2UnIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgICArICc6ICdcbiAgICAgICAgICAgICAgKyAoaXQubGFiZWwgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoY2xpY2spPVwicGlja0hlYWRlcihpdClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXQubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUgc2RjLWNvZGUtZWRpdG9yX19oZWFkZXItc2lkZS0tcmlnaHRcIj5cbiAgICAgIEBpZiAoc2hvd0NvcHkpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2RjLWNvZGUtZWRpdG9yX19pY29uLWJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY29weV9jb2RlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJjb3B5KClcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jb3B5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5jb3B5X2NvZGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgfVxuPC9zZWN0aW9uPlxuIl19
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb2RlLWVkaXRvci9jb2RlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvZGUtZWRpdG9yL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLElBQUksUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFB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RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsbUJBQzNGLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7aUZBTzVCLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDVyxNQUFNO3NCQUF2QixNQUFNO3VCQUFDLFFBQVE7Z0JBR0gsUUFBUTtzQkFBcEIsS0FBSztnQkFTSSxjQUFjO3NCQUF2QixNQUFNO2dCQUVNLFFBQVE7c0JBQXBCLEtBQUs7Z0JBYU8sTUFBTTtzQkFBbEIsS0FBSztnQkFPSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBTUcsU0FBUztzQkFBbEIsTUFBTTtnQkFDeUMsZUFBZTtzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBFeHRlbnNpb24sIFByZWMsIFN0YXRlRWZmZWN0IH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgRWRpdG9yVmlldywga2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBiYXNpY1NldHVwIH0gZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyBodG1sIGFzIGh0bWxMYW5nIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcbmltcG9ydCB7IGpzb24gYXMganNvbkxhbmcgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBQb3N0Z3JlU1FMLCBzcWwgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLXNxbCc7XG5pbXBvcnQgeyBheXVMaWdodCB9IGZyb20gJ3RoZW1lbWlycm9yJztcblxuaW1wb3J0IHtcbiAgQ09ERV9FRElUT1JfQ09QWV9FUlJPUl9NRVNTQUdFX0tFWSxcbiAgQ09ERV9FRElUT1JfQ09QWV9FUlJPUl9USVRMRV9LRVksXG4gIENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19NRVNTQUdFX0tFWSxcbiAgQ09ERV9FRElUT1JfQ09QWV9TVUNDRVNTX1RJVExFX0tFWSxcbiAgQ09ERV9FRElUT1JfREVGQVVMVF9MQU5HVUFHRVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jb2RlLWVkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBzcWxEb21haW5GaWx0ZXJEZWNvcmF0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMvc3FsRG9tYWluRmlsdGVyJztcbmltcG9ydCB7IGNyZWF0ZVNxbEF1dG9Db21wbGV0aW9uSGFkbGVyLCBTY2hlbWEgfSBmcm9tICcuLi8uLi9jb3JlL2hhbmRsZXJzL3NxbEF1dG9Db21wbGV0ZSc7XG5pbXBvcnQgeyBzcWxGb3JtYXR0ZXJIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9oYW5kbGVycy9zcWxGb3JtYXR0ZXInO1xuaW1wb3J0IHsgc3FsVXBwZXJjYXNlSGFuZGxlciB9IGZyb20gJy4uLy4uL2NvcmUvaGFuZGxlcnMvc3FsVXBwZXJjYXNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IEVkaXRvckxhbmd1YWdlLCBIZWFkZXJJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9jb2RlLWVkaXRvci50eXBlJztcbmltcG9ydCB0eXBlIHsgU3RyaW5nQm9vbGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHsgbmV4dFNlcXVlbnRpYWxJZCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaWQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb2RlLWVkaXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvZGVFZGl0b3JDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcmVhZG9ubHkgZWRpdG9ySWQgPSBuZXh0U2VxdWVudGlhbElkKCdzZGMtY29kZS1lZGl0b3InKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSB0b2FzdDogVG9hc3RTZXJ2aWNlKSB7fVxuXG4gIEBJbnB1dCgpIHNxbCA9ICcnO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHNob3dDb3B5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsOiBTdHJpbmdCb29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgY3VzdG9tSGVhZGVySXRlbXM6IEhlYWRlckl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBhY3RpdmVIZWFkZXJLZXk/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBoZWFkZXJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHsga2V5Pzogc3RyaW5nOyBsYW5nOiBFZGl0b3JMYW5ndWFnZSB9PigpO1xuICBAT3V0cHV0KCdvbkNvcHknKSBjb3BpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBfcmVhZE9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IHJlYWRPbmx5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVhZE9ubHkgPSAhIXZhbHVlO1xuICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICB9XG5cbiAgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkT25seTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBsYW5ndWFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdG9yTGFuZ3VhZ2U+KCk7XG5cbiAgQElucHV0KCkgc2V0IGxhbmd1YWdlKHZhbHVlOiBFZGl0b3JMYW5ndWFnZSkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdmFsdWUgfHwgQ09ERV9FRElUT1JfREVGQVVMVF9MQU5HVUFHRTtcbiAgICBpZiAobGFuZ3VhZ2UgIT09IHRoaXMuJGxhbmd1YWdlKSB7XG4gICAgICB0aGlzLiRsYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgICAgdGhpcy51cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk7XG4gICAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlLmVtaXQodGhpcy4kbGFuZ3VhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsYW5ndWFnZSgpOiBFZGl0b3JMYW5ndWFnZSB7XG4gICAgcmV0dXJuIHRoaXMuJGxhbmd1YWdlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNjaGVtYSh2YWx1ZTogU2NoZW1hKSB7XG4gICAgdGhpcy4kc2NoZW1hID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuJGxhbmd1YWdlID09PSAnc3FsJykge1xuICAgICAgdGhpcy51cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIGRvbWFpbkZpbHRlckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIC8vIEN0cmwvQ21kK0VudGVyIGRlbnRybyBkbyBlZGl0b3IgLSBrZXltYXAgZG8gcHLDs3ByaW8gQ29kZU1pcnJvciAobsOjbyB1bSBsaXN0ZW5lciBBbmd1bGFyXG4gIC8vIG5vIGhvc3QpIHBvcnF1ZSBzw7MgYXNzaW0gZMOhIHByYSBpbnRlcmNlcHRhciBBTlRFUyBkbyBrZXltYXAgcGFkcsOjbyBkZSBcIkVudGVyXCIgKHF1ZSBpbnNlcmVcbiAgLy8gcXVlYnJhIGRlIGxpbmhhKSByb2Rhci4gVW0gKGtleWRvd24pIG5vIGhvc3QgZG8gY29tcG9uZW50ZSBzw7MgcmVhZ2UgZHVyYW50ZSBvIGJ1YmJsaW5nLFxuICAvLyBkZXBvaXMgcXVlIG8gQ29kZU1pcnJvciBqw6EgcHJvY2Vzc291IGEgdGVjbGEgbm8gcHLDs3ByaW8gZXN0YWRvIC0gdW0gcHJldmVudERlZmF1bHQoKSBhbGlcbiAgLy8gasOhIGNoZWdhIHRhcmRlIGRlbWFpcyBwcmEgZGVzZmF6ZXIgYSBxdWVicmEgZGUgbGluaGEuXG4gIEBPdXRwdXQoKSBjdHJsRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ2VkaXRvckNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIGVkaXRvckNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgJGVkaXRvciE6IEVkaXRvclZpZXc7XG4gIHByaXZhdGUgJG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlICRvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSAkc2NoZW1hOiBTY2hlbWEgPSB7fTtcbiAgcHJpdmF0ZSAkbGFuZ3VhZ2U6IEVkaXRvckxhbmd1YWdlID0gQ09ERV9FRElUT1JfREVGQVVMVF9MQU5HVUFHRTtcbiAgcHJpdmF0ZSAkZGlzYWJsZWQgPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiRlZGl0b3IgPSBuZXcgRWRpdG9yVmlldyh7XG4gICAgICBkb2M6IHRoaXMuc3FsLFxuICAgICAgcGFyZW50OiB0aGlzLmVkaXRvckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgZXh0ZW5zaW9uczogdGhpcy5idWlsZEV4dGVuc2lvbnMoKVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydzcWwnXSAmJiAhY2hhbmdlc1snc3FsJ10uZmlyc3RDaGFuZ2UgJiYgdGhpcy4kZWRpdG9yKSB7XG4gICAgICBjb25zdCBuZXh0ID0gKGNoYW5nZXNbJ3NxbCddLmN1cnJlbnRWYWx1ZSA/PyAnJykgYXMgc3RyaW5nO1xuICAgICAgaWYgKG5leHQgIT09IHRoaXMuJGVkaXRvci5zdGF0ZS5kb2MudG9TdHJpbmcoKSkge1xuICAgICAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiBuZXh0IH0gfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kZWRpdG9yPy5kZXN0cm95KCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4kZWRpdG9yICYmIHZhbHVlICE9PSB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKCkpIHtcbiAgICAgIHRoaXMuJGVkaXRvci5kaXNwYXRjaCh7IGNoYW5nZXM6IHsgZnJvbTogMCwgdG86IHRoaXMuJGVkaXRvci5zdGF0ZS5kb2MubGVuZ3RoLCBpbnNlcnQ6IHZhbHVlID8/ICcnIH0gfSk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbDogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4kb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4kb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiRkaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgaWYgKCF0aGlzLiRlZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0YWJsZSA9ICEoaXNEaXNhYmxlZCB8fCB0aGlzLl9yZWFkT25seSk7XG4gICAgdGhpcy4kZWRpdG9yLmNvbnRlbnRET00uc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCBTdHJpbmcoZWRpdGFibGUpKTtcbiAgICB0aGlzLnVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTtcbiAgfVxuXG4gIGxhYmVsS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmxhYmVsID09PSAnc3RyaW5nJyA/IHRoaXMubGFiZWwgOiAnJztcbiAgfVxuXG4gIGdldFN0eWxlTWFwKCk6IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj4ge1xuICAgIGNvbnN0IHN0eWxlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0ge307XG4gICAgaWYgKHRoaXMud2lkdGggIT0gbnVsbCkge1xuICAgICAgc3R5bGUud2lkdGggPSB0eXBlb2YgdGhpcy53aWR0aCA9PT0gJ251bWJlcicgPyBgJHt0aGlzLndpZHRofXB4YCA6IHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGVpZ2h0ICE9IG51bGwpIHtcbiAgICAgIHN0eWxlLmhlaWdodCA9IHR5cGVvZiB0aGlzLmhlaWdodCA9PT0gJ251bWJlcicgPyBgJHt0aGlzLmhlaWdodH1weGAgOiB0aGlzLmhlaWdodDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGU7XG4gIH1cblxuICBwaWNrSGVhZGVyKGl0ZW06IEhlYWRlckl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUhlYWRlcktleSA9IGl0ZW0ua2V5O1xuICAgIGlmIChpdGVtLnZhbHVlICE9PSB0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgdGhpcy5sYW5ndWFnZSA9IGl0ZW0udmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5oZWFkZXJTZWxlY3QuZW1pdCh7IGtleTogaXRlbS5rZXksIGxhbmc6IGl0ZW0udmFsdWUgfSk7XG4gIH1cblxuICBhc3luYyBjb3B5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLiRlZGl0b3IgPyB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKCkgOiB0aGlzLnNxbCB8fCAnJztcbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xuICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgIHRpdGxlOiBzdWNjZXNzID8gQ09ERV9FRElUT1JfQ09QWV9TVUNDRVNTX1RJVExFX0tFWSA6IENPREVfRURJVE9SX0NPUFlfRVJST1JfVElUTEVfS0VZLFxuICAgICAgdGV4dDogc3VjY2VzcyA/IENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19NRVNTQUdFX0tFWSA6IENPREVfRURJVE9SX0NPUFlfRVJST1JfTUVTU0FHRV9LRVksXG4gICAgICBzZXZlcml0eTogc3VjY2VzcyA/ICdzdWNjZXNzJyA6ICdlcnJvcicsXG4gICAgICBkdXJhdGlvbjogMjAwMCxcbiAgICAgIGNsb3NhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgdGhpcy5jb3BpZWQuZW1pdChzdWNjZXNzKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRFeHRlbnNpb25zKCk6IEV4dGVuc2lvbltdIHtcbiAgICBjb25zdCBlZGl0YWJsZSA9ICEodGhpcy5fcmVhZE9ubHkgfHwgdGhpcy4kZGlzYWJsZWQpO1xuICAgIGNvbnN0IGd1YXJkcyA9IGVkaXRhYmxlXG4gICAgICA/IFtdXG4gICAgICA6IFtcbiAgICAgICAgICBFZGl0b3JWaWV3LmRvbUV2ZW50SGFuZGxlcnMoe1xuICAgICAgICAgICAgYmVmb3JlaW5wdXQ6IChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgICAgIGRyb3A6IChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSxcbiAgICAgICAgICAgIHBhc3RlOiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBjdXQ6IChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIH0pXG4gICAgICAgIF07XG4gICAgY29uc3QgYmFzZTogRXh0ZW5zaW9uW10gPSBbXG4gICAgICBiYXNpY1NldHVwLFxuICAgICAgYXl1TGlnaHQsXG4gICAgICBFZGl0b3JWaWV3LmVkaXRhYmxlLm9mKGVkaXRhYmxlKSxcbiAgICAgIEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHVwZGF0ZSkgPT4ge1xuICAgICAgICBpZiAodXBkYXRlLmRvY0NoYW5nZWQpIHtcbiAgICAgICAgICB0aGlzLiRvbkNoYW5nZSh1cGRhdGUuc3RhdGUuZG9jLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIFByZWMuaGlnaGVzdChcbiAgICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdNb2QtRW50ZXInLFxuICAgICAgICAgICAgcHJldmVudERlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICBydW46ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jdHJsRW50ZXIuZW1pdCgpO1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0pXG4gICAgICApLFxuICAgICAgLi4uZ3VhcmRzXG4gICAgXTtcbiAgICByZXR1cm4gWy4uLmJhc2UsIC4uLnRoaXMuZ2V0TGFuZ3VhZ2VFeHRlbnNpb25zKCldO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYW5ndWFnZUV4dGVuc2lvbnMoKTogRXh0ZW5zaW9uW10ge1xuICAgIHN3aXRjaCAodGhpcy4kbGFuZ3VhZ2UpIHtcbiAgICAgIGNhc2UgJ3NxbCc6XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgc3FsVXBwZXJjYXNlSGFuZGxlcigpLFxuICAgICAgICAgIHNxbEZvcm1hdHRlckhhbmRsZXIoKSxcbiAgICAgICAgICBzcWwoeyBkaWFsZWN0OiBQb3N0Z3JlU1FMIH0pLFxuICAgICAgICAgIHNxbERvbWFpbkZpbHRlckRlY29yYXRvcigodG9rZW4pID0+IHRoaXMuZG9tYWluRmlsdGVyQ2xpY2suZW1pdCh0b2tlbikpLFxuICAgICAgICAgIGF1dG9jb21wbGV0aW9uKHsgb3ZlcnJpZGU6IFtjcmVhdGVTcWxBdXRvQ29tcGxldGlvbkhhZGxlcih0aGlzLiRzY2hlbWEpXSB9KVxuICAgICAgICBdO1xuICAgICAgY2FzZSAndHlwZXNjcmlwdCc6XG4gICAgICAgIHJldHVybiBbamF2YXNjcmlwdCh7IHR5cGVzY3JpcHQ6IHRydWUsIGpzeDogdHJ1ZSB9KSwgYXV0b2NvbXBsZXRpb24oKV07XG4gICAgICBjYXNlICdqYXZhc2NyaXB0JzpcbiAgICAgICAgcmV0dXJuIFtqYXZhc2NyaXB0KHsgdHlwZXNjcmlwdDogZmFsc2UsIGpzeDogdHJ1ZSB9KSwgYXV0b2NvbXBsZXRpb24oKV07XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgcmV0dXJuIFtqc29uTGFuZygpLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgICByZXR1cm4gW2h0bWxMYW5nKCksIGF1dG9jb21wbGV0aW9uKCldO1xuICAgICAgY2FzZSAncGxhaW50ZXh0JzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBbYXV0b2NvbXBsZXRpb24oKV07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4kZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy4kZWRpdG9yLmRpc3BhdGNoKHsgZWZmZWN0czogU3RhdGVFZmZlY3QucmVjb25maWd1cmUub2YodGhpcy5idWlsZEV4dGVuc2lvbnMoKSkgfSk7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwic2RjLWNvZGUtZWRpdG9yXCI+XG4gIEBpZiAobGFiZWxLZXkoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2xhYmVsLXJvd1wiPlxuICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJlZGl0b3JJZFwiIGNsYXNzPVwic2RjLWNvZGUtZWRpdG9yX19sYWJlbFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fbGFiZWwtdGV4dFwiPlxuICAgICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X3JlcXVpcmVkX2ZpZWxkJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZWRpdG9ySWRcIiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgIHt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X2NvZGVfZWRpdG9yJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbGFiZWw+XG4gIH1cbiAgPGRpdlxuICAgICNlZGl0b3JDb250YWluZXJcbiAgICBbYXR0ci5pZF09XCJlZGl0b3JJZFwiXG4gICAgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX3N1cmZhY2VcIlxuICAgIFtuZ1N0eWxlXT1cImdldFN0eWxlTWFwKClcIlxuICAgIFthdHRyLmRhdGEtZWRpdG9yLXR5cGVdPVwibGFuZ3VhZ2VcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICBsYWJlbEtleSgpXG4gICAgICAgID8gKGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X2NvZGVfZWRpdG9yJyB8IHRyYW5zbGF0ZSlcbiAgICBcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlsaW5lXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZE9ubHlcIlxuICA+PC9kaXY+XG5cbiAgQGlmIChzaG93Q29weSB8fCBjdXN0b21IZWFkZXJJdGVtcy5sZW5ndGggPiAxKSB7XG4gIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2hlYWRlclwiPlxuICAgIEBpZiAoY3VzdG9tSGVhZGVySXRlbXMubGVuZ3RoID4gMSkge1xuICAgIDxmaWVsZHNldCBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUgc2RjLWNvZGUtZWRpdG9yX19oZWFkZXItc2lkZS0tbGVmdFwiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfbGFuZ3VhZ2Vfc2VsZWN0b3InIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX3NlZ21lbnRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfbGFuZ3VhZ2Vfc2VsZWN0b3InIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgQGZvciAoaXQgb2YgY3VzdG9tSGVhZGVySXRlbXM7IHRyYWNrIGl0LnZhbHVlKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc2VnbWVudGVkLWl0ZW1cIlxuICAgICAgICAgIFthdHRyLmlkXT1cIidsYW5nLScgKyAoaXQua2V5IHx8IGl0LnZhbHVlKSArICctJyArIGVkaXRvcklkXCJcbiAgICAgICAgICBbY2xhc3Muc2RjLWNvZGUtZWRpdG9yX19zZWdtZW50ZWQtaXRlbS0tYWN0aXZlXT1cIml0LmtleSA/IGl0LmtleSA9PT0gYWN0aXZlSGVhZGVyS2V5IDogaXQudmFsdWUgPT09IGxhbmd1YWdlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXQua2V5ID8gaXQua2V5ID09PSBhY3RpdmVIZWFkZXJLZXkgOiBpdC52YWx1ZSA9PT0gbGFuZ3VhZ2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfc2VsZWN0X2xhbmd1YWdlJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnOiAnXG4gICAgICAgICAgICAgICsgKGl0LmxhYmVsIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgKGNsaWNrKT1cInBpY2tIZWFkZXIoaXQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2hlYWRlci1zaWRlIHNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUtLXJpZ2h0XCI+XG4gICAgICBAaWYgKHNob3dDb3B5KSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faWNvbi1idXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X2NvcHlfY29kZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAoY2xpY2spPVwiY29weSgpXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY29weVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfY29weV9jb2RlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIH1cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -121,7 +121,7 @@ export class ColorPickerComponent extends InputsComponent {
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 @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", "allowHtml"] }], 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", "allowHtml"] }], 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 @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"] }]
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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SyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0ExSVUsb0JBQW9COzRGQUFwQixvQkFBb0IseUxBVnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLG1LQ25ESCx1dUdBK0ZBLDZ4SERyRFksWUFBWSxpTkFBRSxXQUFXLDhCQUFFLGVBQWUsNEZBQUUsZ0JBQWdCOzs0RkFhM0Qsb0JBQW9CO2tCQWhCaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsYUFHNUQ7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3dEQVFoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRXVCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBDT0xPUl9QSUNLRVJfQUNDRVNTSUJMRV9MQUJFTF9LRVksXG4gIENPTE9SX1BJQ0tFUl9ERUZBVUxUX0NPTE9SLFxuICBDT0xPUl9QSUNLRVJfREVGQVVMVF9QTEFDRUhPTERFUixcbiAgQ09MT1JfUElDS0VSX1RSSUdHRVJfTEFCRUxfS0VZXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL2NvbG9yLXBpY2tlci5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IENvbG9yUGlja2VyVmFsdWUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2NvbG9yLXBpY2tlci50eXBlJztcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZUNvbG9yUGlja2VyVmFsdWUsXG4gIHJlc29sdmVDb2xvclBpY2tlclByZXZpZXdDb2xvcixcbiAgc2FuaXRpemVDb2xvclBpY2tlcklucHV0XG59IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvY29sb3ItcGlja2VyLnV0aWwnO1xuaW1wb3J0IHsgSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kaXJlY3RpdmVzL2lucHV0cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbnR5cGUgTmF0aXZlQ29sb3JJbnB1dEVsZW1lbnQgPSBIVE1MSW5wdXRFbGVtZW50ICYge1xuICBzaG93UGlja2VyPzogKCkgPT4gdm9pZDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb2xvci1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbG9yUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBJbnB1dHNDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1jb2xvci1waWNrZXInKTtcblxuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwRXZlbnQ6IFRvb2x0aXBFdmVudCA9ICdib3RoJztcblxuICBAVmlld0NoaWxkKCduYXRpdmVJbnB1dFJlZicpIG5hdGl2ZUlucHV0UmVmPzogRWxlbWVudFJlZjxOYXRpdmVDb2xvcklucHV0RWxlbWVudD47XG5cbiAgZGlzcGxheVZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IENvbG9yUGlja2VyVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbm9ybWFsaXplQ29sb3JQaWNrZXJWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBnZXQgY29udHJvbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHkuaWQgPz8gdGhpcy5nZW5lcmF0ZWRJZDtcbiAgfVxuXG4gIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaW5mb1Rvb2x0aXA7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyXG4gICAgICA/IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnBsYWNlaG9sZGVyKVxuICAgICAgOiBDT0xPUl9QSUNLRVJfREVGQVVMVF9QTEFDRUhPTERFUjtcbiAgfVxuXG4gIGdldCByZXNvbHZlZEFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmxhYmVsS2V5KCkpIHtcbiAgICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5sYWJlbEtleSgpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIENPTE9SX1BJQ0tFUl9BQ0NFU1NJQkxFX0xBQkVMX0tFWSk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCBDT0xPUl9QSUNLRVJfVFJJR0dFUl9MQUJFTF9LRVkpO1xuICB9XG5cbiAgZ2V0IHByZXZpZXdDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlQ29sb3JQaWNrZXJQcmV2aWV3Q29sb3IodGhpcy5kaXNwbGF5VmFsdWUsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUNvbG9yVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9ybWFsaXplQ29sb3JQaWNrZXJWYWx1ZSh0aGlzLnZhbHVlKSA/PyBDT0xPUl9QSUNLRVJfREVGQVVMVF9DT0xPUjtcbiAgfVxuXG4gIG9uVGV4dElucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkID0gc2FuaXRpemVDb2xvclBpY2tlcklucHV0KHRhcmdldC52YWx1ZSk7XG5cbiAgICBpZiAoc2FuaXRpemVkICE9PSB0YXJnZXQudmFsdWUpIHtcbiAgICAgIHRhcmdldC52YWx1ZSA9IHNhbml0aXplZDtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHNhbml0aXplZDtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvclBpY2tlclZhbHVlKHNhbml0aXplZCk7XG5cbiAgICBpZiAobm9ybWFsaXplZCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShub3JtYWxpemVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXNhbml0aXplZCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25OYXRpdmVDb2xvcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCk/LnZhbHVlID8/ICcnO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvclBpY2tlclZhbHVlKHZhbHVlKSA/PyBDT0xPUl9QSUNLRVJfREVGQVVMVF9DT0xPUjtcblxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gbm9ybWFsaXplZDtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKG5vcm1hbGl6ZWQpO1xuICB9XG5cbiAgb3Blbk5hdGl2ZVBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5hdGl2ZUlucHV0ID0gdGhpcy5uYXRpdmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghbmF0aXZlSW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuYXRpdmVJbnB1dC52YWx1ZSA9IHRoaXMubmF0aXZlQ29sb3JWYWx1ZTtcblxuICAgIGlmICh0eXBlb2YgbmF0aXZlSW5wdXQuc2hvd1BpY2tlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbmF0aXZlSW5wdXQuc2hvd1BpY2tlcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5hdGl2ZUlucHV0LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlID8/ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlclwiPlxuICBAaWYgKGxhYmVsS2V5KCkgfHwgaGFzVG9vbHRpcCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19sYWJlbC1yb3dcIj5cbiAgICAgIEBpZiAobGFiZWxLZXkoKSkge1xuICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb250cm9sSWRcIiBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2xhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19sYWJlbC10ZXh0XCI+XG4gICAgICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIH1cbiAgICAgIEBpZiAoaGFzVG9vbHRpcCkge1xuICAgICAgICA8c2RjLXRvb2x0aXBcbiAgICAgICAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2luZm8tdG9vbHRpcC13cmFwXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiaW5mb1Rvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiaW5mb1Rvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBFdmVudF09XCJpbmZvVG9vbHRpcEV2ZW50XCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZSBzZGMtY29sb3ItcGlja2VyX19pbmZvLXRvb2x0aXAtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9zZGMtdG9vbHRpcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2xcIlxuICAgIFtuZ1N0eWxlXT1cImdldElucHV0U3R5bGUoKVwiXG4gICAgW2NsYXNzLnNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2wtLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW2NsYXNzLnNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2wtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2lucHV0XCJcbiAgICAgIFtpZF09XCJjb250cm9sSWRcIlxuICAgICAgW25hbWVdPVwiaWRlbnRpdHkubmFtZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUGxhY2Vob2xkZXJcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZEFyaWFMYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtZXNzYWdlS2V5KCkgPyBjb250cm9sSWQgKyAnLWVycm9yJyA6IG51bGxcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZENsYXNzKClcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaW5wdXRtb2RlPVwidGV4dFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgIChpbnB1dCk9XCJvblRleHRJbnB1dCgkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIC8+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlcl9fdHJpZ2dlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5OYXRpdmVQaWNrZXIoKVwiXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19zd2F0Y2hcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwcmV2aWV3Q29sb3JcIj48L3NwYW4+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWV5ZS1kcm9wcGVyIHNkYy1jb2xvci1waWNrZXJfX3RyaWdnZXItaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiY29udHJvbElkICsgJy1uYXRpdmUnXCIgY2xhc3M9XCJzci1vbmx5XCI+e3sgcmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsIH19PC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjbmF0aXZlSW5wdXRSZWZcbiAgICAgICAgY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19uYXRpdmVcIlxuICAgICAgICBbaWRdPVwiY29udHJvbElkICsgJy1uYXRpdmUnXCJcbiAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIFt2YWx1ZV09XCJuYXRpdmVDb2xvclZhbHVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFRyaWdnZXJBcmlhTGFiZWxcIlxuICAgICAgICAoaW5wdXQpPVwib25OYXRpdmVDb2xvcklucHV0KCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobWVzc2FnZUtleSgpKSB7XG4gICAgICAgIDxzbWFsbFxuICAgICAgICAgIFtpZF09XCJjb250cm9sSWQgKyAnLWVycm9yJ1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICAgICAgICByb2xlPVwiYWxlcnRcIlxuICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NtYWxsPlxuICAgICAgfVxuICAgIDwvZGl2PlxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLDBCQUEwQixFQUMxQixnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQy9CLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDOUIsd0JBQXdCLEVBQ3pCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FB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SyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0ExSVUsb0JBQW9COzRGQUFwQixvQkFBb0IseUxBVnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLG1LQ25ESCx1dUdBK0ZBLDZ4SERyRFksWUFBWSxpTkFBRSxXQUFXLDhCQUFFLGVBQWUsNEZBQUUsZ0JBQWdCOzs0RkFhM0Qsb0JBQW9CO2tCQWhCaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsYUFHNUQ7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3dEQVFoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRXVCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBDT0xPUl9QSUNLRVJfQUNDRVNTSUJMRV9MQUJFTF9LRVksXG4gIENPTE9SX1BJQ0tFUl9ERUZBVUxUX0NPTE9SLFxuICBDT0xPUl9QSUNLRVJfREVGQVVMVF9QTEFDRUhPTERFUixcbiAgQ09MT1JfUElDS0VSX1RSSUdHRVJfTEFCRUxfS0VZXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL2NvbG9yLXBpY2tlci5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IENvbG9yUGlja2VyVmFsdWUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2NvbG9yLXBpY2tlci50eXBlJztcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZUNvbG9yUGlja2VyVmFsdWUsXG4gIHJlc29sdmVDb2xvclBpY2tlclByZXZpZXdDb2xvcixcbiAgc2FuaXRpemVDb2xvclBpY2tlcklucHV0XG59IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvY29sb3ItcGlja2VyLnV0aWwnO1xuaW1wb3J0IHsgSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kaXJlY3RpdmVzL2lucHV0cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbnR5cGUgTmF0aXZlQ29sb3JJbnB1dEVsZW1lbnQgPSBIVE1MSW5wdXRFbGVtZW50ICYge1xuICBzaG93UGlja2VyPzogKCkgPT4gdm9pZDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb2xvci1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbG9yUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBJbnB1dHNDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1jb2xvci1waWNrZXInKTtcblxuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwRXZlbnQ6IFRvb2x0aXBFdmVudCA9ICdib3RoJztcblxuICBAVmlld0NoaWxkKCduYXRpdmVJbnB1dFJlZicpIG5hdGl2ZUlucHV0UmVmPzogRWxlbWVudFJlZjxOYXRpdmVDb2xvcklucHV0RWxlbWVudD47XG5cbiAgZGlzcGxheVZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IENvbG9yUGlja2VyVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbm9ybWFsaXplQ29sb3JQaWNrZXJWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBnZXQgY29udHJvbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHkuaWQgPz8gdGhpcy5nZW5lcmF0ZWRJZDtcbiAgfVxuXG4gIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaW5mb1Rvb2x0aXA7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyXG4gICAgICA/IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnBsYWNlaG9sZGVyKVxuICAgICAgOiBDT0xPUl9QSUNLRVJfREVGQVVMVF9QTEFDRUhPTERFUjtcbiAgfVxuXG4gIGdldCByZXNvbHZlZEFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmxhYmVsS2V5KCkpIHtcbiAgICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5sYWJlbEtleSgpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIENPTE9SX1BJQ0tFUl9BQ0NFU1NJQkxFX0xBQkVMX0tFWSk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCBDT0xPUl9QSUNLRVJfVFJJR0dFUl9MQUJFTF9LRVkpO1xuICB9XG5cbiAgZ2V0IHByZXZpZXdDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlQ29sb3JQaWNrZXJQcmV2aWV3Q29sb3IodGhpcy5kaXNwbGF5VmFsdWUsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUNvbG9yVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9ybWFsaXplQ29sb3JQaWNrZXJWYWx1ZSh0aGlzLnZhbHVlKSA/PyBDT0xPUl9QSUNLRVJfREVGQVVMVF9DT0xPUjtcbiAgfVxuXG4gIG9uVGV4dElucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkID0gc2FuaXRpemVDb2xvclBpY2tlcklucHV0KHRhcmdldC52YWx1ZSk7XG5cbiAgICBpZiAoc2FuaXRpemVkICE9PSB0YXJnZXQudmFsdWUpIHtcbiAgICAgIHRhcmdldC52YWx1ZSA9IHNhbml0aXplZDtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHNhbml0aXplZDtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvclBpY2tlclZhbHVlKHNhbml0aXplZCk7XG5cbiAgICBpZiAobm9ybWFsaXplZCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShub3JtYWxpemVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXNhbml0aXplZCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25OYXRpdmVDb2xvcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCk/LnZhbHVlID8/ICcnO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb2xvclBpY2tlclZhbHVlKHZhbHVlKSA/PyBDT0xPUl9QSUNLRVJfREVGQVVMVF9DT0xPUjtcblxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gbm9ybWFsaXplZDtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKG5vcm1hbGl6ZWQpO1xuICB9XG5cbiAgb3Blbk5hdGl2ZVBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5hdGl2ZUlucHV0ID0gdGhpcy5uYXRpdmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghbmF0aXZlSW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuYXRpdmVJbnB1dC52YWx1ZSA9IHRoaXMubmF0aXZlQ29sb3JWYWx1ZTtcblxuICAgIGlmICh0eXBlb2YgbmF0aXZlSW5wdXQuc2hvd1BpY2tlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbmF0aXZlSW5wdXQuc2hvd1BpY2tlcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5hdGl2ZUlucHV0LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlID8/ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlclwiPlxuICBAaWYgKGxhYmVsS2V5KCkgfHwgaGFzVG9vbHRpcCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19sYWJlbC1yb3dcIj5cbiAgICAgIEBpZiAobGFiZWxLZXkoKSkge1xuICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb250cm9sSWRcIiBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2xhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19sYWJlbC10ZXh0XCI+XG4gICAgICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eV9yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIH1cbiAgICAgIEBpZiAoaGFzVG9vbHRpcCkge1xuICAgICAgICA8c2RjLXRvb2x0aXBcbiAgICAgICAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2luZm8tdG9vbHRpcC13cmFwXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiaW5mb1Rvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiaW5mb1Rvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBFdmVudF09XCJpbmZvVG9vbHRpcEV2ZW50XCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZSBzZGMtY29sb3ItcGlja2VyX19pbmZvLXRvb2x0aXAtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9zZGMtdG9vbHRpcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2xcIlxuICAgIFtuZ1N0eWxlXT1cImdldElucHV0U3R5bGUoKVwiXG4gICAgW2NsYXNzLnNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2wtLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW2NsYXNzLnNkYy1jb2xvci1waWNrZXJfX2NvbnRyb2wtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cInNkYy1jb2xvci1waWNrZXJfX2lucHV0XCJcbiAgICAgIFtpZF09XCJjb250cm9sSWRcIlxuICAgICAgW25hbWVdPVwiaWRlbnRpdHkubmFtZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUGxhY2Vob2xkZXJcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZEFyaWFMYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtZXNzYWdlS2V5KCkgPyBjb250cm9sSWQgKyAnLWVycm9yJyA6IG51bGxcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZENsYXNzKClcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaW5wdXRtb2RlPVwidGV4dFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgIChpbnB1dCk9XCJvblRleHRJbnB1dCgkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIC8+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2RjLWNvbG9yLXBpY2tlcl9fdHJpZ2dlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5OYXRpdmVQaWNrZXIoKVwiXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19zd2F0Y2hcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwcmV2aWV3Q29sb3JcIj48L3NwYW4+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWV5ZS1kcm9wcGVyIHNkYy1jb2xvci1waWNrZXJfX3RyaWdnZXItaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiY29udHJvbElkICsgJy1uYXRpdmUnXCIgY2xhc3M9XCJzci1vbmx5XCI+e3sgcmVzb2x2ZWRUcmlnZ2VyQXJpYUxhYmVsIH19PC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjbmF0aXZlSW5wdXRSZWZcbiAgICAgICAgY2xhc3M9XCJzZGMtY29sb3ItcGlja2VyX19uYXRpdmVcIlxuICAgICAgICBbaWRdPVwiY29udHJvbElkICsgJy1uYXRpdmUnXCJcbiAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIFt2YWx1ZV09XCJuYXRpdmVDb2xvclZhbHVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFRyaWdnZXJBcmlhTGFiZWxcIlxuICAgICAgICAoaW5wdXQpPVwib25OYXRpdmVDb2xvcklucHV0KCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobWVzc2FnZUtleSgpKSB7XG4gICAgICAgIDxzbWFsbFxuICAgICAgICAgIFtpZF09XCJjb250cm9sSWQgKyAnLWVycm9yJ1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICAgICAgICByb2xlPVwiYWxlcnRcIlxuICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NtYWxsPlxuICAgICAgfVxuICAgIDwvZGl2PlxuIl19