@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
|
@@ -14,6 +14,7 @@ export class ModalComponent {
|
|
|
14
14
|
dialogPanel;
|
|
15
15
|
bodyPortal;
|
|
16
16
|
footerButtons = DEFAULT_MODAL_FOOTER_BUTTONS;
|
|
17
|
+
headerActions = [];
|
|
17
18
|
header = DEFAULT_MODAL_HEADER;
|
|
18
19
|
height = DEFAULT_MODAL_HEIGHT;
|
|
19
20
|
maximizable = DEFAULT_MODAL_MAXIMIZABLE;
|
|
@@ -195,11 +196,11 @@ export class ModalComponent {
|
|
|
195
196
|
viewInitialized = false;
|
|
196
197
|
bodyPortalOutlet;
|
|
197
198
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
198
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalComponent, isStandalone: true, selector: "sdc-modal", inputs: { footerButtons: "footerButtons", header: "header", height: "height", maximizable: "maximizable", maximize: "maximize", resizable: "resizable", responsive: "responsive", width: "width", zIndex: "zIndex", closable: "closable", styleClass: "styleClass", appendToBody: ["appendToBody", "appendToBody", booleanAttribute], visible: "visible" }, outputs: { hidden: "hidden", visibleChange: "visibleChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, viewQueries: [{ propertyName: "dialogPanel", first: true, predicate: ["dialogPanel"], descendants: true }, { propertyName: "bodyPortal", first: true, predicate: CdkPortal, descendants: true }], ngImport: i0, template: "<ng-template #modalTemplate>\n <div class=\"sdc-modal-backdrop\" [style.z-index]=\"zIndex\">\n <section\n #dialogPanel\n class=\"sdc-modal\"\n [ngClass]=\"styleClass\"\n [class.sdc-modal--maximized]=\"isMaximized\"\n [class.sdc-modal--resizable]=\"resizable && !isMaximized\"\n [class.sdc-modal--responsive]=\"responsive\"\n [ngStyle]=\"dialogStyles\"\n role=\"dialog\"\n tabindex=\"-1\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-describedby]=\"contentId\"\n >\n <header class=\"sdc-modal__header\">\n <div class=\"sdc-modal__title\" [id]=\"headerId\">\n {{ header | translate }}\n </div>\n\n <div class=\"sdc-modal__header-actions\">\n @if (maximizable) {\n <button\n type=\"button\"\n class=\"sdc-modal__icon-button\"\n (click)=\"toggleMaximize()\"\n [attr.aria-label]=\"(\n isMaximized ? 'platform.datacore.modal.restore_size' : 'platform.datacore.modal.maximize'\n ) | translate\"\n >\n @if (!isMaximized) {\n <svg class=\"sdc-modal__icon sdc-modal__icon--maximize\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M6 3.5H3.5V6\" />\n <path d=\"M10 3.5h2.5V6\" />\n <path d=\"M12.5 10v2.5H10\" />\n <path d=\"M6 12.5H3.5V10\" />\n </svg>\n } @else {\n <svg class=\"sdc-modal__icon sdc-modal__icon--maximize\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M5.5 3.5H3.5V5.5\" />\n <path d=\"M10.5 3.5h2v2\" />\n <path d=\"M12.5 10.5v2h-2\" />\n <path d=\"M5.5 12.5h-2v-2\" />\n </svg>\n }\n </button>\n }\n\n @if (closable) {\n <button\n type=\"button\"\n class=\"sdc-modal__icon-button\"\n (click)=\"close()\"\n [attr.aria-label]=\"'platform.datacore.modal.close' | translate\"\n >\n <svg class=\"sdc-modal__icon sdc-modal__icon--close\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M5 5 11 11\" />\n <path d=\"M11 5 5 11\" />\n </svg>\n </button>\n }\n </div>\n </header>\n\n <div class=\"sdc-modal__content\" [id]=\"contentId\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"sdc-modal__footer\" [attr.aria-label]=\"'platform.datacore.accessibility.modal_footer' | translate\">\n <ng-content select=\"[footer]\"></ng-content>\n\n @for (btn of footerButtons; track btn.id || btn.label) {\n <sdc-button\n [id]=\"btn.id ?? 'modal-footer-button'\"\n [label]=\"btn.label\"\n [icon]=\"btn.icon\"\n [disabled]=\"btn.disabled ?? false\"\n [priority]=\"mapButtonPriority(btn.severity)\"\n (click)=\"onFooterButtonClick(btn.action)\"\n [attr.aria-label]=\"btn.label | translate\"\n ></sdc-button>\n }\n </div>\n </section>\n </div>\n</ng-template>\n\n<ng-template cdkPortal>\n <ng-container *ngTemplateOutlet=\"modalTemplate\"></ng-container>\n</ng-template>\n\n@if (!appendToBody && visible) {\n <ng-container *ngTemplateOutlet=\"modalTemplate\"></ng-container>\n}\n", styles: [":host{display:contents}.sdc-modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--sdc-modal-backdrop-padding);background:var(--sdc-modal-backdrop-bg)}.sdc-modal{display:flex;flex-direction:column;width:min(100%,var(--sdc-modal-width));max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);background:var(--sdc-modal-bg);border:1px solid var(--sdc-modal-border-color);border-radius:var(--sdc-modal-border-radius);box-shadow:var(--sdc-modal-shadow);overflow:hidden;color:var(--sdc-modal-text-color);outline:none}.sdc-modal--responsive{width:min(100%,var(--sdc-modal-width-responsive))}.sdc-modal--maximized{width:calc(100vw - 32px)!important;height:calc(100vh - 32px)!important;max-width:none;max-height:none}.sdc-modal--resizable{resize:both;overflow:auto;min-width:480px;min-height:280px}.sdc-modal__header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:var(--sdc-modal-header-padding);background:var(--sdc-modal-bg)}.sdc-modal__header:after{content:\"\";position:absolute;left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset);bottom:0;height:1px;background:var(--sdc-modal-divider-color)}.sdc-modal__title{min-width:0;color:var(--sdc-modal-title-color);font-size:var(--sdc-modal-title-font-size);font-weight:var(--sdc-modal-title-font-weight);line-height:var(--sdc-modal-title-line-height);letter-spacing:0;text-transform:uppercase}.sdc-modal__header-actions{display:flex;align-items:center;gap:var(--sdc-modal-header-actions-gap);flex-shrink:0}.sdc-modal__icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-modal-icon-button-size);height:var(--sdc-modal-icon-button-size);padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background-color .2s ease}.sdc-modal__icon-button:hover{background:var(--sdc-modal-icon-button-hover-bg)}.sdc-modal__icon-button:focus-visible{outline:var(--sdc-focus-outline);outline-offset:2px}.sdc-modal__icon{display:block;fill:none;stroke:var(--sdc-modal-icon-color);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sdc-modal__icon path{fill:none;stroke:var(--sdc-modal-icon-color);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sdc-modal__icon--maximize{width:var(--sdc-modal-icon-maximize-size);height:var(--sdc-modal-icon-maximize-size)}.sdc-modal__icon--maximize path{stroke-width:var(--sdc-modal-icon-maximize-stroke-width)}.sdc-modal__icon--close{width:var(--sdc-modal-icon-close-size);height:var(--sdc-modal-icon-close-size)}.sdc-modal__icon--close path{stroke-width:var(--sdc-modal-icon-close-stroke-width)}.sdc-modal__content{flex:1 1 auto;padding:var(--sdc-modal-content-padding);overflow:auto;background:var(--sdc-modal-bg)}.sdc-modal__footer{position:relative;display:flex;flex-direction:row-reverse;flex-wrap:wrap;gap:10px;padding:var(--sdc-modal-footer-padding);background:var(--sdc-modal-bg)}.sdc-modal__footer:before{content:\"\";position:absolute;left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset);top:0;height:1px;background:var(--sdc-modal-divider-color)}.sdc-modal__footer:empty{display:none}.sdc-modal__action-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sdc-modal-button-gap);min-height:var(--sdc-modal-button-min-height);padding:0 var(--sdc-modal-button-padding-x);border-radius:var(--sdc-modal-button-border-radius);border:1px solid transparent;font-size:var(--sdc-modal-button-font-size);font-weight:var(--sdc-modal-button-font-weight);line-height:var(--sdc-modal-button-line-height);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.sdc-modal__action-button:focus-visible{outline:var(--sdc-focus-outline);outline-offset:2px}.sdc-modal__action-button:disabled{opacity:.6;cursor:not-allowed}.sdc-modal__action-button--primary{background:var(--sdc-modal-button-primary-bg);border-color:var(--sdc-modal-button-primary-border);color:var(--sdc-modal-button-primary-color)}.sdc-modal__action-button--primary:hover{background:var(--sdc-modal-button-primary-hover-bg);border-color:var(--sdc-modal-button-primary-hover-border)}.sdc-modal__action-button--secondary{background:var(--sdc-modal-button-secondary-bg);border-color:var(--sdc-modal-button-secondary-border);color:var(--sdc-modal-button-secondary-color)}.sdc-modal__action-button--secondary:hover{background:var(--sdc-modal-button-secondary-hover-bg);border-color:var(--sdc-modal-button-secondary-hover-border)}.sdc-modal__action-button--success{background:var(--sdc-modal-button-success-bg);border-color:var(--sdc-modal-button-success-border);color:var(--sdc-modal-button-success-color)}.sdc-modal__action-button--success:hover{background:var(--sdc-modal-button-success-hover-bg);border-color:var(--sdc-modal-button-success-hover-border)}.sdc-modal__action-button--info{background:var(--sdc-modal-button-info-bg);border-color:var(--sdc-modal-button-info-border);color:var(--sdc-modal-button-info-color)}.sdc-modal__action-button--info:hover{background:var(--sdc-modal-button-info-hover-bg);border-color:var(--sdc-modal-button-info-hover-border)}.sdc-modal__action-button--warning{background:var(--sdc-modal-button-warning-bg);border-color:var(--sdc-modal-button-warning-border);color:var(--sdc-modal-button-warning-color)}.sdc-modal__action-button--warning:hover{background:var(--sdc-modal-button-warning-hover-bg);border-color:var(--sdc-modal-button-warning-hover-border)}.sdc-modal__action-button--danger{background:var(--sdc-modal-button-danger-bg);border-color:var(--sdc-modal-button-danger-border);color:var(--sdc-modal-button-danger-color)}.sdc-modal__action-button--danger:hover{background:var(--sdc-modal-button-danger-hover-bg);border-color:var(--sdc-modal-button-danger-hover-border)}.sdc-modal__action-button--contrast{background:var(--sdc-modal-button-contrast-bg);border-color:var(--sdc-modal-button-contrast-border);color:var(--sdc-modal-button-contrast-color)}.sdc-modal__action-button--contrast:hover{background:var(--sdc-modal-button-contrast-hover-bg);border-color:var(--sdc-modal-button-contrast-hover-border)}.sdc-modal__action-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .sdc-modal__content>:first-child{margin-top:0}:host ::ng-deep .sdc-modal__content>:last-child{margin-bottom:0}:host ::ng-deep .sdc-modal__content p{margin:0 0 16px;color:var(--sdc-modal-content-text-color);font-size:var(--sdc-modal-content-font-size);line-height:var(--sdc-modal-content-line-height)}:host ::ng-deep .sdc-modal__content table{width:100%;border-collapse:collapse;background:var(--sdc-modal-bg)}:host ::ng-deep .sdc-modal__content thead th{padding:12px 10px;border-bottom:1px solid var(--sdc-modal-table-head-border-color);color:var(--sdc-modal-table-head-color);font-size:13px;font-weight:600;text-align:left;background:var(--sdc-modal-bg)}:host ::ng-deep .sdc-modal__content tbody td{padding:10px;border-bottom:1px solid var(--sdc-modal-table-cell-border-color);color:var(--sdc-modal-table-cell-color);font-size:14px;vertical-align:middle}:host ::ng-deep .sdc-modal__content tbody tr:hover{background:var(--sdc-modal-table-row-hover-bg)}@media (max-width: 768px){.sdc-modal-backdrop{padding:var(--sdc-modal-backdrop-padding-mobile)}.sdc-modal{width:100%;max-width:100%;max-height:calc(100vh - 24px)}.sdc-modal__header,.sdc-modal__content,.sdc-modal__footer{padding-left:var(--sdc-modal-divider-inset);padding-right:var(--sdc-modal-divider-inset)}.sdc-modal__header:after,.sdc-modal__footer:before{left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset)}}\n"], dependencies: [{ kind: "directive", type: CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
199
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalComponent, isStandalone: true, selector: "sdc-modal", inputs: { footerButtons: "footerButtons", headerActions: "headerActions", header: "header", height: "height", maximizable: "maximizable", maximize: "maximize", resizable: "resizable", responsive: "responsive", width: "width", zIndex: "zIndex", closable: "closable", styleClass: "styleClass", appendToBody: ["appendToBody", "appendToBody", booleanAttribute], visible: "visible" }, outputs: { hidden: "hidden", visibleChange: "visibleChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, viewQueries: [{ propertyName: "dialogPanel", first: true, predicate: ["dialogPanel"], descendants: true }, { propertyName: "bodyPortal", first: true, predicate: CdkPortal, descendants: true }], ngImport: i0, template: "<ng-template #modalTemplate>\n <div class=\"sdc-modal-backdrop\" [style.z-index]=\"zIndex\">\n <section\n #dialogPanel\n class=\"sdc-modal\"\n [ngClass]=\"styleClass\"\n [class.sdc-modal--maximized]=\"isMaximized\"\n [class.sdc-modal--resizable]=\"resizable && !isMaximized\"\n [class.sdc-modal--responsive]=\"responsive\"\n [ngStyle]=\"dialogStyles\"\n role=\"dialog\"\n tabindex=\"-1\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-describedby]=\"contentId\"\n >\n <header class=\"sdc-modal__header\">\n <div class=\"sdc-modal__title\" [id]=\"headerId\">\n {{ header | translate }}\n </div>\n\n <div class=\"sdc-modal__header-actions\">\n @for (action of headerActions; track action.id || action.label; let i = $index) {\n <sdc-button\n class=\"sdc-modal__header-action\"\n [id]=\"action.id ?? 'modal-header-action-' + i\"\n [label]=\"action.label | translate\"\n [icon]=\"action.icon\"\n [disabled]=\"action.disabled ?? false\"\n [priority]=\"action.severity ? mapButtonPriority(action.severity) : 'outline'\"\n (click)=\"onFooterButtonClick(action.action)\"\n (keydown.enter)=\"onFooterButtonClick(action.action)\"\n [attr.aria-label]=\"(action.label | translate) + ' - ' + (header | translate)\"\n ></sdc-button>\n }\n\n @if (maximizable) {\n <button\n type=\"button\"\n class=\"sdc-modal__icon-button\"\n (click)=\"toggleMaximize()\"\n [attr.aria-label]=\"(\n isMaximized ? 'platform.datacore.modal.restore_size' : 'platform.datacore.modal.maximize'\n ) | translate\"\n >\n @if (!isMaximized) {\n <svg class=\"sdc-modal__icon sdc-modal__icon--maximize\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M6 3.5H3.5V6\" />\n <path d=\"M10 3.5h2.5V6\" />\n <path d=\"M12.5 10v2.5H10\" />\n <path d=\"M6 12.5H3.5V10\" />\n </svg>\n } @else {\n <svg class=\"sdc-modal__icon sdc-modal__icon--maximize\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M5.5 3.5H3.5V5.5\" />\n <path d=\"M10.5 3.5h2v2\" />\n <path d=\"M12.5 10.5v2h-2\" />\n <path d=\"M5.5 12.5h-2v-2\" />\n </svg>\n }\n </button>\n }\n\n @if (closable) {\n <button\n type=\"button\"\n class=\"sdc-modal__icon-button\"\n (click)=\"close()\"\n [attr.aria-label]=\"'platform.datacore.modal.close' | translate\"\n >\n <svg class=\"sdc-modal__icon sdc-modal__icon--close\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M5 5 11 11\" />\n <path d=\"M11 5 5 11\" />\n </svg>\n </button>\n }\n </div>\n </header>\n\n <div class=\"sdc-modal__content\" [id]=\"contentId\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"sdc-modal__footer\" [attr.aria-label]=\"'platform.datacore.accessibility.modal_footer' | translate\">\n <ng-content select=\"[footer]\"></ng-content>\n\n @for (btn of footerButtons; track btn.id || btn.label) {\n <sdc-button\n [id]=\"btn.id ?? 'modal-footer-button'\"\n [label]=\"btn.label\"\n [icon]=\"btn.icon\"\n [disabled]=\"btn.disabled ?? false\"\n [priority]=\"mapButtonPriority(btn.severity)\"\n (click)=\"onFooterButtonClick(btn.action)\"\n [attr.aria-label]=\"btn.label | translate\"\n ></sdc-button>\n }\n </div>\n </section>\n </div>\n</ng-template>\n\n<ng-template cdkPortal>\n <ng-container *ngTemplateOutlet=\"modalTemplate\"></ng-container>\n</ng-template>\n\n@if (!appendToBody && visible) {\n <ng-container *ngTemplateOutlet=\"modalTemplate\"></ng-container>\n}\n", styles: [":host{display:contents}.sdc-modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--sdc-modal-backdrop-padding);background:var(--sdc-modal-backdrop-bg)}.sdc-modal{display:flex;flex-direction:column;width:min(100%,var(--sdc-modal-width));max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);background:var(--sdc-modal-bg);border:1px solid var(--sdc-modal-border-color);border-radius:var(--sdc-modal-border-radius);box-shadow:var(--sdc-modal-shadow);overflow:hidden;color:var(--sdc-modal-text-color);outline:none}.sdc-modal--responsive{width:min(100%,var(--sdc-modal-width-responsive))}.sdc-modal--maximized{width:calc(100vw - 32px)!important;height:calc(100vh - 32px)!important;max-width:none;max-height:none}.sdc-modal--resizable{resize:both;overflow:auto;min-width:480px;min-height:280px}.sdc-modal__header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:var(--sdc-modal-header-padding);background:var(--sdc-modal-bg)}.sdc-modal__header:after{content:\"\";position:absolute;left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset);bottom:0;height:1px;background:var(--sdc-modal-divider-color)}.sdc-modal__title{min-width:0;color:var(--sdc-modal-title-color);font-size:var(--sdc-modal-title-font-size);font-weight:var(--sdc-modal-title-font-weight);line-height:var(--sdc-modal-title-line-height);letter-spacing:0;text-transform:uppercase}.sdc-modal__header-actions{display:flex;align-items:center;gap:var(--sdc-modal-header-actions-gap);flex-shrink:0}.sdc-modal__icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-modal-icon-button-size);height:var(--sdc-modal-icon-button-size);padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background-color .2s ease}.sdc-modal__icon-button:hover{background:var(--sdc-modal-icon-button-hover-bg)}.sdc-modal__icon-button:focus-visible{outline:var(--sdc-focus-outline);outline-offset:2px}.sdc-modal__icon{display:block;fill:none;stroke:var(--sdc-modal-icon-color);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sdc-modal__icon path{fill:none;stroke:var(--sdc-modal-icon-color);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sdc-modal__icon--maximize{width:var(--sdc-modal-icon-maximize-size);height:var(--sdc-modal-icon-maximize-size)}.sdc-modal__icon--maximize path{stroke-width:var(--sdc-modal-icon-maximize-stroke-width)}.sdc-modal__icon--close{width:var(--sdc-modal-icon-close-size);height:var(--sdc-modal-icon-close-size)}.sdc-modal__icon--close path{stroke-width:var(--sdc-modal-icon-close-stroke-width)}.sdc-modal__content{flex:1 1 auto;padding:var(--sdc-modal-content-padding);overflow:auto;background:var(--sdc-modal-bg)}.sdc-modal__footer{position:relative;display:flex;flex-direction:row-reverse;flex-wrap:wrap;gap:10px;padding:var(--sdc-modal-footer-padding);background:var(--sdc-modal-bg)}.sdc-modal__footer:before{content:\"\";position:absolute;left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset);top:0;height:1px;background:var(--sdc-modal-divider-color)}.sdc-modal__footer:empty{display:none}.sdc-modal__action-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sdc-modal-button-gap);min-height:var(--sdc-modal-button-min-height);padding:0 var(--sdc-modal-button-padding-x);border-radius:var(--sdc-modal-button-border-radius);border:1px solid transparent;font-size:var(--sdc-modal-button-font-size);font-weight:var(--sdc-modal-button-font-weight);line-height:var(--sdc-modal-button-line-height);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.sdc-modal__action-button:focus-visible{outline:var(--sdc-focus-outline);outline-offset:2px}.sdc-modal__action-button:disabled{opacity:.6;cursor:not-allowed}.sdc-modal__action-button--primary{background:var(--sdc-modal-button-primary-bg);border-color:var(--sdc-modal-button-primary-border);color:var(--sdc-modal-button-primary-color)}.sdc-modal__action-button--primary:hover{background:var(--sdc-modal-button-primary-hover-bg);border-color:var(--sdc-modal-button-primary-hover-border)}.sdc-modal__action-button--secondary{background:var(--sdc-modal-button-secondary-bg);border-color:var(--sdc-modal-button-secondary-border);color:var(--sdc-modal-button-secondary-color)}.sdc-modal__action-button--secondary:hover{background:var(--sdc-modal-button-secondary-hover-bg);border-color:var(--sdc-modal-button-secondary-hover-border)}.sdc-modal__action-button--success{background:var(--sdc-modal-button-success-bg);border-color:var(--sdc-modal-button-success-border);color:var(--sdc-modal-button-success-color)}.sdc-modal__action-button--success:hover{background:var(--sdc-modal-button-success-hover-bg);border-color:var(--sdc-modal-button-success-hover-border)}.sdc-modal__action-button--info{background:var(--sdc-modal-button-info-bg);border-color:var(--sdc-modal-button-info-border);color:var(--sdc-modal-button-info-color)}.sdc-modal__action-button--info:hover{background:var(--sdc-modal-button-info-hover-bg);border-color:var(--sdc-modal-button-info-hover-border)}.sdc-modal__action-button--warning{background:var(--sdc-modal-button-warning-bg);border-color:var(--sdc-modal-button-warning-border);color:var(--sdc-modal-button-warning-color)}.sdc-modal__action-button--warning:hover{background:var(--sdc-modal-button-warning-hover-bg);border-color:var(--sdc-modal-button-warning-hover-border)}.sdc-modal__action-button--danger{background:var(--sdc-modal-button-danger-bg);border-color:var(--sdc-modal-button-danger-border);color:var(--sdc-modal-button-danger-color)}.sdc-modal__action-button--danger:hover{background:var(--sdc-modal-button-danger-hover-bg);border-color:var(--sdc-modal-button-danger-hover-border)}.sdc-modal__action-button--contrast{background:var(--sdc-modal-button-contrast-bg);border-color:var(--sdc-modal-button-contrast-border);color:var(--sdc-modal-button-contrast-color)}.sdc-modal__action-button--contrast:hover{background:var(--sdc-modal-button-contrast-hover-bg);border-color:var(--sdc-modal-button-contrast-hover-border)}.sdc-modal__action-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .sdc-modal__content>:first-child{margin-top:0}:host ::ng-deep .sdc-modal__content>:last-child{margin-bottom:0}:host ::ng-deep .sdc-modal__content p{margin:0 0 16px;color:var(--sdc-modal-content-text-color);font-size:var(--sdc-modal-content-font-size);line-height:var(--sdc-modal-content-line-height)}:host ::ng-deep .sdc-modal__content table{width:100%;border-collapse:collapse;background:var(--sdc-modal-bg)}:host ::ng-deep .sdc-modal__content thead th{padding:12px 10px;border-bottom:1px solid var(--sdc-modal-table-head-border-color);color:var(--sdc-modal-table-head-color);font-size:13px;font-weight:600;text-align:left;background:var(--sdc-modal-bg)}:host ::ng-deep .sdc-modal__content tbody td{padding:10px;border-bottom:1px solid var(--sdc-modal-table-cell-border-color);color:var(--sdc-modal-table-cell-color);font-size:14px;vertical-align:middle}:host ::ng-deep .sdc-modal__content tbody tr:hover{background:var(--sdc-modal-table-row-hover-bg)}@media (max-width: 768px){.sdc-modal-backdrop{padding:var(--sdc-modal-backdrop-padding-mobile)}.sdc-modal{width:100%;max-width:100%;max-height:calc(100vh - 24px)}.sdc-modal__header,.sdc-modal__content,.sdc-modal__footer{padding-left:var(--sdc-modal-divider-inset);padding-right:var(--sdc-modal-divider-inset)}.sdc-modal__header:after,.sdc-modal__footer:before{left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset)}}\n"], dependencies: [{ kind: "directive", type: CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
199
200
|
}
|
|
200
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalComponent, decorators: [{
|
|
201
202
|
type: Component,
|
|
202
|
-
args: [{ imports: [CdkPortal, CommonModule, TranslateModule, ButtonComponent], standalone: true, selector: 'sdc-modal', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<ng-template #modalTemplate>\n <div class=\"sdc-modal-backdrop\" [style.z-index]=\"zIndex\">\n <section\n #dialogPanel\n class=\"sdc-modal\"\n [ngClass]=\"styleClass\"\n [class.sdc-modal--maximized]=\"isMaximized\"\n [class.sdc-modal--resizable]=\"resizable && !isMaximized\"\n [class.sdc-modal--responsive]=\"responsive\"\n [ngStyle]=\"dialogStyles\"\n role=\"dialog\"\n tabindex=\"-1\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-describedby]=\"contentId\"\n >\n <header class=\"sdc-modal__header\">\n <div class=\"sdc-modal__title\" [id]=\"headerId\">\n {{ header | translate }}\n </div>\n\n <div class=\"sdc-modal__header-actions\">\n @if (maximizable) {\n <button\n type=\"button\"\n class=\"sdc-modal__icon-button\"\n (click)=\"toggleMaximize()\"\n [attr.aria-label]=\"(\n isMaximized ? 'platform.datacore.modal.restore_size' : 'platform.datacore.modal.maximize'\n ) | translate\"\n >\n @if (!isMaximized) {\n <svg class=\"sdc-modal__icon sdc-modal__icon--maximize\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M6 3.5H3.5V6\" />\n <path d=\"M10 3.5h2.5V6\" />\n <path d=\"M12.5 10v2.5H10\" />\n <path d=\"M6 12.5H3.5V10\" />\n </svg>\n } @else {\n <svg class=\"sdc-modal__icon sdc-modal__icon--maximize\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M5.5 3.5H3.5V5.5\" />\n <path d=\"M10.5 3.5h2v2\" />\n <path d=\"M12.5 10.5v2h-2\" />\n <path d=\"M5.5 12.5h-2v-2\" />\n </svg>\n }\n </button>\n }\n\n @if (closable) {\n <button\n type=\"button\"\n class=\"sdc-modal__icon-button\"\n (click)=\"close()\"\n [attr.aria-label]=\"'platform.datacore.modal.close' | translate\"\n >\n <svg class=\"sdc-modal__icon sdc-modal__icon--close\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M5 5 11 11\" />\n <path d=\"M11 5 5 11\" />\n </svg>\n </button>\n }\n </div>\n </header>\n\n <div class=\"sdc-modal__content\" [id]=\"contentId\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"sdc-modal__footer\" [attr.aria-label]=\"'platform.datacore.accessibility.modal_footer' | translate\">\n <ng-content select=\"[footer]\"></ng-content>\n\n @for (btn of footerButtons; track btn.id || btn.label) {\n <sdc-button\n [id]=\"btn.id ?? 'modal-footer-button'\"\n [label]=\"btn.label\"\n [icon]=\"btn.icon\"\n [disabled]=\"btn.disabled ?? false\"\n [priority]=\"mapButtonPriority(btn.severity)\"\n (click)=\"onFooterButtonClick(btn.action)\"\n [attr.aria-label]=\"btn.label | translate\"\n ></sdc-button>\n }\n </div>\n </section>\n </div>\n</ng-template>\n\n<ng-template cdkPortal>\n <ng-container *ngTemplateOutlet=\"modalTemplate\"></ng-container>\n</ng-template>\n\n@if (!appendToBody && visible) {\n <ng-container *ngTemplateOutlet=\"modalTemplate\"></ng-container>\n}\n", styles: [":host{display:contents}.sdc-modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--sdc-modal-backdrop-padding);background:var(--sdc-modal-backdrop-bg)}.sdc-modal{display:flex;flex-direction:column;width:min(100%,var(--sdc-modal-width));max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);background:var(--sdc-modal-bg);border:1px solid var(--sdc-modal-border-color);border-radius:var(--sdc-modal-border-radius);box-shadow:var(--sdc-modal-shadow);overflow:hidden;color:var(--sdc-modal-text-color);outline:none}.sdc-modal--responsive{width:min(100%,var(--sdc-modal-width-responsive))}.sdc-modal--maximized{width:calc(100vw - 32px)!important;height:calc(100vh - 32px)!important;max-width:none;max-height:none}.sdc-modal--resizable{resize:both;overflow:auto;min-width:480px;min-height:280px}.sdc-modal__header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:var(--sdc-modal-header-padding);background:var(--sdc-modal-bg)}.sdc-modal__header:after{content:\"\";position:absolute;left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset);bottom:0;height:1px;background:var(--sdc-modal-divider-color)}.sdc-modal__title{min-width:0;color:var(--sdc-modal-title-color);font-size:var(--sdc-modal-title-font-size);font-weight:var(--sdc-modal-title-font-weight);line-height:var(--sdc-modal-title-line-height);letter-spacing:0;text-transform:uppercase}.sdc-modal__header-actions{display:flex;align-items:center;gap:var(--sdc-modal-header-actions-gap);flex-shrink:0}.sdc-modal__icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-modal-icon-button-size);height:var(--sdc-modal-icon-button-size);padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background-color .2s ease}.sdc-modal__icon-button:hover{background:var(--sdc-modal-icon-button-hover-bg)}.sdc-modal__icon-button:focus-visible{outline:var(--sdc-focus-outline);outline-offset:2px}.sdc-modal__icon{display:block;fill:none;stroke:var(--sdc-modal-icon-color);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sdc-modal__icon path{fill:none;stroke:var(--sdc-modal-icon-color);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sdc-modal__icon--maximize{width:var(--sdc-modal-icon-maximize-size);height:var(--sdc-modal-icon-maximize-size)}.sdc-modal__icon--maximize path{stroke-width:var(--sdc-modal-icon-maximize-stroke-width)}.sdc-modal__icon--close{width:var(--sdc-modal-icon-close-size);height:var(--sdc-modal-icon-close-size)}.sdc-modal__icon--close path{stroke-width:var(--sdc-modal-icon-close-stroke-width)}.sdc-modal__content{flex:1 1 auto;padding:var(--sdc-modal-content-padding);overflow:auto;background:var(--sdc-modal-bg)}.sdc-modal__footer{position:relative;display:flex;flex-direction:row-reverse;flex-wrap:wrap;gap:10px;padding:var(--sdc-modal-footer-padding);background:var(--sdc-modal-bg)}.sdc-modal__footer:before{content:\"\";position:absolute;left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset);top:0;height:1px;background:var(--sdc-modal-divider-color)}.sdc-modal__footer:empty{display:none}.sdc-modal__action-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sdc-modal-button-gap);min-height:var(--sdc-modal-button-min-height);padding:0 var(--sdc-modal-button-padding-x);border-radius:var(--sdc-modal-button-border-radius);border:1px solid transparent;font-size:var(--sdc-modal-button-font-size);font-weight:var(--sdc-modal-button-font-weight);line-height:var(--sdc-modal-button-line-height);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.sdc-modal__action-button:focus-visible{outline:var(--sdc-focus-outline);outline-offset:2px}.sdc-modal__action-button:disabled{opacity:.6;cursor:not-allowed}.sdc-modal__action-button--primary{background:var(--sdc-modal-button-primary-bg);border-color:var(--sdc-modal-button-primary-border);color:var(--sdc-modal-button-primary-color)}.sdc-modal__action-button--primary:hover{background:var(--sdc-modal-button-primary-hover-bg);border-color:var(--sdc-modal-button-primary-hover-border)}.sdc-modal__action-button--secondary{background:var(--sdc-modal-button-secondary-bg);border-color:var(--sdc-modal-button-secondary-border);color:var(--sdc-modal-button-secondary-color)}.sdc-modal__action-button--secondary:hover{background:var(--sdc-modal-button-secondary-hover-bg);border-color:var(--sdc-modal-button-secondary-hover-border)}.sdc-modal__action-button--success{background:var(--sdc-modal-button-success-bg);border-color:var(--sdc-modal-button-success-border);color:var(--sdc-modal-button-success-color)}.sdc-modal__action-button--success:hover{background:var(--sdc-modal-button-success-hover-bg);border-color:var(--sdc-modal-button-success-hover-border)}.sdc-modal__action-button--info{background:var(--sdc-modal-button-info-bg);border-color:var(--sdc-modal-button-info-border);color:var(--sdc-modal-button-info-color)}.sdc-modal__action-button--info:hover{background:var(--sdc-modal-button-info-hover-bg);border-color:var(--sdc-modal-button-info-hover-border)}.sdc-modal__action-button--warning{background:var(--sdc-modal-button-warning-bg);border-color:var(--sdc-modal-button-warning-border);color:var(--sdc-modal-button-warning-color)}.sdc-modal__action-button--warning:hover{background:var(--sdc-modal-button-warning-hover-bg);border-color:var(--sdc-modal-button-warning-hover-border)}.sdc-modal__action-button--danger{background:var(--sdc-modal-button-danger-bg);border-color:var(--sdc-modal-button-danger-border);color:var(--sdc-modal-button-danger-color)}.sdc-modal__action-button--danger:hover{background:var(--sdc-modal-button-danger-hover-bg);border-color:var(--sdc-modal-button-danger-hover-border)}.sdc-modal__action-button--contrast{background:var(--sdc-modal-button-contrast-bg);border-color:var(--sdc-modal-button-contrast-border);color:var(--sdc-modal-button-contrast-color)}.sdc-modal__action-button--contrast:hover{background:var(--sdc-modal-button-contrast-hover-bg);border-color:var(--sdc-modal-button-contrast-hover-border)}.sdc-modal__action-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .sdc-modal__content>:first-child{margin-top:0}:host ::ng-deep .sdc-modal__content>:last-child{margin-bottom:0}:host ::ng-deep .sdc-modal__content p{margin:0 0 16px;color:var(--sdc-modal-content-text-color);font-size:var(--sdc-modal-content-font-size);line-height:var(--sdc-modal-content-line-height)}:host ::ng-deep .sdc-modal__content table{width:100%;border-collapse:collapse;background:var(--sdc-modal-bg)}:host ::ng-deep .sdc-modal__content thead th{padding:12px 10px;border-bottom:1px solid var(--sdc-modal-table-head-border-color);color:var(--sdc-modal-table-head-color);font-size:13px;font-weight:600;text-align:left;background:var(--sdc-modal-bg)}:host ::ng-deep .sdc-modal__content tbody td{padding:10px;border-bottom:1px solid var(--sdc-modal-table-cell-border-color);color:var(--sdc-modal-table-cell-color);font-size:14px;vertical-align:middle}:host ::ng-deep .sdc-modal__content tbody tr:hover{background:var(--sdc-modal-table-row-hover-bg)}@media (max-width: 768px){.sdc-modal-backdrop{padding:var(--sdc-modal-backdrop-padding-mobile)}.sdc-modal{width:100%;max-width:100%;max-height:calc(100vh - 24px)}.sdc-modal__header,.sdc-modal__content,.sdc-modal__footer{padding-left:var(--sdc-modal-divider-inset);padding-right:var(--sdc-modal-divider-inset)}.sdc-modal__header:after,.sdc-modal__footer:before{left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset)}}\n"] }]
|
|
203
|
+
args: [{ imports: [CdkPortal, CommonModule, TranslateModule, ButtonComponent], standalone: true, selector: 'sdc-modal', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<ng-template #modalTemplate>\n <div class=\"sdc-modal-backdrop\" [style.z-index]=\"zIndex\">\n <section\n #dialogPanel\n class=\"sdc-modal\"\n [ngClass]=\"styleClass\"\n [class.sdc-modal--maximized]=\"isMaximized\"\n [class.sdc-modal--resizable]=\"resizable && !isMaximized\"\n [class.sdc-modal--responsive]=\"responsive\"\n [ngStyle]=\"dialogStyles\"\n role=\"dialog\"\n tabindex=\"-1\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-describedby]=\"contentId\"\n >\n <header class=\"sdc-modal__header\">\n <div class=\"sdc-modal__title\" [id]=\"headerId\">\n {{ header | translate }}\n </div>\n\n <div class=\"sdc-modal__header-actions\">\n @for (action of headerActions; track action.id || action.label; let i = $index) {\n <sdc-button\n class=\"sdc-modal__header-action\"\n [id]=\"action.id ?? 'modal-header-action-' + i\"\n [label]=\"action.label | translate\"\n [icon]=\"action.icon\"\n [disabled]=\"action.disabled ?? false\"\n [priority]=\"action.severity ? mapButtonPriority(action.severity) : 'outline'\"\n (click)=\"onFooterButtonClick(action.action)\"\n (keydown.enter)=\"onFooterButtonClick(action.action)\"\n [attr.aria-label]=\"(action.label | translate) + ' - ' + (header | translate)\"\n ></sdc-button>\n }\n\n @if (maximizable) {\n <button\n type=\"button\"\n class=\"sdc-modal__icon-button\"\n (click)=\"toggleMaximize()\"\n [attr.aria-label]=\"(\n isMaximized ? 'platform.datacore.modal.restore_size' : 'platform.datacore.modal.maximize'\n ) | translate\"\n >\n @if (!isMaximized) {\n <svg class=\"sdc-modal__icon sdc-modal__icon--maximize\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M6 3.5H3.5V6\" />\n <path d=\"M10 3.5h2.5V6\" />\n <path d=\"M12.5 10v2.5H10\" />\n <path d=\"M6 12.5H3.5V10\" />\n </svg>\n } @else {\n <svg class=\"sdc-modal__icon sdc-modal__icon--maximize\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M5.5 3.5H3.5V5.5\" />\n <path d=\"M10.5 3.5h2v2\" />\n <path d=\"M12.5 10.5v2h-2\" />\n <path d=\"M5.5 12.5h-2v-2\" />\n </svg>\n }\n </button>\n }\n\n @if (closable) {\n <button\n type=\"button\"\n class=\"sdc-modal__icon-button\"\n (click)=\"close()\"\n [attr.aria-label]=\"'platform.datacore.modal.close' | translate\"\n >\n <svg class=\"sdc-modal__icon sdc-modal__icon--close\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M5 5 11 11\" />\n <path d=\"M11 5 5 11\" />\n </svg>\n </button>\n }\n </div>\n </header>\n\n <div class=\"sdc-modal__content\" [id]=\"contentId\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"sdc-modal__footer\" [attr.aria-label]=\"'platform.datacore.accessibility.modal_footer' | translate\">\n <ng-content select=\"[footer]\"></ng-content>\n\n @for (btn of footerButtons; track btn.id || btn.label) {\n <sdc-button\n [id]=\"btn.id ?? 'modal-footer-button'\"\n [label]=\"btn.label\"\n [icon]=\"btn.icon\"\n [disabled]=\"btn.disabled ?? false\"\n [priority]=\"mapButtonPriority(btn.severity)\"\n (click)=\"onFooterButtonClick(btn.action)\"\n [attr.aria-label]=\"btn.label | translate\"\n ></sdc-button>\n }\n </div>\n </section>\n </div>\n</ng-template>\n\n<ng-template cdkPortal>\n <ng-container *ngTemplateOutlet=\"modalTemplate\"></ng-container>\n</ng-template>\n\n@if (!appendToBody && visible) {\n <ng-container *ngTemplateOutlet=\"modalTemplate\"></ng-container>\n}\n", styles: [":host{display:contents}.sdc-modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--sdc-modal-backdrop-padding);background:var(--sdc-modal-backdrop-bg)}.sdc-modal{display:flex;flex-direction:column;width:min(100%,var(--sdc-modal-width));max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);background:var(--sdc-modal-bg);border:1px solid var(--sdc-modal-border-color);border-radius:var(--sdc-modal-border-radius);box-shadow:var(--sdc-modal-shadow);overflow:hidden;color:var(--sdc-modal-text-color);outline:none}.sdc-modal--responsive{width:min(100%,var(--sdc-modal-width-responsive))}.sdc-modal--maximized{width:calc(100vw - 32px)!important;height:calc(100vh - 32px)!important;max-width:none;max-height:none}.sdc-modal--resizable{resize:both;overflow:auto;min-width:480px;min-height:280px}.sdc-modal__header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:var(--sdc-modal-header-padding);background:var(--sdc-modal-bg)}.sdc-modal__header:after{content:\"\";position:absolute;left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset);bottom:0;height:1px;background:var(--sdc-modal-divider-color)}.sdc-modal__title{min-width:0;color:var(--sdc-modal-title-color);font-size:var(--sdc-modal-title-font-size);font-weight:var(--sdc-modal-title-font-weight);line-height:var(--sdc-modal-title-line-height);letter-spacing:0;text-transform:uppercase}.sdc-modal__header-actions{display:flex;align-items:center;gap:var(--sdc-modal-header-actions-gap);flex-shrink:0}.sdc-modal__icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-modal-icon-button-size);height:var(--sdc-modal-icon-button-size);padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background-color .2s ease}.sdc-modal__icon-button:hover{background:var(--sdc-modal-icon-button-hover-bg)}.sdc-modal__icon-button:focus-visible{outline:var(--sdc-focus-outline);outline-offset:2px}.sdc-modal__icon{display:block;fill:none;stroke:var(--sdc-modal-icon-color);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sdc-modal__icon path{fill:none;stroke:var(--sdc-modal-icon-color);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sdc-modal__icon--maximize{width:var(--sdc-modal-icon-maximize-size);height:var(--sdc-modal-icon-maximize-size)}.sdc-modal__icon--maximize path{stroke-width:var(--sdc-modal-icon-maximize-stroke-width)}.sdc-modal__icon--close{width:var(--sdc-modal-icon-close-size);height:var(--sdc-modal-icon-close-size)}.sdc-modal__icon--close path{stroke-width:var(--sdc-modal-icon-close-stroke-width)}.sdc-modal__content{flex:1 1 auto;padding:var(--sdc-modal-content-padding);overflow:auto;background:var(--sdc-modal-bg)}.sdc-modal__footer{position:relative;display:flex;flex-direction:row-reverse;flex-wrap:wrap;gap:10px;padding:var(--sdc-modal-footer-padding);background:var(--sdc-modal-bg)}.sdc-modal__footer:before{content:\"\";position:absolute;left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset);top:0;height:1px;background:var(--sdc-modal-divider-color)}.sdc-modal__footer:empty{display:none}.sdc-modal__action-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sdc-modal-button-gap);min-height:var(--sdc-modal-button-min-height);padding:0 var(--sdc-modal-button-padding-x);border-radius:var(--sdc-modal-button-border-radius);border:1px solid transparent;font-size:var(--sdc-modal-button-font-size);font-weight:var(--sdc-modal-button-font-weight);line-height:var(--sdc-modal-button-line-height);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.sdc-modal__action-button:focus-visible{outline:var(--sdc-focus-outline);outline-offset:2px}.sdc-modal__action-button:disabled{opacity:.6;cursor:not-allowed}.sdc-modal__action-button--primary{background:var(--sdc-modal-button-primary-bg);border-color:var(--sdc-modal-button-primary-border);color:var(--sdc-modal-button-primary-color)}.sdc-modal__action-button--primary:hover{background:var(--sdc-modal-button-primary-hover-bg);border-color:var(--sdc-modal-button-primary-hover-border)}.sdc-modal__action-button--secondary{background:var(--sdc-modal-button-secondary-bg);border-color:var(--sdc-modal-button-secondary-border);color:var(--sdc-modal-button-secondary-color)}.sdc-modal__action-button--secondary:hover{background:var(--sdc-modal-button-secondary-hover-bg);border-color:var(--sdc-modal-button-secondary-hover-border)}.sdc-modal__action-button--success{background:var(--sdc-modal-button-success-bg);border-color:var(--sdc-modal-button-success-border);color:var(--sdc-modal-button-success-color)}.sdc-modal__action-button--success:hover{background:var(--sdc-modal-button-success-hover-bg);border-color:var(--sdc-modal-button-success-hover-border)}.sdc-modal__action-button--info{background:var(--sdc-modal-button-info-bg);border-color:var(--sdc-modal-button-info-border);color:var(--sdc-modal-button-info-color)}.sdc-modal__action-button--info:hover{background:var(--sdc-modal-button-info-hover-bg);border-color:var(--sdc-modal-button-info-hover-border)}.sdc-modal__action-button--warning{background:var(--sdc-modal-button-warning-bg);border-color:var(--sdc-modal-button-warning-border);color:var(--sdc-modal-button-warning-color)}.sdc-modal__action-button--warning:hover{background:var(--sdc-modal-button-warning-hover-bg);border-color:var(--sdc-modal-button-warning-hover-border)}.sdc-modal__action-button--danger{background:var(--sdc-modal-button-danger-bg);border-color:var(--sdc-modal-button-danger-border);color:var(--sdc-modal-button-danger-color)}.sdc-modal__action-button--danger:hover{background:var(--sdc-modal-button-danger-hover-bg);border-color:var(--sdc-modal-button-danger-hover-border)}.sdc-modal__action-button--contrast{background:var(--sdc-modal-button-contrast-bg);border-color:var(--sdc-modal-button-contrast-border);color:var(--sdc-modal-button-contrast-color)}.sdc-modal__action-button--contrast:hover{background:var(--sdc-modal-button-contrast-hover-bg);border-color:var(--sdc-modal-button-contrast-hover-border)}.sdc-modal__action-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .sdc-modal__content>:first-child{margin-top:0}:host ::ng-deep .sdc-modal__content>:last-child{margin-bottom:0}:host ::ng-deep .sdc-modal__content p{margin:0 0 16px;color:var(--sdc-modal-content-text-color);font-size:var(--sdc-modal-content-font-size);line-height:var(--sdc-modal-content-line-height)}:host ::ng-deep .sdc-modal__content table{width:100%;border-collapse:collapse;background:var(--sdc-modal-bg)}:host ::ng-deep .sdc-modal__content thead th{padding:12px 10px;border-bottom:1px solid var(--sdc-modal-table-head-border-color);color:var(--sdc-modal-table-head-color);font-size:13px;font-weight:600;text-align:left;background:var(--sdc-modal-bg)}:host ::ng-deep .sdc-modal__content tbody td{padding:10px;border-bottom:1px solid var(--sdc-modal-table-cell-border-color);color:var(--sdc-modal-table-cell-color);font-size:14px;vertical-align:middle}:host ::ng-deep .sdc-modal__content tbody tr:hover{background:var(--sdc-modal-table-row-hover-bg)}@media (max-width: 768px){.sdc-modal-backdrop{padding:var(--sdc-modal-backdrop-padding-mobile)}.sdc-modal{width:100%;max-width:100%;max-height:calc(100vh - 24px)}.sdc-modal__header,.sdc-modal__content,.sdc-modal__footer{padding-left:var(--sdc-modal-divider-inset);padding-right:var(--sdc-modal-divider-inset)}.sdc-modal__header:after,.sdc-modal__footer:before{left:var(--sdc-modal-divider-inset);right:var(--sdc-modal-divider-inset)}}\n"] }]
|
|
203
204
|
}], propDecorators: { dialogPanel: [{
|
|
204
205
|
type: ViewChild,
|
|
205
206
|
args: ['dialogPanel']
|
|
@@ -208,6 +209,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
208
209
|
args: [CdkPortal]
|
|
209
210
|
}], footerButtons: [{
|
|
210
211
|
type: Input
|
|
212
|
+
}], headerActions: [{
|
|
213
|
+
type: Input
|
|
211
214
|
}], header: [{
|
|
212
215
|
type: Input
|
|
213
216
|
}], height: [{
|
|
@@ -241,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
241
244
|
type: HostListener,
|
|
242
245
|
args: ['document:keydown', ['$event']]
|
|
243
246
|
}] } });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDZCxNQUFNLGtDQUFrQyxDQUFDO0FBSTFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFB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NEZBQWQsY0FBYyxnV0FlTCxnQkFBZ0IsbVVBYnpCLFNBQVMsZ0RDekR0QixzOEdBK0ZBLDRrUERoRFksU0FBUyxnRkFBRSxZQUFZLHdYQUFFLGVBQWUsNEZBQUUsZUFBZTs7NEZBUXhELGNBQWM7a0JBVDFCLFNBQVM7OEJBQ0MsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsY0FDeEQsSUFBSSxZQUNOLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHZixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsVUFBVTtzQkFBL0IsU0FBUzt1QkFBQyxTQUFTO2dCQUVYLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNzQyxZQUFZO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVU1QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFZTSxPQUFPO3NCQUFuQixLQUFLO2dCQThGTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWwsIERvbVBvcnRhbE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIERFRkFVTFRfTU9EQUxfQVBQRU5EX1RPX0JPRFksXG4gIERFRkFVTFRfTU9EQUxfQ0xPU0FCTEUsXG4gIERFRkFVTFRfTU9EQUxfRk9PVEVSX0JVVFRPTlMsXG4gIERFRkFVTFRfTU9EQUxfSEVBREVSLFxuICBERUZBVUxUX01PREFMX0hFSUdIVCxcbiAgREVGQVVMVF9NT0RBTF9JRF9QUkVGSVgsXG4gIERFRkFVTFRfTU9EQUxfTUFYSU1JWkFCTEUsXG4gIERFRkFVTFRfTU9EQUxfTUFYSU1JWkUsXG4gIERFRkFVTFRfTU9EQUxfUkVTUE9OU0lWRSxcbiAgREVGQVVMVF9NT0RBTF9SRVNJWkFCTEUsXG4gIERFRkFVTFRfTU9EQUxfV0lEVEgsXG4gIERFRkFVTFRfTU9EQUxfWl9JTkRFWCxcbiAgTU9EQUxfQk9EWV9PVkVSRkxPV19ISURERU4sXG4gIE1PREFMX0JPRFlfT1ZFUkZMT1dfUFJPUEVSVFksXG4gIE1PREFMX0VTQ0FQRV9LRVksXG4gIE1PREFMX1RBQl9LRVlcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvbW9kYWwuY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvYnV0dG9uLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvbW9kYWwudHlwZSc7XG5pbXBvcnQgdHlwZSB7IERpbWVuc2lvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHsgZ2V0RGltZW5zaW9uU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBmb2N1c0ZpcnN0RGVzY2VuZGFudCwgcmVzdG9yZUZvY3VzLCB0cmFwRm9jdXNJbkNvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZm9jdXMudXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtDZGtQb3J0YWwsIENvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBCdXR0b25Db21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1BhbmVsJykgZGlhbG9nUGFuZWw/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZChDZGtQb3J0YWwpIGJvZHlQb3J0YWw/OiBDZGtQb3J0YWw7XG5cbiAgQElucHV0KCkgZm9vdGVyQnV0dG9uczogTW9kYWxCdXR0b25bXSA9IERFRkFVTFRfTU9EQUxfRk9PVEVSX0JVVFRPTlM7XG4gIEBJbnB1dCgpIGhlYWRlciA9IERFRkFVTFRfTU9EQUxfSEVBREVSO1xuICBASW5wdXQoKSBoZWlnaHQ6IERpbWVuc2lvbiA9IERFRkFVTFRfTU9EQUxfSEVJR0hUO1xuICBASW5wdXQoKSBtYXhpbWl6YWJsZSA9IERFRkFVTFRfTU9EQUxfTUFYSU1JWkFCTEU7XG4gIEBJbnB1dCgpIG1heGltaXplID0gREVGQVVMVF9NT0RBTF9NQVhJTUlaRTtcbiAgQElucHV0KCkgcmVzaXphYmxlID0gREVGQVVMVF9NT0RBTF9SRVNJWkFCTEU7XG4gIEBJbnB1dCgpIHJlc3BvbnNpdmUgPSBERUZBVUxUX01PREFMX1JFU1BPTlNJVkU7XG4gIEBJbnB1dCgpIHdpZHRoOiBEaW1lbnNpb24gPSBERUZBVUxUX01PREFMX1dJRFRIO1xuICBASW5wdXQoKSB6SW5kZXggPSBERUZBVUxUX01PREFMX1pfSU5ERVg7XG4gIEBJbnB1dCgpIGNsb3NhYmxlID0gREVGQVVMVF9NT0RBTF9DTE9TQUJMRTtcbiAgQElucHV0KCkgc3R5bGVDbGFzcyA9ICcnO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2V0IGFwcGVuZFRvQm9keSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuJGFwcGVuZFRvQm9keSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuc3luY0JvZHlQb3J0YWwoKSk7XG4gIH1cblxuICBnZXQgYXBwZW5kVG9Cb2R5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiRhcHBlbmRUb0JvZHk7XG4gIH1cblxuICBAT3V0cHV0KCkgaGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSBtb2RhbElkID0gbmV4dFNlcXVlbnRpYWxJZChERUZBVUxUX01PREFMX0lEX1BSRUZJWCk7XG4gIHJlYWRvbmx5IGhlYWRlcklkID0gYCR7dGhpcy5tb2RhbElkfS1oZWFkZXJgO1xuICByZWFkb25seSBjb250ZW50SWQgPSBgJHt0aGlzLm1vZGFsSWR9LWNvbnRlbnRgO1xuXG4gIGlzTWF4aW1pemVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBwcmV2aW91c0ZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuJHZpc2libGUgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudFxuICAgICAgICA/IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudFxuICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy4kdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMuaXNNYXhpbWl6ZWQgPSB2YWx1ZSAmJiB0aGlzLm1heGltaXplO1xuICAgIHRoaXMudG9nZ2xlQm9keVNjcm9sbCh2YWx1ZSk7XG5cbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNCb2R5UG9ydGFsKCk7XG5cbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLmZvY3VzRGlhbG9nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiR2aXNpYmxlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLnN5bmNCb2R5UG9ydGFsKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hCb2R5UG9ydGFsKCk7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKGZhbHNlKTtcbiAgfVxuXG4gIGdldCBkaWFsb2dTdHlsZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmdldERpbWVuc2lvblN0eWxlcygnd2lkdGgnLCB0aGlzLndpZHRoKSxcbiAgICAgIC4uLmdldERpbWVuc2lvblN0eWxlcygnaGVpZ2h0JywgdGhpcy5oZWlnaHQpXG4gICAgfTtcbiAgfVxuXG4gIG1hcEJ1dHRvblByaW9yaXR5KHNldmVyaXR5PzogTW9kYWxCdXR0b25bJ3NldmVyaXR5J10pOiBCdXR0b25Qcmlvcml0eSB7XG4gICAgaWYgKHNldmVyaXR5ID09PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgcmV0dXJuICdzZWNvbmRhcnknO1xuICAgIH1cblxuICAgIGlmIChzZXZlcml0eSA9PT0gJ2RhbmdlcicpIHtcbiAgICAgIHJldHVybiAnZGFuZ2VyJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ3ByaW1hcnknO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiR2aXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5pc01heGltaXplZCA9IGZhbHNlO1xuICAgIHRoaXMudG9nZ2xlQm9keVNjcm9sbChmYWxzZSk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jQm9keVBvcnRhbCgpO1xuICAgICAgcmVzdG9yZUZvY3VzKHRoaXMucHJldmlvdXNGb2N1c2VkRWxlbWVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuaGlkZGVuLmVtaXQoKTtcbiAgfVxuXG4gIHRvZ2dsZU1heGltaXplKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tYXhpbWl6YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNNYXhpbWl6ZWQgPSAhdGhpcy5pc01heGltaXplZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLmZvY3VzRGlhbG9nKCkpO1xuICB9XG5cbiAgb25Gb290ZXJCdXR0b25DbGljayhhY3Rpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBhY3Rpb24oKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gTU9EQUxfRVNDQVBFX0tFWSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgaWYgKHRoaXMuY2xvc2FibGUpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gTU9EQUxfVEFCX0tFWSkge1xuICAgICAgdGhpcy50cmFwRm9jdXMoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEaWFsb2coKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5nZXREaWFsb2dFbGVtZW50KCk7XG5cbiAgICBpZiAoIWRpYWxvZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvY3VzRmlyc3REZXNjZW5kYW50KGRpYWxvZywgZGlhbG9nKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlQm9keVNjcm9sbCh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIHRoaXMucHJldmlvdXNCb2R5T3ZlcmZsb3cgPSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSwgTU9EQUxfQk9EWV9PVkVSRkxPV19ISURERU4pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXZpb3VzQm9keU92ZXJmbG93KSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSwgdGhpcy5wcmV2aW91c0JvZHlPdmVyZmxvdyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnJlbW92ZVByb3BlcnR5KE1PREFMX0JPRFlfT1ZFUkZMT1dfUFJPUEVSVFkpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFwRm9jdXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldERpYWxvZ0VsZW1lbnQoKTtcblxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyYXBGb2N1c0luQ29udGFpbmVyKGV2ZW50LCBjb250YWluZXIsIHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGwsIGNvbnRhaW5lcik7XG4gIH1cblxuICBwcml2YXRlIGdldERpYWxvZ0VsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dQYW5lbD8ubmF0aXZlRWxlbWVudFxuICAgICAgPz8gKHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5oZWFkZXJJZCk/LmNsb3Nlc3QoJy5zZGMtbW9kYWwnKSBhcyBIVE1MRWxlbWVudCB8IG51bGwpXG4gICAgICA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jQm9keVBvcnRhbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlld0luaXRpYWxpemVkIHx8ICF0aGlzLmJvZHlQb3J0YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYXBwZW5kVG9Cb2R5IHx8ICF0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMuZGV0YWNoQm9keVBvcnRhbCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG91dGxldCA9IHRoaXMuZW5zdXJlQm9keVBvcnRhbE91dGxldCgpO1xuXG4gICAgaWYgKCFvdXRsZXQuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgb3V0bGV0LmF0dGFjaCh0aGlzLmJvZHlQb3J0YWwpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLmZvY3VzRGlhbG9nKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlQm9keVBvcnRhbE91dGxldCgpOiBEb21Qb3J0YWxPdXRsZXQge1xuICAgIGlmICghdGhpcy5ib2R5UG9ydGFsT3V0bGV0KSB7XG4gICAgICB0aGlzLmJvZHlQb3J0YWxPdXRsZXQgPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHksXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHRoaXMuZG9jdW1lbnRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYm9keVBvcnRhbE91dGxldDtcbiAgfVxuXG4gIHByaXZhdGUgZGV0YWNoQm9keVBvcnRhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ib2R5UG9ydGFsT3V0bGV0Py5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aGlzLmJvZHlQb3J0YWxPdXRsZXQuZGV0YWNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSAkdmlzaWJsZSA9IGZhbHNlO1xuICBwcml2YXRlICRhcHBlbmRUb0JvZHkgPSBERUZBVUxUX01PREFMX0FQUEVORF9UT19CT0RZO1xuICBwcml2YXRlIHByZXZpb3VzQm9keU92ZXJmbG93ID0gJyc7XG4gIHByaXZhdGUgdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgYm9keVBvcnRhbE91dGxldD86IERvbVBvcnRhbE91dGxldDtcbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbW9kYWxUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInNkYy1tb2RhbC1iYWNrZHJvcFwiIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiPlxuICAgIDxzZWN0aW9uXG4gICAgICAjZGlhbG9nUGFuZWxcbiAgICAgIGNsYXNzPVwic2RjLW1vZGFsXCJcbiAgICAgIFtuZ0NsYXNzXT1cInN0eWxlQ2xhc3NcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tbWF4aW1pemVkXT1cImlzTWF4aW1pemVkXCJcbiAgICAgIFtjbGFzcy5zZGMtbW9kYWwtLXJlc2l6YWJsZV09XCJyZXNpemFibGUgJiYgIWlzTWF4aW1pemVkXCJcbiAgICAgIFtjbGFzcy5zZGMtbW9kYWwtLXJlc3BvbnNpdmVdPVwicmVzcG9uc2l2ZVwiXG4gICAgICBbbmdTdHlsZV09XCJkaWFsb2dTdHlsZXNcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIFthdHRyLmFyaWEtbW9kYWxdPVwidHJ1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaGVhZGVySWRcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJjb250ZW50SWRcIlxuICAgID5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJzZGMtbW9kYWxfX2hlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX190aXRsZVwiIFtpZF09XCJoZWFkZXJJZFwiPlxuICAgICAgICAgIHt7IGhlYWRlciB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX19oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgIEBpZiAobWF4aW1pemFibGUpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2RjLW1vZGFsX19pY29uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNYXhpbWl6ZSgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoXG4gICAgICAgICAgICAgICAgaXNNYXhpbWl6ZWQgPyAncGxhdGZvcm0uZGF0YWNvcmUubW9kYWwucmVzdG9yZV9zaXplJyA6ICdwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5tYXhpbWl6ZSdcbiAgICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoIWlzTWF4aW1pemVkKSB7XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLW1heGltaXplXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDMuNUgzLjVWNlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDMuNWgyLjVWNlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUgMTB2Mi41SDEwXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiAxMi41SDMuNVYxMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24gc2RjLW1vZGFsX19pY29uLS1tYXhpbWl6ZVwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS41IDMuNUgzLjVWNS41XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuNSAzLjVoMnYyXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMC41djJoLTJcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjUgMTIuNWgtMnYtMlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAoY2xvc2FibGUpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2RjLW1vZGFsX19pY29uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUubW9kYWwuY2xvc2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLWNsb3NlXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA1IDExIDExXCIgLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExIDUgNSAxMVwiIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX19jb250ZW50XCIgW2lkXT1cImNvbnRlbnRJZFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1tb2RhbF9fZm9vdGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5tb2RhbF9mb290ZXInIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIEBmb3IgKGJ0biBvZiBmb290ZXJCdXR0b25zOyB0cmFjayBidG4uaWQgfHwgYnRuLmxhYmVsKSB7XG4gICAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAgIFtpZF09XCJidG4uaWQgPz8gJ21vZGFsLWZvb3Rlci1idXR0b24nXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWxcIlxuICAgICAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgICBbcHJpb3JpdHldPVwibWFwQnV0dG9uUHJpb3JpdHkoYnRuLnNldmVyaXR5KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Gb290ZXJCdXR0b25DbGljayhidG4uYWN0aW9uKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgPjwvc2RjLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBjZGtQb3J0YWw+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKCFhcHBlbmRUb0JvZHkgJiYgdmlzaWJsZSkge1xuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kYWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxufVxuIl19
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDZCxNQUFNLGtDQUFrQyxDQUFDO0FBSTFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFB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LGdCQUFnQixDQUFtQjt3R0E1T2hDLGNBQWM7NEZBQWQsY0FBYyxnWUFnQkwsZ0JBQWdCLG1VQWR6QixTQUFTLGdEQ3pEdEIsNHFJQTZHQSw0a1BEOURZLFNBQVMsZ0ZBQUUsWUFBWSx3WEFBRSxlQUFlLDRGQUFFLGVBQWU7OzRGQVF4RCxjQUFjO2tCQVQxQixTQUFTOzhCQUNDLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLGNBQ3hELElBQUksWUFDTixXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBR2YsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNGLFVBQVU7c0JBQS9CLFNBQVM7dUJBQUMsU0FBUztnQkFFWCxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNzQyxZQUFZO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVU1QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFZTSxPQUFPO3NCQUFuQixLQUFLO2dCQThGTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWwsIERvbVBvcnRhbE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIERFRkFVTFRfTU9EQUxfQVBQRU5EX1RPX0JPRFksXG4gIERFRkFVTFRfTU9EQUxfQ0xPU0FCTEUsXG4gIERFRkFVTFRfTU9EQUxfRk9PVEVSX0JVVFRPTlMsXG4gIERFRkFVTFRfTU9EQUxfSEVBREVSLFxuICBERUZBVUxUX01PREFMX0hFSUdIVCxcbiAgREVGQVVMVF9NT0RBTF9JRF9QUkVGSVgsXG4gIERFRkFVTFRfTU9EQUxfTUFYSU1JWkFCTEUsXG4gIERFRkFVTFRfTU9EQUxfTUFYSU1JWkUsXG4gIERFRkFVTFRfTU9EQUxfUkVTUE9OU0lWRSxcbiAgREVGQVVMVF9NT0RBTF9SRVNJWkFCTEUsXG4gIERFRkFVTFRfTU9EQUxfV0lEVEgsXG4gIERFRkFVTFRfTU9EQUxfWl9JTkRFWCxcbiAgTU9EQUxfQk9EWV9PVkVSRkxPV19ISURERU4sXG4gIE1PREFMX0JPRFlfT1ZFUkZMT1dfUFJPUEVSVFksXG4gIE1PREFMX0VTQ0FQRV9LRVksXG4gIE1PREFMX1RBQl9LRVlcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvbW9kYWwuY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvYnV0dG9uLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvbW9kYWwudHlwZSc7XG5pbXBvcnQgdHlwZSB7IERpbWVuc2lvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHsgZ2V0RGltZW5zaW9uU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBmb2N1c0ZpcnN0RGVzY2VuZGFudCwgcmVzdG9yZUZvY3VzLCB0cmFwRm9jdXNJbkNvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZm9jdXMudXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtDZGtQb3J0YWwsIENvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBCdXR0b25Db21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1BhbmVsJykgZGlhbG9nUGFuZWw/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZChDZGtQb3J0YWwpIGJvZHlQb3J0YWw/OiBDZGtQb3J0YWw7XG5cbiAgQElucHV0KCkgZm9vdGVyQnV0dG9uczogTW9kYWxCdXR0b25bXSA9IERFRkFVTFRfTU9EQUxfRk9PVEVSX0JVVFRPTlM7XG4gIEBJbnB1dCgpIGhlYWRlckFjdGlvbnM6IE1vZGFsQnV0dG9uW10gPSBbXTtcbiAgQElucHV0KCkgaGVhZGVyID0gREVGQVVMVF9NT0RBTF9IRUFERVI7XG4gIEBJbnB1dCgpIGhlaWdodDogRGltZW5zaW9uID0gREVGQVVMVF9NT0RBTF9IRUlHSFQ7XG4gIEBJbnB1dCgpIG1heGltaXphYmxlID0gREVGQVVMVF9NT0RBTF9NQVhJTUlaQUJMRTtcbiAgQElucHV0KCkgbWF4aW1pemUgPSBERUZBVUxUX01PREFMX01BWElNSVpFO1xuICBASW5wdXQoKSByZXNpemFibGUgPSBERUZBVUxUX01PREFMX1JFU0laQUJMRTtcbiAgQElucHV0KCkgcmVzcG9uc2l2ZSA9IERFRkFVTFRfTU9EQUxfUkVTUE9OU0lWRTtcbiAgQElucHV0KCkgd2lkdGg6IERpbWVuc2lvbiA9IERFRkFVTFRfTU9EQUxfV0lEVEg7XG4gIEBJbnB1dCgpIHpJbmRleCA9IERFRkFVTFRfTU9EQUxfWl9JTkRFWDtcbiAgQElucHV0KCkgY2xvc2FibGUgPSBERUZBVUxUX01PREFMX0NMT1NBQkxFO1xuICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzZXQgYXBwZW5kVG9Cb2R5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4kYXBwZW5kVG9Cb2R5ID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5zeW5jQm9keVBvcnRhbCgpKTtcbiAgfVxuXG4gIGdldCBhcHBlbmRUb0JvZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuJGFwcGVuZFRvQm9keTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBoaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IG1vZGFsSWQgPSBuZXh0U2VxdWVudGlhbElkKERFRkFVTFRfTU9EQUxfSURfUFJFRklYKTtcbiAgcmVhZG9ubHkgaGVhZGVySWQgPSBgJHt0aGlzLm1vZGFsSWR9LWhlYWRlcmA7XG4gIHJlYWRvbmx5IGNvbnRlbnRJZCA9IGAke3RoaXMubW9kYWxJZH0tY29udGVudGA7XG5cbiAgaXNNYXhpbWl6ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHByZXZpb3VzRm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy4kdmlzaWJsZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMucHJldmlvdXNGb2N1c2VkRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50XG4gICAgICAgID8gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLiR2aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy5pc01heGltaXplZCA9IHZhbHVlICYmIHRoaXMubWF4aW1pemU7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKHZhbHVlKTtcblxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRoaXMuc3luY0JvZHlQb3J0YWwoKTtcblxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9jdXNEaWFsb2coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3RvcmVGb2N1cyh0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuJHZpc2libGU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuc3luY0JvZHlQb3J0YWwoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFjaEJvZHlQb3J0YWwoKTtcbiAgICB0aGlzLnRvZ2dsZUJvZHlTY3JvbGwoZmFsc2UpO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ1N0eWxlcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ2V0RGltZW5zaW9uU3R5bGVzKCd3aWR0aCcsIHRoaXMud2lkdGgpLFxuICAgICAgLi4uZ2V0RGltZW5zaW9uU3R5bGVzKCdoZWlnaHQnLCB0aGlzLmhlaWdodClcbiAgICB9O1xuICB9XG5cbiAgbWFwQnV0dG9uUHJpb3JpdHkoc2V2ZXJpdHk/OiBNb2RhbEJ1dHRvblsnc2V2ZXJpdHknXSk6IEJ1dHRvblByaW9yaXR5IHtcbiAgICBpZiAoc2V2ZXJpdHkgPT09ICdzZWNvbmRhcnknKSB7XG4gICAgICByZXR1cm4gJ3NlY29uZGFyeSc7XG4gICAgfVxuXG4gICAgaWYgKHNldmVyaXR5ID09PSAnZGFuZ2VyJykge1xuICAgICAgcmV0dXJuICdkYW5nZXInO1xuICAgIH1cblxuICAgIHJldHVybiAncHJpbWFyeSc7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuJHZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmlzTWF4aW1pemVkID0gZmFsc2U7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKGZhbHNlKTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNCb2R5UG9ydGFsKCk7XG4gICAgICByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5oaWRkZW4uZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlTWF4aW1pemUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1heGltaXphYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc01heGltaXplZCA9ICF0aGlzLmlzTWF4aW1pemVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNEaWFsb2coKSk7XG4gIH1cblxuICBvbkZvb3RlckJ1dHRvbkNsaWNrKGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGFjdGlvbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBNT0RBTF9FU0NBUEVfS0VZKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBpZiAodGhpcy5jbG9zYWJsZSkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBNT0RBTF9UQUJfS0VZKSB7XG4gICAgICB0aGlzLnRyYXBGb2N1cyhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0RpYWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmdldERpYWxvZ0VsZW1lbnQoKTtcblxuICAgIGlmICghZGlhbG9nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9jdXNGaXJzdERlc2NlbmRhbnQoZGlhbG9nLCBkaWFsb2cpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVCb2R5U2Nyb2xsKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgdGhpcy5wcmV2aW91c0JvZHlPdmVyZmxvdyA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShNT0RBTF9CT0RZX09WRVJGTE9XX1BST1BFUlRZLCBNT0RBTF9CT0RZX09WRVJGTE9XX0hJRERFTik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJldmlvdXNCb2R5T3ZlcmZsb3cpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShNT0RBTF9CT0RZX09WRVJGTE9XX1BST1BFUlRZLCB0aGlzLnByZXZpb3VzQm9keU92ZXJmbG93KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSk7XG4gIH1cblxuICBwcml2YXRlIHRyYXBGb2N1cyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0RGlhbG9nRWxlbWVudCgpO1xuXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJhcEZvY3VzSW5Db250YWluZXIoZXZlbnQsIGNvbnRhaW5lciwgdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbCwgY29udGFpbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlhbG9nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZ1BhbmVsPy5uYXRpdmVFbGVtZW50XG4gICAgICA/PyAodGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmhlYWRlcklkKT8uY2xvc2VzdCgnLnNkYy1tb2RhbCcpIGFzIEhUTUxFbGVtZW50IHwgbnVsbClcbiAgICAgID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHN5bmNCb2R5UG9ydGFsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuYm9keVBvcnRhbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hcHBlbmRUb0JvZHkgfHwgIXRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy5kZXRhY2hCb2R5UG9ydGFsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0bGV0ID0gdGhpcy5lbnN1cmVCb2R5UG9ydGFsT3V0bGV0KCk7XG5cbiAgICBpZiAoIW91dGxldC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICBvdXRsZXQuYXR0YWNoKHRoaXMuYm9keVBvcnRhbCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNEaWFsb2coKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVCb2R5UG9ydGFsT3V0bGV0KCk6IERvbVBvcnRhbE91dGxldCB7XG4gICAgaWYgKCF0aGlzLmJvZHlQb3J0YWxPdXRsZXQpIHtcbiAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdGhpcy5kb2N1bWVudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ib2R5UG9ydGFsT3V0bGV0O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hCb2R5UG9ydGFsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJvZHlQb3J0YWxPdXRsZXQ/Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldC5kZXRhY2goKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlICR2aXNpYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgJGFwcGVuZFRvQm9keSA9IERFRkFVTFRfTU9EQUxfQVBQRU5EX1RPX0JPRFk7XG4gIHByaXZhdGUgcHJldmlvdXNCb2R5T3ZlcmZsb3cgPSAnJztcbiAgcHJpdmF0ZSB2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBib2R5UG9ydGFsT3V0bGV0PzogRG9tUG9ydGFsT3V0bGV0O1xufVxuIiwiPG5nLXRlbXBsYXRlICNtb2RhbFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsLWJhY2tkcm9wXCIgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4XCI+XG4gICAgPHNlY3Rpb25cbiAgICAgICNkaWFsb2dQYW5lbFxuICAgICAgY2xhc3M9XCJzZGMtbW9kYWxcIlxuICAgICAgW25nQ2xhc3NdPVwic3R5bGVDbGFzc1wiXG4gICAgICBbY2xhc3Muc2RjLW1vZGFsLS1tYXhpbWl6ZWRdPVwiaXNNYXhpbWl6ZWRcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tcmVzaXphYmxlXT1cInJlc2l6YWJsZSAmJiAhaXNNYXhpbWl6ZWRcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tcmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCJcbiAgICAgIFtuZ1N0eWxlXT1cImRpYWxvZ1N0eWxlc1wiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJ0cnVlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJoZWFkZXJJZFwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImNvbnRlbnRJZFwiXG4gICAgPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInNkYy1tb2RhbF9faGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX3RpdGxlXCIgW2lkXT1cImhlYWRlcklkXCI+XG4gICAgICAgICAge3sgaGVhZGVyIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX2hlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGhlYWRlckFjdGlvbnM7IHRyYWNrIGFjdGlvbi5pZCB8fCBhY3Rpb24ubGFiZWw7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cInNkYy1tb2RhbF9faGVhZGVyLWFjdGlvblwiXG4gICAgICAgICAgICAgIFtpZF09XCJhY3Rpb24uaWQgPz8gJ21vZGFsLWhlYWRlci1hY3Rpb24tJyArIGlcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW2ljb25dPVwiYWN0aW9uLmljb25cIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgW3ByaW9yaXR5XT1cImFjdGlvbi5zZXZlcml0eSA/IG1hcEJ1dHRvblByaW9yaXR5KGFjdGlvbi5zZXZlcml0eSkgOiAnb3V0bGluZSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Gb290ZXJCdXR0b25DbGljayhhY3Rpb24uYWN0aW9uKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRm9vdGVyQnV0dG9uQ2xpY2soYWN0aW9uLmFjdGlvbilcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihhY3Rpb24ubGFiZWwgfCB0cmFuc2xhdGUpICsgJyAtICcgKyAoaGVhZGVyIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAobWF4aW1pemFibGUpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2RjLW1vZGFsX19pY29uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNYXhpbWl6ZSgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoXG4gICAgICAgICAgICAgICAgaXNNYXhpbWl6ZWQgPyAncGxhdGZvcm0uZGF0YWNvcmUubW9kYWwucmVzdG9yZV9zaXplJyA6ICdwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5tYXhpbWl6ZSdcbiAgICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoIWlzTWF4aW1pemVkKSB7XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLW1heGltaXplXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDMuNUgzLjVWNlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDMuNWgyLjVWNlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUgMTB2Mi41SDEwXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiAxMi41SDMuNVYxMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24gc2RjLW1vZGFsX19pY29uLS1tYXhpbWl6ZVwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS41IDMuNUgzLjVWNS41XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuNSAzLjVoMnYyXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMC41djJoLTJcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjUgMTIuNWgtMnYtMlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAoY2xvc2FibGUpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2RjLW1vZGFsX19pY29uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUubW9kYWwuY2xvc2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLWNsb3NlXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA1IDExIDExXCIgLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExIDUgNSAxMVwiIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX19jb250ZW50XCIgW2lkXT1cImNvbnRlbnRJZFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1tb2RhbF9fZm9vdGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5tb2RhbF9mb290ZXInIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIEBmb3IgKGJ0biBvZiBmb290ZXJCdXR0b25zOyB0cmFjayBidG4uaWQgfHwgYnRuLmxhYmVsKSB7XG4gICAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAgIFtpZF09XCJidG4uaWQgPz8gJ21vZGFsLWZvb3Rlci1idXR0b24nXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWxcIlxuICAgICAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgICBbcHJpb3JpdHldPVwibWFwQnV0dG9uUHJpb3JpdHkoYnRuLnNldmVyaXR5KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Gb290ZXJCdXR0b25DbGljayhidG4uYWN0aW9uKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgPjwvc2RjLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBjZGtQb3J0YWw+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKCFhcHBlbmRUb0JvZHkgJiYgdmlzaWJsZSkge1xuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kYWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxufVxuIl19
|
|
@@ -11,6 +11,7 @@ export class ModalcComponent {
|
|
|
11
11
|
containerRef;
|
|
12
12
|
title = MODALC_DEFAULT_TITLE_KEY;
|
|
13
13
|
footerButtons = [];
|
|
14
|
+
headerActions = [];
|
|
14
15
|
maximizable = false;
|
|
15
16
|
closeOnBackdrop = true;
|
|
16
17
|
set visible(v) {
|
|
@@ -126,11 +127,11 @@ export class ModalcComponent {
|
|
|
126
127
|
focusFirstDescendant(container, container);
|
|
127
128
|
}
|
|
128
129
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalcComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalcComponent, isStandalone: true, selector: "sdc-modalc", inputs: { title: "title", footerButtons: "footerButtons", maximizable: "maximizable", closeOnBackdrop: "closeOnBackdrop", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown": "onEsc($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }], ngImport: i0, template: "@if (_visible) {\n<dialog\n class=\"sdc-modalc modal\"\n [attr.open]=\"_visible ? '' : null\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"'modal-title-' + title\"\n [attr.aria-describedby]=\"'modal-body'\"\n (click)=\"onDialogClick($event)\"\n (keydown)=\"onDialogKeydown($event)\"\n (keydown.enter)=\"onDialogConfirmKey($event)\"\n (keydown.space)=\"onDialogConfirmKey($event)\"\n>\n <div\n #containerRef\n class=\"sdc-modalc__container modal-container\"\n [class.sdc-modalc__container--fullscreen]=\"_fullscreen\"\n [class.fullscreen]=\"_fullscreen\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n tabindex=\"-1\"\n >\n <header class=\"sdc-modalc__header modal-header\">\n <h2 class=\"sdc-modalc__title\" [id]=\"'modal-title-' + title\">{{ title | translate }}</h2>\n <div class=\"sdc-modalc__actions modal-actions\">\n @if (maximizable) {\n <button\n class=\"sdc-modalc__action sdc-modalc__action--expand expand-button\"\n type=\"button\"\n (click)=\"toggleFullscreen()\"\n [attr.aria-label]=\"\n (_fullscreen\n ? 'platform.datacore.accessibility.modal_restore'\n : 'platform.datacore.accessibility.modal_maximize'\n ) | translate\n \"\n >\n <i class=\"fal fa-expand-arrows\" aria-hidden=\"true\"></i>\n </button>\n }\n <button\n class=\"sdc-modalc__action sdc-modalc__action--close close-button\"\n type=\"button\"\n (click)=\"close()\"\n [attr.aria-label]=\"('platform.datacore.accessibility.modal_close' | translate) + ' - ' + (title | translate)\"\n >\n <i class=\"fal fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </header>\n\n <main class=\"sdc-modalc__body modal-body\" id=\"modal-body\">\n <ng-content></ng-content>\n </main>\n\n <footer class=\"sdc-modalc__footer modal-footer\">\n <div\n class=\"sdc-modalc__footer-actions footer-actions\"\n [attr.aria-label]=\"'platform.datacore.accessibility.modal_footer' | translate\"\n >\n <ng-content select=\"[footer]\"></ng-content>\n @for (btn of footerButtons; track btn.id || btn.label; let index = $index) {\n <sdc-button\n (onClick)=\"btn?.action?.()\"\n [id]=\"btn.id ?? 'modalc-footer-button-' + index\"\n [label]=\"btn.label\"\n [icon]=\"btn.icon\"\n [disabled]=\"btn.disabled ?? false\"\n [priority]=\"mapButtonPriority(btn.severity)\"\n [ariaLabel]=\"btn.label + ' - ' + title\"\n ></sdc-button>\n }\n </div>\n </footer>\n </div>\n</dialog>\n}\n", styles: [".sdc-modalc{position:fixed;inset:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--sdc-modal-backdrop-bg, rgba(57, 66, 85, .32));z-index:var(--sdc-modal-z-index, 9999);padding:var(--sdc-modal-backdrop-padding, 24px)}.sdc-modalc__container{display:flex;flex-direction:column;width:100%;max-width:min(96vw,var(--sdc-modalc-max-width, 960px));max-height:min(90vh,var(--sdc-modalc-max-height, 90vh));overflow:hidden;box-sizing:border-box;border-radius:var(--sdc-modalc-radius, 8px);background:var(--sdc-modalc-bg, #ffffff);box-shadow:var(--sdc-modalc-shadow, 0 16px 40px rgba(15, 23, 42, .18));transition:transform var(--sdc-transition-medium, .3s ease),box-shadow var(--sdc-transition-medium, .3s ease)}.sdc-modalc__container--fullscreen{max-width:100vw!important;max-height:100vh!important;width:100vw!important;height:100vh!important;border-radius:0!important;box-shadow:none!important}.sdc-modalc__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 2rem 1rem;background:var(--sdc-modalc-bg, #ffffff);border-bottom:1px solid var(--sdc-modalc-divider, #e5e7eb)}.sdc-modalc__title{margin:0;flex:1 1 auto;color:var(--sdc-modalc-title-color, #222222);font-size:1.5rem;font-weight:600}.sdc-modalc__actions{display:flex;align-items:center;gap:.5rem}.sdc-modalc__action{width:2.5rem;height:2.5rem;min-width:2.5rem;min-height:2.5rem;display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;color:var(--sdc-modalc-action-color, #888888);cursor:pointer;transition:color var(--sdc-transition-fast, .2s ease)}.sdc-modalc__action:focus-visible{outline:2px solid currentColor;outline-offset:2px}.sdc-modalc__action--expand i{font-size:1rem}.sdc-modalc__action--expand:hover{color:var(--sdc-modalc-expand-hover, #1976d2)}.sdc-modalc__action--close:hover{color:var(--sdc-modalc-close-hover, #e53935)}.sdc-modalc__body{flex:1 1 auto;min-width:320px;min-height:80px;overflow-y:auto;padding:2rem;color:var(--sdc-modalc-body-color, #333333);background:var(--sdc-modalc-bg, #ffffff);font-size:1rem}.sdc-modalc__footer{padding:1rem 2rem;background:var(--sdc-modalc-bg, #ffffff);border-top:1px solid var(--sdc-modalc-divider, #e5e7eb)}.sdc-modalc__footer-actions{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:1rem}::ng-deep .sdc-modalc__footer sdc-button,::ng-deep .sdc-modalc__footer button{min-width:24px;min-height:24px}@media (max-width: 768px){.sdc-modalc{padding:var(--sdc-modal-backdrop-padding-mobile, 12px)}.sdc-modalc__header,.sdc-modalc__body,.sdc-modalc__footer{padding-left:1rem;padding-right:1rem}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
130
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalcComponent, isStandalone: true, selector: "sdc-modalc", inputs: { title: "title", footerButtons: "footerButtons", headerActions: "headerActions", maximizable: "maximizable", closeOnBackdrop: "closeOnBackdrop", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown": "onEsc($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }], ngImport: i0, template: "@if (_visible) {\n<dialog\n class=\"sdc-modalc modal\"\n [attr.open]=\"_visible ? '' : null\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"'modal-title-' + title\"\n [attr.aria-describedby]=\"'modal-body'\"\n (click)=\"onDialogClick($event)\"\n (keydown)=\"onDialogKeydown($event)\"\n (keydown.enter)=\"onDialogConfirmKey($event)\"\n (keydown.space)=\"onDialogConfirmKey($event)\"\n>\n <div\n #containerRef\n class=\"sdc-modalc__container modal-container\"\n [class.sdc-modalc__container--fullscreen]=\"_fullscreen\"\n [class.fullscreen]=\"_fullscreen\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n tabindex=\"-1\"\n >\n <header class=\"sdc-modalc__header modal-header\">\n <h2 class=\"sdc-modalc__title\" [id]=\"'modal-title-' + title\">{{ title | translate }}</h2>\n <div class=\"sdc-modalc__actions modal-actions\">\n @for (action of headerActions; track action.id || action.label; let i = $index) {\n <button\n class=\"sdc-modalc__action sdc-modalc__action--custom\"\n [class.sdc-modalc__action--icon-only]=\"action.icon && !action.label\"\n type=\"button\"\n [id]=\"action.id ?? 'modalc-header-action-' + i\"\n [disabled]=\"action.disabled ?? false\"\n (click)=\"action.action()\"\n [attr.aria-label]=\"(action.label | translate) + ' - ' + (title | translate)\"\n >\n @if (action.icon) {\n <i [class]=\"action.icon\" aria-hidden=\"true\"></i>\n }\n @if (action.label) {\n <span class=\"sdc-modalc__action-label\">{{ action.label | translate }}</span>\n }\n </button>\n }\n @if (maximizable) {\n <button\n class=\"sdc-modalc__action sdc-modalc__action--expand expand-button\"\n type=\"button\"\n (click)=\"toggleFullscreen()\"\n [attr.aria-label]=\"\n (_fullscreen\n ? 'platform.datacore.accessibility.modal_restore'\n : 'platform.datacore.accessibility.modal_maximize'\n ) | translate\n \"\n >\n <i class=\"fal fa-expand-arrows\" aria-hidden=\"true\"></i>\n </button>\n }\n <button\n class=\"sdc-modalc__action sdc-modalc__action--close close-button\"\n type=\"button\"\n (click)=\"close()\"\n [attr.aria-label]=\"('platform.datacore.accessibility.modal_close' | translate) + ' - ' + (title | translate)\"\n >\n <i class=\"fal fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </header>\n\n <main class=\"sdc-modalc__body modal-body\" id=\"modal-body\">\n <ng-content></ng-content>\n </main>\n\n <footer class=\"sdc-modalc__footer modal-footer\">\n <div\n class=\"sdc-modalc__footer-actions footer-actions\"\n [attr.aria-label]=\"'platform.datacore.accessibility.modal_footer' | translate\"\n >\n <ng-content select=\"[footer]\"></ng-content>\n @for (btn of footerButtons; track btn.id || btn.label; let index = $index) {\n <sdc-button\n (onClick)=\"btn?.action?.()\"\n [id]=\"btn.id ?? 'modalc-footer-button-' + index\"\n [label]=\"btn.label\"\n [icon]=\"btn.icon\"\n [disabled]=\"btn.disabled ?? false\"\n [priority]=\"mapButtonPriority(btn.severity)\"\n [ariaLabel]=\"btn.label + ' - ' + title\"\n ></sdc-button>\n }\n </div>\n </footer>\n </div>\n</dialog>\n}\n", styles: [".sdc-modalc{position:fixed;inset:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--sdc-modal-backdrop-bg, rgba(57, 66, 85, .32));z-index:var(--sdc-modal-z-index, 9999);padding:var(--sdc-modal-backdrop-padding, 24px)}.sdc-modalc__container{display:flex;flex-direction:column;width:100%;max-width:min(96vw,var(--sdc-modalc-max-width, 960px));max-height:min(90vh,var(--sdc-modalc-max-height, 90vh));overflow:hidden;box-sizing:border-box;border-radius:var(--sdc-modalc-radius, 8px);background:var(--sdc-modalc-bg, #ffffff);box-shadow:var(--sdc-modalc-shadow, 0 16px 40px rgba(15, 23, 42, .18));transition:transform var(--sdc-transition-medium, .3s ease),box-shadow var(--sdc-transition-medium, .3s ease)}.sdc-modalc__container--fullscreen{max-width:100vw!important;max-height:100vh!important;width:100vw!important;height:100vh!important;border-radius:0!important;box-shadow:none!important}.sdc-modalc__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 2rem 1rem;background:var(--sdc-modalc-bg, #ffffff);border-bottom:1px solid var(--sdc-modalc-divider, #e5e7eb)}.sdc-modalc__title{margin:0;flex:1 1 auto;color:var(--sdc-modalc-title-color, #222222);font-size:1.5rem;font-weight:600}.sdc-modalc__actions{display:flex;align-items:center;gap:.5rem}.sdc-modalc__action{width:2.5rem;height:2.5rem;min-width:2.5rem;min-height:2.5rem;display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;color:var(--sdc-modalc-action-color, #888888);cursor:pointer;transition:color var(--sdc-transition-fast, .2s ease)}.sdc-modalc__action:focus-visible{outline:2px solid currentColor;outline-offset:2px}.sdc-modalc__action--expand i{font-size:1rem}.sdc-modalc__action--custom{width:auto;min-width:2.5rem;padding:0 .75rem;gap:.375rem;font-size:.875rem;white-space:nowrap;color:var(--sdc-modalc-action-custom-color, inherit)}.sdc-modalc__action--custom.sdc-modalc__action--icon-only{width:2.5rem;min-width:2.5rem;padding:0}.sdc-modalc__action--custom:disabled{opacity:.5;cursor:not-allowed}.sdc-modalc__action--expand:hover{color:var(--sdc-modalc-expand-hover, #1976d2)}.sdc-modalc__action--close:hover{color:var(--sdc-modalc-close-hover, #e53935)}.sdc-modalc__body{flex:1 1 auto;min-width:320px;min-height:80px;overflow-y:auto;padding:2rem;color:var(--sdc-modalc-body-color, #333333);background:var(--sdc-modalc-bg, #ffffff);font-size:1rem}.sdc-modalc__footer{padding:1rem 2rem;background:var(--sdc-modalc-bg, #ffffff);border-top:1px solid var(--sdc-modalc-divider, #e5e7eb)}.sdc-modalc__footer-actions{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:1rem}::ng-deep .sdc-modalc__footer sdc-button,::ng-deep .sdc-modalc__footer button{min-width:24px;min-height:24px}@media (max-width: 768px){.sdc-modalc{padding:var(--sdc-modal-backdrop-padding-mobile, 12px)}.sdc-modalc__header,.sdc-modalc__body,.sdc-modalc__footer{padding-left:1rem;padding-right:1rem}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
130
131
|
}
|
|
131
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalcComponent, decorators: [{
|
|
132
133
|
type: Component,
|
|
133
|
-
args: [{ selector: 'sdc-modalc', standalone: true, imports: [ButtonComponent, CommonModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (_visible) {\n<dialog\n class=\"sdc-modalc modal\"\n [attr.open]=\"_visible ? '' : null\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"'modal-title-' + title\"\n [attr.aria-describedby]=\"'modal-body'\"\n (click)=\"onDialogClick($event)\"\n (keydown)=\"onDialogKeydown($event)\"\n (keydown.enter)=\"onDialogConfirmKey($event)\"\n (keydown.space)=\"onDialogConfirmKey($event)\"\n>\n <div\n #containerRef\n class=\"sdc-modalc__container modal-container\"\n [class.sdc-modalc__container--fullscreen]=\"_fullscreen\"\n [class.fullscreen]=\"_fullscreen\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n tabindex=\"-1\"\n >\n <header class=\"sdc-modalc__header modal-header\">\n <h2 class=\"sdc-modalc__title\" [id]=\"'modal-title-' + title\">{{ title | translate }}</h2>\n <div class=\"sdc-modalc__actions modal-actions\">\n @if (maximizable) {\n <button\n class=\"sdc-modalc__action sdc-modalc__action--expand expand-button\"\n type=\"button\"\n (click)=\"toggleFullscreen()\"\n [attr.aria-label]=\"\n (_fullscreen\n ? 'platform.datacore.accessibility.modal_restore'\n : 'platform.datacore.accessibility.modal_maximize'\n ) | translate\n \"\n >\n <i class=\"fal fa-expand-arrows\" aria-hidden=\"true\"></i>\n </button>\n }\n <button\n class=\"sdc-modalc__action sdc-modalc__action--close close-button\"\n type=\"button\"\n (click)=\"close()\"\n [attr.aria-label]=\"('platform.datacore.accessibility.modal_close' | translate) + ' - ' + (title | translate)\"\n >\n <i class=\"fal fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </header>\n\n <main class=\"sdc-modalc__body modal-body\" id=\"modal-body\">\n <ng-content></ng-content>\n </main>\n\n <footer class=\"sdc-modalc__footer modal-footer\">\n <div\n class=\"sdc-modalc__footer-actions footer-actions\"\n [attr.aria-label]=\"'platform.datacore.accessibility.modal_footer' | translate\"\n >\n <ng-content select=\"[footer]\"></ng-content>\n @for (btn of footerButtons; track btn.id || btn.label; let index = $index) {\n <sdc-button\n (onClick)=\"btn?.action?.()\"\n [id]=\"btn.id ?? 'modalc-footer-button-' + index\"\n [label]=\"btn.label\"\n [icon]=\"btn.icon\"\n [disabled]=\"btn.disabled ?? false\"\n [priority]=\"mapButtonPriority(btn.severity)\"\n [ariaLabel]=\"btn.label + ' - ' + title\"\n ></sdc-button>\n }\n </div>\n </footer>\n </div>\n</dialog>\n}\n", styles: [".sdc-modalc{position:fixed;inset:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--sdc-modal-backdrop-bg, rgba(57, 66, 85, .32));z-index:var(--sdc-modal-z-index, 9999);padding:var(--sdc-modal-backdrop-padding, 24px)}.sdc-modalc__container{display:flex;flex-direction:column;width:100%;max-width:min(96vw,var(--sdc-modalc-max-width, 960px));max-height:min(90vh,var(--sdc-modalc-max-height, 90vh));overflow:hidden;box-sizing:border-box;border-radius:var(--sdc-modalc-radius, 8px);background:var(--sdc-modalc-bg, #ffffff);box-shadow:var(--sdc-modalc-shadow, 0 16px 40px rgba(15, 23, 42, .18));transition:transform var(--sdc-transition-medium, .3s ease),box-shadow var(--sdc-transition-medium, .3s ease)}.sdc-modalc__container--fullscreen{max-width:100vw!important;max-height:100vh!important;width:100vw!important;height:100vh!important;border-radius:0!important;box-shadow:none!important}.sdc-modalc__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 2rem 1rem;background:var(--sdc-modalc-bg, #ffffff);border-bottom:1px solid var(--sdc-modalc-divider, #e5e7eb)}.sdc-modalc__title{margin:0;flex:1 1 auto;color:var(--sdc-modalc-title-color, #222222);font-size:1.5rem;font-weight:600}.sdc-modalc__actions{display:flex;align-items:center;gap:.5rem}.sdc-modalc__action{width:2.5rem;height:2.5rem;min-width:2.5rem;min-height:2.5rem;display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;color:var(--sdc-modalc-action-color, #888888);cursor:pointer;transition:color var(--sdc-transition-fast, .2s ease)}.sdc-modalc__action:focus-visible{outline:2px solid currentColor;outline-offset:2px}.sdc-modalc__action--expand i{font-size:1rem}.sdc-modalc__action--expand:hover{color:var(--sdc-modalc-expand-hover, #1976d2)}.sdc-modalc__action--close:hover{color:var(--sdc-modalc-close-hover, #e53935)}.sdc-modalc__body{flex:1 1 auto;min-width:320px;min-height:80px;overflow-y:auto;padding:2rem;color:var(--sdc-modalc-body-color, #333333);background:var(--sdc-modalc-bg, #ffffff);font-size:1rem}.sdc-modalc__footer{padding:1rem 2rem;background:var(--sdc-modalc-bg, #ffffff);border-top:1px solid var(--sdc-modalc-divider, #e5e7eb)}.sdc-modalc__footer-actions{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:1rem}::ng-deep .sdc-modalc__footer sdc-button,::ng-deep .sdc-modalc__footer button{min-width:24px;min-height:24px}@media (max-width: 768px){.sdc-modalc{padding:var(--sdc-modal-backdrop-padding-mobile, 12px)}.sdc-modalc__header,.sdc-modalc__body,.sdc-modalc__footer{padding-left:1rem;padding-right:1rem}}\n"] }]
|
|
134
|
+
args: [{ selector: 'sdc-modalc', standalone: true, imports: [ButtonComponent, CommonModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (_visible) {\n<dialog\n class=\"sdc-modalc modal\"\n [attr.open]=\"_visible ? '' : null\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"'modal-title-' + title\"\n [attr.aria-describedby]=\"'modal-body'\"\n (click)=\"onDialogClick($event)\"\n (keydown)=\"onDialogKeydown($event)\"\n (keydown.enter)=\"onDialogConfirmKey($event)\"\n (keydown.space)=\"onDialogConfirmKey($event)\"\n>\n <div\n #containerRef\n class=\"sdc-modalc__container modal-container\"\n [class.sdc-modalc__container--fullscreen]=\"_fullscreen\"\n [class.fullscreen]=\"_fullscreen\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n tabindex=\"-1\"\n >\n <header class=\"sdc-modalc__header modal-header\">\n <h2 class=\"sdc-modalc__title\" [id]=\"'modal-title-' + title\">{{ title | translate }}</h2>\n <div class=\"sdc-modalc__actions modal-actions\">\n @for (action of headerActions; track action.id || action.label; let i = $index) {\n <button\n class=\"sdc-modalc__action sdc-modalc__action--custom\"\n [class.sdc-modalc__action--icon-only]=\"action.icon && !action.label\"\n type=\"button\"\n [id]=\"action.id ?? 'modalc-header-action-' + i\"\n [disabled]=\"action.disabled ?? false\"\n (click)=\"action.action()\"\n [attr.aria-label]=\"(action.label | translate) + ' - ' + (title | translate)\"\n >\n @if (action.icon) {\n <i [class]=\"action.icon\" aria-hidden=\"true\"></i>\n }\n @if (action.label) {\n <span class=\"sdc-modalc__action-label\">{{ action.label | translate }}</span>\n }\n </button>\n }\n @if (maximizable) {\n <button\n class=\"sdc-modalc__action sdc-modalc__action--expand expand-button\"\n type=\"button\"\n (click)=\"toggleFullscreen()\"\n [attr.aria-label]=\"\n (_fullscreen\n ? 'platform.datacore.accessibility.modal_restore'\n : 'platform.datacore.accessibility.modal_maximize'\n ) | translate\n \"\n >\n <i class=\"fal fa-expand-arrows\" aria-hidden=\"true\"></i>\n </button>\n }\n <button\n class=\"sdc-modalc__action sdc-modalc__action--close close-button\"\n type=\"button\"\n (click)=\"close()\"\n [attr.aria-label]=\"('platform.datacore.accessibility.modal_close' | translate) + ' - ' + (title | translate)\"\n >\n <i class=\"fal fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </header>\n\n <main class=\"sdc-modalc__body modal-body\" id=\"modal-body\">\n <ng-content></ng-content>\n </main>\n\n <footer class=\"sdc-modalc__footer modal-footer\">\n <div\n class=\"sdc-modalc__footer-actions footer-actions\"\n [attr.aria-label]=\"'platform.datacore.accessibility.modal_footer' | translate\"\n >\n <ng-content select=\"[footer]\"></ng-content>\n @for (btn of footerButtons; track btn.id || btn.label; let index = $index) {\n <sdc-button\n (onClick)=\"btn?.action?.()\"\n [id]=\"btn.id ?? 'modalc-footer-button-' + index\"\n [label]=\"btn.label\"\n [icon]=\"btn.icon\"\n [disabled]=\"btn.disabled ?? false\"\n [priority]=\"mapButtonPriority(btn.severity)\"\n [ariaLabel]=\"btn.label + ' - ' + title\"\n ></sdc-button>\n }\n </div>\n </footer>\n </div>\n</dialog>\n}\n", styles: [".sdc-modalc{position:fixed;inset:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--sdc-modal-backdrop-bg, rgba(57, 66, 85, .32));z-index:var(--sdc-modal-z-index, 9999);padding:var(--sdc-modal-backdrop-padding, 24px)}.sdc-modalc__container{display:flex;flex-direction:column;width:100%;max-width:min(96vw,var(--sdc-modalc-max-width, 960px));max-height:min(90vh,var(--sdc-modalc-max-height, 90vh));overflow:hidden;box-sizing:border-box;border-radius:var(--sdc-modalc-radius, 8px);background:var(--sdc-modalc-bg, #ffffff);box-shadow:var(--sdc-modalc-shadow, 0 16px 40px rgba(15, 23, 42, .18));transition:transform var(--sdc-transition-medium, .3s ease),box-shadow var(--sdc-transition-medium, .3s ease)}.sdc-modalc__container--fullscreen{max-width:100vw!important;max-height:100vh!important;width:100vw!important;height:100vh!important;border-radius:0!important;box-shadow:none!important}.sdc-modalc__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 2rem 1rem;background:var(--sdc-modalc-bg, #ffffff);border-bottom:1px solid var(--sdc-modalc-divider, #e5e7eb)}.sdc-modalc__title{margin:0;flex:1 1 auto;color:var(--sdc-modalc-title-color, #222222);font-size:1.5rem;font-weight:600}.sdc-modalc__actions{display:flex;align-items:center;gap:.5rem}.sdc-modalc__action{width:2.5rem;height:2.5rem;min-width:2.5rem;min-height:2.5rem;display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;color:var(--sdc-modalc-action-color, #888888);cursor:pointer;transition:color var(--sdc-transition-fast, .2s ease)}.sdc-modalc__action:focus-visible{outline:2px solid currentColor;outline-offset:2px}.sdc-modalc__action--expand i{font-size:1rem}.sdc-modalc__action--custom{width:auto;min-width:2.5rem;padding:0 .75rem;gap:.375rem;font-size:.875rem;white-space:nowrap;color:var(--sdc-modalc-action-custom-color, inherit)}.sdc-modalc__action--custom.sdc-modalc__action--icon-only{width:2.5rem;min-width:2.5rem;padding:0}.sdc-modalc__action--custom:disabled{opacity:.5;cursor:not-allowed}.sdc-modalc__action--expand:hover{color:var(--sdc-modalc-expand-hover, #1976d2)}.sdc-modalc__action--close:hover{color:var(--sdc-modalc-close-hover, #e53935)}.sdc-modalc__body{flex:1 1 auto;min-width:320px;min-height:80px;overflow-y:auto;padding:2rem;color:var(--sdc-modalc-body-color, #333333);background:var(--sdc-modalc-bg, #ffffff);font-size:1rem}.sdc-modalc__footer{padding:1rem 2rem;background:var(--sdc-modalc-bg, #ffffff);border-top:1px solid var(--sdc-modalc-divider, #e5e7eb)}.sdc-modalc__footer-actions{display:flex;flex-direction:row-reverse;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:1rem}::ng-deep .sdc-modalc__footer sdc-button,::ng-deep .sdc-modalc__footer button{min-width:24px;min-height:24px}@media (max-width: 768px){.sdc-modalc{padding:var(--sdc-modal-backdrop-padding-mobile, 12px)}.sdc-modalc__header,.sdc-modalc__body,.sdc-modalc__footer{padding-left:1rem;padding-right:1rem}}\n"] }]
|
|
134
135
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { containerRef: [{
|
|
135
136
|
type: ViewChild,
|
|
136
137
|
args: ['containerRef']
|
|
@@ -138,6 +139,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
138
139
|
type: Input
|
|
139
140
|
}], footerButtons: [{
|
|
140
141
|
type: Input
|
|
142
|
+
}], headerActions: [{
|
|
143
|
+
type: Input
|
|
141
144
|
}], maximizable: [{
|
|
142
145
|
type: Input
|
|
143
146
|
}], closeOnBackdrop: [{
|
|
@@ -150,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
150
153
|
type: HostListener,
|
|
151
154
|
args: ['document:keydown', ['$event']]
|
|
152
155
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWxjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvbW9kYWxjL21vZGFsYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL21vZGFsYy9tb2RhbGMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUc3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFXN0QsTUFBTSxPQUFPLGVBQWU7SUFzQkc7SUFyQkYsWUFBWSxDQUEyQjtJQUV6RCxLQUFLLEdBQVcsd0JBQXdCLENBQUM7SUFDekMsYUFBYSxHQUFrQixFQUFFLENBQUM7SUFDbEMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNwQixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBRWhDLElBQWEsT0FBTyxDQUFDLENBQVU7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVTLGFBQWEsR0FBRyxJQUFJ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LGFBQWEsQ0FBQztRQUVuRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELG9CQUFvQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO3dHQXhKVSxlQUFlOzRGQUFmLGVBQWUsK2FDL0I1Qiwrc0ZBNEVBLGdzRkRuRFksZUFBZSw2U0FBRSxZQUFZLDhCQUFFLGVBQWU7OzRGQU03QyxlQUFlO2tCQVQzQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxtQkFHeEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTtzRkFHZCxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBRWhCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFTyxPQUFPO3NCQUFuQixLQUFLO2dCQVFJLGFBQWE7c0JBQXRCLE1BQU07Z0JBZ0VQLEtBQUs7c0JBREosWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBNT0RBTENfREVGQVVMVF9USVRMRV9LRVkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9tb2RhbGMuY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBNb2RhbEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvbW9kYWwudHlwZSc7XG5pbXBvcnQgdHlwZSB7IEJ1dHRvblByaW9yaXR5IH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9idXR0b24udHlwZSc7XG5pbXBvcnQgeyBmb2N1c0ZpcnN0RGVzY2VuZGFudCwgcmVzdG9yZUZvY3VzLCB0cmFwRm9jdXNJbkNvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZm9jdXMudXRpbCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1tb2RhbGMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQnV0dG9uQ29tcG9uZW50LCBDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbGMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbGMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lclJlZicpIGNvbnRhaW5lclJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSBNT0RBTENfREVGQVVMVF9USVRMRV9LRVk7XG4gIEBJbnB1dCgpIGZvb3RlckJ1dHRvbnM6IE1vZGFsQnV0dG9uW10gPSBbXTtcbiAgQElucHV0KCkgbWF4aW1pemFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xvc2VPbkJhY2tkcm9wID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgdmlzaWJsZSh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRWaXNpYmxlKCEhdiwgZmFsc2UpO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBfdmlzaWJsZSA9IGZhbHNlO1xuICBfZnVsbHNjcmVlbiA9IGZhbHNlO1xuICBwcml2YXRlIHByZXZpb3VzRm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5sb2NrQm9keVNjcm9sbCgpO1xuICB9XG5cbiAgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZpc2libGUodHJ1ZSwgdHJ1ZSk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZpc2libGUoZmFsc2UsIHRydWUpO1xuICB9XG5cbiAgdG9nZ2xlRnVsbHNjcmVlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9mdWxsc2NyZWVuID0gIXRoaXMuX2Z1bGxzY3JlZW47XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5mb2N1c0NvbnRhaW5lcigpKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uRGlhbG9nQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBldmVudC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2xvc2VPbkJhY2tkcm9wKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgb25EaWFsb2dLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSAmJiB0aGlzLmNsb3NlT25CYWNrZHJvcCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkRpYWxvZ0NvbmZpcm1LZXkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkRpYWxvZ0tleWRvd24oZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCk7XG4gIH1cblxuICBtYXBCdXR0b25Qcmlvcml0eShzZXZlcml0eT86IE1vZGFsQnV0dG9uWydzZXZlcml0eSddKTogQnV0dG9uUHJpb3JpdHkge1xuICAgIGlmIChzZXZlcml0eSA9PT0gJ3NlY29uZGFyeScpIHtcbiAgICAgIHJldHVybiAnc2Vjb25kYXJ5JztcbiAgICB9XG5cbiAgICBpZiAoc2V2ZXJpdHkgPT09ICdkYW5nZXInKSB7XG4gICAgICByZXR1cm4gJ2Rhbmdlcic7XG4gICAgfVxuXG4gICAgcmV0dXJuICdwcmltYXJ5JztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbkVzYyhldjogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldi5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2LmtleSA9PT0gJ1RhYicgJiYgdGhpcy5jb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRyYXBGb2N1c0luQ29udGFpbmVyKFxuICAgICAgICBldixcbiAgICAgICAgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRWaXNpYmxlKG5leHQ6IGJvb2xlYW4sIGVtaXQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdmlzaWJsZSA9PT0gbmV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnRcbiAgICAgICAgPyBkb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLl92aXNpYmxlID0gbmV4dDtcblxuICAgIGlmICh0aGlzLl92aXNpYmxlKSB7XG4gICAgICB0aGlzLmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudW5sb2NrQm9keVNjcm9sbCgpO1xuICAgIH1cblxuICAgIGlmIChuZXh0KSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLmZvY3VzQ29udGFpbmVyKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KSk7XG4gICAgfVxuXG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5sb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNDb250YWluZXIoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvY3VzRmlyc3REZXNjZW5kYW50KGNvbnRhaW5lciwgY29udGFpbmVyKTtcbiAgfVxufVxuIiwiQGlmIChfdmlzaWJsZSkge1xuPGRpYWxvZ1xuICBjbGFzcz1cInNkYy1tb2RhbGMgbW9kYWxcIlxuICBbYXR0ci5vcGVuXT1cIl92aXNpYmxlID8gJycgOiBudWxsXCJcbiAgYXJpYS1tb2RhbD1cInRydWVcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ21vZGFsLXRpdGxlLScgKyB0aXRsZVwiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ21vZGFsLWJvZHknXCJcbiAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xpY2soJGV2ZW50KVwiXG4gIChrZXlkb3duKT1cIm9uRGlhbG9nS2V5ZG93bigkZXZlbnQpXCJcbiAgKGtleWRvd24uZW50ZXIpPVwib25EaWFsb2dDb25maXJtS2V5KCRldmVudClcIlxuICAoa2V5ZG93bi5zcGFjZSk9XCJvbkRpYWxvZ0NvbmZpcm1LZXkoJGV2ZW50KVwiXG4+XG4gIDxkaXZcbiAgICAjY29udGFpbmVyUmVmXG4gICAgY2xhc3M9XCJzZGMtbW9kYWxjX19jb250YWluZXIgbW9kYWwtY29udGFpbmVyXCJcbiAgICBbY2xhc3Muc2RjLW1vZGFsY19fY29udGFpbmVyLS1mdWxsc2NyZWVuXT1cIl9mdWxsc2NyZWVuXCJcbiAgICBbY2xhc3MuZnVsbHNjcmVlbl09XCJfZnVsbHNjcmVlblwiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJzZGMtbW9kYWxjX19oZWFkZXIgbW9kYWwtaGVhZGVyXCI+XG4gICAgICA8aDIgY2xhc3M9XCJzZGMtbW9kYWxjX190aXRsZVwiIFtpZF09XCInbW9kYWwtdGl0bGUtJyArIHRpdGxlXCI+e3sgdGl0bGUgfCB0cmFuc2xhdGUgfX08L2gyPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1tb2RhbGNfX2FjdGlvbnMgbW9kYWwtYWN0aW9uc1wiPlxuICAgICAgICBAaWYgKG1heGltaXphYmxlKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInNkYy1tb2RhbGNfX2FjdGlvbiBzZGMtbW9kYWxjX19hY3Rpb24tLWV4cGFuZCBleHBhbmQtYnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRnVsbHNjcmVlbigpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgKF9mdWxsc2NyZWVuXG4gICAgICAgICAgICAgID8gJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubW9kYWxfcmVzdG9yZSdcbiAgICAgICAgICAgICAgOiAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5tb2RhbF9tYXhpbWl6ZSdcbiAgICAgICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtZXhwYW5kLWFycm93c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwic2RjLW1vZGFsY19fYWN0aW9uIHNkYy1tb2RhbGNfX2FjdGlvbi0tY2xvc2UgY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubW9kYWxfY2xvc2UnIHwgdHJhbnNsYXRlKSArICcgLSAnICsgKHRpdGxlIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2hlYWRlcj5cblxuICAgIDxtYWluIGNsYXNzPVwic2RjLW1vZGFsY19fYm9keSBtb2RhbC1ib2R5XCIgaWQ9XCJtb2RhbC1ib2R5XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9tYWluPlxuXG4gICAgPGZvb3RlciBjbGFzcz1cInNkYy1tb2RhbGNfX2Zvb3RlciBtb2RhbC1mb290ZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxjX19mb290ZXItYWN0aW9ucyBmb290ZXItYWN0aW9uc1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubW9kYWxfZm9vdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICBAZm9yIChidG4gb2YgZm9vdGVyQnV0dG9uczsgdHJhY2sgYnRuLmlkIHx8IGJ0bi5sYWJlbDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgKG9uQ2xpY2spPVwiYnRuPy5hY3Rpb24/LigpXCJcbiAgICAgICAgICBbaWRdPVwiYnRuLmlkID8/ICdtb2RhbGMtZm9vdGVyLWJ1dHRvbi0nICsgaW5kZXhcIlxuICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWxcIlxuICAgICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgICBbcHJpb3JpdHldPVwibWFwQnV0dG9uUHJpb3JpdHkoYnRuLnNldmVyaXR5KVwiXG4gICAgICAgICAgW2FyaWFMYWJlbF09XCJidG4ubGFiZWwgKyAnIC0gJyArIHRpdGxlXCJcbiAgICAgICAgPjwvc2RjLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9mb290ZXI+XG4gIDwvZGl2PlxuPC9kaWFsb2c+XG59XG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWxjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvbW9kYWxjL21vZGFsYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL21vZGFsYy9tb2RhbGMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUc3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFXN0QsTUFBTSxPQUFPLGVBQWU7SUF1Qkc7SUF0QkYsWUFBWSxDQUEyQjtJQUV6RCxLQUFLLEdBQVcsd0JBQXdCLENBQUM7SUFDekMsYUFBYSxHQUFrQixFQUFFLENBQUM7SUFDbEMsYUFBYSxHQUFrQixFQUFFLENBQUM7SUFDbEMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNwQixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBRWhDLElBQWEsT0FBTyxDQUFDLENBQVU7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFD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QVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztRQUVuRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELG9CQUFvQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO3dHQXpKVSxlQUFlOzRGQUFmLGVBQWUsK2NDL0I1Qix3L0dBOEZBLG9oR0RyRVksZUFBZSx3VEFBRSxZQUFZLDhCQUFFLGVBQWU7OzRGQU03QyxlQUFlO2tCQVQzQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxtQkFHeEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTtzRkFHZCxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBRWhCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVPLE9BQU87c0JBQW5CLEtBQUs7Z0JBUUksYUFBYTtzQkFBdEIsTUFBTTtnQkFnRVAsS0FBSztzQkFESixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IE1PREFMQ19ERUZBVUxUX1RJVExFX0tFWSB9IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL21vZGFsYy5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IE1vZGFsQnV0dG9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9tb2RhbC50eXBlJztcbmltcG9ydCB0eXBlIHsgQnV0dG9uUHJpb3JpdHkgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2J1dHRvbi50eXBlJztcbmltcG9ydCB7IGZvY3VzRmlyc3REZXNjZW5kYW50LCByZXN0b3JlRm9jdXMsIHRyYXBGb2N1c0luQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9mb2N1cy51dGlsJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLW1vZGFsYycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtCdXR0b25Db21wb25lbnQsIENvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsYy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxjQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyUmVmJykgY29udGFpbmVyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IE1PREFMQ19ERUZBVUxUX1RJVExFX0tFWTtcbiAgQElucHV0KCkgZm9vdGVyQnV0dG9uczogTW9kYWxCdXR0b25bXSA9IFtdO1xuICBASW5wdXQoKSBoZWFkZXJBY3Rpb25zOiBNb2RhbEJ1dHRvbltdID0gW107XG4gIEBJbnB1dCgpIG1heGltaXphYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsb3NlT25CYWNrZHJvcCA9IHRydWU7XG5cbiAgQElucHV0KCkgc2V0IHZpc2libGUodjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0VmlzaWJsZSghIXYsIGZhbHNlKTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgX3Zpc2libGUgPSBmYWxzZTtcbiAgX2Z1bGxzY3JlZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBwcmV2aW91c0ZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bmxvY2tCb2R5U2Nyb2xsKCk7XG4gIH1cblxuICBvcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmlzaWJsZSh0cnVlLCB0cnVlKTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmlzaWJsZShmYWxzZSwgdHJ1ZSk7XG4gIH1cblxuICB0b2dnbGVGdWxsc2NyZWVuKCk6IHZvaWQge1xuICAgIHRoaXMuX2Z1bGxzY3JlZW4gPSAhdGhpcy5fZnVsbHNjcmVlbjtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLmZvY3VzQ29udGFpbmVyKCkpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25EaWFsb2dDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbG9zZU9uQmFja2Ryb3ApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkRpYWxvZ0tleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBldmVudC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpICYmIHRoaXMuY2xvc2VPbkJhY2tkcm9wKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGlhbG9nQ29uZmlybUtleShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGlhbG9nS2V5ZG93bihldmVudCBhcyBLZXlib2FyZEV2ZW50KTtcbiAgfVxuXG4gIG1hcEJ1dHRvblByaW9yaXR5KHNldmVyaXR5PzogTW9kYWxCdXR0b25bJ3NldmVyaXR5J10pOiBCdXR0b25Qcmlvcml0eSB7XG4gICAgaWYgKHNldmVyaXR5ID09PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgcmV0dXJuICdzZWNvbmRhcnknO1xuICAgIH1cblxuICAgIGlmIChzZXZlcml0eSA9PT0gJ2RhbmdlcicpIHtcbiAgICAgIHJldHVybiAnZGFuZ2VyJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ3ByaW1hcnknO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRXNjKGV2OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl92aXNpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXYua2V5ID09PSAnVGFiJyAmJiB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdHJhcEZvY3VzSW5Db250YWluZXIoXG4gICAgICAgIGV2LFxuICAgICAgICB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICAgICAgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFZpc2libGUobmV4dDogYm9vbGVhbiwgZW1pdDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLl92aXNpYmxlID09PSBuZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMucHJldmlvdXNGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudFxuICAgICAgICA/IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuX3Zpc2libGUgPSBuZXh0O1xuXG4gICAgaWYgKHRoaXMuX3Zpc2libGUpIHtcbiAgICAgIHRoaXMubG9ja0JvZHlTY3JvbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51bmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNDb250YWluZXIoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHJlc3RvcmVGb2N1cyh0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQpKTtcbiAgICB9XG5cbiAgICBpZiAoZW1pdCkge1xuICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1bmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0NvbnRhaW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9jdXNGaXJzdERlc2NlbmRhbnQoY29udGFpbmVyLCBjb250YWluZXIpO1xuICB9XG59XG4iLCJAaWYgKF92aXNpYmxlKSB7XG48ZGlhbG9nXG4gIGNsYXNzPVwic2RjLW1vZGFsYyBtb2RhbFwiXG4gIFthdHRyLm9wZW5dPVwiX3Zpc2libGUgPyAnJyA6IG51bGxcIlxuICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInbW9kYWwtdGl0bGUtJyArIHRpdGxlXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInbW9kYWwtYm9keSdcIlxuICAoY2xpY2spPVwib25EaWFsb2dDbGljaygkZXZlbnQpXCJcbiAgKGtleWRvd24pPVwib25EaWFsb2dLZXlkb3duKCRldmVudClcIlxuICAoa2V5ZG93bi5lbnRlcik9XCJvbkRpYWxvZ0NvbmZpcm1LZXkoJGV2ZW50KVwiXG4gIChrZXlkb3duLnNwYWNlKT1cIm9uRGlhbG9nQ29uZmlybUtleSgkZXZlbnQpXCJcbj5cbiAgPGRpdlxuICAgICNjb250YWluZXJSZWZcbiAgICBjbGFzcz1cInNkYy1tb2RhbGNfX2NvbnRhaW5lciBtb2RhbC1jb250YWluZXJcIlxuICAgIFtjbGFzcy5zZGMtbW9kYWxjX19jb250YWluZXItLWZ1bGxzY3JlZW5dPVwiX2Z1bGxzY3JlZW5cIlxuICAgIFtjbGFzcy5mdWxsc2NyZWVuXT1cIl9mdWxsc2NyZWVuXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICA+XG4gICAgPGhlYWRlciBjbGFzcz1cInNkYy1tb2RhbGNfX2hlYWRlciBtb2RhbC1oZWFkZXJcIj5cbiAgICAgIDxoMiBjbGFzcz1cInNkYy1tb2RhbGNfX3RpdGxlXCIgW2lkXT1cIidtb2RhbC10aXRsZS0nICsgdGl0bGVcIj57eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsY19fYWN0aW9ucyBtb2RhbC1hY3Rpb25zXCI+XG4gICAgICAgIEBmb3IgKGFjdGlvbiBvZiBoZWFkZXJBY3Rpb25zOyB0cmFjayBhY3Rpb24uaWQgfHwgYWN0aW9uLmxhYmVsOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxjX19hY3Rpb24gc2RjLW1vZGFsY19fYWN0aW9uLS1jdXN0b21cIlxuICAgICAgICAgIFtjbGFzcy5zZGMtbW9kYWxjX19hY3Rpb24tLWljb24tb25seV09XCJhY3Rpb24uaWNvbiAmJiAhYWN0aW9uLmxhYmVsXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbaWRdPVwiYWN0aW9uLmlkID8/ICdtb2RhbGMtaGVhZGVyLWFjdGlvbi0nICsgaVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5hY3Rpb24oKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoYWN0aW9uLmxhYmVsIHwgdHJhbnNsYXRlKSArICcgLSAnICsgKHRpdGxlIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGFjdGlvbi5pY29uKSB7XG4gICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGFjdGlvbi5sYWJlbCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLW1vZGFsY19fYWN0aW9uLWxhYmVsXCI+e3sgYWN0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChtYXhpbWl6YWJsZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxjX19hY3Rpb24gc2RjLW1vZGFsY19fYWN0aW9uLS1leHBhbmQgZXhwYW5kLWJ1dHRvblwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4oKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgIChfZnVsbHNjcmVlblxuICAgICAgICAgICAgICA/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm1vZGFsX3Jlc3RvcmUnXG4gICAgICAgICAgICAgIDogJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubW9kYWxfbWF4aW1pemUnXG4gICAgICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLWV4cGFuZC1hcnJvd3NcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInNkYy1tb2RhbGNfX2FjdGlvbiBzZGMtbW9kYWxjX19hY3Rpb24tLWNsb3NlIGNsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiKCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm1vZGFsX2Nsb3NlJyB8IHRyYW5zbGF0ZSkgKyAnIC0gJyArICh0aXRsZSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8bWFpbiBjbGFzcz1cInNkYy1tb2RhbGNfX2JvZHkgbW9kYWwtYm9keVwiIGlkPVwibW9kYWwtYm9keVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbWFpbj5cblxuICAgIDxmb290ZXIgY2xhc3M9XCJzZGMtbW9kYWxjX19mb290ZXIgbW9kYWwtZm9vdGVyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2RjLW1vZGFsY19fZm9vdGVyLWFjdGlvbnMgZm9vdGVyLWFjdGlvbnNcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm1vZGFsX2Zvb3RlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgQGZvciAoYnRuIG9mIGZvb3RlckJ1dHRvbnM7IHRyYWNrIGJ0bi5pZCB8fCBidG4ubGFiZWw7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgIChvbkNsaWNrKT1cImJ0bj8uYWN0aW9uPy4oKVwiXG4gICAgICAgICAgW2lkXT1cImJ0bi5pZCA/PyAnbW9kYWxjLWZvb3Rlci1idXR0b24tJyArIGluZGV4XCJcbiAgICAgICAgICBbbGFiZWxdPVwiYnRuLmxhYmVsXCJcbiAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgW3ByaW9yaXR5XT1cIm1hcEJ1dHRvblByaW9yaXR5KGJ0bi5zZXZlcml0eSlcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiYnRuLmxhYmVsICsgJyAtICcgKyB0aXRsZVwiXG4gICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGlhbG9nPlxufVxuIl19
|