@seniorsistemas/data-seniorx-core 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/core/config/dynamic-view-builder.config.d.ts +3 -0
  2. package/core/constants/dynamic-view-builder.const.d.ts +15 -0
  3. package/core/constants/picklist.const.d.ts +4 -0
  4. package/core/constants/timeline.const.d.ts +6 -0
  5. package/core/types/confirm.type.d.ts +1 -0
  6. package/core/types/dynamic-view-builder.type.d.ts +130 -0
  7. package/core/types/row-card.type.d.ts +10 -0
  8. package/core/types/timeline.type.d.ts +22 -0
  9. package/esm2022/core/config/dynamic-view-builder.config.mjs +396 -0
  10. package/esm2022/core/config/row-card.type.config.mjs +2 -1
  11. package/esm2022/core/constants/dynamic-view-builder.const.mjs +24 -0
  12. package/esm2022/core/constants/picklist.const.mjs +5 -1
  13. package/esm2022/core/constants/timeline.const.mjs +6 -0
  14. package/esm2022/core/handlers/sqlFormatter.mjs +3 -2
  15. package/esm2022/core/types/confirm.type.mjs +1 -1
  16. package/esm2022/core/types/dynamic-view-builder.type.mjs +2 -0
  17. package/esm2022/core/types/row-card.type.mjs +1 -1
  18. package/esm2022/core/types/timeline.type.mjs +2 -0
  19. package/esm2022/core/utils/layout.util.mjs +4 -4
  20. package/esm2022/core/utils/number-input.util.mjs +2 -2
  21. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +21 -3
  22. package/esm2022/features/button/button.component.mjs +5 -5
  23. package/esm2022/features/card-list/card/card.component.mjs +4 -6
  24. package/esm2022/features/card-list/card-list.component.mjs +4 -7
  25. package/esm2022/features/code-editor/code-editor.component.mjs +5 -5
  26. package/esm2022/features/color-picker/color-picker.component.mjs +4 -4
  27. package/esm2022/features/combobox/combobox.component.mjs +8 -8
  28. package/esm2022/features/confirm/confirm.component.mjs +8 -4
  29. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +6 -8
  30. package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
  31. package/esm2022/features/hyperlink/hyperlink.component.mjs +10 -12
  32. package/esm2022/features/icon-picker/icon-picker.component.mjs +3 -3
  33. package/esm2022/features/info-sign/info-sign.component.mjs +3 -3
  34. package/esm2022/features/list/list.component.mjs +1 -1
  35. package/esm2022/features/loading-state/loading-state.component.mjs +20 -25
  36. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
  37. package/esm2022/features/mask/mask.component.mjs +4 -4
  38. package/esm2022/features/modal/modal.component.mjs +5 -5
  39. package/esm2022/features/modalc/modalc.component.mjs +1 -1
  40. package/esm2022/features/number-input/number-input.component.mjs +4 -4
  41. package/esm2022/features/numeric/numeric.component.mjs +4 -6
  42. package/esm2022/features/paginator/paginator.component.mjs +2 -2
  43. package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
  44. package/esm2022/features/picklist/picklist.component.mjs +50 -9
  45. package/esm2022/features/radio/radio.component.mjs +12 -12
  46. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +32 -9
  47. package/esm2022/features/row-card-list/row-card-list.component.mjs +3 -3
  48. package/esm2022/features/searchbox/searchbox.component.mjs +1 -1
  49. package/esm2022/features/sidebar/sidebar.component.mjs +7 -3
  50. package/esm2022/features/switch/switch.component.mjs +3 -3
  51. package/esm2022/features/table/table.component.mjs +3 -3
  52. package/esm2022/features/textarea/textarea.component.mjs +4 -4
  53. package/esm2022/features/textbox/textbox.component.mjs +4 -4
  54. package/esm2022/features/timeline/timeline.component.mjs +90 -0
  55. package/esm2022/features/toast/toast.component.mjs +4 -6
  56. package/esm2022/features/tooltip/tooltip.component.mjs +3 -3
  57. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2810 -0
  58. package/esm2022/locales/en.json +202 -1
  59. package/esm2022/locales/es-CO.json +202 -1
  60. package/esm2022/locales/pt.json +202 -1
  61. package/esm2022/public-api.mjs +6 -1
  62. package/features/breadcrumb/breadcrumb.component.d.ts +2 -0
  63. package/features/button/button.component.d.ts +2 -2
  64. package/features/code-editor/code-editor.component.d.ts +2 -2
  65. package/features/hyperlink/hyperlink.component.d.ts +3 -3
  66. package/features/loading-state/loading-state.component.d.ts +3 -4
  67. package/features/modal/modal.component.d.ts +2 -2
  68. package/features/picklist/picklist.component.d.ts +10 -1
  69. package/features/radio/radio.component.d.ts +4 -4
  70. package/features/row-card-list/row-card/row-card.component.d.ts +8 -1
  71. package/features/sidebar/sidebar.component.d.ts +2 -1
  72. package/features/timeline/timeline.component.d.ts +27 -0
  73. package/features/visual-sql-editor/visual-sql-editor.component.d.ts +560 -0
  74. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +4161 -176
  75. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  76. package/package.json +2 -2
  77. package/public-api.d.ts +7 -0
  78. package/src/locales/en.json +211 -1
  79. package/src/locales/es-CO.json +211 -1
  80. package/src/locales/pt.json +211 -1
  81. package/styles.css +1 -1
@@ -32,7 +32,7 @@ export class ModalComponent {
32
32
  get appendToBody() {
33
33
  return this.$appendToBody;
34
34
  }
35
- onHide = new EventEmitter();
35
+ hidden = new EventEmitter();
36
36
  visibleChange = new EventEmitter();
37
37
  modalId = nextSequentialId(DEFAULT_MODAL_ID_PREFIX);
38
38
  headerId = `${this.modalId}-header`;
@@ -104,7 +104,7 @@ export class ModalComponent {
104
104
  });
105
105
  this.cdr.markForCheck();
106
106
  this.visibleChange.emit(false);
107
- this.onHide.emit();
107
+ this.hidden.emit();
108
108
  }
109
109
  toggleMaximize() {
110
110
  if (!this.maximizable) {
@@ -195,7 +195,7 @@ export class ModalComponent {
195
195
  viewInitialized = false;
196
196
  bodyPortalOutlet;
197
197
  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: { onHide: "onHide", 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: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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
199
  }
200
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalComponent, decorators: [{
201
201
  type: Component,
@@ -231,7 +231,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
231
231
  }], appendToBody: [{
232
232
  type: Input,
233
233
  args: [{ transform: booleanAttribute }]
234
- }], onHide: [{
234
+ }], hidden: [{
235
235
  type: Output
236
236
  }], visibleChange: [{
237
237
  type: Output
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
241
241
  type: HostListener,
242
242
  args: ['document:keydown', ['$event']]
243
243
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdEQsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDZCxNQUFNLGtDQUFrQyxDQUFDO0FBRzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFB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NEZBQWQsY0FBYyxnV0FlTCxnQkFBZ0IsbVVBYnpCLFNBQVMsZ0RDekR0QixzOEdBK0ZBLDRrUERoRFksU0FBUyxnRkFBRSxZQUFZLHdYQUFFLGVBQWUsNEZBQUUsZUFBZTs7NEZBUXhELGNBQWM7a0JBVDFCLFNBQVM7OEJBQ0MsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsY0FDeEQsSUFBSSxZQUNOLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHZixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsVUFBVTtzQkFBL0IsU0FBUzt1QkFBQyxTQUFTO2dCQUVYLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNzQyxZQUFZO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVU1QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFZTSxPQUFPO3NCQUFuQixLQUFLO2dCQThGTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWwsIERvbVBvcnRhbE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uJztcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9NT0RBTF9BUFBFTkRfVE9fQk9EWSxcbiAgREVGQVVMVF9NT0RBTF9DTE9TQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9GT09URVJfQlVUVE9OUyxcbiAgREVGQVVMVF9NT0RBTF9IRUFERVIsXG4gIERFRkFVTFRfTU9EQUxfSEVJR0hULFxuICBERUZBVUxUX01PREFMX0lEX1BSRUZJWCxcbiAgREVGQVVMVF9NT0RBTF9NQVhJTUlaQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9NQVhJTUlaRSxcbiAgREVGQVVMVF9NT0RBTF9SRVNQT05TSVZFLFxuICBERUZBVUxUX01PREFMX1JFU0laQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9XSURUSCxcbiAgREVGQVVMVF9NT0RBTF9aX0lOREVYLFxuICBNT0RBTF9CT0RZX09WRVJGTE9XX0hJRERFTixcbiAgTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSxcbiAgTU9EQUxfRVNDQVBFX0tFWSxcbiAgTU9EQUxfVEFCX0tFWVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9tb2RhbC5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IE1vZGFsQnV0dG9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9tb2RhbC50eXBlJztcbmltcG9ydCB0eXBlIHsgRGltZW5zaW9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBnZXREaW1lbnNpb25TdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IGZvY3VzRmlyc3REZXNjZW5kYW50LCByZXN0b3JlRm9jdXMsIHRyYXBGb2N1c0luQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9mb2N1cy51dGlsJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0Nka1BvcnRhbCwgQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZGlhbG9nUGFuZWwnKSBkaWFsb2dQYW5lbD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKENka1BvcnRhbCkgYm9keVBvcnRhbD86IENka1BvcnRhbDtcblxuICBASW5wdXQoKSBmb290ZXJCdXR0b25zOiBNb2RhbEJ1dHRvbltdID0gREVGQVVMVF9NT0RBTF9GT09URVJfQlVUVE9OUztcbiAgQElucHV0KCkgaGVhZGVyID0gREVGQVVMVF9NT0RBTF9IRUFERVI7XG4gIEBJbnB1dCgpIGhlaWdodDogRGltZW5zaW9uID0gREVGQVVMVF9NT0RBTF9IRUlHSFQ7XG4gIEBJbnB1dCgpIG1heGltaXphYmxlID0gREVGQVVMVF9NT0RBTF9NQVhJTUlaQUJMRTtcbiAgQElucHV0KCkgbWF4aW1pemUgPSBERUZBVUxUX01PREFMX01BWElNSVpFO1xuICBASW5wdXQoKSByZXNpemFibGUgPSBERUZBVUxUX01PREFMX1JFU0laQUJMRTtcbiAgQElucHV0KCkgcmVzcG9uc2l2ZSA9IERFRkFVTFRfTU9EQUxfUkVTUE9OU0lWRTtcbiAgQElucHV0KCkgd2lkdGg6IERpbWVuc2lvbiA9IERFRkFVTFRfTU9EQUxfV0lEVEg7XG4gIEBJbnB1dCgpIHpJbmRleCA9IERFRkFVTFRfTU9EQUxfWl9JTkRFWDtcbiAgQElucHV0KCkgY2xvc2FibGUgPSBERUZBVUxUX01PREFMX0NMT1NBQkxFO1xuICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzZXQgYXBwZW5kVG9Cb2R5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4kYXBwZW5kVG9Cb2R5ID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5zeW5jQm9keVBvcnRhbCgpKTtcbiAgfVxuXG4gIGdldCBhcHBlbmRUb0JvZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuJGFwcGVuZFRvQm9keTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IG1vZGFsSWQgPSBuZXh0U2VxdWVudGlhbElkKERFRkFVTFRfTU9EQUxfSURfUFJFRklYKTtcbiAgcmVhZG9ubHkgaGVhZGVySWQgPSBgJHt0aGlzLm1vZGFsSWR9LWhlYWRlcmA7XG4gIHJlYWRvbmx5IGNvbnRlbnRJZCA9IGAke3RoaXMubW9kYWxJZH0tY29udGVudGA7XG5cbiAgaXNNYXhpbWl6ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHByZXZpb3VzRm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy4kdmlzaWJsZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMucHJldmlvdXNGb2N1c2VkRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50XG4gICAgICAgID8gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLiR2aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy5pc01heGltaXplZCA9IHZhbHVlICYmIHRoaXMubWF4aW1pemU7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKHZhbHVlKTtcblxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRoaXMuc3luY0JvZHlQb3J0YWwoKTtcblxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9jdXNEaWFsb2coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3RvcmVGb2N1cyh0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuJHZpc2libGU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuc3luY0JvZHlQb3J0YWwoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFjaEJvZHlQb3J0YWwoKTtcbiAgICB0aGlzLnRvZ2dsZUJvZHlTY3JvbGwoZmFsc2UpO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ1N0eWxlcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ2V0RGltZW5zaW9uU3R5bGVzKCd3aWR0aCcsIHRoaXMud2lkdGgpLFxuICAgICAgLi4uZ2V0RGltZW5zaW9uU3R5bGVzKCdoZWlnaHQnLCB0aGlzLmhlaWdodClcbiAgICB9O1xuICB9XG5cbiAgbWFwQnV0dG9uUHJpb3JpdHkoc2V2ZXJpdHk/OiBNb2RhbEJ1dHRvblsnc2V2ZXJpdHknXSk6IEJ1dHRvblByaW9yaXR5IHtcbiAgICBpZiAoc2V2ZXJpdHkgPT09ICdzZWNvbmRhcnknKSB7XG4gICAgICByZXR1cm4gJ3NlY29uZGFyeSc7XG4gICAgfVxuXG4gICAgaWYgKHNldmVyaXR5ID09PSAnZGFuZ2VyJykge1xuICAgICAgcmV0dXJuICdkYW5nZXInO1xuICAgIH1cblxuICAgIHJldHVybiAncHJpbWFyeSc7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuJHZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmlzTWF4aW1pemVkID0gZmFsc2U7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKGZhbHNlKTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNCb2R5UG9ydGFsKCk7XG4gICAgICByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5vbkhpZGUuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlTWF4aW1pemUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1heGltaXphYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc01heGltaXplZCA9ICF0aGlzLmlzTWF4aW1pemVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNEaWFsb2coKSk7XG4gIH1cblxuICBvbkZvb3RlckJ1dHRvbkNsaWNrKGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGFjdGlvbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBNT0RBTF9FU0NBUEVfS0VZKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBpZiAodGhpcy5jbG9zYWJsZSkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBNT0RBTF9UQUJfS0VZKSB7XG4gICAgICB0aGlzLnRyYXBGb2N1cyhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0RpYWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmdldERpYWxvZ0VsZW1lbnQoKTtcblxuICAgIGlmICghZGlhbG9nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9jdXNGaXJzdERlc2NlbmRhbnQoZGlhbG9nLCBkaWFsb2cpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVCb2R5U2Nyb2xsKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgdGhpcy5wcmV2aW91c0JvZHlPdmVyZmxvdyA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShNT0RBTF9CT0RZX09WRVJGTE9XX1BST1BFUlRZLCBNT0RBTF9CT0RZX09WRVJGTE9XX0hJRERFTik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJldmlvdXNCb2R5T3ZlcmZsb3cpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShNT0RBTF9CT0RZX09WRVJGTE9XX1BST1BFUlRZLCB0aGlzLnByZXZpb3VzQm9keU92ZXJmbG93KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSk7XG4gIH1cblxuICBwcml2YXRlIHRyYXBGb2N1cyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0RGlhbG9nRWxlbWVudCgpO1xuXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJhcEZvY3VzSW5Db250YWluZXIoZXZlbnQsIGNvbnRhaW5lciwgdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbCwgY29udGFpbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlhbG9nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZ1BhbmVsPy5uYXRpdmVFbGVtZW50XG4gICAgICA/PyAodGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmhlYWRlcklkKT8uY2xvc2VzdCgnLnNkYy1tb2RhbCcpIGFzIEhUTUxFbGVtZW50IHwgbnVsbClcbiAgICAgID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHN5bmNCb2R5UG9ydGFsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuYm9keVBvcnRhbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hcHBlbmRUb0JvZHkgfHwgIXRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy5kZXRhY2hCb2R5UG9ydGFsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0bGV0ID0gdGhpcy5lbnN1cmVCb2R5UG9ydGFsT3V0bGV0KCk7XG5cbiAgICBpZiAoIW91dGxldC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICBvdXRsZXQuYXR0YWNoKHRoaXMuYm9keVBvcnRhbCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNEaWFsb2coKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVCb2R5UG9ydGFsT3V0bGV0KCk6IERvbVBvcnRhbE91dGxldCB7XG4gICAgaWYgKCF0aGlzLmJvZHlQb3J0YWxPdXRsZXQpIHtcbiAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdGhpcy5kb2N1bWVudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ib2R5UG9ydGFsT3V0bGV0O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hCb2R5UG9ydGFsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJvZHlQb3J0YWxPdXRsZXQ/Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldC5kZXRhY2goKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlICR2aXNpYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgJGFwcGVuZFRvQm9keSA9IERFRkFVTFRfTU9EQUxfQVBQRU5EX1RPX0JPRFk7XG4gIHByaXZhdGUgcHJldmlvdXNCb2R5T3ZlcmZsb3cgPSAnJztcbiAgcHJpdmF0ZSB2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBib2R5UG9ydGFsT3V0bGV0PzogRG9tUG9ydGFsT3V0bGV0O1xufVxuIiwiPG5nLXRlbXBsYXRlICNtb2RhbFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsLWJhY2tkcm9wXCIgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4XCI+XG4gICAgPHNlY3Rpb25cbiAgICAgICNkaWFsb2dQYW5lbFxuICAgICAgY2xhc3M9XCJzZGMtbW9kYWxcIlxuICAgICAgW25nQ2xhc3NdPVwic3R5bGVDbGFzc1wiXG4gICAgICBbY2xhc3Muc2RjLW1vZGFsLS1tYXhpbWl6ZWRdPVwiaXNNYXhpbWl6ZWRcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tcmVzaXphYmxlXT1cInJlc2l6YWJsZSAmJiAhaXNNYXhpbWl6ZWRcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tcmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCJcbiAgICAgIFtuZ1N0eWxlXT1cImRpYWxvZ1N0eWxlc1wiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJ0cnVlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJoZWFkZXJJZFwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImNvbnRlbnRJZFwiXG4gICAgPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInNkYy1tb2RhbF9faGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX3RpdGxlXCIgW2lkXT1cImhlYWRlcklkXCI+XG4gICAgICAgICAge3sgaGVhZGVyIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX2hlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgQGlmIChtYXhpbWl6YWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1heGltaXplKClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihcbiAgICAgICAgICAgICAgICBpc01heGltaXplZCA/ICdwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5yZXN0b3JlX3NpemUnIDogJ3BsYXRmb3JtLmRhdGFjb3JlLm1vZGFsLm1heGltaXplJ1xuICAgICAgICAgICAgICApIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmICghaXNNYXhpbWl6ZWQpIHtcbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2RjLW1vZGFsX19pY29uIHNkYy1tb2RhbF9faWNvbi0tbWF4aW1pemVcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMy41SDMuNVY2XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMy41aDIuNVY2XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMHYyLjVIMTBcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDEyLjVIMy41VjEwXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLW1heGltaXplXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjUgMy41SDMuNVY1LjVcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC41IDMuNWgydjJcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41IDEwLjV2MmgtMlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUuNSAxMi41aC0ydi0yXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChjbG9zYWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5jbG9zZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2RjLW1vZGFsX19pY29uIHNkYy1tb2RhbF9faWNvbi0tY2xvc2VcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDUgMTEgMTFcIiAvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgNSA1IDExXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX2NvbnRlbnRcIiBbaWRdPVwiY29udGVudElkXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX19mb290ZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm1vZGFsX2Zvb3RlcicgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgQGZvciAoYnRuIG9mIGZvb3RlckJ1dHRvbnM7IHRyYWNrIGJ0bi5pZCB8fCBidG4ubGFiZWwpIHtcbiAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgW2lkXT1cImJ0bi5pZCA/PyAnbW9kYWwtZm9vdGVyLWJ1dHRvbidcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbFwiXG4gICAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgICAgIFtwcmlvcml0eV09XCJtYXBCdXR0b25Qcmlvcml0eShidG4uc2V2ZXJpdHkpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkZvb3RlckJ1dHRvbkNsaWNrKGJ0bi5hY3Rpb24pXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIGNka1BvcnRhbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbkBpZiAoIWFwcGVuZFRvQm9keSAmJiB2aXNpYmxlKSB7XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG59XG4iXX0=
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdEQsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDZCxNQUFNLGtDQUFrQyxDQUFDO0FBRzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFB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NEZBQWQsY0FBYyxnV0FlTCxnQkFBZ0IsbVVBYnpCLFNBQVMsZ0RDekR0QixzOEdBK0ZBLDRrUERoRFksU0FBUyxnRkFBRSxZQUFZLHdYQUFFLGVBQWUsNEZBQUUsZUFBZTs7NEZBUXhELGNBQWM7a0JBVDFCLFNBQVM7OEJBQ0MsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsY0FDeEQsSUFBSSxZQUNOLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHZixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsVUFBVTtzQkFBL0IsU0FBUzt1QkFBQyxTQUFTO2dCQUVYLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNzQyxZQUFZO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVU1QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFZTSxPQUFPO3NCQUFuQixLQUFLO2dCQThGTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWwsIERvbVBvcnRhbE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uJztcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9NT0RBTF9BUFBFTkRfVE9fQk9EWSxcbiAgREVGQVVMVF9NT0RBTF9DTE9TQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9GT09URVJfQlVUVE9OUyxcbiAgREVGQVVMVF9NT0RBTF9IRUFERVIsXG4gIERFRkFVTFRfTU9EQUxfSEVJR0hULFxuICBERUZBVUxUX01PREFMX0lEX1BSRUZJWCxcbiAgREVGQVVMVF9NT0RBTF9NQVhJTUlaQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9NQVhJTUlaRSxcbiAgREVGQVVMVF9NT0RBTF9SRVNQT05TSVZFLFxuICBERUZBVUxUX01PREFMX1JFU0laQUJMRSxcbiAgREVGQVVMVF9NT0RBTF9XSURUSCxcbiAgREVGQVVMVF9NT0RBTF9aX0lOREVYLFxuICBNT0RBTF9CT0RZX09WRVJGTE9XX0hJRERFTixcbiAgTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSxcbiAgTU9EQUxfRVNDQVBFX0tFWSxcbiAgTU9EQUxfVEFCX0tFWVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9tb2RhbC5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IE1vZGFsQnV0dG9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9tb2RhbC50eXBlJztcbmltcG9ydCB0eXBlIHsgRGltZW5zaW9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBnZXREaW1lbnNpb25TdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NlbWFudGljcy50eXBlJztcbmltcG9ydCB7IGZvY3VzRmlyc3REZXNjZW5kYW50LCByZXN0b3JlRm9jdXMsIHRyYXBGb2N1c0luQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9mb2N1cy51dGlsJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0Nka1BvcnRhbCwgQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZGlhbG9nUGFuZWwnKSBkaWFsb2dQYW5lbD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKENka1BvcnRhbCkgYm9keVBvcnRhbD86IENka1BvcnRhbDtcblxuICBASW5wdXQoKSBmb290ZXJCdXR0b25zOiBNb2RhbEJ1dHRvbltdID0gREVGQVVMVF9NT0RBTF9GT09URVJfQlVUVE9OUztcbiAgQElucHV0KCkgaGVhZGVyID0gREVGQVVMVF9NT0RBTF9IRUFERVI7XG4gIEBJbnB1dCgpIGhlaWdodDogRGltZW5zaW9uID0gREVGQVVMVF9NT0RBTF9IRUlHSFQ7XG4gIEBJbnB1dCgpIG1heGltaXphYmxlID0gREVGQVVMVF9NT0RBTF9NQVhJTUlaQUJMRTtcbiAgQElucHV0KCkgbWF4aW1pemUgPSBERUZBVUxUX01PREFMX01BWElNSVpFO1xuICBASW5wdXQoKSByZXNpemFibGUgPSBERUZBVUxUX01PREFMX1JFU0laQUJMRTtcbiAgQElucHV0KCkgcmVzcG9uc2l2ZSA9IERFRkFVTFRfTU9EQUxfUkVTUE9OU0lWRTtcbiAgQElucHV0KCkgd2lkdGg6IERpbWVuc2lvbiA9IERFRkFVTFRfTU9EQUxfV0lEVEg7XG4gIEBJbnB1dCgpIHpJbmRleCA9IERFRkFVTFRfTU9EQUxfWl9JTkRFWDtcbiAgQElucHV0KCkgY2xvc2FibGUgPSBERUZBVUxUX01PREFMX0NMT1NBQkxFO1xuICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzZXQgYXBwZW5kVG9Cb2R5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4kYXBwZW5kVG9Cb2R5ID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5zeW5jQm9keVBvcnRhbCgpKTtcbiAgfVxuXG4gIGdldCBhcHBlbmRUb0JvZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuJGFwcGVuZFRvQm9keTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBoaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IG1vZGFsSWQgPSBuZXh0U2VxdWVudGlhbElkKERFRkFVTFRfTU9EQUxfSURfUFJFRklYKTtcbiAgcmVhZG9ubHkgaGVhZGVySWQgPSBgJHt0aGlzLm1vZGFsSWR9LWhlYWRlcmA7XG4gIHJlYWRvbmx5IGNvbnRlbnRJZCA9IGAke3RoaXMubW9kYWxJZH0tY29udGVudGA7XG5cbiAgaXNNYXhpbWl6ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHByZXZpb3VzRm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy4kdmlzaWJsZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMucHJldmlvdXNGb2N1c2VkRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50XG4gICAgICAgID8gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLiR2aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy5pc01heGltaXplZCA9IHZhbHVlICYmIHRoaXMubWF4aW1pemU7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKHZhbHVlKTtcblxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRoaXMuc3luY0JvZHlQb3J0YWwoKTtcblxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9jdXNEaWFsb2coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3RvcmVGb2N1cyh0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuJHZpc2libGU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuc3luY0JvZHlQb3J0YWwoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFjaEJvZHlQb3J0YWwoKTtcbiAgICB0aGlzLnRvZ2dsZUJvZHlTY3JvbGwoZmFsc2UpO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ1N0eWxlcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ2V0RGltZW5zaW9uU3R5bGVzKCd3aWR0aCcsIHRoaXMud2lkdGgpLFxuICAgICAgLi4uZ2V0RGltZW5zaW9uU3R5bGVzKCdoZWlnaHQnLCB0aGlzLmhlaWdodClcbiAgICB9O1xuICB9XG5cbiAgbWFwQnV0dG9uUHJpb3JpdHkoc2V2ZXJpdHk/OiBNb2RhbEJ1dHRvblsnc2V2ZXJpdHknXSk6IEJ1dHRvblByaW9yaXR5IHtcbiAgICBpZiAoc2V2ZXJpdHkgPT09ICdzZWNvbmRhcnknKSB7XG4gICAgICByZXR1cm4gJ3NlY29uZGFyeSc7XG4gICAgfVxuXG4gICAgaWYgKHNldmVyaXR5ID09PSAnZGFuZ2VyJykge1xuICAgICAgcmV0dXJuICdkYW5nZXInO1xuICAgIH1cblxuICAgIHJldHVybiAncHJpbWFyeSc7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuJHZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmlzTWF4aW1pemVkID0gZmFsc2U7XG4gICAgdGhpcy50b2dnbGVCb2R5U2Nyb2xsKGZhbHNlKTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNCb2R5UG9ydGFsKCk7XG4gICAgICByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5oaWRkZW4uZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlTWF4aW1pemUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1heGltaXphYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc01heGltaXplZCA9ICF0aGlzLmlzTWF4aW1pemVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNEaWFsb2coKSk7XG4gIH1cblxuICBvbkZvb3RlckJ1dHRvbkNsaWNrKGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGFjdGlvbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBNT0RBTF9FU0NBUEVfS0VZKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBpZiAodGhpcy5jbG9zYWJsZSkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBNT0RBTF9UQUJfS0VZKSB7XG4gICAgICB0aGlzLnRyYXBGb2N1cyhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0RpYWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmdldERpYWxvZ0VsZW1lbnQoKTtcblxuICAgIGlmICghZGlhbG9nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9jdXNGaXJzdERlc2NlbmRhbnQoZGlhbG9nLCBkaWFsb2cpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVCb2R5U2Nyb2xsKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgdGhpcy5wcmV2aW91c0JvZHlPdmVyZmxvdyA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShNT0RBTF9CT0RZX09WRVJGTE9XX1BST1BFUlRZLCBNT0RBTF9CT0RZX09WRVJGTE9XX0hJRERFTik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJldmlvdXNCb2R5T3ZlcmZsb3cpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShNT0RBTF9CT0RZX09WRVJGTE9XX1BST1BFUlRZLCB0aGlzLnByZXZpb3VzQm9keU92ZXJmbG93KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoTU9EQUxfQk9EWV9PVkVSRkxPV19QUk9QRVJUWSk7XG4gIH1cblxuICBwcml2YXRlIHRyYXBGb2N1cyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0RGlhbG9nRWxlbWVudCgpO1xuXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJhcEZvY3VzSW5Db250YWluZXIoZXZlbnQsIGNvbnRhaW5lciwgdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbCwgY29udGFpbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlhbG9nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZ1BhbmVsPy5uYXRpdmVFbGVtZW50XG4gICAgICA/PyAodGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmhlYWRlcklkKT8uY2xvc2VzdCgnLnNkYy1tb2RhbCcpIGFzIEhUTUxFbGVtZW50IHwgbnVsbClcbiAgICAgID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHN5bmNCb2R5UG9ydGFsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuYm9keVBvcnRhbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hcHBlbmRUb0JvZHkgfHwgIXRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy5kZXRhY2hCb2R5UG9ydGFsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0bGV0ID0gdGhpcy5lbnN1cmVCb2R5UG9ydGFsT3V0bGV0KCk7XG5cbiAgICBpZiAoIW91dGxldC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICBvdXRsZXQuYXR0YWNoKHRoaXMuYm9keVBvcnRhbCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNEaWFsb2coKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVCb2R5UG9ydGFsT3V0bGV0KCk6IERvbVBvcnRhbE91dGxldCB7XG4gICAgaWYgKCF0aGlzLmJvZHlQb3J0YWxPdXRsZXQpIHtcbiAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdGhpcy5kb2N1bWVudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ib2R5UG9ydGFsT3V0bGV0O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hCb2R5UG9ydGFsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJvZHlQb3J0YWxPdXRsZXQ/Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMuYm9keVBvcnRhbE91dGxldC5kZXRhY2goKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlICR2aXNpYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgJGFwcGVuZFRvQm9keSA9IERFRkFVTFRfTU9EQUxfQVBQRU5EX1RPX0JPRFk7XG4gIHByaXZhdGUgcHJldmlvdXNCb2R5T3ZlcmZsb3cgPSAnJztcbiAgcHJpdmF0ZSB2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBib2R5UG9ydGFsT3V0bGV0PzogRG9tUG9ydGFsT3V0bGV0O1xufVxuIiwiPG5nLXRlbXBsYXRlICNtb2RhbFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsLWJhY2tkcm9wXCIgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4XCI+XG4gICAgPHNlY3Rpb25cbiAgICAgICNkaWFsb2dQYW5lbFxuICAgICAgY2xhc3M9XCJzZGMtbW9kYWxcIlxuICAgICAgW25nQ2xhc3NdPVwic3R5bGVDbGFzc1wiXG4gICAgICBbY2xhc3Muc2RjLW1vZGFsLS1tYXhpbWl6ZWRdPVwiaXNNYXhpbWl6ZWRcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tcmVzaXphYmxlXT1cInJlc2l6YWJsZSAmJiAhaXNNYXhpbWl6ZWRcIlxuICAgICAgW2NsYXNzLnNkYy1tb2RhbC0tcmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCJcbiAgICAgIFtuZ1N0eWxlXT1cImRpYWxvZ1N0eWxlc1wiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJ0cnVlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJoZWFkZXJJZFwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImNvbnRlbnRJZFwiXG4gICAgPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInNkYy1tb2RhbF9faGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX3RpdGxlXCIgW2lkXT1cImhlYWRlcklkXCI+XG4gICAgICAgICAge3sgaGVhZGVyIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX2hlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgQGlmIChtYXhpbWl6YWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1heGltaXplKClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihcbiAgICAgICAgICAgICAgICBpc01heGltaXplZCA/ICdwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5yZXN0b3JlX3NpemUnIDogJ3BsYXRmb3JtLmRhdGFjb3JlLm1vZGFsLm1heGltaXplJ1xuICAgICAgICAgICAgICApIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmICghaXNNYXhpbWl6ZWQpIHtcbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2RjLW1vZGFsX19pY29uIHNkYy1tb2RhbF9faWNvbi0tbWF4aW1pemVcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMy41SDMuNVY2XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMy41aDIuNVY2XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMHYyLjVIMTBcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDEyLjVIMy41VjEwXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNkYy1tb2RhbF9faWNvbiBzZGMtbW9kYWxfX2ljb24tLW1heGltaXplXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjUgMy41SDMuNVY1LjVcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC41IDMuNWgydjJcIiAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41IDEwLjV2MmgtMlwiIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUuNSAxMi41aC0ydi0yXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChjbG9zYWJsZSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtbW9kYWxfX2ljb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5tb2RhbC5jbG9zZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwic2RjLW1vZGFsX19pY29uIHNkYy1tb2RhbF9faWNvbi0tY2xvc2VcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDUgMTEgMTFcIiAvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgNSA1IDExXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbW9kYWxfX2NvbnRlbnRcIiBbaWRdPVwiY29udGVudElkXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLW1vZGFsX19mb290ZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm1vZGFsX2Zvb3RlcicgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgQGZvciAoYnRuIG9mIGZvb3RlckJ1dHRvbnM7IHRyYWNrIGJ0bi5pZCB8fCBidG4ubGFiZWwpIHtcbiAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgW2lkXT1cImJ0bi5pZCA/PyAnbW9kYWwtZm9vdGVyLWJ1dHRvbidcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbFwiXG4gICAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgICAgIFtwcmlvcml0eV09XCJtYXBCdXR0b25Qcmlvcml0eShidG4uc2V2ZXJpdHkpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkZvb3RlckJ1dHRvbkNsaWNrKGJ0bi5hY3Rpb24pXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIGNka1BvcnRhbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbkBpZiAoIWFwcGVuZFRvQm9keSAmJiB2aXNpYmxlKSB7XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG59XG4iXX0=
@@ -126,7 +126,7 @@ export class ModalcComponent {
126
126
  focusFirstDescendant(container, container);
127
127
  }
128
128
  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: ["onClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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
130
  }
131
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalcComponent, decorators: [{
132
132
  type: Component,
@@ -175,13 +175,13 @@ export class NumberInputComponent extends InputsComponent {
175
175
  this.cdr.markForCheck();
176
176
  }
177
177
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
178
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NumberInputComponent, isStandalone: true, selector: "sdc-number-input", inputs: { precision: "precision", scale: "scale", decimalSeparator: "decimalSeparator", thousandsSeparator: "thousandsSeparator", alignTo: "alignTo", allowNegative: "allowNegative", min: "min", max: "max", step: "step", infoTooltip: "infoTooltip", infoTooltipPosition: "infoTooltipPosition", infoTooltipEvent: "infoTooltipEvent" }, outputs: { pasteRejected: "pasteRejected" }, providers: [
178
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NumberInputComponent, isStandalone: true, selector: "sdc-number-input", inputs: { precision: "precision", scale: "scale", decimalSeparator: "decimalSeparator", thousandsSeparator: "thousandsSeparator", alignTo: "alignTo", allowNegative: "allowNegative", min: "min", max: "max", step: "step", infoTooltip: "infoTooltip", infoTooltipPosition: "infoTooltipPosition", infoTooltipEvent: "infoTooltipEvent" }, outputs: { pasteRejected: "pasteRejected" }, providers: [
179
179
  {
180
180
  provide: NG_VALUE_ACCESSOR,
181
181
  useExisting: forwardRef(() => NumberInputComponent),
182
182
  multi: true
183
183
  }
184
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-number-input\">\n <div class=\"sdc-number-input__label-row\" *ngIf=\"labelKey() || hasTooltip\">\n <label *ngIf=\"labelKey()\" [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n <span *ngIf=\"required\" class=\"required-field\" aria-hidden=\"true\">*</span>\n <span *ngIf=\"required\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n </span>\n </label>\n\n <sdc-tooltip\n *ngIf=\"hasTooltip\"\n class=\"sdc-number-input__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-number-input__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n </div>\n\n <input\n class=\"sdc-number-input__input\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"onNativeInput($event)\"\n (paste)=\"onPaste($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-number-input__input--align-right]=\"alignTo === 'right'\"\n [class.sdc-number-input__input--invalid]=\"invalid\"\n [placeholder]=\"resolvedPlaceholder\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.inputmode]=\"inputMode\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"resolvedStep\"\n [attr.role]=\"'spinbutton'\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-valuenow]=\"value ?? null\"\n [attr.aria-valuemin]=\"min ?? null\"\n [attr.aria-valuemax]=\"max ?? null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n <small\n *ngIf=\"messageKey()\"\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n</div>\n", styles: [".sdc-number-input .sdc-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-number-input .sdc-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-number-input .sdc-number-input__label-text{display:inline-flex;align-items:center}.sdc-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-number-input .sdc-number-input__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-number-input .sdc-number-input__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-number-input .sdc-number-input__input{width:100%;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;color:var(--p-text-color, #111827)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;box-sizing:border-box!important;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-number-input .sdc-number-input__input--align-right{text-align:right}.sdc-number-input .sdc-number-input__input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-number-input .sdc-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow-visible, 0 0 0 2px rgba(0, 123, 255, .2))!important}.sdc-number-input .sdc-number-input__input:disabled{background-color:var(--sdc-formfield-disabled-bg)!important;cursor:not-allowed!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid,.sdc-number-input .sdc-number-input__input[aria-invalid=true],.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:none!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus,.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus-visible,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus-visible{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
184
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-number-input\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (hasTooltip) {\n <sdc-tooltip\n class=\"sdc-number-input__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-number-input__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <input\n class=\"sdc-number-input__input\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"onNativeInput($event)\"\n (paste)=\"onPaste($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-number-input__input--align-right]=\"alignTo === 'right'\"\n [class.sdc-number-input__input--invalid]=\"invalid\"\n [placeholder]=\"resolvedPlaceholder\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.inputmode]=\"inputMode\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"resolvedStep\"\n [attr.role]=\"'spinbutton'\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-valuenow]=\"value ?? null\"\n [attr.aria-valuemin]=\"min ?? null\"\n [attr.aria-valuemax]=\"max ?? null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-number-input .sdc-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-number-input .sdc-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-number-input .sdc-number-input__label-text{display:inline-flex;align-items:center}.sdc-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-number-input .sdc-number-input__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-number-input .sdc-number-input__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-number-input .sdc-number-input__input{width:100%;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;color:var(--p-text-color, #111827)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;box-sizing:border-box!important;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-number-input .sdc-number-input__input--align-right{text-align:right}.sdc-number-input .sdc-number-input__input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-number-input .sdc-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow-visible, 0 0 0 2px rgba(0, 123, 255, .2))!important}.sdc-number-input .sdc-number-input__input:disabled{background-color:var(--sdc-formfield-disabled-bg)!important;cursor:not-allowed!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid,.sdc-number-input .sdc-number-input__input[aria-invalid=true],.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:none!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus,.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus-visible,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus-visible{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
185
185
  }
186
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputComponent, decorators: [{
187
187
  type: Component,
@@ -191,7 +191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
191
191
  useExisting: forwardRef(() => NumberInputComponent),
192
192
  multi: true
193
193
  }
194
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-number-input\">\n <div class=\"sdc-number-input__label-row\" *ngIf=\"labelKey() || hasTooltip\">\n <label *ngIf=\"labelKey()\" [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n <span *ngIf=\"required\" class=\"required-field\" aria-hidden=\"true\">*</span>\n <span *ngIf=\"required\" class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n </span>\n </label>\n\n <sdc-tooltip\n *ngIf=\"hasTooltip\"\n class=\"sdc-number-input__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-number-input__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n </div>\n\n <input\n class=\"sdc-number-input__input\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"onNativeInput($event)\"\n (paste)=\"onPaste($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-number-input__input--align-right]=\"alignTo === 'right'\"\n [class.sdc-number-input__input--invalid]=\"invalid\"\n [placeholder]=\"resolvedPlaceholder\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.inputmode]=\"inputMode\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"resolvedStep\"\n [attr.role]=\"'spinbutton'\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-valuenow]=\"value ?? null\"\n [attr.aria-valuemin]=\"min ?? null\"\n [attr.aria-valuemax]=\"max ?? null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n <small\n *ngIf=\"messageKey()\"\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n</div>\n", styles: [".sdc-number-input .sdc-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-number-input .sdc-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-number-input .sdc-number-input__label-text{display:inline-flex;align-items:center}.sdc-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-number-input .sdc-number-input__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-number-input .sdc-number-input__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-number-input .sdc-number-input__input{width:100%;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;color:var(--p-text-color, #111827)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;box-sizing:border-box!important;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-number-input .sdc-number-input__input--align-right{text-align:right}.sdc-number-input .sdc-number-input__input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-number-input .sdc-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow-visible, 0 0 0 2px rgba(0, 123, 255, .2))!important}.sdc-number-input .sdc-number-input__input:disabled{background-color:var(--sdc-formfield-disabled-bg)!important;cursor:not-allowed!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid,.sdc-number-input .sdc-number-input__input[aria-invalid=true],.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:none!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus,.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus-visible,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus-visible{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))!important}\n"] }]
194
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-number-input\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (hasTooltip) {\n <sdc-tooltip\n class=\"sdc-number-input__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-number-input__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <input\n class=\"sdc-number-input__input\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"onNativeInput($event)\"\n (paste)=\"onPaste($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-number-input__input--align-right]=\"alignTo === 'right'\"\n [class.sdc-number-input__input--invalid]=\"invalid\"\n [placeholder]=\"resolvedPlaceholder\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.inputmode]=\"inputMode\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"resolvedStep\"\n [attr.role]=\"'spinbutton'\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-valuenow]=\"value ?? null\"\n [attr.aria-valuemin]=\"min ?? null\"\n [attr.aria-valuemax]=\"max ?? null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-number-input .sdc-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-number-input .sdc-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-number-input .sdc-number-input__label-text{display:inline-flex;align-items:center}.sdc-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-number-input .sdc-number-input__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-number-input .sdc-number-input__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-number-input .sdc-number-input__input{width:100%;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;color:var(--p-text-color, #111827)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;box-sizing:border-box!important;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-number-input .sdc-number-input__input--align-right{text-align:right}.sdc-number-input .sdc-number-input__input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-number-input .sdc-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow-visible, 0 0 0 2px rgba(0, 123, 255, .2))!important}.sdc-number-input .sdc-number-input__input:disabled{background-color:var(--sdc-formfield-disabled-bg)!important;cursor:not-allowed!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid,.sdc-number-input .sdc-number-input__input[aria-invalid=true],.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:none!important}.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus,.sdc-number-input .sdc-number-input__input.sdc-number-input__input--invalid:focus-visible,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus,.sdc-number-input .sdc-number-input__input[aria-invalid=true]:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-dirty:focus-visible,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus,.sdc-number-input .sdc-number-input__input.ng-invalid.ng-touched:focus-visible{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important;box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))!important}\n"] }]
195
195
  }], ctorParameters: () => [], propDecorators: { precision: [{
196
196
  type: Input
197
197
  }], scale: [{
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
219
219
  }], pasteRejected: [{
220
220
  type: Output
221
221
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUNMLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDbkMsOEJBQThCLEVBQzlCLDBCQUEwQixFQUMzQixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN6QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBa0JoRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBdUI7SUFDOUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUzQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7SUFDM0MsS0FBSyxHQUFHLDBCQUEwQixDQUFDO0lBQ25DLGdCQUFnQixDQUFVO0lBQzFCLGtCQUFrQixDQUFVO0lBQzVCLE9BQU8sR0FBeUIsOEJBQThCLENBQUM7SUFDL0QsYUFBYSxHQUFHLG1DQUFtQyxDQUFDO0lBQ3BELEdBQUcsQ0FBVTtJQUNiLEdBQUcsQ0FBVTtJQUNiLElBQUksQ0FBbUI7SUFDdkIsV0FBVyxHQUFrQixJQUFJLENBQUM7SUFDbEMsbUJBQW1CLEdBQW9CLE9BQU8sQ0FBQztJQUMvQyxnQkFBZ0IsR0FBaUIsTUFBTSxDQUFDO0lBRXZDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXJELFlBQVksR0FBRyxFQUFFLENBQUM7SUFFVixVQUFVLEdBQTBCLDRCQUE0QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0YsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQix3QkFBd0IsR0FBRyxLQUFLLENBQUM7SUFDakMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0lBRTNDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFvQjtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQztRQUN6RixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxZQUFZLEtBQUssU0FBUyxDQUFDO1FBQzdGLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsQ0FBQztRQUVELE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDOUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsT0FBTyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE1BQU0sVUFBVSxHQUFHLDZCQUE2QixDQUM5QyxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDdEIsQ0FBQztRQUVGLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVk7UUFDeEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQWlDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ3ZELGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUztTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBRTlCLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUN4QyxJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUNyQixLQUFLLENBQ04sQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFckIsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBcUI7UUFDM0IsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlELElBQUksc0JBQXNCLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUFnQztRQUM3RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6RCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLHlCQUF5QixDQUM5QixLQUFLLEVBQ0wsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxHQUFHLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsTUFBTSxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTztZQUNsSCxLQUFLLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO1NBQ3JILENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxzQkFBc0IsQ0FDeEMsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0FsT1Usb0JBQW9COzRGQUFwQixvQkFBb0Isd2JBVnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLHNFQ3JESCw4NUVBcUVBLGt4SER6QlksWUFBWSxxVEFBRSxXQUFXLDhCQUFFLG1CQUFtQiw4QkFBRSxlQUFlLDRGQUFFLGdCQUFnQjs7NEZBYWhGLG9CQUFvQjtrQkFoQmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGFBR2pGO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTt3REFPaEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIE5VTUJFUl9JTlBVVF9ERUZBVUxUX0FMSUdOTUVOVCxcbiAgTlVNQkVSX0lOUFVUX0RFRkFVTFRfQUxMT1dfTkVHQVRJVkUsXG4gIE5VTUJFUl9JTlBVVF9ERUZBVUxUX1BSRUNJU0lPTixcbiAgTlVNQkVSX0lOUFVUX0RFRkFVTFRfU0NBTEVcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvbnVtYmVyLWlucHV0LmNvbnN0JztcbmltcG9ydCB7IElucHV0c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvZGlyZWN0aXZlcy9pbnB1dHMuZGlyZWN0aXZlJztcbmltcG9ydCB0eXBlIHsgTnVtYmVySW5wdXRBbGlnbm1lbnQsIE51bWJlcklucHV0U2VwYXJhdG9ycyB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvbnVtYmVyLWlucHV0LnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHtcbiAgYnVpbGROdW1iZXJJbnB1dFBsYWNlaG9sZGVyLFxuICBjYWxjdWxhdGVOdW1iZXJJbnB1dE1heExlbmd0aCxcbiAgY291bnROdW1iZXJJbnB1dERpZ2l0cyxcbiAgZm9ybWF0TnVtYmVySW5wdXRWYWx1ZSxcbiAgbm9ybWFsaXplTnVtYmVySW5wdXRWYWx1ZSxcbiAgcGFyc2VOdW1iZXJJbnB1dFZhbHVlLFxuICByZXNvbHZlTnVtYmVySW5wdXRTZXBhcmF0b3JzLFxuICBzYW5pdGl6ZU51bWJlcklucHV0VmFsdWVcbn0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9udW1iZXItaW5wdXQudXRpbCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1udW1iZXItaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9udW1iZXItaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlcklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBJbnB1dHNDb21wb25lbnQ8bnVtYmVyPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpIHByZWNpc2lvbiA9IE5VTUJFUl9JTlBVVF9ERUZBVUxUX1BSRUNJU0lPTjtcbiAgQElucHV0KCkgc2NhbGUgPSBOVU1CRVJfSU5QVVRfREVGQVVMVF9TQ0FMRTtcbiAgQElucHV0KCkgZGVjaW1hbFNlcGFyYXRvcj86IHN0cmluZztcbiAgQElucHV0KCkgdGhvdXNhbmRzU2VwYXJhdG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBhbGlnblRvOiBOdW1iZXJJbnB1dEFsaWdubWVudCA9IE5VTUJFUl9JTlBVVF9ERUZBVUxUX0FMSUdOTUVOVDtcbiAgQElucHV0KCkgYWxsb3dOZWdhdGl2ZSA9IE5VTUJFUl9JTlBVVF9ERUZBVUxUX0FMTE9XX05FR0FUSVZFO1xuICBASW5wdXQoKSBtaW4/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcbiAgQElucHV0KCkgc3RlcD86IG51bWJlciB8IHN0cmluZztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG5cbiAgQE91dHB1dCgpIHBhc3RlUmVqZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBkaXNwbGF5VmFsdWUgPSAnJztcblxuICBwcml2YXRlIHNlcGFyYXRvcnM6IE51bWJlcklucHV0U2VwYXJhdG9ycyA9IHJlc29sdmVOdW1iZXJJbnB1dFNlcGFyYXRvcnModGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpO1xuICBwcml2YXRlIGZvY3VzZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBleHBsaWNpdERlY2ltYWxTZXBhcmF0b3IgPSBmYWxzZTtcbiAgcHJpdmF0ZSBleHBsaWNpdFRob3VzYW5kc1NlcGFyYXRvciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaFNlcGFyYXRvcnMoKTtcbiAgICAgICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMubm9ybWFsaXplRXh0ZXJuYWxWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RlY2ltYWxTZXBhcmF0b3InXSkge1xuICAgICAgdGhpcy5leHBsaWNpdERlY2ltYWxTZXBhcmF0b3IgPSBjaGFuZ2VzWydkZWNpbWFsU2VwYXJhdG9yJ10uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ3Rob3VzYW5kc1NlcGFyYXRvciddKSB7XG4gICAgICB0aGlzLmV4cGxpY2l0VGhvdXNhbmRzU2VwYXJhdG9yID0gY2hhbmdlc1sndGhvdXNhbmRzU2VwYXJhdG9yJ10uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5yZWZyZXNoU2VwYXJhdG9ycygpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUV4dGVybmFsVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZEFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmxhYmVsS2V5KCkpIHtcbiAgICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5sYWJlbEtleSgpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm51bWJlcl9pbnB1dCcpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGROdW1iZXJJbnB1dFBsYWNlaG9sZGVyKHRoaXMuc2FmZVNjYWxlLCB0aGlzLnNlcGFyYXRvcnMuZGVjaW1hbCk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRTdGVwKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc3RlcCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc3RlcCAhPT0gbnVsbCAmJiBTdHJpbmcodGhpcy5zdGVwKS50cmltKCkpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodGhpcy5zdGVwKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zYWZlU2NhbGUgPD0gMCkge1xuICAgICAgcmV0dXJuICcxJztcbiAgICB9XG5cbiAgICByZXR1cm4gYDAuJHsnMCcucmVwZWF0KE1hdGgubWF4KDAsIHRoaXMuc2FmZVNjYWxlIC0gMSkpfTFgO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkTWF4TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgY29uc3QgY2FsY3VsYXRlZCA9IGNhbGN1bGF0ZU51bWJlcklucHV0TWF4TGVuZ3RoKFxuICAgICAgdGhpcy5zYWZlUHJlY2lzaW9uLFxuICAgICAgdGhpcy5zYWZlU2NhbGUsXG4gICAgICB0aGlzLmFsbG93TmVnYXRpdmUsXG4gICAgICB0aGlzLnNlcGFyYXRvcnMuZGVjaW1hbCxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5ncm91cFxuICAgICk7XG5cbiAgICBpZiAodHlwZW9mIHRoaXMubWF4bGVuZ3RoID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIE1hdGgubWluKHRoaXMubWF4bGVuZ3RoLCBjYWxjdWxhdGVkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsY3VsYXRlZDtcbiAgfVxuXG4gIGdldCBpbnB1dE1vZGUoKTogJ251bWVyaWMnIHwgJ2RlY2ltYWwnIHtcbiAgICByZXR1cm4gdGhpcy5zYWZlU2NhbGUgPiAwID8gJ2RlY2ltYWwnIDogJ251bWVyaWMnO1xuICB9XG5cbiAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pbmZvVG9vbHRpcDtcbiAgfVxuXG4gIGdldCBzYWZlU2NhbGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4odGhpcy5zY2FsZSwgdGhpcy5zYWZlUHJlY2lzaW9uKSk7XG4gIH1cblxuICBnZXQgc2FmZVByZWNpc2lvbigpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heCgxLCBOdW1iZXIuaXNGaW5pdGUodGhpcy5wcmVjaXNpb24pID8gTWF0aC50cnVuYyh0aGlzLnByZWNpc2lvbikgOiBOVU1CRVJfSU5QVVRfREVGQVVMVF9QUkVDSVNJT04pO1xuICB9XG5cbiAgb25OYXRpdmVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzYW5pdGl6ZWQgPSBzYW5pdGl6ZU51bWJlcklucHV0VmFsdWUodGFyZ2V0LnZhbHVlLCB7XG4gICAgICBhbGxvd05lZ2F0aXZlOiB0aGlzLmFsbG93TmVnYXRpdmUsXG4gICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLnNlcGFyYXRvcnMuZGVjaW1hbCxcbiAgICAgIHByZWNpc2lvbjogdGhpcy5zYWZlUHJlY2lzaW9uLFxuICAgICAgc2NhbGU6IHRoaXMuc2FmZVNjYWxlXG4gICAgfSk7XG5cbiAgICBpZiAoc2FuaXRpemVkICE9PSB0YXJnZXQudmFsdWUpIHtcbiAgICAgIHRhcmdldC52YWx1ZSA9IHNhbml0aXplZDtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHNhbml0aXplZDtcblxuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlTnVtYmVySW5wdXRWYWx1ZSh0aGlzLmRpc3BsYXlWYWx1ZSwgdGhpcy5zZXBhcmF0b3JzKTtcbiAgICBpZiAocGFyc2VkLmVtcHR5KSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG51bGwpO1xuICAgIH0gZWxzZSBpZiAocGFyc2VkLmNvbXBsZXRlICYmIHBhcnNlZC52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLm5vcm1hbGl6ZUV4dGVybmFsVmFsdWUocGFyc2VkLnZhbHVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGZvcm1hdE51bWJlcklucHV0VmFsdWUoXG4gICAgICB0aGlzLnZhbHVlLFxuICAgICAgdGhpcy5zYWZlU2NhbGUsXG4gICAgICB0aGlzLnNlcGFyYXRvcnMuZGVjaW1hbCxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5ncm91cCxcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlTnVtYmVySW5wdXRWYWx1ZSh0aGlzLmRpc3BsYXlWYWx1ZSwgdGhpcy5zZXBhcmF0b3JzKTtcbiAgICBpZiAocGFyc2VkLmVtcHR5KSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG51bGwpO1xuICAgIH0gZWxzZSBpZiAocGFyc2VkLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMubm9ybWFsaXplRXh0ZXJuYWxWYWx1ZShwYXJzZWQudmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcGFzdGVkVGV4dCA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKSA/PyAnJztcbiAgICBpZiAoY291bnROdW1iZXJJbnB1dERpZ2l0cyhwYXN0ZWRUZXh0KSA+IHRoaXMuc2FmZVByZWNpc2lvbikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5wYXN0ZVJlamVjdGVkLmVtaXQocGFzdGVkVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVFeHRlcm5hbFZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgfHwgIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBub3JtYWxpemVOdW1iZXJJbnB1dFZhbHVlKFxuICAgICAgdmFsdWUsXG4gICAgICB0aGlzLnNhZmVQcmVjaXNpb24sXG4gICAgICB0aGlzLnNhZmVTY2FsZSxcbiAgICAgIHRoaXMuYWxsb3dOZWdhdGl2ZSxcbiAgICAgIHRoaXMubWluLFxuICAgICAgdGhpcy5tYXhcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoU2VwYXJhdG9ycygpOiB2b2lkIHtcbiAgICBjb25zdCBsb2NhbGVTZXBhcmF0b3JzID0gcmVzb2x2ZU51bWJlcklucHV0U2VwYXJhdG9ycyh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyk7XG5cbiAgICB0aGlzLnNlcGFyYXRvcnMgPSB7XG4gICAgICBkZWNpbWFsOiB0aGlzLmV4cGxpY2l0RGVjaW1hbFNlcGFyYXRvciAmJiB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPyB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgOiBsb2NhbGVTZXBhcmF0b3JzLmRlY2ltYWwsXG4gICAgICBncm91cDogdGhpcy5leHBsaWNpdFRob3VzYW5kc1NlcGFyYXRvciAmJiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciA/IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIDogbG9jYWxlU2VwYXJhdG9ycy5ncm91cFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN5bmNEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gZm9ybWF0TnVtYmVySW5wdXRWYWx1ZShcbiAgICAgIHRoaXMudmFsdWUsXG4gICAgICB0aGlzLnNhZmVTY2FsZSxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsLFxuICAgICAgdGhpcy5zZXBhcmF0b3JzLmdyb3VwXG4gICAgKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRcIj5cbiAgPGRpdiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2xhYmVsLXJvd1wiICpuZ0lmPVwibGFiZWxLZXkoKSB8fCBoYXNUb29sdGlwXCI+XG4gICAgPGxhYmVsICpuZ0lmPVwibGFiZWxLZXkoKVwiIFtmb3JdPVwiaWRlbnRpdHkuaWRcIiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2xhYmVsXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2xhYmVsLXRleHRcIj5cbiAgICAgICAge3sgbGFiZWxLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZC1maWVsZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8c2RjLXRvb2x0aXBcbiAgICAgICpuZ0lmPVwiaGFzVG9vbHRpcFwiXG4gICAgICBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2luZm8tdG9vbHRpcC13cmFwXCJcbiAgICAgIFtwVG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImluZm9Ub29sdGlwUG9zaXRpb25cIlxuICAgICAgW3Rvb2x0aXBFdmVudF09XCJpbmZvVG9vbHRpcEV2ZW50XCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZSBzZGMtbnVtYmVyLWlucHV0X19pbmZvLXRvb2x0aXAtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICA8L3NkYy10b29sdGlwPlxuICA8L2Rpdj5cblxuICA8aW5wdXRcbiAgICBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2lucHV0XCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgKGlucHV0KT1cIm9uTmF0aXZlSW5wdXQoJGV2ZW50KVwiXG4gICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaWRdPVwiaWRlbnRpdHkuaWRcIlxuICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWVcIlxuICAgIFtuZ0NsYXNzXT1cImdldEludmFsaWRDbGFzcygpXCJcbiAgICBbbmdTdHlsZV09XCJnZXRJbnB1dFN0eWxlKClcIlxuICAgIFtjbGFzcy5zZGMtbnVtYmVyLWlucHV0X19pbnB1dC0tYWxpZ24tcmlnaHRdPVwiYWxpZ25UbyA9PT0gJ3JpZ2h0J1wiXG4gICAgW2NsYXNzLnNkYy1udW1iZXItaW5wdXRfX2lucHV0LS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJyZXNvbHZlZFBsYWNlaG9sZGVyXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgW2F0dHIuaW5wdXRtb2RlXT1cImlucHV0TW9kZVwiXG4gICAgW2F0dHIubWF4bGVuZ3RoXT1cInJlc29sdmVkTWF4TGVuZ3RoXCJcbiAgICBbYXR0ci5taW5dPVwibWluID8/IG51bGxcIlxuICAgIFthdHRyLm1heF09XCJtYXggPz8gbnVsbFwiXG4gICAgW2F0dHIuc3RlcF09XCJyZXNvbHZlZFN0ZXBcIlxuICAgIFthdHRyLnJvbGVdPVwiJ3NwaW5idXR0b24nXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkQXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cInZhbHVlID8/IG51bGxcIlxuICAgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwibWluID8/IG51bGxcIlxuICAgIFthdHRyLmFyaWEtdmFsdWVtYXhdPVwibWF4ID8/IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibWVzc2FnZUtleSgpID8gaWRlbnRpdHkuaWQgKyAnLWVycm9yJyA6IG51bGxcIlxuICAvPlxuXG4gIDxzbWFsbFxuICAgICpuZ0lmPVwibWVzc2FnZUtleSgpXCJcbiAgICBbaWRdPVwiaWRlbnRpdHkuaWQgKyAnLWVycm9yJ1wiXG4gICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICByb2xlPVwiYWxlcnRcIlxuICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gID5cbiAgICB7eyBtZXNzYWdlS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgPC9zbWFsbD5cbjwvZGl2PlxuIl19
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUNMLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDbkMsOEJBQThCLEVBQzlCLDBCQUEwQixFQUMzQixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN6QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9B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QUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGFBR2pGO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTt3REFPaEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIE5VTUJFUl9JTlBVVF9ERUZBVUxUX0FMSUdOTUVOVCxcbiAgTlVNQkVSX0lOUFVUX0RFRkFVTFRfQUxMT1dfTkVHQVRJVkUsXG4gIE5VTUJFUl9JTlBVVF9ERUZBVUxUX1BSRUNJU0lPTixcbiAgTlVNQkVSX0lOUFVUX0RFRkFVTFRfU0NBTEVcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvbnVtYmVyLWlucHV0LmNvbnN0JztcbmltcG9ydCB7IElucHV0c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvZGlyZWN0aXZlcy9pbnB1dHMuZGlyZWN0aXZlJztcbmltcG9ydCB0eXBlIHsgTnVtYmVySW5wdXRBbGlnbm1lbnQsIE51bWJlcklucHV0U2VwYXJhdG9ycyB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvbnVtYmVyLWlucHV0LnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHtcbiAgYnVpbGROdW1iZXJJbnB1dFBsYWNlaG9sZGVyLFxuICBjYWxjdWxhdGVOdW1iZXJJbnB1dE1heExlbmd0aCxcbiAgY291bnROdW1iZXJJbnB1dERpZ2l0cyxcbiAgZm9ybWF0TnVtYmVySW5wdXRWYWx1ZSxcbiAgbm9ybWFsaXplTnVtYmVySW5wdXRWYWx1ZSxcbiAgcGFyc2VOdW1iZXJJbnB1dFZhbHVlLFxuICByZXNvbHZlTnVtYmVySW5wdXRTZXBhcmF0b3JzLFxuICBzYW5pdGl6ZU51bWJlcklucHV0VmFsdWVcbn0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9udW1iZXItaW5wdXQudXRpbCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1udW1iZXItaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9udW1iZXItaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlcklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBJbnB1dHNDb21wb25lbnQ8bnVtYmVyPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpIHByZWNpc2lvbiA9IE5VTUJFUl9JTlBVVF9ERUZBVUxUX1BSRUNJU0lPTjtcbiAgQElucHV0KCkgc2NhbGUgPSBOVU1CRVJfSU5QVVRfREVGQVVMVF9TQ0FMRTtcbiAgQElucHV0KCkgZGVjaW1hbFNlcGFyYXRvcj86IHN0cmluZztcbiAgQElucHV0KCkgdGhvdXNhbmRzU2VwYXJhdG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBhbGlnblRvOiBOdW1iZXJJbnB1dEFsaWdubWVudCA9IE5VTUJFUl9JTlBVVF9ERUZBVUxUX0FMSUdOTUVOVDtcbiAgQElucHV0KCkgYWxsb3dOZWdhdGl2ZSA9IE5VTUJFUl9JTlBVVF9ERUZBVUxUX0FMTE9XX05FR0FUSVZFO1xuICBASW5wdXQoKSBtaW4/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcbiAgQElucHV0KCkgc3RlcD86IG51bWJlciB8IHN0cmluZztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG5cbiAgQE91dHB1dCgpIHBhc3RlUmVqZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBkaXNwbGF5VmFsdWUgPSAnJztcblxuICBwcml2YXRlIHNlcGFyYXRvcnM6IE51bWJlcklucHV0U2VwYXJhdG9ycyA9IHJlc29sdmVOdW1iZXJJbnB1dFNlcGFyYXRvcnModGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpO1xuICBwcml2YXRlIGZvY3VzZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBleHBsaWNpdERlY2ltYWxTZXBhcmF0b3IgPSBmYWxzZTtcbiAgcHJpdmF0ZSBleHBsaWNpdFRob3VzYW5kc1NlcGFyYXRvciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaFNlcGFyYXRvcnMoKTtcbiAgICAgICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMubm9ybWFsaXplRXh0ZXJuYWxWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RlY2ltYWxTZXBhcmF0b3InXSkge1xuICAgICAgdGhpcy5leHBsaWNpdERlY2ltYWxTZXBhcmF0b3IgPSBjaGFuZ2VzWydkZWNpbWFsU2VwYXJhdG9yJ10uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ3Rob3VzYW5kc1NlcGFyYXRvciddKSB7XG4gICAgICB0aGlzLmV4cGxpY2l0VGhvdXNhbmRzU2VwYXJhdG9yID0gY2hhbmdlc1sndGhvdXNhbmRzU2VwYXJhdG9yJ10uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5yZWZyZXNoU2VwYXJhdG9ycygpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLm5vcm1hbGl6ZUV4dGVybmFsVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZEFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmxhYmVsS2V5KCkpIHtcbiAgICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5sYWJlbEtleSgpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm51bWJlcl9pbnB1dCcpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGROdW1iZXJJbnB1dFBsYWNlaG9sZGVyKHRoaXMuc2FmZVNjYWxlLCB0aGlzLnNlcGFyYXRvcnMuZGVjaW1hbCk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRTdGVwKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc3RlcCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc3RlcCAhPT0gbnVsbCAmJiBTdHJpbmcodGhpcy5zdGVwKS50cmltKCkpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodGhpcy5zdGVwKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zYWZlU2NhbGUgPD0gMCkge1xuICAgICAgcmV0dXJuICcxJztcbiAgICB9XG5cbiAgICByZXR1cm4gYDAuJHsnMCcucmVwZWF0KE1hdGgubWF4KDAsIHRoaXMuc2FmZVNjYWxlIC0gMSkpfTFgO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkTWF4TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgY29uc3QgY2FsY3VsYXRlZCA9IGNhbGN1bGF0ZU51bWJlcklucHV0TWF4TGVuZ3RoKFxuICAgICAgdGhpcy5zYWZlUHJlY2lzaW9uLFxuICAgICAgdGhpcy5zYWZlU2NhbGUsXG4gICAgICB0aGlzLmFsbG93TmVnYXRpdmUsXG4gICAgICB0aGlzLnNlcGFyYXRvcnMuZGVjaW1hbCxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5ncm91cFxuICAgICk7XG5cbiAgICBpZiAodHlwZW9mIHRoaXMubWF4bGVuZ3RoID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIE1hdGgubWluKHRoaXMubWF4bGVuZ3RoLCBjYWxjdWxhdGVkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsY3VsYXRlZDtcbiAgfVxuXG4gIGdldCBpbnB1dE1vZGUoKTogJ251bWVyaWMnIHwgJ2RlY2ltYWwnIHtcbiAgICByZXR1cm4gdGhpcy5zYWZlU2NhbGUgPiAwID8gJ2RlY2ltYWwnIDogJ251bWVyaWMnO1xuICB9XG5cbiAgZ2V0IGhhc1Rvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pbmZvVG9vbHRpcDtcbiAgfVxuXG4gIGdldCBzYWZlU2NhbGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4odGhpcy5zY2FsZSwgdGhpcy5zYWZlUHJlY2lzaW9uKSk7XG4gIH1cblxuICBnZXQgc2FmZVByZWNpc2lvbigpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heCgxLCBOdW1iZXIuaXNGaW5pdGUodGhpcy5wcmVjaXNpb24pID8gTWF0aC50cnVuYyh0aGlzLnByZWNpc2lvbikgOiBOVU1CRVJfSU5QVVRfREVGQVVMVF9QUkVDSVNJT04pO1xuICB9XG5cbiAgb25OYXRpdmVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzYW5pdGl6ZWQgPSBzYW5pdGl6ZU51bWJlcklucHV0VmFsdWUodGFyZ2V0LnZhbHVlLCB7XG4gICAgICBhbGxvd05lZ2F0aXZlOiB0aGlzLmFsbG93TmVnYXRpdmUsXG4gICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLnNlcGFyYXRvcnMuZGVjaW1hbCxcbiAgICAgIHByZWNpc2lvbjogdGhpcy5zYWZlUHJlY2lzaW9uLFxuICAgICAgc2NhbGU6IHRoaXMuc2FmZVNjYWxlXG4gICAgfSk7XG5cbiAgICBpZiAoc2FuaXRpemVkICE9PSB0YXJnZXQudmFsdWUpIHtcbiAgICAgIHRhcmdldC52YWx1ZSA9IHNhbml0aXplZDtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHNhbml0aXplZDtcblxuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlTnVtYmVySW5wdXRWYWx1ZSh0aGlzLmRpc3BsYXlWYWx1ZSwgdGhpcy5zZXBhcmF0b3JzKTtcbiAgICBpZiAocGFyc2VkLmVtcHR5KSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG51bGwpO1xuICAgIH0gZWxzZSBpZiAocGFyc2VkLmNvbXBsZXRlICYmIHBhcnNlZC52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLm5vcm1hbGl6ZUV4dGVybmFsVmFsdWUocGFyc2VkLnZhbHVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGZvcm1hdE51bWJlcklucHV0VmFsdWUoXG4gICAgICB0aGlzLnZhbHVlLFxuICAgICAgdGhpcy5zYWZlU2NhbGUsXG4gICAgICB0aGlzLnNlcGFyYXRvcnMuZGVjaW1hbCxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5ncm91cCxcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlTnVtYmVySW5wdXRWYWx1ZSh0aGlzLmRpc3BsYXlWYWx1ZSwgdGhpcy5zZXBhcmF0b3JzKTtcbiAgICBpZiAocGFyc2VkLmVtcHR5KSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG51bGwpO1xuICAgIH0gZWxzZSBpZiAocGFyc2VkLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMubm9ybWFsaXplRXh0ZXJuYWxWYWx1ZShwYXJzZWQudmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zeW5jRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcGFzdGVkVGV4dCA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKSA/PyAnJztcbiAgICBpZiAoY291bnROdW1iZXJJbnB1dERpZ2l0cyhwYXN0ZWRUZXh0KSA+IHRoaXMuc2FmZVByZWNpc2lvbikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5wYXN0ZVJlamVjdGVkLmVtaXQocGFzdGVkVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVFeHRlcm5hbFZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgfHwgIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBub3JtYWxpemVOdW1iZXJJbnB1dFZhbHVlKFxuICAgICAgdmFsdWUsXG4gICAgICB0aGlzLnNhZmVQcmVjaXNpb24sXG4gICAgICB0aGlzLnNhZmVTY2FsZSxcbiAgICAgIHRoaXMuYWxsb3dOZWdhdGl2ZSxcbiAgICAgIHRoaXMubWluLFxuICAgICAgdGhpcy5tYXhcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoU2VwYXJhdG9ycygpOiB2b2lkIHtcbiAgICBjb25zdCBsb2NhbGVTZXBhcmF0b3JzID0gcmVzb2x2ZU51bWJlcklucHV0U2VwYXJhdG9ycyh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyk7XG5cbiAgICB0aGlzLnNlcGFyYXRvcnMgPSB7XG4gICAgICBkZWNpbWFsOiB0aGlzLmV4cGxpY2l0RGVjaW1hbFNlcGFyYXRvciAmJiB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPyB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgOiBsb2NhbGVTZXBhcmF0b3JzLmRlY2ltYWwsXG4gICAgICBncm91cDogdGhpcy5leHBsaWNpdFRob3VzYW5kc1NlcGFyYXRvciAmJiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciA/IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIDogbG9jYWxlU2VwYXJhdG9ycy5ncm91cFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN5bmNEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gZm9ybWF0TnVtYmVySW5wdXRWYWx1ZShcbiAgICAgIHRoaXMudmFsdWUsXG4gICAgICB0aGlzLnNhZmVTY2FsZSxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsLFxuICAgICAgdGhpcy5zZXBhcmF0b3JzLmdyb3VwXG4gICAgKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRcIj5cbiAgQGlmIChsYWJlbEtleSgpIHx8IGhhc1Rvb2x0aXApIHtcbiAgICA8ZGl2IGNsYXNzPVwic2RjLW51bWJlci1pbnB1dF9fbGFiZWwtcm93XCI+XG4gICAgICBAaWYgKGxhYmVsS2V5KCkpIHtcbiAgICAgICAgPGxhYmVsIFtmb3JdPVwiaWRlbnRpdHkuaWRcIiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2xhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19sYWJlbC10ZXh0XCI+XG4gICAgICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIH1cbiAgICAgIEBpZiAoaGFzVG9vbHRpcCkge1xuICAgICAgICA8c2RjLXRvb2x0aXBcbiAgICAgICAgICBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2luZm8tdG9vbHRpcC13cmFwXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiaW5mb1Rvb2x0aXBcIlxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiaW5mb1Rvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgW3Rvb2x0aXBFdmVudF09XCJpbmZvVG9vbHRpcEV2ZW50XCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZSBzZGMtbnVtYmVyLWlucHV0X19pbmZvLXRvb2x0aXAtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9zZGMtdG9vbHRpcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxpbnB1dFxuICAgIGNsYXNzPVwic2RjLW51bWJlci1pbnB1dF9faW5wdXRcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAoaW5wdXQpPVwib25OYXRpdmVJbnB1dCgkZXZlbnQpXCJcbiAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpZF09XCJpZGVudGl0eS5pZFwiXG4gICAgW25hbWVdPVwiaWRlbnRpdHkubmFtZVwiXG4gICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZENsYXNzKClcIlxuICAgIFtuZ1N0eWxlXT1cImdldElucHV0U3R5bGUoKVwiXG4gICAgW2NsYXNzLnNkYy1udW1iZXItaW5wdXRfX2lucHV0LS1hbGlnbi1yaWdodF09XCJhbGlnblRvID09PSAncmlnaHQnXCJcbiAgICBbY2xhc3Muc2RjLW51bWJlci1pbnB1dF9faW5wdXQtLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUGxhY2Vob2xkZXJcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICBbYXR0ci5pbnB1dG1vZGVdPVwiaW5wdXRNb2RlXCJcbiAgICBbYXR0ci5tYXhsZW5ndGhdPVwicmVzb2x2ZWRNYXhMZW5ndGhcIlxuICAgIFthdHRyLm1pbl09XCJtaW4gPz8gbnVsbFwiXG4gICAgW2F0dHIubWF4XT1cIm1heCA/PyBudWxsXCJcbiAgICBbYXR0ci5zdGVwXT1cInJlc29sdmVkU3RlcFwiXG4gICAgW2F0dHIucm9sZV09XCInc3BpbmJ1dHRvbidcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtdmFsdWVub3ddPVwidmFsdWUgPz8gbnVsbFwiXG4gICAgW2F0dHIuYXJpYS12YWx1ZW1pbl09XCJtaW4gPz8gbnVsbFwiXG4gICAgW2F0dHIuYXJpYS12YWx1ZW1heF09XCJtYXggPz8gbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtZXNzYWdlS2V5KCkgPyBpZGVudGl0eS5pZCArICctZXJyb3InIDogbnVsbFwiXG4gICAgLz5cblxuICAgIEBpZiAobWVzc2FnZUtleSgpKSB7XG4gICAgICA8c21hbGxcbiAgICAgICAgW2lkXT1cImlkZW50aXR5LmlkICsgJy1lcnJvcidcIlxuICAgICAgICBbbmdDbGFzc109XCJnZXRJbnZhbGlkTWVzc2FnZUNsYXNzKClcIlxuICAgICAgICByb2xlPVwiYWxlcnRcIlxuICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICA+XG4gICAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9zbWFsbD5cbiAgICB9XG4gIDwvZGl2PlxuIl19
@@ -1,12 +1,10 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, inject } from '@angular/core';
3
2
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
4
3
  import { NUMERIC_DEFAULT_CURRENCY, NUMERIC_DEFAULT_STYLE } from '../../core/constants/numeric.const';
5
4
  import { NumericService } from '../../core/services/numeric.service';
6
5
  import { getNumericLocale } from '../../core/utils/numeric.util';
7
6
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- import * as i2 from "@ngx-translate/core";
7
+ import * as i1 from "@ngx-translate/core";
10
8
  export class NumericComponent {
11
9
  numeric = inject(NumericService);
12
10
  translate = inject(TranslateService);
@@ -28,11 +26,11 @@ export class NumericComponent {
28
26
  });
29
27
  }
30
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NumericComponent, isStandalone: true, selector: "sdc-numeric", inputs: { label: "label", value: "value", style: "style", currency: "currency", minimumFractionDigits: "minimumFractionDigits", maximumFractionDigits: "maximumFractionDigits", useGrouping: "useGrouping" }, ngImport: i0, template: "<div class=\"sdc-numeric\">\n <span *ngIf=\"label\" class=\"sdc-numeric__label\">{{ label | translate }}</span>\n <span class=\"sdc-numeric__value\">{{ formattedValue }}</span>\n</div>\n", styles: [".sdc-numeric{display:inline-flex;flex-direction:column;gap:.25rem}.sdc-numeric .sdc-numeric__label{color:var(--sdc-text-subtle, #667085);font-size:.875rem;font-weight:600}.sdc-numeric .sdc-numeric__value{color:var(--sdc-text-color, var(--p-text-color, #111827));font:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NumericComponent, isStandalone: true, selector: "sdc-numeric", inputs: { label: "label", value: "value", style: "style", currency: "currency", minimumFractionDigits: "minimumFractionDigits", maximumFractionDigits: "maximumFractionDigits", useGrouping: "useGrouping" }, ngImport: i0, template: "<div class=\"sdc-numeric\">\n @if (label) {\n <span class=\"sdc-numeric__label\">{{ label | translate }}</span>\n }\n <span class=\"sdc-numeric__value\">{{ formattedValue }}</span>\n</div>\n", styles: [".sdc-numeric{display:inline-flex;flex-direction:column;gap:.25rem}.sdc-numeric .sdc-numeric__label{color:var(--sdc-text-subtle, #667085);font-size:.875rem;font-weight:600}.sdc-numeric .sdc-numeric__value{color:var(--sdc-text-color, var(--p-text-color, #111827));font:inherit}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
30
  }
33
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericComponent, decorators: [{
34
32
  type: Component,
35
- args: [{ selector: 'sdc-numeric', standalone: true, imports: [CommonModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-numeric\">\n <span *ngIf=\"label\" class=\"sdc-numeric__label\">{{ label | translate }}</span>\n <span class=\"sdc-numeric__value\">{{ formattedValue }}</span>\n</div>\n", styles: [".sdc-numeric{display:inline-flex;flex-direction:column;gap:.25rem}.sdc-numeric .sdc-numeric__label{color:var(--sdc-text-subtle, #667085);font-size:.875rem;font-weight:600}.sdc-numeric .sdc-numeric__value{color:var(--sdc-text-color, var(--p-text-color, #111827));font:inherit}\n"] }]
33
+ args: [{ selector: 'sdc-numeric', standalone: true, imports: [TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-numeric\">\n @if (label) {\n <span class=\"sdc-numeric__label\">{{ label | translate }}</span>\n }\n <span class=\"sdc-numeric__value\">{{ formattedValue }}</span>\n</div>\n", styles: [".sdc-numeric{display:inline-flex;flex-direction:column;gap:.25rem}.sdc-numeric .sdc-numeric__label{color:var(--sdc-text-subtle, #667085);font-size:.875rem;font-weight:600}.sdc-numeric .sdc-numeric__value{color:var(--sdc-text-color, var(--p-text-color, #111827));font:inherit}\n"] }]
36
34
  }], propDecorators: { label: [{
37
35
  type: Input
38
36
  }], value: [{
@@ -48,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
48
46
  }], useGrouping: [{
49
47
  type: Input
50
48
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL251bWVyaWMvbnVtZXJpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL251bWVyaWMvbnVtZXJpYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFXakUsTUFBTSxPQUFPLGdCQUFnQjtJQUNWLE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTdDLEtBQUssR0FBbUIsS0FBSyxDQUFDO0lBQzlCLEtBQUssR0FBMkIsSUFBSSxDQUFDO0lBQ3JDLEtBQUssR0FBdUIscUJBQXFCLENBQUM7SUFDbEQsUUFBUSxHQUFHLHdCQUF3QixDQUFDO0lBQ3BDLHFCQUFxQixDQUFVO0lBQy9CLHFCQUFxQixDQUFVO0lBQy9CLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFNUIsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN0QyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDcEQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCO1lBQ2pELHFCQUFxQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7WUFDakQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBckJVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHFSQ2xCN0IsOExBSUEsOFVEUVksWUFBWSxrSUFBRSxlQUFlOzs0RkFNNUIsZ0JBQWdCO2tCQVQ1QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQU1oQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IE5VTUVSSUNfREVGQVVMVF9DVVJSRU5DWSwgTlVNRVJJQ19ERUZBVUxUX1NUWUxFIH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvbnVtZXJpYy5jb25zdCc7XG5pbXBvcnQgeyBOdW1lcmljU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbnVtZXJpYy5zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgTnVtZXJpY0Zvcm1hdFN0eWxlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9udW1lcmljLnR5cGUnO1xuaW1wb3J0IHsgZ2V0TnVtZXJpY0xvY2FsZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvbnVtZXJpYy51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLW51bWVyaWMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtZXJpYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9udW1lcmljLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IG51bWVyaWMgPSBpbmplY3QoTnVtZXJpY1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgZmFsc2UgPSBmYWxzZTtcbiAgQElucHV0KCkgdmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzdHlsZTogTnVtZXJpY0Zvcm1hdFN0eWxlID0gTlVNRVJJQ19ERUZBVUxUX1NUWUxFO1xuICBASW5wdXQoKSBjdXJyZW5jeSA9IE5VTUVSSUNfREVGQVVMVF9DVVJSRU5DWTtcbiAgQElucHV0KCkgbWluaW11bUZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhpbXVtRnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHVzZUdyb3VwaW5nID0gdHJ1ZTtcblxuICBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5udW1lcmljLmluc3RhbnQodGhpcy52YWx1ZSwge1xuICAgICAgbG9jYWxlOiBnZXROdW1lcmljTG9jYWxlKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKSxcbiAgICAgIHN0eWxlOiB0aGlzLnN0eWxlLFxuICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3ksXG4gICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMubWluaW11bUZyYWN0aW9uRGlnaXRzLFxuICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLm1heGltdW1GcmFjdGlvbkRpZ2l0cyxcbiAgICAgIHVzZUdyb3VwaW5nOiB0aGlzLnVzZUdyb3VwaW5nXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtbnVtZXJpY1wiPlxuICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJzZGMtbnVtZXJpY19fbGFiZWxcIj57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJzZGMtbnVtZXJpY19fdmFsdWVcIj57eyBmb3JtYXR0ZWRWYWx1ZSB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL251bWVyaWMvbnVtZXJpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL251bWVyaWMvbnVtZXJpYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBV2pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDVixPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU3QyxLQUFLLEdBQW1CLEtBQUssQ0FBQztJQUM5QixLQUFLLEdBQTJCLElBQUksQ0FBQztJQUNyQyxLQUFLLEdBQXVCLHFCQUFxQixDQUFDO0lBQ2xELFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztJQUNwQyxxQkFBcUIsQ0FBVTtJQUMvQixxQkFBcUIsQ0FBVTtJQUMvQixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRTVCLElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdEMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtZQUNqRCxxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCO1lBQ2pELFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO3dHQXJCVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQixxUkNsQjdCLHNNQU1BLDhVRE1ZLGVBQWU7OzRGQU1kLGdCQUFnQjtrQkFUNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDLG1CQUdULHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBTWhDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IE5VTUVSSUNfREVGQVVMVF9DVVJSRU5DWSwgTlVNRVJJQ19ERUZBVUxUX1NUWUxFIH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvbnVtZXJpYy5jb25zdCc7XG5pbXBvcnQgeyBOdW1lcmljU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbnVtZXJpYy5zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgTnVtZXJpY0Zvcm1hdFN0eWxlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9udW1lcmljLnR5cGUnO1xuaW1wb3J0IHsgZ2V0TnVtZXJpY0xvY2FsZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvbnVtZXJpYy51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLW51bWVyaWMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWVyaWMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbnVtZXJpYy5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBudW1lcmljID0gaW5qZWN0KE51bWVyaWNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc3R5bGU6IE51bWVyaWNGb3JtYXRTdHlsZSA9IE5VTUVSSUNfREVGQVVMVF9TVFlMRTtcbiAgQElucHV0KCkgY3VycmVuY3kgPSBOVU1FUklDX0RFRkFVTFRfQ1VSUkVOQ1k7XG4gIEBJbnB1dCgpIG1pbmltdW1GcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4aW11bUZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xuICBASW5wdXQoKSB1c2VHcm91cGluZyA9IHRydWU7XG5cbiAgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYy5pbnN0YW50KHRoaXMudmFsdWUsIHtcbiAgICAgIGxvY2FsZTogZ2V0TnVtZXJpY0xvY2FsZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyksXG4gICAgICBzdHlsZTogdGhpcy5zdHlsZSxcbiAgICAgIGN1cnJlbmN5OiB0aGlzLmN1cnJlbmN5LFxuICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLm1pbmltdW1GcmFjdGlvbkRpZ2l0cyxcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5tYXhpbXVtRnJhY3Rpb25EaWdpdHMsXG4gICAgICB1c2VHcm91cGluZzogdGhpcy51c2VHcm91cGluZ1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLW51bWVyaWNcIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxzcGFuIGNsYXNzPVwic2RjLW51bWVyaWNfX2xhYmVsXCI+e3sgbGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIH1cbiAgPHNwYW4gY2xhc3M9XCJzZGMtbnVtZXJpY19fdmFsdWVcIj57eyBmb3JtYXR0ZWRWYWx1ZSB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19