@seniorsistemas/data-seniorx-core 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/constants/editable-overlay.const.d.ts +4 -0
- package/core/constants/help-popover.const.d.ts +7 -0
- package/core/constants/input-mask.const.d.ts +5 -0
- package/core/constants/navigation-button.const.d.ts +3 -0
- package/core/constants/object-card.const.d.ts +21 -0
- package/core/constants/thumbnail.const.d.ts +6 -0
- package/core/constants/thumbnails.const.d.ts +4 -0
- package/core/constants/token-list.const.d.ts +3 -0
- package/core/types/button.type.d.ts +1 -1
- package/core/types/datepicker.type.d.ts +28 -0
- package/core/types/dynamic-form.type.d.ts +29 -0
- package/core/types/editable-overlay.type.d.ts +15 -0
- package/core/types/help-popover.type.d.ts +2 -0
- package/core/types/input-mask.type.d.ts +6 -0
- package/core/types/lookup.type.d.ts +45 -0
- package/core/types/navigation-button.type.d.ts +9 -0
- package/core/types/row-card.type.d.ts +5 -0
- package/core/types/semantics.type.d.ts +1 -1
- package/core/types/table-options.type.d.ts +1 -0
- package/core/types/thumbnail.type.d.ts +1 -0
- package/core/types/thumbnails.type.d.ts +20 -0
- package/core/types/token-list.type.d.ts +6 -0
- package/core/utils/emoji-support.util.d.ts +12 -0
- package/core/utils/overlay-dismiss.util.d.ts +25 -0
- package/esm2022/core/config/row-card.type.config.mjs +3 -1
- package/esm2022/core/constants/country-phone-picker.const.mjs +6 -6
- package/esm2022/core/constants/editable-overlay.const.mjs +5 -0
- package/esm2022/core/constants/help-popover.const.mjs +7 -0
- package/esm2022/core/constants/input-mask.const.mjs +6 -0
- package/esm2022/core/constants/navigation-button.const.mjs +4 -0
- package/esm2022/core/constants/object-card.const.mjs +23 -0
- package/esm2022/core/constants/thumbnail.const.mjs +14 -0
- package/esm2022/core/constants/thumbnails.const.mjs +5 -0
- package/esm2022/core/constants/token-list.const.mjs +4 -0
- package/esm2022/core/types/button.type.mjs +1 -1
- package/esm2022/core/types/datepicker.type.mjs +2 -0
- package/esm2022/core/types/dynamic-form.type.mjs +2 -0
- package/esm2022/core/types/editable-overlay.type.mjs +2 -0
- package/esm2022/core/types/help-popover.type.mjs +2 -0
- package/esm2022/core/types/input-mask.type.mjs +2 -0
- package/esm2022/core/types/lookup.type.mjs +2 -0
- package/esm2022/core/types/navigation-button.type.mjs +2 -0
- package/esm2022/core/types/row-card.type.mjs +1 -1
- package/esm2022/core/types/semantics.type.mjs +1 -1
- package/esm2022/core/types/table-options.type.mjs +1 -1
- package/esm2022/core/types/thumbnail.type.mjs +2 -0
- package/esm2022/core/types/thumbnails.type.mjs +2 -0
- package/esm2022/core/types/token-list.type.mjs +2 -0
- package/esm2022/core/utils/emoji-support.util.mjs +48 -0
- package/esm2022/core/utils/mask.util.mjs +2 -2
- package/esm2022/core/utils/overlay-dismiss.util.mjs +38 -0
- package/esm2022/features/alert/alert.component.mjs +5 -2
- package/esm2022/features/autocomplete/autocomplete.component.mjs +30 -8
- package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
- package/esm2022/features/button/button.component.mjs +13 -5
- package/esm2022/features/card-list/card/card.component.mjs +2 -2
- package/esm2022/features/card-list/card-list.component.mjs +2 -2
- package/esm2022/features/checkbox-list/checkbox-list.component.mjs +25 -5
- package/esm2022/features/chips/chips.component.mjs +3 -3
- package/esm2022/features/code-editor/code-editor.component.mjs +12 -3
- package/esm2022/features/combobox/combobox.component.mjs +3 -3
- package/esm2022/features/confirm/confirm.component.mjs +2 -2
- package/esm2022/features/context-selector/context-selector.component.mjs +1 -1
- package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +22 -18
- package/esm2022/features/currency/currency.component.mjs +3 -3
- package/esm2022/features/datepicker/datepicker.component.mjs +814 -0
- package/esm2022/features/dynamic-form/dynamic-form-field.directive.mjs +178 -0
- package/esm2022/features/dynamic-form/dynamic-form.component.mjs +60 -0
- package/esm2022/features/dynamic-form/dynamic-form.registry.mjs +13 -0
- package/esm2022/features/editable-overlay/editable-overlay-editor.directive.mjs +31 -0
- package/esm2022/features/editable-overlay/editable-overlay.component.mjs +217 -0
- package/esm2022/features/editor/editor.component.mjs +173 -0
- package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
- package/esm2022/features/fileupload/fileupload.component.mjs +3 -3
- package/esm2022/features/help-popover/help-popover.component.mjs +204 -0
- package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
- package/esm2022/features/icon-picker/icon-picker.component.mjs +4 -4
- package/esm2022/features/image-cropper/image-cropper.component.mjs +2 -2
- package/esm2022/features/info-sign/info-sign.component.mjs +6 -3
- package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
- package/esm2022/features/input-mask/input-mask.directive.mjs +510 -0
- package/esm2022/features/list/list.component.mjs +2 -2
- package/esm2022/features/localized-number-input/localized-number-input.component.mjs +3 -3
- package/esm2022/features/lookup/lookup.component.mjs +351 -0
- package/esm2022/features/modal/modal.component.mjs +6 -3
- package/esm2022/features/modalc/modalc.component.mjs +6 -3
- package/esm2022/features/navigation-button/navigation-button.component.mjs +172 -0
- package/esm2022/features/number-input/number-input.component.mjs +10 -4
- package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +89 -0
- package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +114 -0
- package/esm2022/features/object-card/object-card.component.mjs +199 -0
- package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
- package/esm2022/features/pin-code-field/pin-code-field.component.mjs +14 -4
- package/esm2022/features/popover/popover.component.mjs +29 -3
- package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +13 -4
- package/esm2022/features/rating-scale/rating-scale.component.mjs +24 -4
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +19 -4
- package/esm2022/features/row-card-list/row-card-list.component.mjs +12 -3
- package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +2 -2
- package/esm2022/features/select-button/select-button.component.mjs +26 -4
- package/esm2022/features/slider/slider.component.mjs +3 -3
- package/esm2022/features/split-button/split-button.component.mjs +1 -1
- package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +15 -18
- package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
- package/esm2022/features/star-rating/star-rating.component.mjs +25 -4
- package/esm2022/features/table/components/table-cell-content.component.mjs +2 -2
- package/esm2022/features/table/table.component.mjs +30 -9
- package/esm2022/features/textarea/textarea.component.mjs +3 -3
- package/esm2022/features/thumbnail/thumbnail.component.mjs +86 -0
- package/esm2022/features/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +59 -0
- package/esm2022/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.mjs +25 -0
- package/esm2022/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.mjs +50 -0
- package/esm2022/features/thumbnails/thumbnails.component.mjs +76 -0
- package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +13 -1
- package/esm2022/features/token-list/token-list.component.mjs +64 -0
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
- package/esm2022/locales/en.json +409 -1
- package/esm2022/locales/es-CO.json +423 -2
- package/esm2022/locales/pt.json +1037 -630
- package/esm2022/providers/features.provider.mjs +20 -2
- package/esm2022/providers/primeng-config.provider.mjs +14 -128
- package/esm2022/providers/translate.provider.mjs +2 -2
- package/esm2022/public-api.mjs +31 -1
- package/features/alert/alert.component.d.ts +1 -0
- package/features/autocomplete/autocomplete.component.d.ts +9 -3
- package/features/button/button.component.d.ts +3 -1
- package/features/checkbox-list/checkbox-list.component.d.ts +8 -1
- package/features/code-editor/code-editor.component.d.ts +5 -1
- package/features/country-phone-picker/country-phone-picker.component.d.ts +3 -0
- package/features/datepicker/datepicker.component.d.ts +118 -0
- package/features/dynamic-form/dynamic-form-field.directive.d.ts +26 -0
- package/features/dynamic-form/dynamic-form.component.d.ts +15 -0
- package/features/dynamic-form/dynamic-form.registry.d.ts +11 -0
- package/features/editable-overlay/editable-overlay-editor.directive.d.ts +22 -0
- package/features/editable-overlay/editable-overlay.component.d.ts +60 -0
- package/features/editor/editor.component.d.ts +47 -0
- package/features/help-popover/help-popover.component.d.ts +81 -0
- package/features/info-sign/info-sign.component.d.ts +2 -1
- package/features/input-mask/input-mask.directive.d.ts +117 -0
- package/features/lookup/lookup.component.d.ts +104 -0
- package/features/modal/modal.component.d.ts +2 -1
- package/features/modalc/modalc.component.d.ts +2 -1
- package/features/navigation-button/navigation-button.component.d.ts +58 -0
- package/features/number-input/number-input.component.d.ts +3 -1
- package/features/object-card/components/object-card-field/object-card-field.component.d.ts +48 -0
- package/features/object-card/components/object-card-main/object-card-main.component.d.ts +57 -0
- package/features/object-card/object-card.component.d.ts +70 -0
- package/features/pin-code-field/pin-code-field.component.d.ts +6 -1
- package/features/popover/popover.component.d.ts +4 -1
- package/features/profile-picture-picker/profile-picture-picker.component.d.ts +5 -1
- package/features/rating-scale/rating-scale.component.d.ts +9 -1
- package/features/row-card-list/row-card/row-card.component.d.ts +6 -1
- package/features/row-card-list/row-card-list.component.d.ts +4 -1
- package/features/select-button/select-button.component.d.ts +9 -1
- package/features/star-rating/star-rating.component.d.ts +9 -1
- package/features/table/table.component.d.ts +2 -1
- package/features/thumbnail/thumbnail.component.d.ts +48 -0
- package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +29 -0
- package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +13 -0
- package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +19 -0
- package/features/thumbnails/thumbnails.component.d.ts +46 -0
- package/features/tiered-menu/directives/tiered-menu.directive.d.ts +2 -0
- package/features/token-list/token-list.component.d.ts +31 -0
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +11288 -6613
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +12 -3
- package/providers/primeng-config.provider.d.ts +12 -0
- package/public-api.d.ts +38 -0
- package/src/locales/en.json +409 -1
- package/src/locales/es-CO.json +423 -2
- package/src/locales/pt.json +1037 -630
- package/styles/sdc-global-variables.scss +38 -0
- package/styles.css +132 -0
- package/styles.scss +2 -0
- package/esm2022/providers/custom/button.mjs +0 -93
- package/esm2022/providers/custom/toast.mjs +0 -75
- package/providers/custom/button.d.ts +0 -16
- package/providers/custom/toast.d.ts +0 -14
|
@@ -31,6 +31,8 @@ export class CodeEditorComponent {
|
|
|
31
31
|
height = null;
|
|
32
32
|
width = null;
|
|
33
33
|
showCopy = false;
|
|
34
|
+
label = false;
|
|
35
|
+
required = false;
|
|
34
36
|
customHeaderItems = [];
|
|
35
37
|
activeHeaderKey;
|
|
36
38
|
headerSelect = new EventEmitter();
|
|
@@ -107,6 +109,9 @@ export class CodeEditorComponent {
|
|
|
107
109
|
this.$editor.contentDOM.setAttribute('contenteditable', String(editable));
|
|
108
110
|
this.updateEditorExtensions();
|
|
109
111
|
}
|
|
112
|
+
labelKey() {
|
|
113
|
+
return typeof this.label === 'string' ? this.label : '';
|
|
114
|
+
}
|
|
110
115
|
getStyleMap() {
|
|
111
116
|
const style = {};
|
|
112
117
|
if (this.width != null) {
|
|
@@ -198,11 +203,11 @@ export class CodeEditorComponent {
|
|
|
198
203
|
this.$editor.dispatch({ effects: StateEffect.reconfigure.of(this.buildExtensions()) });
|
|
199
204
|
}
|
|
200
205
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeEditorComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
201
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CodeEditorComponent, isStandalone: true, selector: "sdc-code-editor", inputs: { sql: "sql", height: "height", width: "width", showCopy: "showCopy", customHeaderItems: "customHeaderItems", activeHeaderKey: "activeHeaderKey", readOnly: "readOnly", language: "language", schema: "schema" }, outputs: { headerSelect: "headerSelect", copied: "onCopy", languageChange: "languageChange", domainFilterClick: "domainFilterClick" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CodeEditorComponent), multi: true }], viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"sdc-code-editor\">\n <label [attr.for]=\"editorId\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.code_editor' | translate }}\n
|
|
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 });
|
|
202
207
|
}
|
|
203
208
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeEditorComponent, decorators: [{
|
|
204
209
|
type: Component,
|
|
205
|
-
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 <label [attr.for]=\"editorId\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.code_editor' | translate }}\n
|
|
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"] }]
|
|
206
211
|
}], ctorParameters: () => [{ type: i1.ToastService }], propDecorators: { sql: [{
|
|
207
212
|
type: Input
|
|
208
213
|
}], height: [{
|
|
@@ -211,6 +216,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
211
216
|
type: Input
|
|
212
217
|
}], showCopy: [{
|
|
213
218
|
type: Input
|
|
219
|
+
}], label: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], required: [{
|
|
222
|
+
type: Input
|
|
214
223
|
}], customHeaderItems: [{
|
|
215
224
|
type: Input
|
|
216
225
|
}], activeHeaderKey: [{
|
|
@@ -234,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
234
243
|
type: ViewChild,
|
|
235
244
|
args: ['editorContainer', { static: true }]
|
|
236
245
|
}] } });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb2RlLWVkaXRvci9jb2RlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvZGUtZWRpdG9yL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENB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TSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGF1dG9jb21wbGV0aW9uIH0gZnJvbSAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IEV4dGVuc2lvbiwgU3RhdGVFZmZlY3QgfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBiYXNpY1NldHVwIH0gZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyBodG1sIGFzIGh0bWxMYW5nIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcbmltcG9ydCB7IGpzb24gYXMganNvbkxhbmcgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBQb3N0Z3JlU1FMLCBzcWwgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLXNxbCc7XG5pbXBvcnQgeyBheXVMaWdodCB9IGZyb20gJ3RoZW1lbWlycm9yJztcblxuaW1wb3J0IHtcbiAgQ09ERV9FRElUT1JfQ09QWV9FUlJPUl9NRVNTQUdFX0tFWSxcbiAgQ09ERV9FRElUT1JfQ09QWV9FUlJPUl9USVRMRV9LRVksXG4gIENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19NRVNTQUdFX0tFWSxcbiAgQ09ERV9FRElUT1JfQ09QWV9TVUNDRVNTX1RJVExFX0tFWSxcbiAgQ09ERV9FRElUT1JfREVGQVVMVF9MQU5HVUFHRVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jb2RlLWVkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBzcWxEb21haW5GaWx0ZXJEZWNvcmF0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMvc3FsRG9tYWluRmlsdGVyJztcbmltcG9ydCB7IGNyZWF0ZVNxbEF1dG9Db21wbGV0aW9uSGFkbGVyLCBTY2hlbWEgfSBmcm9tICcuLi8uLi9jb3JlL2hhbmRsZXJzL3NxbEF1dG9Db21wbGV0ZSc7XG5pbXBvcnQgeyBzcWxGb3JtYXR0ZXJIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9oYW5kbGVycy9zcWxGb3JtYXR0ZXInO1xuaW1wb3J0IHsgc3FsVXBwZXJjYXNlSGFuZGxlciB9IGZyb20gJy4uLy4uL2NvcmUvaGFuZGxlcnMvc3FsVXBwZXJjYXNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IEVkaXRvckxhbmd1YWdlLCBIZWFkZXJJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9jb2RlLWVkaXRvci50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtY29kZS1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2RlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2RlRWRpdG9yQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIHJlYWRvbmx5IGVkaXRvcklkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWNvZGUtZWRpdG9yJyk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdG9hc3Q6IFRvYXN0U2VydmljZSkge31cblxuICBASW5wdXQoKSBzcWwgPSAnJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93Q29weSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGN1c3RvbUhlYWRlckl0ZW1zOiBIZWFkZXJJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlSGVhZGVyS2V5Pzogc3RyaW5nO1xuICBAT3V0cHV0KCkgaGVhZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleT86IHN0cmluZzsgbGFuZzogRWRpdG9yTGFuZ3VhZ2UgfT4oKTtcbiAgQE91dHB1dCgnb25Db3B5JykgY29waWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX3JlYWRPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWRPbmx5ID0gISF2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTtcbiAgfVxuXG4gIGdldCByZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZE9ubHk7XG4gIH1cblxuICBAT3V0cHV0KCkgbGFuZ3VhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckxhbmd1YWdlPigpO1xuXG4gIEBJbnB1dCgpIHNldCBsYW5ndWFnZSh2YWx1ZTogRWRpdG9yTGFuZ3VhZ2UpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHZhbHVlIHx8IENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0U7XG4gICAgaWYgKGxhbmd1YWdlICE9PSB0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgdGhpcy4kbGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICAgICAgdGhpcy5sYW5ndWFnZUNoYW5nZS5lbWl0KHRoaXMuJGxhbmd1YWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbGFuZ3VhZ2UoKTogRWRpdG9yTGFuZ3VhZ2Uge1xuICAgIHJldHVybiB0aGlzLiRsYW5ndWFnZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzY2hlbWEodmFsdWU6IFNjaGVtYSkge1xuICAgIHRoaXMuJHNjaGVtYSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLiRsYW5ndWFnZSA9PT0gJ3NxbCcpIHtcbiAgICAgIHRoaXMudXBkYXRlRWRpdG9yRXh0ZW5zaW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBkb21haW5GaWx0ZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0b3JDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcml2YXRlICRlZGl0b3IhOiBFZGl0b3JWaWV3O1xuICBwcml2YXRlICRvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSAkb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgJHNjaGVtYTogU2NoZW1hID0ge307XG4gIHByaXZhdGUgJGxhbmd1YWdlOiBFZGl0b3JMYW5ndWFnZSA9IENPREVfRURJVE9SX0RFRkFVTFRfTEFOR1VBR0U7XG4gIHByaXZhdGUgJGRpc2FibGVkID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4kZWRpdG9yID0gbmV3IEVkaXRvclZpZXcoe1xuICAgICAgZG9jOiB0aGlzLnNxbCxcbiAgICAgIHBhcmVudDogdGhpcy5lZGl0b3JDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIGV4dGVuc2lvbnM6IHRoaXMuYnVpbGRFeHRlbnNpb25zKClcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc3FsJ10gJiYgIWNoYW5nZXNbJ3NxbCddLmZpcnN0Q2hhbmdlICYmIHRoaXMuJGVkaXRvcikge1xuICAgICAgY29uc3QgbmV4dCA9IChjaGFuZ2VzWydzcWwnXS5jdXJyZW50VmFsdWUgPz8gJycpIGFzIHN0cmluZztcbiAgICAgIGlmIChuZXh0ICE9PSB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgdGhpcy4kZWRpdG9yLmRpc3BhdGNoKHsgY2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogbmV4dCB9IH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJGVkaXRvcj8uZGVzdHJveSgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuJGVkaXRvciAmJiB2YWx1ZSAhPT0gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpKSB7XG4gICAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLiRlZGl0b3Iuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSA/PyAnJyB9IH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWw6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuJG9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuJG9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4kZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICghdGhpcy4kZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGUgPSAhKGlzRGlzYWJsZWQgfHwgdGhpcy5fcmVhZE9ubHkpO1xuICAgIHRoaXMuJGVkaXRvci5jb250ZW50RE9NLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgU3RyaW5nKGVkaXRhYmxlKSk7XG4gICAgdGhpcy51cGRhdGVFZGl0b3JFeHRlbnNpb25zKCk7XG4gIH1cblxuICBnZXRTdHlsZU1hcCgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICBjb25zdCBzdHlsZTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiA9IHt9O1xuICAgIGlmICh0aGlzLndpZHRoICE9IG51bGwpIHtcbiAgICAgIHN0eWxlLndpZHRoID0gdHlwZW9mIHRoaXMud2lkdGggPT09ICdudW1iZXInID8gYCR7dGhpcy53aWR0aH1weGAgOiB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhlaWdodCAhPSBudWxsKSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSB0eXBlb2YgdGhpcy5oZWlnaHQgPT09ICdudW1iZXInID8gYCR7dGhpcy5oZWlnaHR9cHhgIDogdGhpcy5oZWlnaHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgcGlja0hlYWRlcihpdGVtOiBIZWFkZXJJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVIZWFkZXJLZXkgPSBpdGVtLmtleTtcbiAgICBpZiAoaXRlbS52YWx1ZSAhPT0gdGhpcy4kbGFuZ3VhZ2UpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2UgPSBpdGVtLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuaGVhZGVyU2VsZWN0LmVtaXQoeyBrZXk6IGl0ZW0ua2V5LCBsYW5nOiBpdGVtLnZhbHVlIH0pO1xuICB9XG5cbiAgYXN5bmMgY29weSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy4kZWRpdG9yID8gdGhpcy4kZWRpdG9yLnN0YXRlLmRvYy50b1N0cmluZygpIDogdGhpcy5zcWwgfHwgJyc7XG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICB0aXRsZTogc3VjY2VzcyA/IENPREVfRURJVE9SX0NPUFlfU1VDQ0VTU19USVRMRV9LRVkgOiBDT0RFX0VESVRPUl9DT1BZX0VSUk9SX1RJVExFX0tFWSxcbiAgICAgIHRleHQ6IHN1Y2Nlc3MgPyBDT0RFX0VESVRPUl9DT1BZX1NVQ0NFU1NfTUVTU0FHRV9LRVkgOiBDT0RFX0VESVRPUl9DT1BZX0VSUk9SX01FU1NBR0VfS0VZLFxuICAgICAgc2V2ZXJpdHk6IHN1Y2Nlc3MgPyAnc3VjY2VzcycgOiAnZXJyb3InLFxuICAgICAgZHVyYXRpb246IDIwMDAsXG4gICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHRoaXMuY29waWVkLmVtaXQoc3VjY2Vzcyk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgY29uc3QgZWRpdGFibGUgPSAhKHRoaXMuX3JlYWRPbmx5IHx8IHRoaXMuJGRpc2FibGVkKTtcbiAgICBjb25zdCBndWFyZHMgPSBlZGl0YWJsZVxuICAgICAgPyBbXVxuICAgICAgOiBbXG4gICAgICAgICAgRWRpdG9yVmlldy5kb21FdmVudEhhbmRsZXJzKHtcbiAgICAgICAgICAgIGJlZm9yZWlucHV0OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBkcm9wOiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICBwYXN0ZTogKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgICAgY3V0OiAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgIGNvbnN0IGJhc2U6IEV4dGVuc2lvbltdID0gW1xuICAgICAgYmFzaWNTZXR1cCxcbiAgICAgIGF5dUxpZ2h0LFxuICAgICAgRWRpdG9yVmlldy5lZGl0YWJsZS5vZihlZGl0YWJsZSksXG4gICAgICBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGUpID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZS5kb2NDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy4kb25DaGFuZ2UodXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICAuLi5ndWFyZHNcbiAgICBdO1xuICAgIHJldHVybiBbLi4uYmFzZSwgLi4udGhpcy5nZXRMYW5ndWFnZUV4dGVuc2lvbnMoKV07XG4gIH1cblxuICBwcml2YXRlIGdldExhbmd1YWdlRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgc3dpdGNoICh0aGlzLiRsYW5ndWFnZSkge1xuICAgICAgY2FzZSAnc3FsJzpcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBzcWxVcHBlcmNhc2VIYW5kbGVyKCksXG4gICAgICAgICAgc3FsRm9ybWF0dGVySGFuZGxlcigpLFxuICAgICAgICAgIHNxbCh7IGRpYWxlY3Q6IFBvc3RncmVTUUwgfSksXG4gICAgICAgICAgc3FsRG9tYWluRmlsdGVyRGVjb3JhdG9yKCh0b2tlbikgPT4gdGhpcy5kb21haW5GaWx0ZXJDbGljay5lbWl0KHRva2VuKSksXG4gICAgICAgICAgYXV0b2NvbXBsZXRpb24oeyBvdmVycmlkZTogW2NyZWF0ZVNxbEF1dG9Db21wbGV0aW9uSGFkbGVyKHRoaXMuJHNjaGVtYSldIH0pXG4gICAgICAgIF07XG4gICAgICBjYXNlICd0eXBlc2NyaXB0JzpcbiAgICAgICAgcmV0dXJuIFtqYXZhc2NyaXB0KHsgdHlwZXNjcmlwdDogdHJ1ZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2phdmFzY3JpcHQnOlxuICAgICAgICByZXR1cm4gW2phdmFzY3JpcHQoeyB0eXBlc2NyaXB0OiBmYWxzZSwganN4OiB0cnVlIH0pLCBhdXRvY29tcGxldGlvbigpXTtcbiAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICByZXR1cm4gW2pzb25MYW5nKCksIGF1dG9jb21wbGV0aW9uKCldO1xuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIHJldHVybiBbaHRtbExhbmcoKSwgYXV0b2NvbXBsZXRpb24oKV07XG4gICAgICBjYXNlICdwbGFpbnRleHQnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFthdXRvY29tcGxldGlvbigpXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVkaXRvckV4dGVuc2lvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiRlZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiRlZGl0b3IuZGlzcGF0Y2goeyBlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZih0aGlzLmJ1aWxkRXh0ZW5zaW9ucygpKSB9KTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JcIj5cbiAgPGxhYmVsIFthdHRyLmZvcl09XCJlZGl0b3JJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgIHt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmNvZGVfZWRpdG9yJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2xhYmVsPlxuICA8ZGl2XG4gICAgI2VkaXRvckNvbnRhaW5lclxuICAgIFthdHRyLmlkXT1cImVkaXRvcklkXCJcbiAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc3VyZmFjZVwiXG4gICAgW25nU3R5bGVdPVwiZ2V0U3R5bGVNYXAoKVwiXG4gICAgW2F0dHIuZGF0YS1lZGl0b3ItdHlwZV09XCJsYW5ndWFnZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5jb2RlX2VkaXRvcicgfCB0cmFuc2xhdGVcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlsaW5lXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZE9ubHlcIlxuICA+PC9kaXY+XG5cbiAgQGlmIChzaG93Q29weSB8fCBjdXN0b21IZWFkZXJJdGVtcy5sZW5ndGggPiAxKSB7XG4gIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2hlYWRlclwiPlxuICAgIEBpZiAoY3VzdG9tSGVhZGVySXRlbXMubGVuZ3RoID4gMSkge1xuICAgIDxmaWVsZHNldCBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUgc2RjLWNvZGUtZWRpdG9yX19oZWFkZXItc2lkZS0tbGVmdFwiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubGFuZ3VhZ2Vfc2VsZWN0b3InIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX3NlZ21lbnRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubGFuZ3VhZ2Vfc2VsZWN0b3InIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgQGZvciAoaXQgb2YgY3VzdG9tSGVhZGVySXRlbXM7IHRyYWNrIGl0LnZhbHVlKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9fc2VnbWVudGVkLWl0ZW1cIlxuICAgICAgICAgIFthdHRyLmlkXT1cIidsYW5nLScgKyAoaXQua2V5IHx8IGl0LnZhbHVlKSArICctJyArIGVkaXRvcklkXCJcbiAgICAgICAgICBbY2xhc3Muc2RjLWNvZGUtZWRpdG9yX19zZWdtZW50ZWQtaXRlbS0tYWN0aXZlXT1cIml0LmtleSA/IGl0LmtleSA9PT0gYWN0aXZlSGVhZGVyS2V5IDogaXQudmFsdWUgPT09IGxhbmd1YWdlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXQua2V5ID8gaXQua2V5ID09PSBhY3RpdmVIZWFkZXJLZXkgOiBpdC52YWx1ZSA9PT0gbGFuZ3VhZ2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuc2VsZWN0X2xhbmd1YWdlJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgKyAnOiAnXG4gICAgICAgICAgICAgICsgKGl0LmxhYmVsIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgKGNsaWNrKT1cInBpY2tIZWFkZXIoaXQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29kZS1lZGl0b3JfX2hlYWRlci1zaWRlIHNkYy1jb2RlLWVkaXRvcl9faGVhZGVyLXNpZGUtLXJpZ2h0XCI+XG4gICAgICBAaWYgKHNob3dDb3B5KSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNkYy1jb2RlLWVkaXRvcl9faWNvbi1idXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmNvcHlfY29kZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAoY2xpY2spPVwiY29weSgpXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY29weVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY29weV9jb2RlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIH1cbjwvc2VjdGlvbj5cbiJdfQ==
|
|
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
|