@litigiovirtual/ius-design-components 1.0.292 → 1.0.293

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 (35) hide show
  1. package/esm2022/lib/add-user-container/add-user-container.component.mjs +3 -3
  2. package/esm2022/lib/button-auth/button-auth.component.mjs +3 -3
  3. package/esm2022/lib/button-dynamic/button-dynamic.component.mjs +3 -3
  4. package/esm2022/lib/button-standard-outline/button-standard-outline.component.mjs +3 -3
  5. package/esm2022/lib/button-standard-outline/index.mjs +1 -1
  6. package/esm2022/lib/button-standard-primary/button-standard-primary.component.mjs +3 -3
  7. package/esm2022/lib/button-standard-tertiary/button-standard-tertiary.component.mjs +3 -3
  8. package/esm2022/lib/button-standard-tertiary-small/button-standard-tertiary-small.component.mjs +3 -3
  9. package/esm2022/lib/card-actividad-evento/card-actividad-evento.component.mjs +3 -3
  10. package/esm2022/lib/card-etapa-subetapa/card-etapa-subetapa.component.mjs +3 -3
  11. package/esm2022/lib/card-impulso-procesal/card-impulso-procesal.component.mjs +3 -3
  12. package/esm2022/lib/card-vigilancia-judicial/card-vigilancia-judicial.component.mjs +3 -3
  13. package/esm2022/lib/create-ticket/create-ticket.component.mjs +3 -3
  14. package/esm2022/lib/create-ticket/index.mjs +1 -1
  15. package/esm2022/lib/custom-dropdown/custom-dropdown.component.mjs +3 -3
  16. package/esm2022/lib/dropdown-option-item/dropdown-option-item.component.mjs +5 -5
  17. package/esm2022/lib/notification-card/notification-card.component.mjs +61 -42
  18. package/esm2022/lib/notifications/notifications.component.mjs +97 -28
  19. package/esm2022/lib/toolbar/toolbar.component.mjs +12 -3
  20. package/esm2022/lib/toolbar-user-menu/toolbar-user-menu.component.mjs +3 -3
  21. package/esm2022/utils/currency-format.pipe.mjs +1 -1
  22. package/esm2022/utils/date-format.util.mjs +1 -1
  23. package/esm2022/utils/file-mime.util.mjs +1 -1
  24. package/esm2022/utils/file-size.util.mjs +1 -1
  25. package/esm2022/utils/formato-hora.pipe.mjs +1 -1
  26. package/esm2022/utils/list-filter.util.mjs +1 -1
  27. package/esm2022/utils/public-api.mjs +1 -1
  28. package/fesm2022/litigiovirtual-ius-design-components-utils.mjs.map +1 -1
  29. package/fesm2022/litigiovirtual-ius-design-components.mjs +190 -95
  30. package/fesm2022/litigiovirtual-ius-design-components.mjs.map +1 -1
  31. package/lib/dropdown-option-item/dropdown-option-item.component.d.ts +2 -2
  32. package/lib/notification-card/notification-card.component.d.ts +21 -14
  33. package/lib/notifications/notifications.component.d.ts +16 -5
  34. package/lib/toolbar/toolbar.component.d.ts +8 -1
  35. package/package.json +1 -1
@@ -194,7 +194,7 @@ export class CustomDropdownComponent {
194
194
  this._closePanel();
195
195
  }
196
196
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomDropdownComponent, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
197
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CustomDropdownComponent, isStandalone: true, selector: "ius-custom-dropdown", inputs: { componentId: "componentId", required: "required", disabled: "disabled", showHelpText: "showHelpText", error: "error", labelSuperior: "labelSuperior", labelInferior: "labelInferior", errorText: "errorText", labelInput: "labelInput", iconInput: "iconInput", placeholderAddText: "placeholderAddText", iconBtnAdd: "iconBtnAdd", textBtnAdd: "textBtnAdd", textInput: "textInput", element: "element", debounceMs: "debounceMs", enableInfiniteScroll: "enableInfiniteScroll", loading: "loading" }, outputs: { onChangesValueEvent: "onChangesValueEvent", onEnterKey: "onEnterKey", onAddElement: "onAddElement", onBlurEvent: "onBlurEvent", onFocusEvent: "onFocusEvent", onScrolledToEnd: "onScrolledToEnd" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, viewQueries: [{ propertyName: "listPanel", first: true, predicate: ["listPanel"], descendants: true }], ngImport: i0, template: "<div class=\"container-general\" [id]=\"componentId\">\r\n\r\n <!-- Label superior -->\r\n @if (labelSuperior) {\r\n <div class=\"container-label-sup\" [ngClass]=\"{ disabled: disabled }\">\r\n @if (!disabled && required) {\r\n <div class=\"icon-dot\"></div>\r\n }\r\n <span>{{ labelSuperior }}</span>\r\n @if (!disabled && showHelpText) {\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\r\n }\r\n <span>:</span>\r\n </div>\r\n }\r\n\r\n <!-- Input principal -->\r\n <div\r\n class=\"container-textfield\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n focused: isFocused,\r\n alert: (!isFocused && isAlertText && !disabled) || (error && !disabled)\r\n }\"\r\n (click)=\"onFocus()\"\r\n >\r\n @if (iconInput) {\r\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\r\n }\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"textInput\"\r\n [placeholder]=\"labelInput\"\r\n [disabled]=\"disabled\"\r\n (input)=\"onInput()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keypress)=\"onKeyPress($event)\"\r\n />\r\n <div class=\"cnt-icon-right\">\r\n @if (!showList) {\r\n <ius-icon-md iconName=\"icon-keyboard-arrow-down\" class=\"icon-arrows\"></ius-icon-md>\r\n } @else {\r\n <div (click)=\"closeList($event)\" style=\"height: 20px;\">\r\n <ius-icon-md iconName=\"icon-keyboard-arrow-up\" class=\"icon-arrows\"></ius-icon-md>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- Label inferior -->\r\n @if (labelInferior && isFocused && !error) {\r\n <span class=\"label-inf\">{{ labelInferior }}</span>\r\n }\r\n @if ((errorText || labelInferior) && ((!isFocused && isAlertText && !disabled) || (error && !disabled))) {\r\n <span class=\"label-inf\" [ngClass]=\"{ alert: (!isFocused && isAlertText && !disabled) || (error && !disabled) }\">\r\n {{ errorText ?? labelInferior }}\r\n </span>\r\n }\r\n\r\n <!-- Lista de opciones (CDK overlay) -->\r\n <ng-template #listPanel>\r\n <div class=\"container-options\">\r\n <div class=\"container-list scrollable-small\" (scroll)=\"onListScroll($event)\">\r\n <div (click)=\"onSelectOption()\">\r\n <ng-content selector=\"ius-option\"></ng-content>\r\n </div>\r\n @if (loading) {\r\n <div class=\"cnt-loading-option\">Cargando\u2026</div>\r\n }\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"add-data\">\r\n <div class=\"container-text\">\r\n <input\r\n type=\"text\"\r\n class=\"input-text\"\r\n [(ngModel)]=\"element\"\r\n (keypress)=\"onKeyPressAddElement($event)\"\r\n [placeholder]=\"placeholderAddText\"\r\n />\r\n </div>\r\n <div class=\"button-add-option\">\r\n <ius-button-standard-tertiary\r\n [iconName]=\"iconBtnAdd\"\r\n (click)=\"onClickAddElement()\"\r\n >\r\n {{ textBtnAdd }}\r\n </ius-button-standard-tertiary>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</div>\r\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{background:#f5f5f5}.container-textfield.disabled .icon-color,.container-textfield.disabled .icon-arrows{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.icon-color{color:#595959}.icon-arrows{color:#333}.icon-color-help{color:#8c8c8c}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.cnt-icon-right{display:flex;align-items:center;justify-content:center;background:none;padding:0;color:#333}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}.container-options{width:100%;border-radius:8px;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.container-list{max-height:144px;display:flex;flex-direction:column;margin-top:4px;overflow-y:auto}.add-data{display:flex;padding-top:8px;padding-bottom:8px;align-items:center;gap:10px;width:100%;background:#fff;border-radius:8px}.add-data .container-text{display:flex;width:60%;align-items:flex-start;gap:4px}.add-data .container-text .input-text{width:100%;display:flex;margin-left:10px;padding:12px;justify-content:center;align-items:flex-start;gap:4px;border-radius:8px;background:#f5f5f5}.add-data .button-add-option{margin-right:10px;width:40%}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar-thumb{background-color:#08a6db;border-radius:4px}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: ButtonStandardTertiaryComponent, selector: "ius-button-standard-tertiary", inputs: ["disabled", "iconName", "prefixIcon", "sufixIcon"], outputs: ["buttonClicked"] }] }); }
197
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CustomDropdownComponent, isStandalone: true, selector: "ius-custom-dropdown", inputs: { componentId: "componentId", required: "required", disabled: "disabled", showHelpText: "showHelpText", error: "error", labelSuperior: "labelSuperior", labelInferior: "labelInferior", errorText: "errorText", labelInput: "labelInput", iconInput: "iconInput", placeholderAddText: "placeholderAddText", iconBtnAdd: "iconBtnAdd", textBtnAdd: "textBtnAdd", textInput: "textInput", element: "element", debounceMs: "debounceMs", enableInfiniteScroll: "enableInfiniteScroll", loading: "loading" }, outputs: { onChangesValueEvent: "onChangesValueEvent", onEnterKey: "onEnterKey", onAddElement: "onAddElement", onBlurEvent: "onBlurEvent", onFocusEvent: "onFocusEvent", onScrolledToEnd: "onScrolledToEnd" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, viewQueries: [{ propertyName: "listPanel", first: true, predicate: ["listPanel"], descendants: true }], ngImport: i0, template: "<div class=\"container-general\" [id]=\"componentId\">\n\n <!-- Label superior -->\n @if (labelSuperior) {\n <div class=\"container-label-sup\" [ngClass]=\"{ disabled: disabled }\">\n @if (!disabled && required) {\n <div class=\"icon-dot\"></div>\n }\n <span>{{ labelSuperior }}</span>\n @if (!disabled && showHelpText) {\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\n }\n <span>:</span>\n </div>\n }\n\n <!-- Input principal -->\n <div\n class=\"container-textfield\"\n [ngClass]=\"{\n disabled: disabled,\n focused: isFocused,\n alert: (!isFocused && isAlertText && !disabled) || (error && !disabled)\n }\"\n (click)=\"onFocus()\"\n >\n @if (iconInput) {\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\n }\n <input\n type=\"text\"\n [(ngModel)]=\"textInput\"\n [placeholder]=\"labelInput\"\n [disabled]=\"disabled\"\n (input)=\"onInput()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keypress)=\"onKeyPress($event)\"\n />\n <div class=\"cnt-icon-right\">\n @if (!showList) {\n <ius-icon-md iconName=\"icon-keyboard-arrow-down\" class=\"icon-arrows\"></ius-icon-md>\n } @else {\n <div (click)=\"closeList($event)\" style=\"height: 20px;\">\n <ius-icon-md iconName=\"icon-keyboard-arrow-up\" class=\"icon-arrows\"></ius-icon-md>\n </div>\n }\n </div>\n </div>\n\n <!-- Label inferior -->\n @if (labelInferior && isFocused && !error) {\n <span class=\"label-inf\">{{ labelInferior }}</span>\n }\n @if ((errorText || labelInferior) && ((!isFocused && isAlertText && !disabled) || (error && !disabled))) {\n <span class=\"label-inf\" [ngClass]=\"{ alert: (!isFocused && isAlertText && !disabled) || (error && !disabled) }\">\n {{ errorText ?? labelInferior }}\n </span>\n }\n\n <!-- Lista de opciones (CDK overlay) -->\n <ng-template #listPanel>\n <div class=\"container-options\">\n <div class=\"container-list scrollable-small\" (scroll)=\"onListScroll($event)\">\n <div (click)=\"onSelectOption()\">\n <ng-content selector=\"ius-option\"></ng-content>\n </div>\n @if (loading) {\n <div class=\"cnt-loading-option\">Cargando\u2026</div>\n }\n </div>\n <ius-simple-divider></ius-simple-divider>\n <div class=\"add-data\">\n <div class=\"container-text\">\n <input\n type=\"text\"\n class=\"input-text\"\n [(ngModel)]=\"element\"\n (keypress)=\"onKeyPressAddElement($event)\"\n [placeholder]=\"placeholderAddText\"\n />\n </div>\n <div class=\"button-add-option\">\n <ius-button-standard-tertiary\n [iconName]=\"iconBtnAdd\"\n (click)=\"onClickAddElement()\"\n >\n {{ textBtnAdd }}\n </ius-button-standard-tertiary>\n </div>\n </div>\n </div>\n </ng-template>\n\n</div>\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{background:#f5f5f5}.container-textfield.disabled .icon-color,.container-textfield.disabled .icon-arrows{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.icon-color{color:#595959}.icon-arrows{color:#333}.icon-color-help{color:#8c8c8c}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.cnt-icon-right{display:flex;align-items:center;justify-content:center;background:none;padding:0;color:#333}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}.container-options{width:100%;border-radius:8px;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.container-list{max-height:144px;display:flex;flex-direction:column;margin-top:4px;overflow-y:auto}.add-data{display:flex;padding-top:8px;padding-bottom:8px;align-items:center;gap:10px;width:100%;background:#fff;border-radius:8px}.add-data .container-text{display:flex;width:60%;align-items:flex-start;gap:4px}.add-data .container-text .input-text{width:100%;display:flex;margin-left:10px;padding:12px;justify-content:center;align-items:flex-start;gap:4px;border-radius:8px;background:#f5f5f5}.add-data .button-add-option{margin-right:10px;width:40%}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar-thumb{background-color:#08a6db;border-radius:4px}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: ButtonStandardTertiaryComponent, selector: "ius-button-standard-tertiary", inputs: ["disabled", "iconName", "prefixIcon", "sufixIcon"], outputs: ["buttonClicked"] }] }); }
198
198
  }
199
199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomDropdownComponent, decorators: [{
200
200
  type: Component,
@@ -204,7 +204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
204
204
  CommonModule,
205
205
  SimpleDividerComponent,
206
206
  ButtonStandardTertiaryComponent
207
- ], template: "<div class=\"container-general\" [id]=\"componentId\">\r\n\r\n <!-- Label superior -->\r\n @if (labelSuperior) {\r\n <div class=\"container-label-sup\" [ngClass]=\"{ disabled: disabled }\">\r\n @if (!disabled && required) {\r\n <div class=\"icon-dot\"></div>\r\n }\r\n <span>{{ labelSuperior }}</span>\r\n @if (!disabled && showHelpText) {\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\r\n }\r\n <span>:</span>\r\n </div>\r\n }\r\n\r\n <!-- Input principal -->\r\n <div\r\n class=\"container-textfield\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n focused: isFocused,\r\n alert: (!isFocused && isAlertText && !disabled) || (error && !disabled)\r\n }\"\r\n (click)=\"onFocus()\"\r\n >\r\n @if (iconInput) {\r\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\r\n }\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"textInput\"\r\n [placeholder]=\"labelInput\"\r\n [disabled]=\"disabled\"\r\n (input)=\"onInput()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keypress)=\"onKeyPress($event)\"\r\n />\r\n <div class=\"cnt-icon-right\">\r\n @if (!showList) {\r\n <ius-icon-md iconName=\"icon-keyboard-arrow-down\" class=\"icon-arrows\"></ius-icon-md>\r\n } @else {\r\n <div (click)=\"closeList($event)\" style=\"height: 20px;\">\r\n <ius-icon-md iconName=\"icon-keyboard-arrow-up\" class=\"icon-arrows\"></ius-icon-md>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- Label inferior -->\r\n @if (labelInferior && isFocused && !error) {\r\n <span class=\"label-inf\">{{ labelInferior }}</span>\r\n }\r\n @if ((errorText || labelInferior) && ((!isFocused && isAlertText && !disabled) || (error && !disabled))) {\r\n <span class=\"label-inf\" [ngClass]=\"{ alert: (!isFocused && isAlertText && !disabled) || (error && !disabled) }\">\r\n {{ errorText ?? labelInferior }}\r\n </span>\r\n }\r\n\r\n <!-- Lista de opciones (CDK overlay) -->\r\n <ng-template #listPanel>\r\n <div class=\"container-options\">\r\n <div class=\"container-list scrollable-small\" (scroll)=\"onListScroll($event)\">\r\n <div (click)=\"onSelectOption()\">\r\n <ng-content selector=\"ius-option\"></ng-content>\r\n </div>\r\n @if (loading) {\r\n <div class=\"cnt-loading-option\">Cargando\u2026</div>\r\n }\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"add-data\">\r\n <div class=\"container-text\">\r\n <input\r\n type=\"text\"\r\n class=\"input-text\"\r\n [(ngModel)]=\"element\"\r\n (keypress)=\"onKeyPressAddElement($event)\"\r\n [placeholder]=\"placeholderAddText\"\r\n />\r\n </div>\r\n <div class=\"button-add-option\">\r\n <ius-button-standard-tertiary\r\n [iconName]=\"iconBtnAdd\"\r\n (click)=\"onClickAddElement()\"\r\n >\r\n {{ textBtnAdd }}\r\n </ius-button-standard-tertiary>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</div>\r\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{background:#f5f5f5}.container-textfield.disabled .icon-color,.container-textfield.disabled .icon-arrows{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.icon-color{color:#595959}.icon-arrows{color:#333}.icon-color-help{color:#8c8c8c}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.cnt-icon-right{display:flex;align-items:center;justify-content:center;background:none;padding:0;color:#333}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}.container-options{width:100%;border-radius:8px;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.container-list{max-height:144px;display:flex;flex-direction:column;margin-top:4px;overflow-y:auto}.add-data{display:flex;padding-top:8px;padding-bottom:8px;align-items:center;gap:10px;width:100%;background:#fff;border-radius:8px}.add-data .container-text{display:flex;width:60%;align-items:flex-start;gap:4px}.add-data .container-text .input-text{width:100%;display:flex;margin-left:10px;padding:12px;justify-content:center;align-items:flex-start;gap:4px;border-radius:8px;background:#f5f5f5}.add-data .button-add-option{margin-right:10px;width:40%}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar-thumb{background-color:#08a6db;border-radius:4px}\n"] }]
207
+ ], template: "<div class=\"container-general\" [id]=\"componentId\">\n\n <!-- Label superior -->\n @if (labelSuperior) {\n <div class=\"container-label-sup\" [ngClass]=\"{ disabled: disabled }\">\n @if (!disabled && required) {\n <div class=\"icon-dot\"></div>\n }\n <span>{{ labelSuperior }}</span>\n @if (!disabled && showHelpText) {\n <ius-icon-md iconName=\"icon-help\" class=\"icon-color-help\"></ius-icon-md>\n }\n <span>:</span>\n </div>\n }\n\n <!-- Input principal -->\n <div\n class=\"container-textfield\"\n [ngClass]=\"{\n disabled: disabled,\n focused: isFocused,\n alert: (!isFocused && isAlertText && !disabled) || (error && !disabled)\n }\"\n (click)=\"onFocus()\"\n >\n @if (iconInput) {\n <ius-icon-md [iconName]=\"iconInput\" class=\"icon-color\"></ius-icon-md>\n }\n <input\n type=\"text\"\n [(ngModel)]=\"textInput\"\n [placeholder]=\"labelInput\"\n [disabled]=\"disabled\"\n (input)=\"onInput()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keypress)=\"onKeyPress($event)\"\n />\n <div class=\"cnt-icon-right\">\n @if (!showList) {\n <ius-icon-md iconName=\"icon-keyboard-arrow-down\" class=\"icon-arrows\"></ius-icon-md>\n } @else {\n <div (click)=\"closeList($event)\" style=\"height: 20px;\">\n <ius-icon-md iconName=\"icon-keyboard-arrow-up\" class=\"icon-arrows\"></ius-icon-md>\n </div>\n }\n </div>\n </div>\n\n <!-- Label inferior -->\n @if (labelInferior && isFocused && !error) {\n <span class=\"label-inf\">{{ labelInferior }}</span>\n }\n @if ((errorText || labelInferior) && ((!isFocused && isAlertText && !disabled) || (error && !disabled))) {\n <span class=\"label-inf\" [ngClass]=\"{ alert: (!isFocused && isAlertText && !disabled) || (error && !disabled) }\">\n {{ errorText ?? labelInferior }}\n </span>\n }\n\n <!-- Lista de opciones (CDK overlay) -->\n <ng-template #listPanel>\n <div class=\"container-options\">\n <div class=\"container-list scrollable-small\" (scroll)=\"onListScroll($event)\">\n <div (click)=\"onSelectOption()\">\n <ng-content selector=\"ius-option\"></ng-content>\n </div>\n @if (loading) {\n <div class=\"cnt-loading-option\">Cargando\u2026</div>\n }\n </div>\n <ius-simple-divider></ius-simple-divider>\n <div class=\"add-data\">\n <div class=\"container-text\">\n <input\n type=\"text\"\n class=\"input-text\"\n [(ngModel)]=\"element\"\n (keypress)=\"onKeyPressAddElement($event)\"\n [placeholder]=\"placeholderAddText\"\n />\n </div>\n <div class=\"button-add-option\">\n <ius-button-standard-tertiary\n [iconName]=\"iconBtnAdd\"\n (click)=\"onClickAddElement()\"\n >\n {{ textBtnAdd }}\n </ius-button-standard-tertiary>\n </div>\n </div>\n </div>\n </ng-template>\n\n</div>\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.container-general{position:relative;height:100%}.container-textfield{display:flex;padding:10px 12px;justify-content:center;align-items:flex-start;gap:4px;border:1px solid #f5f5f5;border-radius:8px;background:#f5f5f5;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.container-textfield:hover:not(.disabled):not(.focused):not(.alert){background:#edf6ff}.container-textfield.focused{border:1px solid #0581BC;background:#edf6ff}.container-textfield.disabled{background:#f5f5f5}.container-textfield.disabled .icon-color,.container-textfield.disabled .icon-arrows{color:#bfbfbf}.container-textfield.disabled input::placeholder{color:#bfbfbf;opacity:1}.container-textfield.alert{border:1px solid #DB2E2A;background:#fff4f0}.icon-color{color:#595959}.icon-arrows{color:#333}.icon-color-help{color:#8c8c8c}input{display:flex;align-items:center;flex:1 0 0;border:none;outline:none;background-color:transparent;font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.cnt-icon-right{display:flex;align-items:center;justify-content:center;background:none;padding:0;color:#333}.container-label-sup{display:flex;align-items:center;gap:4px;margin-bottom:8px;color:#333;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.container-label-sup.disabled{color:#bfbfbf}.icon-dot{display:flex;align-items:center;width:4px;height:4px;aspect-ratio:1/1;background-color:#db2e2a;border-radius:100px}.label-inf{display:flex;position:absolute;margin-top:4px;color:#595959;font-family:Roboto,sans-serif;font-size:.75rem;font-style:italic;font-weight:500;line-height:16px;letter-spacing:.24px}.label-inf.alert{color:#931224}.container-options{width:100%;border-radius:8px;background:#fff;box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.container-list{max-height:144px;display:flex;flex-direction:column;margin-top:4px;overflow-y:auto}.add-data{display:flex;padding-top:8px;padding-bottom:8px;align-items:center;gap:10px;width:100%;background:#fff;border-radius:8px}.add-data .container-text{display:flex;width:60%;align-items:flex-start;gap:4px}.add-data .container-text .input-text{width:100%;display:flex;margin-left:10px;padding:12px;justify-content:center;align-items:flex-start;gap:4px;border-radius:8px;background:#f5f5f5}.add-data .button-add-option{margin-right:10px;width:40%}.scrollable-small::-webkit-scrollbar{-webkit-appearance:none}.scrollable-small::-webkit-scrollbar:vertical{width:4px;height:32px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar:horizontal{height:5px;padding-top:2px;padding-bottom:2px}.scrollable-small::-webkit-scrollbar-thumb{background-color:#08a6db;border-radius:4px}\n"] }]
208
208
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { listPanel: [{
209
209
  type: ViewChild,
210
210
  args: ['listPanel']
@@ -261,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
261
261
  type: HostListener,
262
262
  args: ['document:click', ['$event']]
263
263
  }] } });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2N1c3RvbS1kcm9wZG93bi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBZSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRXRKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFlOUUsTUFBTSxPQUFPLHVCQUF1QjtJQWFsQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFnQ0QsWUFDbUIsR0FBZSxFQUNmLFFBQWlCLEVBQ2pCLElBQXNCO1FBRnRCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBaER6QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FB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dCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLW1kL2ljb24tbWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNpbXBsZURpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi9zaW1wbGUtZGl2aWRlcic7XHJcbmltcG9ydCB7IEJ1dHRvblN0YW5kYXJkVGVydGlhcnlDb21wb25lbnQgfSBmcm9tICcuLi9idXR0b24tc3RhbmRhcmQtdGVydGlhcnknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtY3VzdG9tLWRyb3Bkb3duJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEljb25NZENvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgU2ltcGxlRGl2aWRlckNvbXBvbmVudCxcclxuICAgIEJ1dHRvblN0YW5kYXJkVGVydGlhcnlDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21Ecm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gIGlzQWxlcnRUZXh0ID0gZmFsc2U7XHJcbiAgaGFzQ2xpY2tlZEluc2lkZSA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2xpc3RQYW5lbCcpIHByaXZhdGUgbGlzdFBhbmVsITogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX3Njcm9sbExpc3RlbmVyID0gKCk6IHZvaWQgPT4geyB0aGlzLl9vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvbigpOyB9O1xyXG4gIHByaXZhdGUgX2RlYm91bmNlVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfc2Nyb2xsZWRFbmRDb29sZG93biA9IGZhbHNlO1xyXG5cclxuICBnZXQgc2hvd0xpc3QoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZiAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbXBvbmVudElkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0hlbHBUZXh0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgbGFiZWxTdXBlcmlvcj86IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbEluZmVyaW9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVycm9yVGV4dD86IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbElucHV0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb25JbnB1dD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXJBZGRUZXh0ID0gJ0RpZ2l0ZSB1bmEgbnVldmEnO1xyXG4gIEBJbnB1dCgpIGljb25CdG5BZGQgPSAnaWNvbi1hZGQnO1xyXG4gIEBJbnB1dCgpIHRleHRCdG5BZGQgPSAnQWdyZWdhcic7XHJcblxyXG4gIEBJbnB1dCgpIHRleHRJbnB1dCA9ICcnO1xyXG4gIEBJbnB1dCgpIGVsZW1lbnQgPSAnJztcclxuXHJcbiAgQElucHV0KCkgZGVib3VuY2VNczogbnVtYmVyID0gMzAwO1xyXG4gIEBJbnB1dCgpIGVuYWJsZUluZmluaXRlU2Nyb2xsID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25DaGFuZ2VzVmFsdWVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBvbkVudGVyS2V5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9uQWRkRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvbkJsdXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgb25Gb2N1c0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBvblNjcm9sbGVkVG9FbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmNyOiBWaWV3Q29udGFpbmVyUmVmXHJcbiAgKSB7fVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGlja091dHNpZGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaGFzQ2xpY2tlZEluc2lkZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgLy8gQ2xpY2sgZGVudHJvIGRlbCBwYW5lbCBvdmVybGF5IChvcGNpb25lcyBvIFwiYWdyZWdhciBlbGVtZW50b1wiKSDihpIgbm8gY2VycmFyXHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2xpY2sgZGVudHJvIGRlbCB0ZXh0ZmllbGQg4oaSIG5vIGNlcnJhclxyXG4gICAgY29uc3QgdGV4dGZpZWxkID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY29udGFpbmVyLXRleHRmaWVsZCcpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKHRleHRmaWVsZD8uY29udGFpbnModGFyZ2V0KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbG9zZUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlTGlzdChldmVudD86IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fY2xvc2VQYW5lbCgpO1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkICYmIHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzQWxlcnRUZXh0ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uQmx1ckV2ZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kZWJvdW5jZU1zIDw9IDApIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZXNWYWx1ZUV2ZW50LmVtaXQodGhpcy50ZXh0SW5wdXQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fZGVib3VuY2VUaW1lcikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fZGVib3VuY2VUaW1lcik7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9kZWJvdW5jZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VzVmFsdWVFdmVudC5lbWl0KHRoaXMudGV4dElucHV0KTtcclxuICAgIH0sIHRoaXMuZGVib3VuY2VNcyk7XHJcbiAgfVxyXG5cclxuICBvbkxpc3RTY3JvbGwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZW5hYmxlSW5maW5pdGVTY3JvbGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZWwgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCB0aHJlc2hvbGQgPSA0ODtcclxuICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxUb3AgKyBlbC5jbGllbnRIZWlnaHQgPj0gZWwuc2Nyb2xsSGVpZ2h0IC0gdGhyZXNob2xkO1xyXG4gICAgaWYgKCFuZWFyQm90dG9tIHx8IHRoaXMuX3Njcm9sbGVkRW5kQ29vbGRvd24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc2Nyb2xsZWRFbmRDb29sZG93biA9IHRydWU7XHJcbiAgICB0aGlzLm9uU2Nyb2xsZWRUb0VuZC5lbWl0KCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5fc2Nyb2xsZWRFbmRDb29sZG93biA9IGZhbHNlOyB9LCAzMDApO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuaGFzQ2xpY2tlZEluc2lkZSA9IHRydWU7XHJcbiAgICBpZiAoIXRoaXMuc2hvd0xpc3QpIHtcclxuICAgICAgdGhpcy5fb3BlblBhbmVsKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uRm9jdXNFdmVudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuc2hvd0xpc3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IHRoaXMudGV4dElucHV0ID09PSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5hZGRUZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktleVByZXNzQWRkRWxlbWVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLmFkZEVsZW1lbnRUZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQWRkRWxlbWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVsZW1lbnQudHJpbSgpICE9PSAnJykge1xyXG4gICAgICB0aGlzLm9uQWRkRWxlbWVudC5lbWl0KHRoaXMuZWxlbWVudCk7XHJcbiAgICAgIHRoaXMuZWxlbWVudCA9ICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRFbGVtZW50VGV4dCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVsZW1lbnQudHJpbSgpICE9PSAnJykge1xyXG4gICAgICB0aGlzLm9uQWRkRWxlbWVudC5lbWl0KHRoaXMuZWxlbWVudCk7XHJcbiAgICAgIHRoaXMuZWxlbWVudCA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkVGV4dCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRleHRJbnB1dC50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIHRoaXMub25FbnRlcktleS5lbWl0KHRoaXMudGV4dElucHV0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0T3B0aW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fY2xvc2VQYW5lbCgpO1xyXG4gICAgdGhpcy5pc0FsZXJ0VGV4dCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfb3BlblBhbmVsKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdGV4dGZpZWxkID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY29udGFpbmVyLXRleHRmaWVsZCcpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc3QgYW5jaG9yID0gdGV4dGZpZWxkID8/IHRoaXMuX2VsO1xyXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXlcclxuICAgICAgLnBvc2l0aW9uKClcclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oYW5jaG9yKVxyXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcclxuICAgICAgLndpdGhQdXNoKGZhbHNlKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WTogNCB9LFxyXG4gICAgICAgIHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ3RvcCcsICAgIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFk6IC00IH0sXHJcbiAgICAgIF0pO1xyXG5cclxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxyXG4gICAgICB3aWR0aDogKHRleHRmaWVsZCA/PyB0aGlzLl9lbC5uYXRpdmVFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmxpc3RQYW5lbCwgdGhpcy5fdmNyKSk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5fc2Nyb2xsTGlzdGVuZXIsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2xvc2VQYW5lbCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xyXG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gbnVsbDtcclxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuX3Njcm9sbExpc3RlbmVyLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2RlYm91bmNlVGltZXIpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2RlYm91bmNlVGltZXIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY2xvc2VQYW5lbCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWdlbmVyYWxcIiBbaWRdPVwiY29tcG9uZW50SWRcIj5cclxuXHJcbiAgPCEtLSBMYWJlbCBzdXBlcmlvciAtLT5cclxuICBAaWYgKGxhYmVsU3VwZXJpb3IpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItbGFiZWwtc3VwXCIgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQgfVwiPlxyXG4gICAgICBAaWYgKCFkaXNhYmxlZCAmJiByZXF1aXJlZCkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWRvdFwiPjwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIDxzcGFuPnt7IGxhYmVsU3VwZXJpb3IgfX08L3NwYW4+XHJcbiAgICAgIEBpZiAoIWRpc2FibGVkICYmIHNob3dIZWxwVGV4dCkge1xyXG4gICAgICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24taGVscFwiIGNsYXNzPVwiaWNvbi1jb2xvci1oZWxwXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgfVxyXG4gICAgICA8c3Bhbj46PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG5cclxuICA8IS0tIElucHV0IHByaW5jaXBhbCAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNvbnRhaW5lci10ZXh0ZmllbGRcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXHJcbiAgICAgIGZvY3VzZWQ6IGlzRm9jdXNlZCxcclxuICAgICAgYWxlcnQ6ICghaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0ICYmICFkaXNhYmxlZCkgfHwgKGVycm9yICYmICFkaXNhYmxlZClcclxuICAgIH1cIlxyXG4gICAgKGNsaWNrKT1cIm9uRm9jdXMoKVwiXHJcbiAgPlxyXG4gICAgQGlmIChpY29uSW5wdXQpIHtcclxuICAgICAgPGl1cy1pY29uLW1kIFtpY29uTmFtZV09XCJpY29uSW5wdXRcIiBjbGFzcz1cImljb24tY29sb3JcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgfVxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0SW5wdXRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwibGFiZWxJbnB1dFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KClcIlxyXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcclxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY250LWljb24tcmlnaHRcIj5cclxuICAgICAgQGlmICghc2hvd0xpc3QpIHtcclxuICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWtleWJvYXJkLWFycm93LWRvd25cIiBjbGFzcz1cImljb24tYXJyb3dzXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiY2xvc2VMaXN0KCRldmVudClcIiBzdHlsZT1cImhlaWdodDogMjBweDtcIj5cclxuICAgICAgICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24ta2V5Ym9hcmQtYXJyb3ctdXBcIiBjbGFzcz1cImljb24tYXJyb3dzXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTGFiZWwgaW5mZXJpb3IgLS0+XHJcbiAgQGlmIChsYWJlbEluZmVyaW9yICYmIGlzRm9jdXNlZCAmJiAhZXJyb3IpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtaW5mXCI+e3sgbGFiZWxJbmZlcmlvciB9fTwvc3Bhbj5cclxuICB9XHJcbiAgQGlmICgoZXJyb3JUZXh0IHx8IGxhYmVsSW5mZXJpb3IpICYmICgoIWlzRm9jdXNlZCAmJiBpc0FsZXJ0VGV4dCAmJiAhZGlzYWJsZWQpIHx8IChlcnJvciAmJiAhZGlzYWJsZWQpKSkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1pbmZcIiBbbmdDbGFzc109XCJ7IGFsZXJ0OiAoIWlzRm9jdXNlZCAmJiBpc0FsZXJ0VGV4dCAmJiAhZGlzYWJsZWQpIHx8IChlcnJvciAmJiAhZGlzYWJsZWQpIH1cIj5cclxuICAgICAge3sgZXJyb3JUZXh0ID8/IGxhYmVsSW5mZXJpb3IgfX1cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcblxyXG4gIDwhLS0gTGlzdGEgZGUgb3BjaW9uZXMgKENESyBvdmVybGF5KSAtLT5cclxuICA8bmctdGVtcGxhdGUgI2xpc3RQYW5lbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItb3B0aW9uc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxpc3Qgc2Nyb2xsYWJsZS1zbWFsbFwiIChzY3JvbGwpPVwib25MaXN0U2Nyb2xsKCRldmVudClcIj5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJvblNlbGVjdE9wdGlvbigpXCI+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Rvcj1cIml1cy1vcHRpb25cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgQGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY250LWxvYWRpbmctb3B0aW9uXCI+Q2FyZ2FuZG/igKY8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWRkLWRhdGFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHRcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWxlbWVudFwiXHJcbiAgICAgICAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzQWRkRWxlbWVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyQWRkVGV4dFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tYWRkLW9wdGlvblwiPlxyXG4gICAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnlcclxuICAgICAgICAgICAgW2ljb25OYW1lXT1cImljb25CdG5BZGRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0FkZEVsZW1lbnQoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHRleHRCdG5BZGQgfX1cclxuICAgICAgICAgIDwvaXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2N1c3RvbS1kcm9wZG93bi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBZSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRXRKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFlOUUsTUFBTSxPQUFPLHVCQUF1QjtJQWFsQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFnQ0QsWUFDbUIsR0FBZSxFQUNmLFFBQWlCLEVBQ2pCLElBQXNCO1FBRnRCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBaER6QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FB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dCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLW1kL2ljb24tbWQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNpbXBsZURpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi9zaW1wbGUtZGl2aWRlcic7XG5pbXBvcnQgeyBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXVzLWN1c3RvbS1kcm9wZG93bicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBJY29uTWRDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNpbXBsZURpdmlkZXJDb21wb25lbnQsXG4gICAgQnV0dG9uU3RhbmRhcmRUZXJ0aWFyeUNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xuICBpc0FsZXJ0VGV4dCA9IGZhbHNlO1xuICBoYXNDbGlja2VkSW5zaWRlID0gZmFsc2U7XG4gIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnbGlzdFBhbmVsJykgcHJpdmF0ZSBsaXN0UGFuZWwhOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zY3JvbGxMaXN0ZW5lciA9ICgpOiB2b2lkID0+IHsgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTsgfTtcbiAgcHJpdmF0ZSBfZGVib3VuY2VUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc2Nyb2xsZWRFbmRDb29sZG93biA9IGZhbHNlO1xuXG4gIGdldCBzaG93TGlzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZiAhPT0gbnVsbDtcbiAgfVxuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbXBvbmVudElkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0hlbHBUZXh0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGFiZWxTdXBlcmlvcj86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWxJbmZlcmlvcj86IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3JUZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbElucHV0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uSW5wdXQ/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXJBZGRUZXh0ID0gJ0RpZ2l0ZSB1bmEgbnVldmEnO1xuICBASW5wdXQoKSBpY29uQnRuQWRkID0gJ2ljb24tYWRkJztcbiAgQElucHV0KCkgdGV4dEJ0bkFkZCA9ICdBZ3JlZ2FyJztcblxuICBASW5wdXQoKSB0ZXh0SW5wdXQgPSAnJztcbiAgQElucHV0KCkgZWxlbWVudCA9ICcnO1xuXG4gIEBJbnB1dCgpIGRlYm91bmNlTXM6IG51bWJlciA9IDMwMDtcbiAgQElucHV0KCkgZW5hYmxlSW5maW5pdGVTY3JvbGwgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvbkNoYW5nZXNWYWx1ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvbkVudGVyS2V5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBvbkFkZEVsZW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9uQmx1ckV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb25Gb2N1c0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb25TY3JvbGxlZFRvRW5kID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmNyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5oYXNDbGlja2VkSW5zaWRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIENsaWNrIGRlbnRybyBkZWwgcGFuZWwgb3ZlcmxheSAob3BjaW9uZXMgbyBcImFncmVnYXIgZWxlbWVudG9cIikg4oaSIG5vIGNlcnJhclxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmPy5vdmVybGF5RWxlbWVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2xpY2sgZGVudHJvIGRlbCB0ZXh0ZmllbGQg4oaSIG5vIGNlcnJhclxuICAgIGNvbnN0IHRleHRmaWVsZCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRhaW5lci10ZXh0ZmllbGQnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGV4dGZpZWxkPy5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZUxpc3QoKTtcbiAgfVxuXG4gIGNsb3NlTGlzdChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9jbG9zZVBhbmVsKCk7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkICYmIHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaXNBbGVydFRleHQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzQWxlcnRUZXh0ID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMub25CbHVyRXZlbnQuZW1pdCgpO1xuICB9XG5cbiAgb25JbnB1dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWJvdW5jZU1zIDw9IDApIHtcbiAgICAgIHRoaXMub25DaGFuZ2VzVmFsdWVFdmVudC5lbWl0KHRoaXMudGV4dElucHV0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2RlYm91bmNlVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9kZWJvdW5jZVRpbWVyKTtcbiAgICB9XG4gICAgdGhpcy5fZGVib3VuY2VUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vbkNoYW5nZXNWYWx1ZUV2ZW50LmVtaXQodGhpcy50ZXh0SW5wdXQpO1xuICAgIH0sIHRoaXMuZGVib3VuY2VNcyk7XG4gIH1cblxuICBvbkxpc3RTY3JvbGwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZUluZmluaXRlU2Nyb2xsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGVsID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHRocmVzaG9sZCA9IDQ4O1xuICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxUb3AgKyBlbC5jbGllbnRIZWlnaHQgPj0gZWwuc2Nyb2xsSGVpZ2h0IC0gdGhyZXNob2xkO1xuICAgIGlmICghbmVhckJvdHRvbSB8fCB0aGlzLl9zY3JvbGxlZEVuZENvb2xkb3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Njcm9sbGVkRW5kQ29vbGRvd24gPSB0cnVlO1xuICAgIHRoaXMub25TY3JvbGxlZFRvRW5kLmVtaXQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5fc2Nyb2xsZWRFbmRDb29sZG93biA9IGZhbHNlOyB9LCAzMDApO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5oYXNDbGlja2VkSW5zaWRlID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuc2hvd0xpc3QpIHtcbiAgICAgIHRoaXMuX29wZW5QYW5lbCgpO1xuICAgIH1cbiAgICB0aGlzLm9uRm9jdXNFdmVudC5lbWl0KCk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5zaG93TGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXF1aXJlZCkge1xuICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IHRoaXMudGV4dElucHV0ID09PSAnJztcbiAgICB9XG4gIH1cblxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5hZGRUZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgb25LZXlQcmVzc0FkZEVsZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLmFkZEVsZW1lbnRUZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgb25DbGlja0FkZEVsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWxlbWVudC50cmltKCkgIT09ICcnKSB7XG4gICAgICB0aGlzLm9uQWRkRWxlbWVudC5lbWl0KHRoaXMuZWxlbWVudCk7XG4gICAgICB0aGlzLmVsZW1lbnQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0FsZXJ0VGV4dCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgYWRkRWxlbWVudFRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWxlbWVudC50cmltKCkgIT09ICcnKSB7XG4gICAgICB0aGlzLm9uQWRkRWxlbWVudC5lbWl0KHRoaXMuZWxlbWVudCk7XG4gICAgICB0aGlzLmVsZW1lbnQgPSAnJztcbiAgICB9XG4gIH1cblxuICBhZGRUZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRleHRJbnB1dC50cmltKCkgIT09ICcnKSB7XG4gICAgICB0aGlzLm9uRW50ZXJLZXkuZW1pdCh0aGlzLnRleHRJbnB1dCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RPcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9jbG9zZVBhbmVsKCk7XG4gICAgdGhpcy5pc0FsZXJ0VGV4dCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3BlblBhbmVsKCk6IHZvaWQge1xuICAgIGNvbnN0IHRleHRmaWVsZCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRhaW5lci10ZXh0ZmllbGQnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBhbmNob3IgPSB0ZXh0ZmllbGQgPz8gdGhpcy5fZWw7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhhbmNob3IpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WTogNCB9LFxuICAgICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCAgICBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdib3R0b20nLCBvZmZzZXRZOiAtNCB9LFxuICAgICAgXSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgd2lkdGg6ICh0ZXh0ZmllbGQgPz8gdGhpcy5fZWwubmF0aXZlRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5saXN0UGFuZWwsIHRoaXMuX3ZjcikpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLl9zY3JvbGxMaXN0ZW5lciwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZVBhbmVsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuX3Njcm9sbExpc3RlbmVyLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGVib3VuY2VUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2RlYm91bmNlVGltZXIpO1xuICAgIH1cbiAgICB0aGlzLl9jbG9zZVBhbmVsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZ2VuZXJhbFwiIFtpZF09XCJjb21wb25lbnRJZFwiPlxuXG4gIDwhLS0gTGFiZWwgc3VwZXJpb3IgLS0+XG4gIEBpZiAobGFiZWxTdXBlcmlvcikge1xuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItbGFiZWwtc3VwXCIgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQgfVwiPlxuICAgICAgQGlmICghZGlzYWJsZWQgJiYgcmVxdWlyZWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24tZG90XCI+PC9kaXY+XG4gICAgICB9XG4gICAgICA8c3Bhbj57eyBsYWJlbFN1cGVyaW9yIH19PC9zcGFuPlxuICAgICAgQGlmICghZGlzYWJsZWQgJiYgc2hvd0hlbHBUZXh0KSB7XG4gICAgICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24taGVscFwiIGNsYXNzPVwiaWNvbi1jb2xvci1oZWxwXCI+PC9pdXMtaWNvbi1tZD5cbiAgICAgIH1cbiAgICAgIDxzcGFuPjo8L3NwYW4+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8IS0tIElucHV0IHByaW5jaXBhbCAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29udGFpbmVyLXRleHRmaWVsZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgZm9jdXNlZDogaXNGb2N1c2VkLFxuICAgICAgYWxlcnQ6ICghaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0ICYmICFkaXNhYmxlZCkgfHwgKGVycm9yICYmICFkaXNhYmxlZClcbiAgICB9XCJcbiAgICAoY2xpY2spPVwib25Gb2N1cygpXCJcbiAgPlxuICAgIEBpZiAoaWNvbklucHV0KSB7XG4gICAgICA8aXVzLWljb24tbWQgW2ljb25OYW1lXT1cImljb25JbnB1dFwiIGNsYXNzPVwiaWNvbi1jb2xvclwiPjwvaXVzLWljb24tbWQ+XG4gICAgfVxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ0ZXh0SW5wdXRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsSW5wdXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJjbnQtaWNvbi1yaWdodFwiPlxuICAgICAgQGlmICghc2hvd0xpc3QpIHtcbiAgICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1rZXlib2FyZC1hcnJvdy1kb3duXCIgY2xhc3M9XCJpY29uLWFycm93c1wiPjwvaXVzLWljb24tbWQ+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiY2xvc2VMaXN0KCRldmVudClcIiBzdHlsZT1cImhlaWdodDogMjBweDtcIj5cbiAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWtleWJvYXJkLWFycm93LXVwXCIgY2xhc3M9XCJpY29uLWFycm93c1wiPjwvaXVzLWljb24tbWQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIExhYmVsIGluZmVyaW9yIC0tPlxuICBAaWYgKGxhYmVsSW5mZXJpb3IgJiYgaXNGb2N1c2VkICYmICFlcnJvcikge1xuICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtaW5mXCI+e3sgbGFiZWxJbmZlcmlvciB9fTwvc3Bhbj5cbiAgfVxuICBAaWYgKChlcnJvclRleHQgfHwgbGFiZWxJbmZlcmlvcikgJiYgKCghaXNGb2N1c2VkICYmIGlzQWxlcnRUZXh0ICYmICFkaXNhYmxlZCkgfHwgKGVycm9yICYmICFkaXNhYmxlZCkpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1pbmZcIiBbbmdDbGFzc109XCJ7IGFsZXJ0OiAoIWlzRm9jdXNlZCAmJiBpc0FsZXJ0VGV4dCAmJiAhZGlzYWJsZWQpIHx8IChlcnJvciAmJiAhZGlzYWJsZWQpIH1cIj5cbiAgICAgIHt7IGVycm9yVGV4dCA/PyBsYWJlbEluZmVyaW9yIH19XG4gICAgPC9zcGFuPlxuICB9XG5cbiAgPCEtLSBMaXN0YSBkZSBvcGNpb25lcyAoQ0RLIG92ZXJsYXkpIC0tPlxuICA8bmctdGVtcGxhdGUgI2xpc3RQYW5lbD5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW9wdGlvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItbGlzdCBzY3JvbGxhYmxlLXNtYWxsXCIgKHNjcm9sbCk9XCJvbkxpc3RTY3JvbGwoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJvblNlbGVjdE9wdGlvbigpXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0b3I9XCJpdXMtb3B0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNudC1sb2FkaW5nLW9wdGlvblwiPkNhcmdhbmRv4oCmPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhZGQtZGF0YVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHRcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgKGtleXByZXNzKT1cIm9uS2V5UHJlc3NBZGRFbGVtZW50KCRldmVudClcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyQWRkVGV4dFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tYWRkLW9wdGlvblwiPlxuICAgICAgICAgIDxpdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5XG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbkJ0bkFkZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0FkZEVsZW1lbnQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdGV4dEJ0bkFkZCB9fVxuICAgICAgICAgIDwvaXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC9kaXY+XG4iXX0=
@@ -7,16 +7,16 @@ export class DropdownOptionItemComponent {
7
7
  this.router = router;
8
8
  this.iconName = '';
9
9
  this.route = '';
10
- this.click = new EventEmitter();
10
+ this.optionClick = new EventEmitter();
11
11
  }
12
12
  onClick() {
13
- this.click.emit();
13
+ this.optionClick.emit();
14
14
  if (this.route) {
15
15
  this.router.navigateByUrl(this.route);
16
16
  }
17
17
  }
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownOptionItemComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DropdownOptionItemComponent, isStandalone: true, selector: "ius-dropdown-option-item", inputs: { iconName: "iconName", route: "route" }, outputs: { click: "click" }, ngImport: i0, template: "<button class=\"dropdown-option\" (click)=\"onClick()\">\r\n @if (iconName) {\r\n <ius-icon-md [iconName]=\"iconName\" class=\"icon-color\"></ius-icon-md>\r\n } \r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.dropdown-option{display:flex;width:100%;padding:8px 20px 8px 12px;align-items:center;gap:8px;border-radius:8px;background-color:#fff;color:#333;font-family:Rubik,sans-serif;font-size:1rem;line-height:22px;font-weight:400;font-style:normal;border:none;cursor:pointer}.dropdown-option:hover:not(:disabled){background-color:#f0f0f0}.dropdown-option:active:not(:disabled){background-color:#c4dfff}.dropdown-option.isDisabled{cursor:not-allowed;color:#bfbfbf}.dropdown-option.isDisabled .icon-doc-color{color:#bfbfbf}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }] }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DropdownOptionItemComponent, isStandalone: true, selector: "ius-dropdown-option-item", inputs: { iconName: "iconName", route: "route" }, outputs: { optionClick: "optionClick" }, ngImport: i0, template: "<button class=\"dropdown-option\" (click)=\"onClick()\">\r\n @if (iconName) {\r\n <ius-icon-md [iconName]=\"iconName\" class=\"icon-color\"></ius-icon-md>\r\n } \r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.dropdown-option{display:flex;width:100%;padding:8px 20px 8px 12px;align-items:center;gap:8px;border-radius:8px;background-color:#fff;color:#333;font-family:Rubik,sans-serif;font-size:1rem;line-height:22px;font-weight:400;font-style:normal;border:none;cursor:pointer}.dropdown-option:hover:not(:disabled){background-color:#f0f0f0}.dropdown-option:active:not(:disabled){background-color:#c4dfff}.dropdown-option.isDisabled{cursor:not-allowed;color:#bfbfbf}.dropdown-option.isDisabled .icon-doc-color{color:#bfbfbf}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }] }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownOptionItemComponent, decorators: [{
22
22
  type: Component,
@@ -25,7 +25,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
25
25
  type: Input
26
26
  }], route: [{
27
27
  type: Input
28
- }], click: [{
28
+ }], optionClick: [{
29
29
  type: Output
30
30
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tb3B0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZHJvcGRvd24tb3B0aW9uLWl0ZW0vZHJvcGRvd24tb3B0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZHJvcGRvd24tb3B0aW9uLWl0ZW0vZHJvcGRvd24tb3B0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVMvRCxNQUFNLE9BQU8sMkJBQTJCO0lBTXRDLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTHpCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVYsVUFBSyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRW5CLENBQUM7SUFFdkMsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7K0dBZFUsMkJBQTJCO21HQUEzQiwyQkFBMkIsbUtDWHhDLHNOQU1BLGloRURDWSxlQUFlOzs0RkFJZCwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLGVBQWUsQ0FBQzsyRUFLakIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSWNvbk1kQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1tZC9pY29uLW1kLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2l1cy1kcm9wZG93bi1vcHRpb24taXRlbScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbSWNvbk1kQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tb3B0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kcm9wZG93bi1vcHRpb24taXRlbS5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk9wdGlvbkl0ZW1Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGljb25OYW1lID0gJyc7XHJcbiAgQElucHV0KCkgcm91dGUgPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHsgfVxyXG5cclxuICBvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5jbGljay5lbWl0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMucm91dGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvbiBjbGFzcz1cImRyb3Bkb3duLW9wdGlvblwiIChjbGljayk9XCJvbkNsaWNrKClcIj5cclxuICBAaWYgKGljb25OYW1lKSB7XHJcbiAgPGl1cy1pY29uLW1kIFtpY29uTmFtZV09XCJpY29uTmFtZVwiIGNsYXNzPVwiaWNvbi1jb2xvclwiPjwvaXVzLWljb24tbWQ+XHJcbiAgfSBcclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvYnV0dG9uPlxyXG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tb3B0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZHJvcGRvd24tb3B0aW9uLWl0ZW0vZHJvcGRvd24tb3B0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZHJvcGRvd24tb3B0aW9uLWl0ZW0vZHJvcGRvd24tb3B0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVMvRCxNQUFNLE9BQU8sMkJBQTJCO0lBTXRDLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTHpCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVYsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUV6QixDQUFDO0lBRXZDLE9BQU87UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDOytHQWRVLDJCQUEyQjttR0FBM0IsMkJBQTJCLCtLQ1h4QyxzTkFNQSxpaEVEQ1ksZUFBZTs7NEZBSWQsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxlQUFlLENBQUM7MkVBS2pCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tICcuLi9pY29uLW1kL2ljb24tbWQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtJY29uTWRDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1vcHRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Ryb3Bkb3duLW9wdGlvbi1pdGVtLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duT3B0aW9uSXRlbUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgaWNvbk5hbWUgPSAnJztcclxuICBASW5wdXQoKSByb3V0ZSA9ICcnO1xyXG5cclxuICBAT3V0cHV0KCkgb3B0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG9uQ2xpY2soKSB7XHJcbiAgICB0aGlzLm9wdGlvbkNsaWNrLmVtaXQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5yb3V0ZSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uIGNsYXNzPVwiZHJvcGRvd24tb3B0aW9uXCIgKGNsaWNrKT1cIm9uQ2xpY2soKVwiPlxyXG4gIEBpZiAoaWNvbk5hbWUpIHtcclxuICA8aXVzLWljb24tbWQgW2ljb25OYW1lXT1cImljb25OYW1lXCIgY2xhc3M9XCJpY29uLWNvbG9yXCI+PC9pdXMtaWNvbi1tZD5cclxuICB9IFxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9idXR0b24+XHJcbiJdfQ==
@@ -1,21 +1,49 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { IconMdComponent } from "../icon-md/icon-md.component";
3
- import { ButtonSquaredTertiaryComponent } from "../button-squared-tertiary/button-squared-tertiary.component";
1
+ import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
4
2
  import { ButtonStandardSecondaryComponent } from "../button-standard-secondary/button-standard-secondary.component";
5
3
  import { DropdownOptionItemComponent } from "../dropdown-option-item";
6
4
  import { SimpleDividerComponent } from "../simple-divider";
5
+ import { IconSmComponent } from "../icon-sm";
6
+ import { ButtonCircleTertiaryComponent } from "../button-circle-tertiary";
7
+ import { PopoverDirective } from "../directives/popover.directive";
7
8
  import * as i0 from "@angular/core";
8
9
  export class NotificationCardComponent {
9
- constructor() {
10
+ constructor(eRef) {
11
+ this.eRef = eRef;
12
+ this.mostrarEditar = true;
13
+ this.esNavegable = false;
14
+ this.mostrarAyuda = false;
10
15
  this.onAccept = new EventEmitter();
11
16
  this.onDone = new EventEmitter();
12
- this.onPostpone15Min = new EventEmitter();
13
- this.onPostpone30Min = new EventEmitter();
14
- this.onPostpone1Hour = new EventEmitter();
15
- this.onPostpone1Day = new EventEmitter();
16
- this.onPostpone1Week = new EventEmitter();
17
+ this.onPostpone = new EventEmitter();
17
18
  this.onEditActivity = new EventEmitter();
19
+ this.onClickAlert = new EventEmitter();
18
20
  this.handlePostpone = false;
21
+ this.presetsHabilitados = [15, 30, 60, 1440, 10080];
22
+ }
23
+ onDocumentClick(event) {
24
+ if (this.handlePostpone && !this.eRef.nativeElement.contains(event.target)) {
25
+ this.handlePostpone = false;
26
+ }
27
+ }
28
+ addMinutes(mins) {
29
+ return new Date(Date.now() + mins * 60000);
30
+ }
31
+ puedePosponer(mins) {
32
+ if (this.mostrarPosponer === undefined)
33
+ return true;
34
+ if (!this.fechaActividad)
35
+ return true;
36
+ return this.addMinutes(mins) < new Date(this.fechaActividad);
37
+ }
38
+ ngOnChanges() {
39
+ this.presetsHabilitados = [15, 30, 60, 1440, 10080].filter(m => this.puedePosponer(m));
40
+ }
41
+ get hayAlgunPreset() {
42
+ return this.presetsHabilitados.length > 0;
43
+ }
44
+ onCardClick() {
45
+ if (this.esNavegable)
46
+ this.onClickAlert.emit();
19
47
  }
20
48
  onClickAccept() {
21
49
  this.onAccept.emit();
@@ -26,37 +54,21 @@ export class NotificationCardComponent {
26
54
  onClickPostpone() {
27
55
  this.handlePostpone = !this.handlePostpone;
28
56
  }
29
- onClickPostpone15Min() {
30
- this.handlePostpone = false;
31
- this.onPostpone15Min.emit();
32
- }
33
- onClickPostpone30Min() {
34
- this.handlePostpone = false;
35
- this.onPostpone30Min.emit();
36
- }
37
- onClickPostpone1Hour() {
38
- this.handlePostpone = false;
39
- this.onPostpone1Hour.emit();
40
- }
41
- onClickPostpone1Day() {
57
+ seleccionarPosponer(minutos) {
42
58
  this.handlePostpone = false;
43
- this.onPostpone1Day.emit();
44
- }
45
- onClickPostpone1Week() {
46
- this.handlePostpone = false;
47
- this.onPostpone1Week.emit();
59
+ this.onPostpone.emit(minutos);
48
60
  }
49
61
  onClickEditActivity() {
50
62
  this.handlePostpone = false;
51
63
  this.onEditActivity.emit();
52
64
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: NotificationCardComponent, isStandalone: true, selector: "ius-notification-card", inputs: { date: "date", title: "title", body: "body", simple: "simple", activity: "activity", process: "process" }, outputs: { onAccept: "onAccept", onDone: "onDone", onPostpone15Min: "onPostpone15Min", onPostpone30Min: "onPostpone30Min", onPostpone1Hour: "onPostpone1Hour", onPostpone1Day: "onPostpone1Day", onPostpone1Week: "onPostpone1Week", onEditActivity: "onEditActivity" }, ngImport: i0, template: "<div class=\"general-container\">\r\n <div class=\"container\">\r\n <div class=\"data\">\r\n <div class=\"header\">\r\n <ius-icon-md iconName=\"icon-notifications\"></ius-icon-md>\r\n <div class=\"date-title\">\r\n <div class=\"date\">\r\n <p>{{ date }}</p>\r\n </div>\r\n <div class=\"title\">\r\n <p>{{ title }}</p>\r\n </div>\r\n </div>\r\n @if (simple || activity) {\r\n <ius-button-squared-tertiary\r\n iconName=\"icon-done-outline\"\r\n (buttonClicked)=\"onClickDone()\"\r\n ></ius-button-squared-tertiary>\r\n } @if (activity) {\r\n <ius-button-squared-tertiary\r\n iconName=\"icon-history-2\"\r\n (buttonClicked)=\"onClickPostpone()\"\r\n ></ius-button-squared-tertiary>\r\n } @if (process) {\r\n <ius-button-squared-tertiary\r\n iconName=\"icon-help-center\"\r\n ></ius-button-squared-tertiary>\r\n }\r\n </div>\r\n @if(handlePostpone){\r\n <div class=\"general-container-options\">\r\n <div class=\"container-options\">\r\n <div class=\"options\">\r\n <ius-dropdown-option-item (click)=\"onClickPostpone15Min()\">\r\n Posponer 15 minutos\r\n </ius-dropdown-option-item>\r\n <ius-dropdown-option-item (click)=\"onClickPostpone30Min()\">\r\n Posponer 30 minutos\r\n </ius-dropdown-option-item>\r\n <ius-dropdown-option-item (click)=\"onClickPostpone1Hour()\">\r\n Posponer 1 hora\r\n </ius-dropdown-option-item>\r\n <ius-dropdown-option-item (click)=\"onClickPostpone1Day()\">\r\n Posponer 1 d\u00EDa\r\n </ius-dropdown-option-item>\r\n <ius-dropdown-option-item (click)=\"onClickPostpone1Week()\">\r\n Posponer 1 semana\r\n </ius-dropdown-option-item>\r\n <ius-simple-divider></ius-simple-divider>\r\n <ius-dropdown-option-item (click)=\"onClickEditActivity()\">\r\n Editar actividad\r\n </ius-dropdown-option-item>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"body\">\r\n <p>{{ body }}</p>\r\n </div>\r\n @if (process) {\r\n <div class=\"btn\">\r\n <ius-button-standard-secondary (buttonClicked)=\"onClickAccept()\"\r\n >Aceptar</ius-button-standard-secondary\r\n >\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.general-container{position:relative}.container{display:flex;padding:12px 16px;flex-direction:column;align-items:flex-start;gap:5px;border-radius:8px;border:1px solid #d9d9d9}.data{display:flex;flex-direction:column;align-items:flex-start;gap:4px;align-self:stretch}.header{display:flex;justify-content:flex-end;align-items:center;gap:4px;align-self:stretch}.header .date-title{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.header .date-title .date{display:flex;align-items:center;gap:12px;align-self:stretch}.header .date-title .date p{margin:0;color:#333;font-family:Rubik,sans-serif;font-size:.75rem;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.24px}.header .date-title .title{display:flex;align-items:center;gap:12px;align-self:stretch}.header .date-title .title p{margin:0;color:#333;font-family:Rubik,sans-serif;font-size:.875rem;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.28px}.body{display:flex;flex-direction:column;align-items:flex-start;gap:12px;align-self:stretch}.body p{margin:0;display:flex;justify-content:center;align-items:center;gap:12px;align-self:stretch;color:#333;font-family:Rubik,sans-serif;font-size:.75rem;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.24px}.btn{width:100%}.general-container-options{position:absolute;right:20px;top:55px;z-index:1000}.container-options{display:inline-flex;padding:4px;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;border-radius:8px;background:var(--N-WHITE, #fff);box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.container-options .options{display:flex;flex-direction:column;align-items:flex-start;gap:4px}ius-dropdown-option-item{width:100%}\n"], dependencies: [{ kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "component", type: ButtonSquaredTertiaryComponent, selector: "ius-button-squared-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: ButtonStandardSecondaryComponent, selector: "ius-button-standard-secondary", inputs: ["disabled"], outputs: ["buttonClicked"] }, { kind: "component", type: DropdownOptionItemComponent, selector: "ius-dropdown-option-item", inputs: ["iconName", "route"], outputs: ["click"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }] }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationCardComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: NotificationCardComponent, isStandalone: true, selector: "ius-notification-card", inputs: { date: "date", title: "title", body: "body", simple: "simple", activity: "activity", confirmable: "confirmable", fechaActividad: "fechaActividad", mostrarPosponer: "mostrarPosponer", mostrarEditar: "mostrarEditar", esNavegable: "esNavegable", mostrarAyuda: "mostrarAyuda" }, outputs: { onAccept: "onAccept", onDone: "onDone", onPostpone: "onPostpone", onEditActivity: "onEditActivity", onClickAlert: "onClickAlert" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"general-container\">\n <div class=\"container\">\n <div class=\"data\">\n <div class=\"header\">\n <ius-icon-sm iconName=\"icon-notifications\" class=\"color-pry\"></ius-icon-sm>\n <div class=\"date-title color-pry\" (click)=\"onCardClick()\" [style.cursor]=\"esNavegable ? 'pointer' : 'default'\">\n <div class=\"date\">\n <p>{{ date }}</p>\n </div>\n <div class=\"title\">\n <p>{{ title }}</p>\n </div>\n </div>\n @if (!confirmable) {\n <ius-button-circle-tertiary\n iconName=\"icon-done-outline\"\n iusPopoverContent=\"Descartar\"\n (buttonClicked)=\"onClickDone()\"\n ></ius-button-circle-tertiary>\n } @if ((mostrarPosponer ?? activity) && hayAlgunPreset) {\n <ius-button-circle-tertiary\n iconName=\"icon-history-2\"\n iusPopoverContent=\"Posponer\"\n (buttonClicked)=\"onClickPostpone()\"\n ></ius-button-circle-tertiary>\n } @if (confirmable && mostrarAyuda) {\n <ius-button-circle-tertiary\n iconName=\"icon-help-center\"\n iusPopoverContent=\"Ayuda\"\n ></ius-button-circle-tertiary>\n }\n </div>\n @if (hayAlgunPreset || mostrarEditar) {\n <div class=\"general-container-options\" [class.open]=\"handlePostpone\">\n <div class=\"container-options\">\n <div class=\"options\">\n @if (presetsHabilitados.includes(15)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(15)\">\n Posponer 15 minutos\n </ius-dropdown-option-item>\n }\n @if (presetsHabilitados.includes(30)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(30)\">\n Posponer 30 minutos\n </ius-dropdown-option-item>\n }\n @if (presetsHabilitados.includes(60)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(60)\">\n Posponer 1 hora\n </ius-dropdown-option-item>\n }\n @if (presetsHabilitados.includes(1440)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(1440)\">\n Posponer 1 d\u00EDa\n </ius-dropdown-option-item>\n }\n @if (presetsHabilitados.includes(10080)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(10080)\">\n Posponer 1 semana\n </ius-dropdown-option-item>\n }\n @if (mostrarEditar) {\n <ius-simple-divider></ius-simple-divider>\n <ius-dropdown-option-item (optionClick)=\"onClickEditActivity()\">\n Editar actividad\n </ius-dropdown-option-item>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"body\" (click)=\"onCardClick()\" [style.cursor]=\"esNavegable ? 'pointer' : 'default'\">\n <p>{{ body }}</p>\n </div>\n @if (confirmable) {\n <div class=\"btn\">\n <ius-button-standard-secondary (buttonClicked)=\"onClickAccept()\"\n >Aceptar</ius-button-standard-secondary\n >\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.general-container{position:relative}.container{display:flex;padding:12px 16px;flex-direction:column;align-items:flex-start;gap:5px;border-radius:8px;border:1px solid #d9d9d9}.color-pry{color:#333}.data{display:flex;flex-direction:column;align-items:flex-start;gap:4px;align-self:stretch}.header{display:flex;justify-content:flex-end;align-items:center;gap:4px;align-self:stretch}.header .date-title{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.header .date-title .date{display:flex;align-items:center;gap:12px;align-self:stretch}.header .date-title .date p{margin:0;color:#333;font-family:Rubik,sans-serif;font-size:.75rem;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.24px}.header .date-title .title{display:flex;align-items:center;gap:12px;align-self:stretch}.header .date-title .title p{margin:0;color:#333;font-family:Rubik,sans-serif;font-size:.875rem;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.28px}.body{display:flex;flex-direction:column;align-items:flex-start;gap:12px;align-self:stretch}.body p{margin:0;display:flex;justify-content:center;align-items:center;gap:12px;align-self:stretch;color:#333;font-family:Rubik,sans-serif;font-size:.75rem;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.24px}.btn{width:100%}.general-container-options{position:absolute;right:20px;top:65px;z-index:1000;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .16s ease,transform .16s ease,visibility 0s linear .16s}.general-container-options.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .16s ease,transform .16s ease,visibility 0s}.container-options{display:inline-flex;padding:4px;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;border-radius:8px;background:var(--N-WHITE, #fff);box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.container-options .options{display:flex;flex-direction:column;align-items:flex-start;gap:4px}ius-dropdown-option-item{width:100%}\n"], dependencies: [{ kind: "component", type: ButtonStandardSecondaryComponent, selector: "ius-button-standard-secondary", inputs: ["disabled"], outputs: ["buttonClicked"] }, { kind: "component", type: DropdownOptionItemComponent, selector: "ius-dropdown-option-item", inputs: ["iconName", "route"], outputs: ["optionClick"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: IconSmComponent, selector: "ius-icon-sm", inputs: ["iconName", "color"] }, { kind: "component", type: ButtonCircleTertiaryComponent, selector: "ius-button-circle-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "directive", type: PopoverDirective, selector: "[iusPopover], [iusPopoverTitle], [iusPopoverContent]", inputs: ["iusPopover", "iusPopoverTitle", "iusPopoverContent", "iusPopoverPosition", "iusPopoverOpenDelay", "iusPopoverCloseDelay"] }] }); }
55
67
  }
56
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationCardComponent, decorators: [{
57
69
  type: Component,
58
- args: [{ selector: 'ius-notification-card', standalone: true, imports: [IconMdComponent, ButtonSquaredTertiaryComponent, ButtonStandardSecondaryComponent, DropdownOptionItemComponent, SimpleDividerComponent], template: "<div class=\"general-container\">\r\n <div class=\"container\">\r\n <div class=\"data\">\r\n <div class=\"header\">\r\n <ius-icon-md iconName=\"icon-notifications\"></ius-icon-md>\r\n <div class=\"date-title\">\r\n <div class=\"date\">\r\n <p>{{ date }}</p>\r\n </div>\r\n <div class=\"title\">\r\n <p>{{ title }}</p>\r\n </div>\r\n </div>\r\n @if (simple || activity) {\r\n <ius-button-squared-tertiary\r\n iconName=\"icon-done-outline\"\r\n (buttonClicked)=\"onClickDone()\"\r\n ></ius-button-squared-tertiary>\r\n } @if (activity) {\r\n <ius-button-squared-tertiary\r\n iconName=\"icon-history-2\"\r\n (buttonClicked)=\"onClickPostpone()\"\r\n ></ius-button-squared-tertiary>\r\n } @if (process) {\r\n <ius-button-squared-tertiary\r\n iconName=\"icon-help-center\"\r\n ></ius-button-squared-tertiary>\r\n }\r\n </div>\r\n @if(handlePostpone){\r\n <div class=\"general-container-options\">\r\n <div class=\"container-options\">\r\n <div class=\"options\">\r\n <ius-dropdown-option-item (click)=\"onClickPostpone15Min()\">\r\n Posponer 15 minutos\r\n </ius-dropdown-option-item>\r\n <ius-dropdown-option-item (click)=\"onClickPostpone30Min()\">\r\n Posponer 30 minutos\r\n </ius-dropdown-option-item>\r\n <ius-dropdown-option-item (click)=\"onClickPostpone1Hour()\">\r\n Posponer 1 hora\r\n </ius-dropdown-option-item>\r\n <ius-dropdown-option-item (click)=\"onClickPostpone1Day()\">\r\n Posponer 1 d\u00EDa\r\n </ius-dropdown-option-item>\r\n <ius-dropdown-option-item (click)=\"onClickPostpone1Week()\">\r\n Posponer 1 semana\r\n </ius-dropdown-option-item>\r\n <ius-simple-divider></ius-simple-divider>\r\n <ius-dropdown-option-item (click)=\"onClickEditActivity()\">\r\n Editar actividad\r\n </ius-dropdown-option-item>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"body\">\r\n <p>{{ body }}</p>\r\n </div>\r\n @if (process) {\r\n <div class=\"btn\">\r\n <ius-button-standard-secondary (buttonClicked)=\"onClickAccept()\"\r\n >Aceptar</ius-button-standard-secondary\r\n >\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.general-container{position:relative}.container{display:flex;padding:12px 16px;flex-direction:column;align-items:flex-start;gap:5px;border-radius:8px;border:1px solid #d9d9d9}.data{display:flex;flex-direction:column;align-items:flex-start;gap:4px;align-self:stretch}.header{display:flex;justify-content:flex-end;align-items:center;gap:4px;align-self:stretch}.header .date-title{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.header .date-title .date{display:flex;align-items:center;gap:12px;align-self:stretch}.header .date-title .date p{margin:0;color:#333;font-family:Rubik,sans-serif;font-size:.75rem;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.24px}.header .date-title .title{display:flex;align-items:center;gap:12px;align-self:stretch}.header .date-title .title p{margin:0;color:#333;font-family:Rubik,sans-serif;font-size:.875rem;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.28px}.body{display:flex;flex-direction:column;align-items:flex-start;gap:12px;align-self:stretch}.body p{margin:0;display:flex;justify-content:center;align-items:center;gap:12px;align-self:stretch;color:#333;font-family:Rubik,sans-serif;font-size:.75rem;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.24px}.btn{width:100%}.general-container-options{position:absolute;right:20px;top:55px;z-index:1000}.container-options{display:inline-flex;padding:4px;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;border-radius:8px;background:var(--N-WHITE, #fff);box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.container-options .options{display:flex;flex-direction:column;align-items:flex-start;gap:4px}ius-dropdown-option-item{width:100%}\n"] }]
59
- }], propDecorators: { date: [{
70
+ args: [{ selector: 'ius-notification-card', standalone: true, imports: [ButtonStandardSecondaryComponent, DropdownOptionItemComponent, SimpleDividerComponent, IconSmComponent, ButtonCircleTertiaryComponent, PopoverDirective], template: "<div class=\"general-container\">\n <div class=\"container\">\n <div class=\"data\">\n <div class=\"header\">\n <ius-icon-sm iconName=\"icon-notifications\" class=\"color-pry\"></ius-icon-sm>\n <div class=\"date-title color-pry\" (click)=\"onCardClick()\" [style.cursor]=\"esNavegable ? 'pointer' : 'default'\">\n <div class=\"date\">\n <p>{{ date }}</p>\n </div>\n <div class=\"title\">\n <p>{{ title }}</p>\n </div>\n </div>\n @if (!confirmable) {\n <ius-button-circle-tertiary\n iconName=\"icon-done-outline\"\n iusPopoverContent=\"Descartar\"\n (buttonClicked)=\"onClickDone()\"\n ></ius-button-circle-tertiary>\n } @if ((mostrarPosponer ?? activity) && hayAlgunPreset) {\n <ius-button-circle-tertiary\n iconName=\"icon-history-2\"\n iusPopoverContent=\"Posponer\"\n (buttonClicked)=\"onClickPostpone()\"\n ></ius-button-circle-tertiary>\n } @if (confirmable && mostrarAyuda) {\n <ius-button-circle-tertiary\n iconName=\"icon-help-center\"\n iusPopoverContent=\"Ayuda\"\n ></ius-button-circle-tertiary>\n }\n </div>\n @if (hayAlgunPreset || mostrarEditar) {\n <div class=\"general-container-options\" [class.open]=\"handlePostpone\">\n <div class=\"container-options\">\n <div class=\"options\">\n @if (presetsHabilitados.includes(15)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(15)\">\n Posponer 15 minutos\n </ius-dropdown-option-item>\n }\n @if (presetsHabilitados.includes(30)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(30)\">\n Posponer 30 minutos\n </ius-dropdown-option-item>\n }\n @if (presetsHabilitados.includes(60)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(60)\">\n Posponer 1 hora\n </ius-dropdown-option-item>\n }\n @if (presetsHabilitados.includes(1440)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(1440)\">\n Posponer 1 d\u00EDa\n </ius-dropdown-option-item>\n }\n @if (presetsHabilitados.includes(10080)) {\n <ius-dropdown-option-item (optionClick)=\"seleccionarPosponer(10080)\">\n Posponer 1 semana\n </ius-dropdown-option-item>\n }\n @if (mostrarEditar) {\n <ius-simple-divider></ius-simple-divider>\n <ius-dropdown-option-item (optionClick)=\"onClickEditActivity()\">\n Editar actividad\n </ius-dropdown-option-item>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"body\" (click)=\"onCardClick()\" [style.cursor]=\"esNavegable ? 'pointer' : 'default'\">\n <p>{{ body }}</p>\n </div>\n @if (confirmable) {\n <div class=\"btn\">\n <ius-button-standard-secondary (buttonClicked)=\"onClickAccept()\"\n >Aceptar</ius-button-standard-secondary\n >\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.general-container{position:relative}.container{display:flex;padding:12px 16px;flex-direction:column;align-items:flex-start;gap:5px;border-radius:8px;border:1px solid #d9d9d9}.color-pry{color:#333}.data{display:flex;flex-direction:column;align-items:flex-start;gap:4px;align-self:stretch}.header{display:flex;justify-content:flex-end;align-items:center;gap:4px;align-self:stretch}.header .date-title{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.header .date-title .date{display:flex;align-items:center;gap:12px;align-self:stretch}.header .date-title .date p{margin:0;color:#333;font-family:Rubik,sans-serif;font-size:.75rem;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.24px}.header .date-title .title{display:flex;align-items:center;gap:12px;align-self:stretch}.header .date-title .title p{margin:0;color:#333;font-family:Rubik,sans-serif;font-size:.875rem;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.28px}.body{display:flex;flex-direction:column;align-items:flex-start;gap:12px;align-self:stretch}.body p{margin:0;display:flex;justify-content:center;align-items:center;gap:12px;align-self:stretch;color:#333;font-family:Rubik,sans-serif;font-size:.75rem;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.24px}.btn{width:100%}.general-container-options{position:absolute;right:20px;top:65px;z-index:1000;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .16s ease,transform .16s ease,visibility 0s linear .16s}.general-container-options.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .16s ease,transform .16s ease,visibility 0s}.container-options{display:inline-flex;padding:4px;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;border-radius:8px;background:var(--N-WHITE, #fff);box-shadow:0 2px 6px #00000024,0 1px 10px #0000001a}.container-options .options{display:flex;flex-direction:column;align-items:flex-start;gap:4px}ius-dropdown-option-item{width:100%}\n"] }]
71
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { date: [{
60
72
  type: Input
61
73
  }], title: [{
62
74
  type: Input
@@ -66,23 +78,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
66
78
  type: Input
67
79
  }], activity: [{
68
80
  type: Input
69
- }], process: [{
81
+ }], confirmable: [{
82
+ type: Input
83
+ }], fechaActividad: [{
84
+ type: Input
85
+ }], mostrarPosponer: [{
86
+ type: Input
87
+ }], mostrarEditar: [{
88
+ type: Input
89
+ }], esNavegable: [{
90
+ type: Input
91
+ }], mostrarAyuda: [{
70
92
  type: Input
71
93
  }], onAccept: [{
72
94
  type: Output
73
95
  }], onDone: [{
74
96
  type: Output
75
- }], onPostpone15Min: [{
76
- type: Output
77
- }], onPostpone30Min: [{
78
- type: Output
79
- }], onPostpone1Hour: [{
80
- type: Output
81
- }], onPostpone1Day: [{
82
- type: Output
83
- }], onPostpone1Week: [{
97
+ }], onPostpone: [{
84
98
  type: Output
85
99
  }], onEditActivity: [{
86
100
  type: Output
101
+ }], onClickAlert: [{
102
+ type: Output
103
+ }], onDocumentClick: [{
104
+ type: HostListener,
105
+ args: ['document:click', ['$event']]
87
106
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvbm90aWZpY2F0aW9uLWNhcmQvbm90aWZpY2F0aW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvbm90aWZpY2F0aW9uLWNhcmQvbm90aWZpY2F0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDOUcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDcEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBUzNELE1BQU0sT0FBTyx5QkFBeUI7SUFQdEM7UUFlWSxhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsV0FBTSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hELG9CQUFlLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsb0JBQWUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCxvQkFBZSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pELG1CQUFjLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsb0JBQWUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxFLG1CQUFjLEdBQWEsS0FBSyxDQUFDO0tBNENsQztJQXpDQyxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQTVEVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw4Y0NkdEMsMGhGQXFFQSx1dUdEM0RZLGVBQWUsdUZBQUUsOEJBQThCLHNJQUFFLGdDQUFnQyw0SEFBRSwyQkFBMkIsd0hBQUUsc0JBQXNCOzs0RkFJckkseUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsOEJBQThCLEVBQUUsZ0NBQWdDLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLENBQUM7OEJBS3hJLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEljb25NZENvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLW1kL2ljb24tbWQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEJ1dHRvblNxdWFyZWRUZXJ0aWFyeUNvbXBvbmVudCB9IGZyb20gXCIuLi9idXR0b24tc3F1YXJlZC10ZXJ0aWFyeS9idXR0b24tc3F1YXJlZC10ZXJ0aWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQnV0dG9uU3RhbmRhcmRTZWNvbmRhcnlDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLXN0YW5kYXJkLXNlY29uZGFyeS9idXR0b24tc3RhbmRhcmQtc2Vjb25kYXJ5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEcm9wZG93bk9wdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tIFwiLi4vZHJvcGRvd24tb3B0aW9uLWl0ZW1cIjtcclxuaW1wb3J0IHsgU2ltcGxlRGl2aWRlckNvbXBvbmVudCB9IGZyb20gXCIuLi9zaW1wbGUtZGl2aWRlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtbm90aWZpY2F0aW9uLWNhcmQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0ljb25NZENvbXBvbmVudCwgQnV0dG9uU3F1YXJlZFRlcnRpYXJ5Q29tcG9uZW50LCBCdXR0b25TdGFuZGFyZFNlY29uZGFyeUNvbXBvbmVudCwgRHJvcGRvd25PcHRpb25JdGVtQ29tcG9uZW50LCBTaW1wbGVEaXZpZGVyQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9ub3RpZmljYXRpb24tY2FyZC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkNhcmRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGRhdGU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYm9keT86IHN0cmluZztcclxuICBASW5wdXQoKSBzaW1wbGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFjdGl2aXR5PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwcm9jZXNzPzogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIG9uQWNjZXB0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uRG9uZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblBvc3Rwb25lMTVNaW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Qb3N0cG9uZTMwTWluOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUG9zdHBvbmUxSG91cjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblBvc3Rwb25lMURheTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblBvc3Rwb25lMVdlZWs6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25FZGl0QWN0aXZpdHk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgaGFuZGxlUG9zdHBvbmU/OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBvbkNsaWNrQWNjZXB0KCkge1xyXG4gICAgdGhpcy5vbkFjY2VwdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrRG9uZSgpIHtcclxuICAgIHRoaXMub25Eb25lLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tQb3N0cG9uZSgpIHtcclxuICAgIHRoaXMuaGFuZGxlUG9zdHBvbmUgPSAhdGhpcy5oYW5kbGVQb3N0cG9uZTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tQb3N0cG9uZTE1TWluKCkge1xyXG4gICAgdGhpcy5oYW5kbGVQb3N0cG9uZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5vblBvc3Rwb25lMTVNaW4uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1Bvc3Rwb25lMzBNaW4oKSB7XHJcbiAgICB0aGlzLmhhbmRsZVBvc3Rwb25lID0gZmFsc2U7XHJcbiAgICB0aGlzLm9uUG9zdHBvbmUzME1pbi5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrUG9zdHBvbmUxSG91cigpIHtcclxuICAgIHRoaXMuaGFuZGxlUG9zdHBvbmUgPSBmYWxzZTtcclxuICAgIHRoaXMub25Qb3N0cG9uZTFIb3VyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tQb3N0cG9uZTFEYXkoKSB7XHJcbiAgICB0aGlzLmhhbmRsZVBvc3Rwb25lID0gZmFsc2U7XHJcbiAgICB0aGlzLm9uUG9zdHBvbmUxRGF5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tQb3N0cG9uZTFXZWVrKCkge1xyXG4gICAgdGhpcy5oYW5kbGVQb3N0cG9uZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5vblBvc3Rwb25lMVdlZWsuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0VkaXRBY3Rpdml0eSgpIHtcclxuICAgIHRoaXMuaGFuZGxlUG9zdHBvbmUgPSBmYWxzZTtcclxuICAgIHRoaXMub25FZGl0QWN0aXZpdHkuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZ2VuZXJhbC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGF0YVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1ub3RpZmljYXRpb25zXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS10aXRsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj5cclxuICAgICAgICAgICAgPHA+e3sgZGF0ZSB9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgIDxwPnt7IHRpdGxlIH19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgQGlmIChzaW1wbGUgfHwgYWN0aXZpdHkpIHtcclxuICAgICAgICA8aXVzLWJ1dHRvbi1zcXVhcmVkLXRlcnRpYXJ5XHJcbiAgICAgICAgICBpY29uTmFtZT1cImljb24tZG9uZS1vdXRsaW5lXCJcclxuICAgICAgICAgIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tEb25lKClcIlxyXG4gICAgICAgID48L2l1cy1idXR0b24tc3F1YXJlZC10ZXJ0aWFyeT5cclxuICAgICAgICB9IEBpZiAoYWN0aXZpdHkpIHtcclxuICAgICAgICA8aXVzLWJ1dHRvbi1zcXVhcmVkLXRlcnRpYXJ5XHJcbiAgICAgICAgICBpY29uTmFtZT1cImljb24taGlzdG9yeS0yXCJcclxuICAgICAgICAgIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tQb3N0cG9uZSgpXCJcclxuICAgICAgICA+PC9pdXMtYnV0dG9uLXNxdWFyZWQtdGVydGlhcnk+XHJcbiAgICAgICAgfSBAaWYgKHByb2Nlc3MpIHtcclxuICAgICAgICA8aXVzLWJ1dHRvbi1zcXVhcmVkLXRlcnRpYXJ5XHJcbiAgICAgICAgICBpY29uTmFtZT1cImljb24taGVscC1jZW50ZXJcIlxyXG4gICAgICAgID48L2l1cy1idXR0b24tc3F1YXJlZC10ZXJ0aWFyeT5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBAaWYoaGFuZGxlUG9zdHBvbmUpe1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ2VuZXJhbC1jb250YWluZXItb3B0aW9uc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItb3B0aW9uc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cclxuICAgICAgICAgICAgPGl1cy1kcm9wZG93bi1vcHRpb24taXRlbSAoY2xpY2spPVwib25DbGlja1Bvc3Rwb25lMTVNaW4oKVwiPlxyXG4gICAgICAgICAgICAgIFBvc3BvbmVyIDE1IG1pbnV0b3NcclxuICAgICAgICAgICAgPC9pdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0+XHJcbiAgICAgICAgICAgIDxpdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0gKGNsaWNrKT1cIm9uQ2xpY2tQb3N0cG9uZTMwTWluKClcIj5cclxuICAgICAgICAgICAgICBQb3Nwb25lciAzMCBtaW51dG9zXHJcbiAgICAgICAgICAgIDwvaXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtPlxyXG4gICAgICAgICAgICA8aXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtIChjbGljayk9XCJvbkNsaWNrUG9zdHBvbmUxSG91cigpXCI+XHJcbiAgICAgICAgICAgICAgUG9zcG9uZXIgMSBob3JhXHJcbiAgICAgICAgICAgIDwvaXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtPlxyXG4gICAgICAgICAgICA8aXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtIChjbGljayk9XCJvbkNsaWNrUG9zdHBvbmUxRGF5KClcIj5cclxuICAgICAgICAgICAgICBQb3Nwb25lciAxIGTDrWFcclxuICAgICAgICAgICAgPC9pdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0+XHJcbiAgICAgICAgICAgIDxpdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0gKGNsaWNrKT1cIm9uQ2xpY2tQb3N0cG9uZTFXZWVrKClcIj5cclxuICAgICAgICAgICAgICBQb3Nwb25lciAxIHNlbWFuYVxyXG4gICAgICAgICAgICA8L2l1cy1kcm9wZG93bi1vcHRpb24taXRlbT5cclxuICAgICAgICAgICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgICAgICAgICAgPGl1cy1kcm9wZG93bi1vcHRpb24taXRlbSAoY2xpY2spPVwib25DbGlja0VkaXRBY3Rpdml0eSgpXCI+XHJcbiAgICAgICAgICAgICAgRWRpdGFyIGFjdGl2aWRhZFxyXG4gICAgICAgICAgICA8L2l1cy1kcm9wZG93bi1vcHRpb24taXRlbT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxyXG4gICAgICAgIDxwPnt7IGJvZHkgfX08L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBAaWYgKHByb2Nlc3MpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImJ0blwiPlxyXG4gICAgICAgIDxpdXMtYnV0dG9uLXN0YW5kYXJkLXNlY29uZGFyeSAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrQWNjZXB0KClcIlxyXG4gICAgICAgICAgPkFjZXB0YXI8L2l1cy1idXR0b24tc3RhbmRhcmQtc2Vjb25kYXJ5XHJcbiAgICAgICAgPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvbm90aWZpY2F0aW9uLWNhcmQvbm90aWZpY2F0aW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvbm90aWZpY2F0aW9uLWNhcmQvbm90aWZpY2F0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDcEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFTbkUsTUFBTSxPQUFPLHlCQUF5QjtJQXNCcEMsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWIzQixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsV0FBTSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hELGVBQVUsR0FB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LEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBUVAsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvblN0YW5kYXJkU2Vjb25kYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4uL2J1dHRvbi1zdGFuZGFyZC1zZWNvbmRhcnkvYnV0dG9uLXN0YW5kYXJkLXNlY29uZGFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25PcHRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Ryb3Bkb3duLW9wdGlvbi1pdGVtXCI7XHJcbmltcG9ydCB7IFNpbXBsZURpdmlkZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vc2ltcGxlLWRpdmlkZXJcIjtcclxuaW1wb3J0IHsgSWNvblNtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tc21cIjtcclxuaW1wb3J0IHsgQnV0dG9uQ2lyY2xlVGVydGlhcnlDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeVwiO1xyXG5pbXBvcnQgeyBQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvcG9wb3Zlci5kaXJlY3RpdmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXVzLW5vdGlmaWNhdGlvbi1jYXJkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFsgQnV0dG9uU3RhbmRhcmRTZWNvbmRhcnlDb21wb25lbnQsIERyb3Bkb3duT3B0aW9uSXRlbUNvbXBvbmVudCwgU2ltcGxlRGl2aWRlckNvbXBvbmVudCwgSWNvblNtQ29tcG9uZW50LCBCdXR0b25DaXJjbGVUZXJ0aWFyeUNvbXBvbmVudCwgUG9wb3ZlckRpcmVjdGl2ZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbm90aWZpY2F0aW9uLWNhcmQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25DYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBkYXRlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGJvZHk/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2ltcGxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhY3Rpdml0eT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY29uZmlybWFibGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZlY2hhQWN0aXZpZGFkPzogRGF0ZTtcclxuICBASW5wdXQoKSBtb3N0cmFyUG9zcG9uZXI/OiBib29sZWFuOyAgIFxyXG4gIEBJbnB1dCgpIG1vc3RyYXJFZGl0YXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGVzTmF2ZWdhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbW9zdHJhckF5dWRhOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkFjY2VwdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkRvbmU6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Qb3N0cG9uZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uRWRpdEFjdGl2aXR5OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQ2xpY2tBbGVydDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBoYW5kbGVQb3N0cG9uZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcmVzZXRzSGFiaWxpdGFkb3M6IG51bWJlcltdID0gWzE1LCAzMCwgNjAsIDE0NDAsIDEwMDgwXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuaGFuZGxlUG9zdHBvbmUgJiYgIXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgdGhpcy5oYW5kbGVQb3N0cG9uZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRNaW51dGVzKG1pbnM6IG51bWJlcik6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkgKyBtaW5zICogNjAwMDApO1xyXG4gIH1cclxuXHJcbiAgcHVlZGVQb3Nwb25lcihtaW5zOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm1vc3RyYXJQb3Nwb25lciA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTtcclxuICAgIGlmICghdGhpcy5mZWNoYUFjdGl2aWRhZCkgcmV0dXJuIHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRNaW51dGVzKG1pbnMpIDwgbmV3IERhdGUodGhpcy5mZWNoYUFjdGl2aWRhZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMucHJlc2V0c0hhYmlsaXRhZG9zID0gWzE1LCAzMCwgNjAsIDE0NDAsIDEwMDgwXS5maWx0ZXIobSA9PiB0aGlzLnB1ZWRlUG9zcG9uZXIobSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhheUFsZ3VuUHJlc2V0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJlc2V0c0hhYmlsaXRhZG9zLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICBvbkNhcmRDbGljaygpIHtcclxuICAgIGlmICh0aGlzLmVzTmF2ZWdhYmxlKSB0aGlzLm9uQ2xpY2tBbGVydC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25DbGlja0FjY2VwdCgpIHtcclxuICAgIHRoaXMub25BY2NlcHQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0RvbmUoKSB7XHJcbiAgICB0aGlzLm9uRG9uZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrUG9zdHBvbmUoKSB7XHJcbiAgICB0aGlzLmhhbmRsZVBvc3Rwb25lID0gIXRoaXMuaGFuZGxlUG9zdHBvbmU7XHJcbiAgfVxyXG5cclxuICBzZWxlY2Npb25hclBvc3BvbmVyKG1pbnV0b3M6IG51bWJlcikge1xyXG4gICAgdGhpcy5oYW5kbGVQb3N0cG9uZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5vblBvc3Rwb25lLmVtaXQobWludXRvcyk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrRWRpdEFjdGl2aXR5KCkge1xyXG4gICAgdGhpcy5oYW5kbGVQb3N0cG9uZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5vbkVkaXRBY3Rpdml0eS5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJnZW5lcmFsLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhdGFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgPGl1cy1pY29uLXNtIGljb25OYW1lPVwiaWNvbi1ub3RpZmljYXRpb25zXCIgY2xhc3M9XCJjb2xvci1wcnlcIj48L2l1cy1pY29uLXNtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS10aXRsZSBjb2xvci1wcnlcIiAoY2xpY2spPVwib25DYXJkQ2xpY2soKVwiIFtzdHlsZS5jdXJzb3JdPVwiZXNOYXZlZ2FibGUgPyAncG9pbnRlcicgOiAnZGVmYXVsdCdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPlxuICAgICAgICAgICAgPHA+e3sgZGF0ZSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICAgIDxwPnt7IHRpdGxlIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmICghY29uZmlybWFibGUpIHtcbiAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5XG4gICAgICAgICAgaWNvbk5hbWU9XCJpY29uLWRvbmUtb3V0bGluZVwiXG4gICAgICAgICAgaXVzUG9wb3ZlckNvbnRlbnQ9XCJEZXNjYXJ0YXJcIlxuICAgICAgICAgIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tEb25lKClcIlxuICAgICAgICA+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cbiAgICAgICAgfSBAaWYgKChtb3N0cmFyUG9zcG9uZXIgPz8gYWN0aXZpdHkpICYmIGhheUFsZ3VuUHJlc2V0KSB7XG4gICAgICAgIDxpdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeVxuICAgICAgICAgIGljb25OYW1lPVwiaWNvbi1oaXN0b3J5LTJcIlxuICAgICAgICAgIGl1c1BvcG92ZXJDb250ZW50PVwiUG9zcG9uZXJcIlxuICAgICAgICAgIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tQb3N0cG9uZSgpXCJcbiAgICAgICAgPjwvaXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnk+XG4gICAgICAgIH0gQGlmIChjb25maXJtYWJsZSAmJiBtb3N0cmFyQXl1ZGEpIHtcbiAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5XG4gICAgICAgICAgaWNvbk5hbWU9XCJpY29uLWhlbHAtY2VudGVyXCJcbiAgICAgICAgICBpdXNQb3BvdmVyQ29udGVudD1cIkF5dWRhXCJcbiAgICAgICAgPjwvaXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnk+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChoYXlBbGd1blByZXNldCB8fCBtb3N0cmFyRWRpdGFyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2VuZXJhbC1jb250YWluZXItb3B0aW9uc1wiIFtjbGFzcy5vcGVuXT1cImhhbmRsZVBvc3Rwb25lXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItb3B0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25zXCI+XG4gICAgICAgICAgICBAaWYgKHByZXNldHNIYWJpbGl0YWRvcy5pbmNsdWRlcygxNSkpIHtcbiAgICAgICAgICAgIDxpdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0gKG9wdGlvbkNsaWNrKT1cInNlbGVjY2lvbmFyUG9zcG9uZXIoMTUpXCI+XG4gICAgICAgICAgICAgIFBvc3BvbmVyIDE1IG1pbnV0b3NcbiAgICAgICAgICAgIDwvaXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChwcmVzZXRzSGFiaWxpdGFkb3MuaW5jbHVkZXMoMzApKSB7XG4gICAgICAgICAgICA8aXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtIChvcHRpb25DbGljayk9XCJzZWxlY2Npb25hclBvc3BvbmVyKDMwKVwiPlxuICAgICAgICAgICAgICBQb3Nwb25lciAzMCBtaW51dG9zXG4gICAgICAgICAgICA8L2l1cy1kcm9wZG93bi1vcHRpb24taXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAocHJlc2V0c0hhYmlsaXRhZG9zLmluY2x1ZGVzKDYwKSkge1xuICAgICAgICAgICAgPGl1cy1kcm9wZG93bi1vcHRpb24taXRlbSAob3B0aW9uQ2xpY2spPVwic2VsZWNjaW9uYXJQb3Nwb25lcig2MClcIj5cbiAgICAgICAgICAgICAgUG9zcG9uZXIgMSBob3JhXG4gICAgICAgICAgICA8L2l1cy1kcm9wZG93bi1vcHRpb24taXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAocHJlc2V0c0hhYmlsaXRhZG9zLmluY2x1ZGVzKDE0NDApKSB7XG4gICAgICAgICAgICA8aXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtIChvcHRpb25DbGljayk9XCJzZWxlY2Npb25hclBvc3BvbmVyKDE0NDApXCI+XG4gICAgICAgICAgICAgIFBvc3BvbmVyIDEgZMOtYVxuICAgICAgICAgICAgPC9pdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHByZXNldHNIYWJpbGl0YWRvcy5pbmNsdWRlcygxMDA4MCkpIHtcbiAgICAgICAgICAgIDxpdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0gKG9wdGlvbkNsaWNrKT1cInNlbGVjY2lvbmFyUG9zcG9uZXIoMTAwODApXCI+XG4gICAgICAgICAgICAgIFBvc3BvbmVyIDEgc2VtYW5hXG4gICAgICAgICAgICA8L2l1cy1kcm9wZG93bi1vcHRpb24taXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAobW9zdHJhckVkaXRhcikge1xuICAgICAgICAgICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cbiAgICAgICAgICAgIDxpdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0gKG9wdGlvbkNsaWNrKT1cIm9uQ2xpY2tFZGl0QWN0aXZpdHkoKVwiPlxuICAgICAgICAgICAgICBFZGl0YXIgYWN0aXZpZGFkXG4gICAgICAgICAgICA8L2l1cy1kcm9wZG93bi1vcHRpb24taXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCIgKGNsaWNrKT1cIm9uQ2FyZENsaWNrKClcIiBbc3R5bGUuY3Vyc29yXT1cImVzTmF2ZWdhYmxlID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnXCI+XG4gICAgICAgIDxwPnt7IGJvZHkgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoY29uZmlybWFibGUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJidG5cIj5cbiAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtc2Vjb25kYXJ5IChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tBY2NlcHQoKVwiXG4gICAgICAgICAgPkFjZXB0YXI8L2l1cy1idXR0b24tc3RhbmRhcmQtc2Vjb25kYXJ5XG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19