@sapphire-ion/framework 1.2.36 → 1.2.41

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 (91) hide show
  1. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +3 -3
  2. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +3 -3
  3. package/esm2022/lib/components/carousel/carousel.component.mjs +3 -3
  4. package/esm2022/lib/components/carousel/carousel.module.mjs +4 -4
  5. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +3 -3
  6. package/esm2022/lib/components/content-block/content-block.component.mjs +3 -3
  7. package/esm2022/lib/components/default/default-list/abstract-list.mjs +3 -3
  8. package/esm2022/lib/components/default/default-list/default-list.component.mjs +3 -3
  9. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +3 -3
  10. package/esm2022/lib/components/default/default-list/list.mjs +3 -3
  11. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +3 -3
  12. package/esm2022/lib/components/default/default-table/default-table.component.mjs +6 -6
  13. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +27 -11
  14. package/esm2022/lib/components/default/default-view/abstract-view.mjs +3 -3
  15. package/esm2022/lib/components/default/default-view/default-view.component.mjs +3 -3
  16. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +3 -3
  17. package/esm2022/lib/components/default/default-view/view.mjs +3 -3
  18. package/esm2022/lib/components/default/default.module.mjs +4 -4
  19. package/esm2022/lib/components/default-page/default.page.mjs +3 -3
  20. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +3 -3
  21. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +4 -4
  22. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +3 -3
  23. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +3 -3
  24. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +3 -3
  25. package/esm2022/lib/components/drawer/drawer.component.mjs +3 -3
  26. package/esm2022/lib/components/filter/filter.component.mjs +26 -10
  27. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +3 -3
  28. package/esm2022/lib/components/image/image.component.mjs +3 -3
  29. package/esm2022/lib/components/info-popover/info-popover.component.mjs +3 -3
  30. package/esm2022/lib/components/inputs/custom-input.mjs +3 -3
  31. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +3 -3
  32. package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +7 -5
  33. package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +4 -0
  34. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +3 -3
  35. package/esm2022/lib/components/inputs/input-configuration.mjs +1 -1
  36. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +3 -3
  37. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +17 -6
  38. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +3 -3
  39. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +3 -3
  40. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +3 -3
  41. package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +3 -3
  42. package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +3 -3
  43. package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +3 -3
  44. package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +3 -3
  45. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +3 -3
  46. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +3 -3
  47. package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +3 -3
  48. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +3 -3
  49. package/esm2022/lib/components/inputs/inputs.module.mjs +4 -4
  50. package/esm2022/lib/components/loading/loading.component.mjs +3 -3
  51. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +3 -3
  52. package/esm2022/lib/components/login/login.component.mjs +3 -3
  53. package/esm2022/lib/components/main-content/main-content.component.mjs +3 -3
  54. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +3 -3
  55. package/esm2022/lib/components/popover/sion-popover.module.mjs +4 -4
  56. package/esm2022/lib/components/sion-card/sion-card.component.mjs +3 -3
  57. package/esm2022/lib/components/stepper/step/step.component.mjs +3 -3
  58. package/esm2022/lib/components/stepper/stepper.component.mjs +3 -3
  59. package/esm2022/lib/components/stepper/stepper.module.mjs +4 -4
  60. package/esm2022/lib/components/tabs/tab/tab.component.mjs +3 -3
  61. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +3 -3
  62. package/esm2022/lib/components/tabs/tabs.module.mjs +4 -4
  63. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +3 -3
  64. package/esm2022/lib/components/tooltip/tooltip.component.mjs +3 -3
  65. package/esm2022/lib/core.module.mjs +4 -4
  66. package/esm2022/lib/directives/ng-var.directive.mjs +3 -3
  67. package/esm2022/lib/guards/auth.guard.mjs +3 -3
  68. package/esm2022/lib/guards/error.interceptor.mjs +3 -3
  69. package/esm2022/lib/guards/token.interceptor.mjs +3 -3
  70. package/esm2022/lib/index.mjs +2 -1
  71. package/esm2022/lib/pipes/secure.pipe.mjs +3 -3
  72. package/esm2022/lib/services/auth.service.mjs +3 -3
  73. package/esm2022/lib/services/environment.service.mjs +3 -3
  74. package/esm2022/lib/services/generic.service.mjs +3 -3
  75. package/esm2022/lib/services/modal-focus-trap.service.mjs +3 -3
  76. package/esm2022/lib/services/popover-focus-trap.service.mjs +3 -3
  77. package/esm2022/lib/services/route/route.provider.service.mjs +3 -3
  78. package/esm2022/lib/services/usuario.service.mjs +3 -3
  79. package/esm2022/lib/services/utils.service.mjs +3 -3
  80. package/esm2022/lib/services/web/api-url-provider.service.mjs +3 -3
  81. package/esm2022/lib/services/web/http.ativo.service.mjs +3 -3
  82. package/esm2022/lib/services/web/http.service.mjs +3 -3
  83. package/esm2022/lib/services/web/storage.service.mjs +3 -3
  84. package/fesm2022/sapphire-ion-framework.mjs +296 -256
  85. package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
  86. package/lib/components/inputs/input-cep/input-cep.component.d.ts +4 -2
  87. package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +3 -0
  88. package/lib/components/inputs/input-configuration.d.ts +2 -1
  89. package/lib/components/inputs/input-date/input-date.component.d.ts +1 -0
  90. package/lib/index.d.ts +1 -0
  91. package/package.json +1 -1
@@ -71,6 +71,17 @@ export class InputDateComponent extends CustomInput {
71
71
  });
72
72
  }
73
73
  }
74
+ ClearValue(event) {
75
+ if (event) {
76
+ event.stopPropagation(); // impede de abrir o calendário ao clicar no clear
77
+ }
78
+ this.value.set(null);
79
+ this.momentValue = undefined;
80
+ this.readableValue = '';
81
+ this.hour = '00';
82
+ this.minute = '00';
83
+ this.propagateChange(null);
84
+ }
74
85
  SetValueFromReadable(value) {
75
86
  const m = moment(value, this.momentFormat, true).format(InputDateComponent.FormatISO);
76
87
  this.SetValue(m);
@@ -155,18 +166,18 @@ export class InputDateComponent extends CustomInput {
155
166
  this.SetValueFromMoment(this.momentValue);
156
167
  }
157
168
  }
158
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputDateComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize($event)" } }, providers: [
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputDateComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize($event)" } }, providers: [
160
171
  ...InputProviderFactory.GetProviders(InputDateComponent),
161
172
  { provide: CustomInput, useExisting: forwardRef(() => InputDateComponent) },
162
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }, { propertyName: "datetime", first: true, predicate: IonDatetime, descendants: true }, { propertyName: "popover", first: true, predicate: SIonPopoverComponent, descendants: true }, { propertyName: "modal", first: true, predicate: IonModal, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"readableValue\" \r\n (ngModelChange)=\"SetValueFromReadable($event);\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == DatePresentation.Time ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n@if (interface() == DateInterfaces.Popover) {\r\n <sion-popover\r\n #popover \r\n [anchor]=\"inputContainer\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </sion-popover>\r\n}\r\n@else {\r\n <ion-modal \r\n #modal\r\n [class.time]=\"presentation == DatePresentation.Time\" \r\n [class.date]=\"presentation == DatePresentation.Date\" \r\n [class.datetime]=\"presentation == DatePresentation.DateTime\"\r\n >\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n}\r\n\r\n\r\n<ng-template #datetimeTemplate>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n \r\n @if ([DatePresentation.DateTime, DatePresentation.Date].includes(presentation)) {\r\n <mat-calendar #calendar class=\"w-72 text-dark\" \r\n [(selected)]=\"momentValue\" \r\n (selectedChange)=\"SetValueFromMoment($event)\"\r\n ></mat-calendar>\r\n }\r\n @if ([DatePresentation.DateTime, DatePresentation.Time].includes(presentation)) {\r\n <div class=\"flex h-full mask-y/30 items-center justify-center\">\r\n <ion-picker>\r\n <ion-picker-column (ionChange)=\"OnChangeHour($event.target.value.toString())\" [value]=\"hour\">\r\n @for (item of lstHours; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n <ion-picker-column (ionChange)=\"OnChangeMinute($event.target.value.toString())\" [value]=\"minute\">\r\n @for (item of lstMinutes; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n </ion-picker>\r\n </div>\r\n }\r\n\r\n </div>\r\n</ng-template>\r\n", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-picker{height:100%;--fade-background-rgb: transparent}ion-modal{--width: fit-content;--height: fit-content}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonPicker, selector: "ion-picker", inputs: ["mode"] }, { kind: "component", type: i1.IonPickerColumn, selector: "ion-picker-column", inputs: ["color", "disabled", "mode", "value"] }, { kind: "component", type: i1.IonPickerColumnOption, selector: "ion-picker-column-option", inputs: ["color", "disabled", "value"] }, { kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i5.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }, { kind: "component", type: i6.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }] }); }
173
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }, { propertyName: "datetime", first: true, predicate: IonDatetime, descendants: true }, { propertyName: "popover", first: true, predicate: SIonPopoverComponent, descendants: true }, { propertyName: "modal", first: true, predicate: IonModal, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"readableValue\" \r\n (ngModelChange)=\"SetValueFromReadable($event);\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <ion-button *ngIf=\"configuration().clearable && readableValue\" tabindex=\"-1\" class=\"absolute right-8 bottom-1\" \r\n (click)=\"ClearValue($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\"\r\n >\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-2 bottom-1\" (click)=\"Present($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == DatePresentation.Time ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n@if (interface() == DateInterfaces.Popover) {\r\n <sion-popover\r\n #popover \r\n [anchor]=\"inputContainer\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </sion-popover>\r\n}\r\n@else {\r\n <ion-modal \r\n #modal\r\n [class.time]=\"presentation == DatePresentation.Time\" \r\n [class.date]=\"presentation == DatePresentation.Date\" \r\n [class.datetime]=\"presentation == DatePresentation.DateTime\"\r\n >\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n}\r\n\r\n\r\n<ng-template #datetimeTemplate>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n \r\n @if ([DatePresentation.DateTime, DatePresentation.Date].includes(presentation)) {\r\n <mat-calendar #calendar class=\"w-72 text-dark\" \r\n [(selected)]=\"momentValue\" \r\n (selectedChange)=\"SetValueFromMoment($event)\"\r\n ></mat-calendar>\r\n }\r\n @if ([DatePresentation.DateTime, DatePresentation.Time].includes(presentation)) {\r\n <div class=\"flex h-full mask-y/30 items-center justify-center\">\r\n <ion-picker>\r\n <ion-picker-column (ionChange)=\"OnChangeHour($event.target.value.toString())\" [value]=\"hour\">\r\n @for (item of lstHours; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n <ion-picker-column (ionChange)=\"OnChangeMinute($event.target.value.toString())\" [value]=\"minute\">\r\n @for (item of lstMinutes; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n </ion-picker>\r\n </div>\r\n }\r\n\r\n </div>\r\n</ng-template>\r\n", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-picker{height:100%;--fade-background-rgb: transparent}ion-modal{--width: fit-content;--height: fit-content}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonPicker, selector: "ion-picker", inputs: ["mode"] }, { kind: "component", type: i1.IonPickerColumn, selector: "ion-picker-column", inputs: ["color", "disabled", "mode", "value"] }, { kind: "component", type: i1.IonPickerColumnOption, selector: "ion-picker-column-option", inputs: ["color", "disabled", "value"] }, { kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i5.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }, { kind: "component", type: i6.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }] }); }
163
174
  }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputDateComponent, decorators: [{
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputDateComponent, decorators: [{
165
176
  type: Component,
166
177
  args: [{ selector: 'input-date, input-date-time, input-time', providers: [
167
178
  ...InputProviderFactory.GetProviders(InputDateComponent),
168
179
  { provide: CustomInput, useExisting: forwardRef(() => InputDateComponent) },
169
- ], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"readableValue\" \r\n (ngModelChange)=\"SetValueFromReadable($event);\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"Present($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == DatePresentation.Time ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n@if (interface() == DateInterfaces.Popover) {\r\n <sion-popover\r\n #popover \r\n [anchor]=\"inputContainer\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </sion-popover>\r\n}\r\n@else {\r\n <ion-modal \r\n #modal\r\n [class.time]=\"presentation == DatePresentation.Time\" \r\n [class.date]=\"presentation == DatePresentation.Date\" \r\n [class.datetime]=\"presentation == DatePresentation.DateTime\"\r\n >\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n}\r\n\r\n\r\n<ng-template #datetimeTemplate>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n \r\n @if ([DatePresentation.DateTime, DatePresentation.Date].includes(presentation)) {\r\n <mat-calendar #calendar class=\"w-72 text-dark\" \r\n [(selected)]=\"momentValue\" \r\n (selectedChange)=\"SetValueFromMoment($event)\"\r\n ></mat-calendar>\r\n }\r\n @if ([DatePresentation.DateTime, DatePresentation.Time].includes(presentation)) {\r\n <div class=\"flex h-full mask-y/30 items-center justify-center\">\r\n <ion-picker>\r\n <ion-picker-column (ionChange)=\"OnChangeHour($event.target.value.toString())\" [value]=\"hour\">\r\n @for (item of lstHours; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n <ion-picker-column (ionChange)=\"OnChangeMinute($event.target.value.toString())\" [value]=\"minute\">\r\n @for (item of lstMinutes; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n </ion-picker>\r\n </div>\r\n }\r\n\r\n </div>\r\n</ng-template>\r\n", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-picker{height:100%;--fade-background-rgb: transparent}ion-modal{--width: fit-content;--height: fit-content}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"] }]
180
+ ], template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <input #input\r\n [ngModel]=\"readableValue\" \r\n (ngModelChange)=\"SetValueFromReadable($event);\"\r\n [maskito]=\"options\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <ion-button *ngIf=\"configuration().clearable && readableValue\" tabindex=\"-1\" class=\"absolute right-8 bottom-1\" \r\n (click)=\"ClearValue($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\"\r\n >\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n \r\n <ion-button tabindex=\"-1\" class=\"absolute right-2 bottom-1\" (click)=\"Present($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon [name]=\"presentation == DatePresentation.Time ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>\r\n\r\n@if (interface() == DateInterfaces.Popover) {\r\n <sion-popover\r\n #popover \r\n [anchor]=\"inputContainer\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </sion-popover>\r\n}\r\n@else {\r\n <ion-modal \r\n #modal\r\n [class.time]=\"presentation == DatePresentation.Time\" \r\n [class.date]=\"presentation == DatePresentation.Date\" \r\n [class.datetime]=\"presentation == DatePresentation.DateTime\"\r\n >\r\n <ng-template>\r\n <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n}\r\n\r\n\r\n<ng-template #datetimeTemplate>\r\n <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n \r\n @if ([DatePresentation.DateTime, DatePresentation.Date].includes(presentation)) {\r\n <mat-calendar #calendar class=\"w-72 text-dark\" \r\n [(selected)]=\"momentValue\" \r\n (selectedChange)=\"SetValueFromMoment($event)\"\r\n ></mat-calendar>\r\n }\r\n @if ([DatePresentation.DateTime, DatePresentation.Time].includes(presentation)) {\r\n <div class=\"flex h-full mask-y/30 items-center justify-center\">\r\n <ion-picker>\r\n <ion-picker-column (ionChange)=\"OnChangeHour($event.target.value.toString())\" [value]=\"hour\">\r\n @for (item of lstHours; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n <ion-picker-column (ionChange)=\"OnChangeMinute($event.target.value.toString())\" [value]=\"minute\">\r\n @for (item of lstMinutes; track $index) {\r\n <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n }\r\n </ion-picker-column>\r\n </ion-picker>\r\n </div>\r\n }\r\n\r\n </div>\r\n</ng-template>\r\n", styles: [".input-container{position:relative!important}.input-container input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}ion-picker{height:100%;--fade-background-rgb: transparent}ion-modal{--width: fit-content;--height: fit-content}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"] }]
170
181
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { input: [{
171
182
  type: ViewChild,
172
183
  args: ['input']
@@ -202,4 +213,4 @@ var DateInterfaces;
202
213
  })(DateInterfaces || (DateInterfaces = {}));
203
214
  const lstHours = Array.from(Array(24).keys()).map(i => i.toString().padStart(2, '0'));
204
215
  const lstMinutes = Array.from(Array(60).keys()).map(i => i.toString().padStart(2, '0'));
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQStCLE1BQU0sRUFBRSxTQUFTLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ2pLLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNELE9BQU8sTUFBa0IsTUFBTSxRQUFRLENBQUM7QUFFeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBaUIsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUFZMUUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQW1CO2FBQ2xELGNBQVMsR0FBRyxxQkFBcUIsQUFBeEIsQ0FBeUI7SUFLaEMsUUFBUSxDQUFD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WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIGlucHV0LCBJbnB1dFNpZ25hbCwgT25Jbml0LCBTaWduYWwsIHNpZ25hbCwgVmlld0NoaWxkLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXNraXRvRGF0ZVRpbWVPcHRpb25zR2VuZXJhdG9yIH0gZnJvbSAnQG1hc2tpdG8va2l0JztcclxuaW1wb3J0IHsgbWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yIH0gZnJvbSAnQG1hc2tpdG8va2l0JztcclxuaW1wb3J0IHsgbWFza2l0b1RpbWVPcHRpb25zR2VuZXJhdG9yIH0gZnJvbSAnQG1hc2tpdG8va2l0JztcclxuaW1wb3J0IHsgTWFza2l0b09wdGlvbnMgfSBmcm9tICdAbWFza2l0by9jb3JlJztcclxuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xyXG5cclxuaW1wb3J0IHsgSW5wdXREYXRlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vaW5wdXQtZGF0ZS5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSW5wdXRQcm92aWRlckZhY3RvcnkgfSBmcm9tICcuLi9pbnB1dC1wcm92aWRlci1mYWN0b3J5JztcclxuaW1wb3J0IHsgQ3VzdG9tSW5wdXQgfSBmcm9tICcuLi9jdXN0b20taW5wdXQnO1xyXG5pbXBvcnQgeyBJb25EYXRldGltZSwgSW9uTW9kYWwsIElvblBvcG92ZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFNJb25Qb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcG9wb3Zlci9zaW9uLXBvcG92ZXIvc2lvbi1wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdENhbGVuZGFyLCBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbnB1dC1kYXRlLCBpbnB1dC1kYXRlLXRpbWUsIGlucHV0LXRpbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLmNvbXBvbmVudC5zY3NzJywgJy4uL2lucHV0cy5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICAuLi5JbnB1dFByb3ZpZGVyRmFjdG9yeS5HZXRQcm92aWRlcnMoSW5wdXREYXRlQ29tcG9uZW50KSxcclxuICAgIHsgcHJvdmlkZTogQ3VzdG9tSW5wdXQsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0RGF0ZUNvbXBvbmVudCkgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXREYXRlQ29tcG9uZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXQ8c3RyaW5nPiB7XHJcbiAgc3RhdGljIEZvcm1hdElTTyA9ICdZWVlZLU1NLUREVEhIOm1tOnNzJztcclxuICBcclxuICBjb25maWd1cmF0aW9uOiBJbnB1dFNpZ25hbDxJbnB1dERhdGVDb25maWd1cmF0aW9uPiA9IGlucHV0PElucHV0RGF0ZUNvbmZpZ3VyYXRpb24+KG5ldyBJbnB1dERhdGVDb25maWd1cmF0aW9uKCkpO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRDb250YWluZXInKSBpbnB1dENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgb3ZlcnJpZGUgc2V0Rm9jdXMoZXZlbnQ6IE1vdXNlRXZlbnQgfCBudWxsKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmlucHV0ICYmIChldmVudCA9PSBudWxsIHx8IGV2ZW50LnRhcmdldCA9PSB0aGlzLmlucHV0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpKSB7IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpOyB9ICAgICAgXHJcbiAgfVxyXG4gIFxyXG4gIG9wdGlvbnM6IE1hc2tpdG9PcHRpb25zO1xyXG4gIC8vIEZvcm1hdG8gZG8gaW5wdXQgaHRtbCAoc3RyaW5nKVxyXG4gIG1vbWVudEZvcm1hdDogJ0REL01NL1lZWVkgSEg6bW0nIHwgJ0REL01NL1lZWVknIHwgJ0hIOm1tJyA9ICdERC9NTS9ZWVlZIEhIOm1tJztcclxuXHJcblxyXG4gIC8vSGFuZGxlIGlucHV0IGludGVyZmFjZVxyXG4gIHdpbmRvd1NpemU6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWw8bnVtYmVyPih3aW5kb3cuaW5uZXJXaWR0aCk7XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoZXZlbnQ6IGFueSkgeyB0aGlzLndpbmRvd1NpemUuc2V0KHdpbmRvdy5pbm5lcldpZHRoKTsgfVxyXG4gIGludGVyZmFjZTogU2lnbmFsPERhdGVJbnRlcmZhY2VzPiA9IGNvbXB1dGVkPERhdGVJbnRlcmZhY2VzPigoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy53aW5kb3dTaXplKCkgPiB3aW5kb3cuaW5uZXJIZWlnaHQgPyBEYXRlSW50ZXJmYWNlcy5Qb3BvdmVyIDogRGF0ZUludGVyZmFjZXMuTW9kYWw7XHJcbiAgfSk7XHJcbiAgRGF0ZUludGVyZmFjZXMgPSBEYXRlSW50ZXJmYWNlcztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgb3ZlcnJpZGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkgeyBcclxuICAgIHN1cGVyKCk7IFxyXG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSBhcyBzdHJpbmcpLnJlcGxhY2UoJ2lucHV0LScsICcnKTtcclxuICAgIHRoaXMucHJlc2VudGF0aW9uID0ge1xyXG4gICAgICAnZGF0ZS10aW1lJzogRGF0ZVByZXNlbnRhdGlvbi5EYXRlVGltZSxcclxuICAgICAgJ2RhdGUnOiBEYXRlUHJlc2VudGF0aW9uLkRhdGUsXHJcbiAgICAgICd0aW1lJzogRGF0ZVByZXNlbnRhdGlvbi5UaW1lLFxyXG4gICAgfVtwcmVzZW50YXRpb25dID8/IERhdGVQcmVzZW50YXRpb24uRGF0ZVRpbWU7XHJcblxyXG4gICAgaWYodGhpcy5wcmVzZW50YXRpb24gPT0gRGF0ZVByZXNlbnRhdGlvbi5EYXRlVGltZSl7IFxyXG4gICAgICB0aGlzLm1vbWVudEZvcm1hdCA9ICdERC9NTS9ZWVlZIEhIOm1tJztcclxuICAgICAgdGhpcy5vcHRpb25zID0gbWFza2l0b0RhdGVUaW1lT3B0aW9uc0dlbmVyYXRvcih7XHJcbiAgICAgICAgZGF0ZU1vZGU6ICdkZC9tbS95eXl5JyxcclxuICAgICAgICB0aW1lTW9kZTogJ0hIOk1NJyxcclxuICAgICAgICBkYXRlU2VwYXJhdG9yOiAnLycsXHJcbiAgICAgICAgZGF0ZVRpbWVTZXBhcmF0b3I6ICcgJyxcclxuICAgICAgICB0aW1lU3RlcDogMSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2VcclxuICAgIGlmKHRoaXMucHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uRGF0ZSkge1xyXG4gICAgICB0aGlzLm1vbWVudEZvcm1hdCA9ICdERC9NTS9ZWVlZJztcclxuICAgICAgdGhpcy5vcHRpb25zID0gbWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yKHsgbW9kZTogJ2RkL21tL3l5eXknLCBzZXBhcmF0b3I6ICcvJ30pO1xyXG4gICAgfSBlbHNlXHJcbiAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSBEYXRlUHJlc2VudGF0aW9uLlRpbWUpIHtcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnSEg6bW0nOyBcclxuICAgICAgdGhpcy5vcHRpb25zID0gbWFza2l0b1RpbWVPcHRpb25zR2VuZXJhdG9yKHtcclxuICAgICAgICBtb2RlOiAnSEg6TU0nLFxyXG4gICAgICAgIHN0ZXA6IDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgcHJlc2VudGF0aW9uOiBEYXRlUHJlc2VudGF0aW9uID0gRGF0ZVByZXNlbnRhdGlvbi5EYXRlVGltZTtcclxuICBcclxuICByZWFkYWJsZVZhbHVlOiBzdHJpbmcgPSAnJztcclxuICBTZXRWYWx1ZUZyb21SZWFkYWJsZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBtID0gbW9tZW50KHZhbHVlLCB0aGlzLm1vbWVudEZvcm1hdCwgdHJ1ZSkuZm9ybWF0KElucHV0RGF0ZUNvbXBvbmVudC5Gb3JtYXRJU08pOyAgXHJcbiAgICB0aGlzLlNldFZhbHVlKG0pO1xyXG4gIH1cclxuICBTZXRWYWx1ZUZyb21Nb21lbnQodmFsdWU6IG1vbWVudC5Nb21lbnQgfCBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLlNldFZhbHVlKHZhbHVlLmZvcm1hdChJbnB1dERhdGVDb21wb25lbnQuRm9ybWF0SVNPKSk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIGNhbGVuZGFyOiBNYXRDYWxlbmRhcjxtb21lbnQuTW9tZW50PjtcclxuICAvKipcclxuICAgKiBAcGFyYW0gb2JqIFN0cmluZyBpbiBJU08gZm9ybWF0IChZWVlZLU1NLUREVGhoOm1tOnNzKVxyXG4gICAqL1xyXG4gIG92ZXJyaWRlIFNldFZhbHVlKG9iajogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlLnNldChvYmopO1xyXG5cclxuICAgIGlmKHRoaXMudmFsdWUoKSl7XHJcbiAgICAgIHRoaXMubW9tZW50VmFsdWUgICA9IG1vbWVudCh0aGlzLnZhbHVlKCksIElucHV0RGF0ZUNvbXBvbmVudC5Gb3JtYXRJU08sIHRydWUpO1xyXG4gICAgICB0aGlzLnJlYWRhYmxlVmFsdWUgPSB0aGlzLm1vbWVudFZhbHVlLmZvcm1hdCh0aGlzLm1vbWVudEZvcm1hdC50b1N0cmluZygpKTtcclxuXHJcbiAgICAgIGlmKHRoaXMuY2FsZW5kYXIpe1xyXG4gICAgICAgIHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMubW9tZW50VmFsdWU7IC8vIHNldCB0aGUgYWN0aXZlIGRhdGUgdG8gdGhlIHNlbGVjdGVkIGRhdGVcclxuICAgICAgICB0aGlzLmNhbGVuZGFyLnVwZGF0ZVRvZGF5c0RhdGUoKTsgLy8gdXBkYXRlIGNhbGVuZGFyIHN0YXRlXHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5tb21lbnRWYWx1ZSl7XHJcbiAgICAgICAgdGhpcy5ob3VyICAgPSB0aGlzLm1vbWVudFZhbHVlLmdldCgnaG91cicpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpO1xyXG4gICAgICAgIHRoaXMubWludXRlID0gdGhpcy5tb21lbnRWYWx1ZS5nZXQoJ21pbnV0ZScpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMucnVuVmFsaWRhdGlvbigpO1xyXG4gICAgaWYodGhpcy5tb21lbnRWYWx1ZS5pc1ZhbGlkKCkpe1xyXG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShvYmopO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vbWVudFZhbHVlPzogbW9tZW50Lk1vbWVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChJb25EYXRldGltZSkgZGF0ZXRpbWU6IElvbkRhdGV0aW1lO1xyXG4gIFxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqPzogc3RyaW5nKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy52YWx1ZS5zZXQob2JqKTtcclxuXHJcbiAgICBpZih0aGlzLnZhbHVlKCkpe1xyXG4gICAgICB0aGlzLm1vbWVudFZhbHVlICAgPSBtb21lbnQodGhpcy52YWx1ZSgpLCBJbnB1dERhdGVDb21wb25lbnQuRm9ybWF0SVNPLCB0cnVlKTtcclxuICAgICAgdGhpcy5yZWFkYWJsZVZhbHVlID0gdGhpcy5tb21lbnRWYWx1ZS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQudG9TdHJpbmcoKSk7XHJcbiAgICAgIFxyXG4gICAgICBpZih0aGlzLmNhbGVuZGFyKXtcclxuICAgICAgICB0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUgPSB0aGlzLm1vbWVudFZhbHVlOyAvLyBzZXQgdGhlIGFjdGl2ZSBkYXRlIHRvIHRoZSBzZWxlY3RlZCBkYXRlXHJcbiAgICAgICAgdGhpcy5jYWxlbmRhci51cGRhdGVUb2RheXNEYXRlKCk7IC8vIHVwZGF0ZSBjYWxlbmRhciBzdGF0ZVxyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMubW9tZW50VmFsdWUpe1xyXG4gICAgICAgIHRoaXMuaG91ciAgID0gdGhpcy5tb21lbnRWYWx1ZS5nZXQoJ2hvdXInKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsJzAnKTtcclxuICAgICAgICB0aGlzLm1pbnV0ZSA9IHRoaXMubW9tZW50VmFsdWUuZ2V0KCdtaW51dGUnKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsJzAnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5ydW5WYWxpZGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFNJb25Qb3BvdmVyQ29tcG9uZW50KSBwb3BvdmVyOiBTSW9uUG9wb3ZlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKElvbk1vZGFsKSBtb2RhbDogSW9uTW9kYWw7XHJcbiAgYXN5bmMgUHJlc2VudChldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYodGhpcy5pbnRlcmZhY2UoKSA9PSBEYXRlSW50ZXJmYWNlcy5Qb3BvdmVyKXtcclxuICAgICAgcmV0dXJuIHRoaXMucG9wb3Zlci5wcmVzZW50KGV2ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1vZGFsLnByZXNlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIERpc21pc3MoKSB7XHJcbiAgICBpZih0aGlzLnBvcG92ZXIpe1xyXG4gICAgICB0aGlzLnBvcG92ZXIuZGlzbWlzcygpO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5tb2RhbCl7XHJcbiAgICAgIHRoaXMubW9kYWwuZGlzbWlzcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgRGF0ZVByZXNlbnRhdGlvbiA9IERhdGVQcmVzZW50YXRpb247XHJcblxyXG4gIGxzdEhvdXJzID0gbHN0SG91cnM7XHJcbiAgbHN0TWludXRlcyA9IGxzdE1pbnV0ZXM7XHJcblxyXG4gIGhvdXIgIDogc3RyaW5nID0gJzAwJztcclxuICBtaW51dGU6IHN0cmluZyA9ICcwMCc7XHJcblxyXG4gIE9uQ2hhbmdlSG91cihldmVudDogc3RyaW5nKSB7XHJcbiAgICBpZihldmVudCA9PSB0aGlzLmhvdXIpIHsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLmhvdXIgPSBldmVudDtcclxuICAgIGlmKHRoaXMubW9tZW50VmFsdWUpe1xyXG4gICAgICB0aGlzLm1vbWVudFZhbHVlLnNldCgnaG91cicsIE51bWJlcihldmVudCkpO1xyXG4gICAgICB0aGlzLlNldFZhbHVlRnJvbU1vbWVudCh0aGlzLm1vbWVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgT25DaGFuZ2VNaW51dGUoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgaWYoZXZlbnQgPT0gdGhpcy5taW51dGUpIHsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLm1pbnV0ZSA9IGV2ZW50O1xyXG4gICAgaWYodGhpcy5tb21lbnRWYWx1ZSl7XHJcbiAgICAgIHRoaXMubW9tZW50VmFsdWUuc2V0KCdtaW51dGUnLCBOdW1iZXIoZXZlbnQpKTtcclxuICAgICAgdGhpcy5TZXRWYWx1ZUZyb21Nb21lbnQodGhpcy5tb21lbnRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuZW51bSBEYXRlUHJlc2VudGF0aW9uIHtcclxuICBEYXRlVGltZSA9IDEsXHJcbiAgRGF0ZSAgICAgPSAyLFxyXG4gIFRpbWUgICAgID0gM1xyXG59XHJcbmVudW0gRGF0ZUludGVyZmFjZXN7XHJcbiAgUG9wb3ZlciA9IDEsXHJcbiAgTW9kYWwgICA9IDIsXHJcbn1cclxuXHJcbmNvbnN0IGxzdEhvdXJzID0gQXJyYXkuZnJvbShBcnJheSgyNCkua2V5cygpKS5tYXAoaSA9PiBpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpKTtcclxuY29uc3QgbHN0TWludXRlcyA9IEFycmF5LmZyb20oQXJyYXkoNjApLmtleXMoKSkubWFwKGkgPT4gaS50b1N0cmluZygpLnBhZFN0YXJ0KDIsJzAnKSk7IiwiPGRpdiBcclxuICAjaW5wdXRDb250YWluZXJcclxuICBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiIFxyXG4gIChjbGljayk9XCJzZXRGb2N1cygkZXZlbnQpXCJcclxuICBbY2xhc3MucmVxdWlyZWRdPVwicmVxdWlyZWQoKVwiIFxyXG4gIFtjbGFzcy5zdWJtaXR0ZWRdPVwic3VibWl0dGVkKClcIiBcclxuICBbY2xhc3MuaW52YWxpZF09XCJpbnZhbGlkXCIgXHJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgbG9hZGluZygpXCJcclxuICBbY2xhc3MubG9hZGluZ109XCJsb2FkaW5nKClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWxhYmVsXCI+IFxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPlxyXG4gICAgICB7e2xhYmVsKCl9fSBcclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICBcclxuICA8aW5wdXQgI2lucHV0XHJcbiAgICBbbmdNb2RlbF09XCJyZWFkYWJsZVZhbHVlXCIgXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJTZXRWYWx1ZUZyb21SZWFkYWJsZSgkZXZlbnQpO1wiXHJcbiAgICBbbWFza2l0b109XCJvcHRpb25zXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGxvYWRpbmcoKVwiXHJcbiAgICAoYmx1cik9XCJibHVyLmVtaXQoJGV2ZW50KVwiXHJcbiAgLz5cclxuICBcclxuICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIi0xXCIgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0xIGJvdHRvbS0xXCIgKGNsaWNrKT1cIlByZXNlbnQoJGV2ZW50KVwiIGNvbG9yPVwibWVkaXVtXCIgc2l6ZT1cInNtYWxsXCIgZmlsbD1cImNsZWFyXCIgc3R5bGU9XCItLWJvcmRlci1yYWRpdXM6IC41cmVtXCI+XHJcbiAgICA8aW9uLWljb24gW25hbWVdPVwicHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uVGltZSA/ICd0aW1lJyA6ICdjYWxlbmRhcidcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICA8L2lvbi1idXR0b24+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiIFtjbGFzcy5sb2FkaW5nXT1cImxvYWRpbmcoKVwiPlxyXG4gICAgPGlvbi1zcGlubmVyPjwvaW9uLXNwaW5uZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuQGlmIChpbnRlcmZhY2UoKSA9PSBEYXRlSW50ZXJmYWNlcy5Qb3BvdmVyKSB7XHJcbiAgPHNpb24tcG9wb3ZlclxyXG4gICAgI3BvcG92ZXIgXHJcbiAgICBbYW5jaG9yXT1cImlucHV0Q29udGFpbmVyXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZXRpbWVUZW1wbGF0ZTtcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3Npb24tcG9wb3Zlcj5cclxufVxyXG5AZWxzZSB7XHJcbiAgPGlvbi1tb2RhbCBcclxuICAgICNtb2RhbFxyXG4gICAgW2NsYXNzLnRpbWVdPVwicHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uVGltZVwiIFxyXG4gICAgW2NsYXNzLmRhdGVdPVwicHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uRGF0ZVwiIFxyXG4gICAgW2NsYXNzLmRhdGV0aW1lXT1cInByZXNlbnRhdGlvbiA9PSBEYXRlUHJlc2VudGF0aW9uLkRhdGVUaW1lXCJcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRldGltZVRlbXBsYXRlO1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2lvbi1tb2RhbD5cclxufVxyXG5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZXRpbWVUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctWy0taW9uLWNvbG9yLWxpZ2h0XSByb3VuZGVkLXhsXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgXHJcbiAgICBAaWYgKFtEYXRlUHJlc2VudGF0aW9uLkRhdGVUaW1lLCBEYXRlUHJlc2VudGF0aW9uLkRhdGVdLmluY2x1ZGVzKHByZXNlbnRhdGlvbikpIHtcclxuICAgICAgPG1hdC1jYWxlbmRhciAjY2FsZW5kYXIgY2xhc3M9XCJ3LTcyIHRleHQtZGFya1wiIFxyXG4gICAgICAgIFsoc2VsZWN0ZWQpXT1cIm1vbWVudFZhbHVlXCIgXHJcbiAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIlNldFZhbHVlRnJvbU1vbWVudCgkZXZlbnQpXCJcclxuICAgICAgPjwvbWF0LWNhbGVuZGFyPlxyXG4gICAgfVxyXG4gICAgQGlmIChbRGF0ZVByZXNlbnRhdGlvbi5EYXRlVGltZSwgRGF0ZVByZXNlbnRhdGlvbi5UaW1lXS5pbmNsdWRlcyhwcmVzZW50YXRpb24pKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtZnVsbCBtYXNrLXkvMzAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgPGlvbi1waWNrZXI+XHJcbiAgICAgICAgICA8aW9uLXBpY2tlci1jb2x1bW4gKGlvbkNoYW5nZSk9XCJPbkNoYW5nZUhvdXIoJGV2ZW50LnRhcmdldC52YWx1ZS50b1N0cmluZygpKVwiIFt2YWx1ZV09XCJob3VyXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbHN0SG91cnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxpb24tcGlja2VyLWNvbHVtbi1vcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj57e2l0ZW19fTwvaW9uLXBpY2tlci1jb2x1bW4tb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2lvbi1waWNrZXItY29sdW1uPlxyXG4gICAgICAgICAgPGlvbi1waWNrZXItY29sdW1uIChpb25DaGFuZ2UpPVwiT25DaGFuZ2VNaW51dGUoJGV2ZW50LnRhcmdldC52YWx1ZS50b1N0cmluZygpKVwiIFt2YWx1ZV09XCJtaW51dGVcIj5cclxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RNaW51dGVzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8aW9uLXBpY2tlci1jb2x1bW4tb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+e3tpdGVtfX08L2lvbi1waWNrZXItY29sdW1uLW9wdGlvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9pb24tcGlja2VyLWNvbHVtbj5cclxuICAgICAgICA8L2lvbi1waWNrZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQStCLE1BQU0sRUFBRSxTQUFTLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ2pLLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNELE9BQU8sTUFBa0IsTUFBTSxRQUFRLENBQUM7QUFFeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBaUIsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUFZMUUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQW1CO2FBQ2xELGNBQVMsR0FBRyxxQkFBcUIsQUFBeEIsQ0FBeUI7SUFLaEMsUUFBUSxDQUFD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SSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBpbnB1dCwgSW5wdXRTaWduYWwsIE9uSW5pdCwgU2lnbmFsLCBzaWduYWwsIFZpZXdDaGlsZCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFza2l0b0RhdGVUaW1lT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IG1hc2tpdG9UaW1lT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcbmltcG9ydCB7IE1hc2tpdG9PcHRpb25zIH0gZnJvbSAnQG1hc2tpdG8vY29yZSc7XHJcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2lucHV0LWRhdGUuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0UHJvdmlkZXJGYWN0b3J5IH0gZnJvbSAnLi4vaW5wdXQtcHJvdmlkZXItZmFjdG9yeSc7XHJcbmltcG9ydCB7IEN1c3RvbUlucHV0IH0gZnJvbSAnLi4vY3VzdG9tLWlucHV0JztcclxuaW1wb3J0IHsgSW9uRGF0ZXRpbWUsIElvbk1vZGFsLCBJb25Qb3BvdmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBTSW9uUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvc2lvbi1wb3BvdmVyL3Npb24tcG9wb3Zlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW5wdXQtZGF0ZSwgaW5wdXQtZGF0ZS10aW1lLCBpbnB1dC10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQuc2NzcycsICcuLi9pbnB1dHMuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgLi4uSW5wdXRQcm92aWRlckZhY3RvcnkuR2V0UHJvdmlkZXJzKElucHV0RGF0ZUNvbXBvbmVudCksXHJcbiAgICB7IHByb3ZpZGU6IEN1c3RvbUlucHV0LCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dERhdGVDb21wb25lbnQpIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZUNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUlucHV0PHN0cmluZz4ge1xyXG4gIHN0YXRpYyBGb3JtYXRJU08gPSAnWVlZWS1NTS1ERFRISDptbTpzcyc7XHJcbiAgXHJcbiAgY29uZmlndXJhdGlvbjogSW5wdXRTaWduYWw8SW5wdXREYXRlQ29uZmlndXJhdGlvbj4gPSBpbnB1dDxJbnB1dERhdGVDb25maWd1cmF0aW9uPihuZXcgSW5wdXREYXRlQ29uZmlndXJhdGlvbigpKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q29udGFpbmVyJykgaW5wdXRDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIG92ZXJyaWRlIHNldEZvY3VzKGV2ZW50OiBNb3VzZUV2ZW50IHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5pbnB1dCAmJiAoZXZlbnQgPT0gbnVsbCB8fCBldmVudC50YXJnZXQgPT0gdGhpcy5pbnB1dENvbnRhaW5lci5uYXRpdmVFbGVtZW50KSkgeyB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTsgfSAgICAgIFxyXG4gIH1cclxuICBcclxuICBvcHRpb25zOiBNYXNraXRvT3B0aW9ucztcclxuICAvLyBGb3JtYXRvIGRvIGlucHV0IGh0bWwgKHN0cmluZylcclxuICBtb21lbnRGb3JtYXQ6ICdERC9NTS9ZWVlZIEhIOm1tJyB8ICdERC9NTS9ZWVlZJyB8ICdISDptbScgPSAnREQvTU0vWVlZWSBISDptbSc7XHJcblxyXG5cclxuICAvL0hhbmRsZSBpbnB1dCBpbnRlcmZhY2VcclxuICB3aW5kb3dTaXplOiBXcml0YWJsZVNpZ25hbDxudW1iZXI+ID0gc2lnbmFsPG51bWJlcj4od2luZG93LmlubmVyV2lkdGgpO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBhbnkpIHsgdGhpcy53aW5kb3dTaXplLnNldCh3aW5kb3cuaW5uZXJXaWR0aCk7IH1cclxuICBpbnRlcmZhY2U6IFNpZ25hbDxEYXRlSW50ZXJmYWNlcz4gPSBjb21wdXRlZDxEYXRlSW50ZXJmYWNlcz4oKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMud2luZG93U2l6ZSgpID4gd2luZG93LmlubmVySGVpZ2h0ID8gRGF0ZUludGVyZmFjZXMuUG9wb3ZlciA6IERhdGVJbnRlcmZhY2VzLk1vZGFsO1xyXG4gIH0pO1xyXG4gIERhdGVJbnRlcmZhY2VzID0gRGF0ZUludGVyZmFjZXM7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG92ZXJyaWRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHsgXHJcbiAgICBzdXBlcigpOyBcclxuICAgIGNvbnN0IHByZXNlbnRhdGlvbiA9ICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgYXMgc3RyaW5nKS5yZXBsYWNlKCdpbnB1dC0nLCAnJyk7XHJcbiAgICB0aGlzLnByZXNlbnRhdGlvbiA9IHtcclxuICAgICAgJ2RhdGUtdGltZSc6IERhdGVQcmVzZW50YXRpb24uRGF0ZVRpbWUsXHJcbiAgICAgICdkYXRlJzogRGF0ZVByZXNlbnRhdGlvbi5EYXRlLFxyXG4gICAgICAndGltZSc6IERhdGVQcmVzZW50YXRpb24uVGltZSxcclxuICAgIH1bcHJlc2VudGF0aW9uXSA/PyBEYXRlUHJlc2VudGF0aW9uLkRhdGVUaW1lO1xyXG5cclxuICAgIGlmKHRoaXMucHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uRGF0ZVRpbWUpeyBcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnREQvTU0vWVlZWSBISDptbSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9EYXRlVGltZU9wdGlvbnNHZW5lcmF0b3Ioe1xyXG4gICAgICAgIGRhdGVNb2RlOiAnZGQvbW0veXl5eScsXHJcbiAgICAgICAgdGltZU1vZGU6ICdISDpNTScsXHJcbiAgICAgICAgZGF0ZVNlcGFyYXRvcjogJy8nLFxyXG4gICAgICAgIGRhdGVUaW1lU2VwYXJhdG9yOiAnICcsXHJcbiAgICAgICAgdGltZVN0ZXA6IDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlXHJcbiAgICBpZih0aGlzLnByZXNlbnRhdGlvbiA9PSBEYXRlUHJlc2VudGF0aW9uLkRhdGUpIHtcclxuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnREQvTU0vWVlZWSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcih7IG1vZGU6ICdkZC9tbS95eXl5Jywgc2VwYXJhdG9yOiAnLyd9KTtcclxuICAgIH0gZWxzZVxyXG4gICAgaWYodGhpcy5wcmVzZW50YXRpb24gPT0gRGF0ZVByZXNlbnRhdGlvbi5UaW1lKSB7XHJcbiAgICAgIHRoaXMubW9tZW50Rm9ybWF0ID0gJ0hIOm1tJzsgXHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG1hc2tpdG9UaW1lT3B0aW9uc0dlbmVyYXRvcih7XHJcbiAgICAgICAgbW9kZTogJ0hIOk1NJyxcclxuICAgICAgICBzdGVwOiAxLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgQ2xlYXJWYWx1ZShldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gaW1wZWRlIGRlIGFicmlyIG8gY2FsZW5kw6FyaW8gYW8gY2xpY2FyIG5vIGNsZWFyXHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlLnNldChudWxsKTtcclxuICAgIHRoaXMubW9tZW50VmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnJlYWRhYmxlVmFsdWUgPSAnJztcclxuICAgIHRoaXMuaG91ciA9ICcwMCc7XHJcbiAgICB0aGlzLm1pbnV0ZSA9ICcwMCc7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShudWxsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcmVzZW50YXRpb246IERhdGVQcmVzZW50YXRpb24gPSBEYXRlUHJlc2VudGF0aW9uLkRhdGVUaW1lO1xyXG4gIFxyXG4gIHJlYWRhYmxlVmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIFNldFZhbHVlRnJvbVJlYWRhYmxlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IG0gPSBtb21lbnQodmFsdWUsIHRoaXMubW9tZW50Rm9ybWF0LCB0cnVlKS5mb3JtYXQoSW5wdXREYXRlQ29tcG9uZW50LkZvcm1hdElTTyk7ICBcclxuICAgIHRoaXMuU2V0VmFsdWUobSk7XHJcbiAgfVxyXG4gIFNldFZhbHVlRnJvbU1vbWVudCh2YWx1ZTogbW9tZW50Lk1vbWVudCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuU2V0VmFsdWUodmFsdWUuZm9ybWF0KElucHV0RGF0ZUNvbXBvbmVudC5Gb3JtYXRJU08pKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyJykgY2FsZW5kYXI6IE1hdENhbGVuZGFyPG1vbWVudC5Nb21lbnQ+O1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBvYmogU3RyaW5nIGluIElTTyBmb3JtYXQgKFlZWVktTU0tRERUaGg6bW06c3MpXHJcbiAgICovXHJcbiAgb3ZlcnJpZGUgU2V0VmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUuc2V0KG9iaik7XHJcblxyXG4gICAgaWYodGhpcy52YWx1ZSgpKXtcclxuICAgICAgdGhpcy5tb21lbnRWYWx1ZSAgID0gbW9tZW50KHRoaXMudmFsdWUoKSwgSW5wdXREYXRlQ29tcG9uZW50LkZvcm1hdElTTywgdHJ1ZSk7XHJcbiAgICAgIHRoaXMucmVhZGFibGVWYWx1ZSA9IHRoaXMubW9tZW50VmFsdWUuZm9ybWF0KHRoaXMubW9tZW50Rm9ybWF0LnRvU3RyaW5nKCkpO1xyXG5cclxuICAgICAgaWYodGhpcy5jYWxlbmRhcil7XHJcbiAgICAgICAgdGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlID0gdGhpcy5tb21lbnRWYWx1ZTsgLy8gc2V0IHRoZSBhY3RpdmUgZGF0ZSB0byB0aGUgc2VsZWN0ZWQgZGF0ZVxyXG4gICAgICAgIHRoaXMuY2FsZW5kYXIudXBkYXRlVG9kYXlzRGF0ZSgpOyAvLyB1cGRhdGUgY2FsZW5kYXIgc3RhdGVcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLm1vbWVudFZhbHVlKXtcclxuICAgICAgICB0aGlzLmhvdXIgICA9IHRoaXMubW9tZW50VmFsdWUuZ2V0KCdob3VyJykudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJyk7XHJcbiAgICAgICAgdGhpcy5taW51dGUgPSB0aGlzLm1vbWVudFZhbHVlLmdldCgnbWludXRlJykudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5ydW5WYWxpZGF0aW9uKCk7XHJcbiAgICBpZih0aGlzLm1vbWVudFZhbHVlLmlzVmFsaWQoKSl7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG9iaik7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW9tZW50VmFsdWU/OiBtb21lbnQuTW9tZW50O1xyXG5cclxuICBAVmlld0NoaWxkKElvbkRhdGV0aW1lKSBkYXRldGltZTogSW9uRGF0ZXRpbWU7XHJcbiAgXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo/OiBzdHJpbmcpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnZhbHVlLnNldChvYmopO1xyXG5cclxuICAgIGlmKHRoaXMudmFsdWUoKSl7XHJcbiAgICAgIHRoaXMubW9tZW50VmFsdWUgICA9IG1vbWVudCh0aGlzLnZhbHVlKCksIElucHV0RGF0ZUNvbXBvbmVudC5Gb3JtYXRJU08sIHRydWUpO1xyXG4gICAgICB0aGlzLnJlYWRhYmxlVmFsdWUgPSB0aGlzLm1vbWVudFZhbHVlLmZvcm1hdCh0aGlzLm1vbWVudEZvcm1hdC50b1N0cmluZygpKTtcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMuY2FsZW5kYXIpe1xyXG4gICAgICAgIHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMubW9tZW50VmFsdWU7IC8vIHNldCB0aGUgYWN0aXZlIGRhdGUgdG8gdGhlIHNlbGVjdGVkIGRhdGVcclxuICAgICAgICB0aGlzLmNhbGVuZGFyLnVwZGF0ZVRvZGF5c0RhdGUoKTsgLy8gdXBkYXRlIGNhbGVuZGFyIHN0YXRlXHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5tb21lbnRWYWx1ZSl7XHJcbiAgICAgICAgdGhpcy5ob3VyICAgPSB0aGlzLm1vbWVudFZhbHVlLmdldCgnaG91cicpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpO1xyXG4gICAgICAgIHRoaXMubWludXRlID0gdGhpcy5tb21lbnRWYWx1ZS5nZXQoJ21pbnV0ZScpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1blZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoU0lvblBvcG92ZXJDb21wb25lbnQpIHBvcG92ZXI6IFNJb25Qb3BvdmVyQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoSW9uTW9kYWwpIG1vZGFsOiBJb25Nb2RhbDtcclxuICBhc3luYyBQcmVzZW50KGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZih0aGlzLmludGVyZmFjZSgpID09IERhdGVJbnRlcmZhY2VzLlBvcG92ZXIpe1xyXG4gICAgICByZXR1cm4gdGhpcy5wb3BvdmVyLnByZXNlbnQoZXZlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubW9kYWwucHJlc2VudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgRGlzbWlzcygpIHtcclxuICAgIGlmKHRoaXMucG9wb3Zlcil7XHJcbiAgICAgIHRoaXMucG9wb3Zlci5kaXNtaXNzKCk7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLm1vZGFsKXtcclxuICAgICAgdGhpcy5tb2RhbC5kaXNtaXNzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBEYXRlUHJlc2VudGF0aW9uID0gRGF0ZVByZXNlbnRhdGlvbjtcclxuXHJcbiAgbHN0SG91cnMgPSBsc3RIb3VycztcclxuICBsc3RNaW51dGVzID0gbHN0TWludXRlcztcclxuXHJcbiAgaG91ciAgOiBzdHJpbmcgPSAnMDAnO1xyXG4gIG1pbnV0ZTogc3RyaW5nID0gJzAwJztcclxuXHJcbiAgT25DaGFuZ2VIb3VyKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIGlmKGV2ZW50ID09IHRoaXMuaG91cikgeyByZXR1cm47IH1cclxuICAgIHRoaXMuaG91ciA9IGV2ZW50O1xyXG4gICAgaWYodGhpcy5tb21lbnRWYWx1ZSl7XHJcbiAgICAgIHRoaXMubW9tZW50VmFsdWUuc2V0KCdob3VyJywgTnVtYmVyKGV2ZW50KSk7XHJcbiAgICAgIHRoaXMuU2V0VmFsdWVGcm9tTW9tZW50KHRoaXMubW9tZW50VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBPbkNoYW5nZU1pbnV0ZShldmVudDogc3RyaW5nKSB7XHJcbiAgICBpZihldmVudCA9PSB0aGlzLm1pbnV0ZSkgeyByZXR1cm47IH1cclxuICAgIHRoaXMubWludXRlID0gZXZlbnQ7XHJcbiAgICBpZih0aGlzLm1vbWVudFZhbHVlKXtcclxuICAgICAgdGhpcy5tb21lbnRWYWx1ZS5zZXQoJ21pbnV0ZScsIE51bWJlcihldmVudCkpO1xyXG4gICAgICB0aGlzLlNldFZhbHVlRnJvbU1vbWVudCh0aGlzLm1vbWVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5lbnVtIERhdGVQcmVzZW50YXRpb24ge1xyXG4gIERhdGVUaW1lID0gMSxcclxuICBEYXRlICAgICA9IDIsXHJcbiAgVGltZSAgICAgPSAzXHJcbn1cclxuZW51bSBEYXRlSW50ZXJmYWNlc3tcclxuICBQb3BvdmVyID0gMSxcclxuICBNb2RhbCAgID0gMixcclxufVxyXG5cclxuY29uc3QgbHN0SG91cnMgPSBBcnJheS5mcm9tKEFycmF5KDI0KS5rZXlzKCkpLm1hcChpID0+IGkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJykpO1xyXG5jb25zdCBsc3RNaW51dGVzID0gQXJyYXkuZnJvbShBcnJheSg2MCkua2V5cygpKS5tYXAoaSA9PiBpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpKTsiLCI8ZGl2IFxyXG4gICNpbnB1dENvbnRhaW5lclxyXG4gIGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCIgXHJcbiAgKGNsaWNrKT1cInNldEZvY3VzKCRldmVudClcIlxyXG4gIFtjbGFzcy5yZXF1aXJlZF09XCJyZXF1aXJlZCgpXCIgXHJcbiAgW2NsYXNzLnN1Ym1pdHRlZF09XCJzdWJtaXR0ZWQoKVwiIFxyXG4gIFtjbGFzcy5pbnZhbGlkXT1cImludmFsaWRcIiBcclxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCBsb2FkaW5nKClcIlxyXG4gIFtjbGFzcy5sb2FkaW5nXT1cImxvYWRpbmcoKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtbGFiZWxcIj4gXHJcbiAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlXCI+XHJcbiAgICAgIHt7bGFiZWwoKX19IFxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxpbnB1dCAjaW5wdXRcclxuICAgIFtuZ01vZGVsXT1cInJlYWRhYmxlVmFsdWVcIiBcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIlNldFZhbHVlRnJvbVJlYWRhYmxlKCRldmVudCk7XCJcclxuICAgIFttYXNraXRvXT1cIm9wdGlvbnNcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgbG9hZGluZygpXCJcclxuICAgIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcclxuICAvPlxyXG4gIDxpb24tYnV0dG9uICAqbmdJZj1cImNvbmZpZ3VyYXRpb24oKS5jbGVhcmFibGUgJiYgcmVhZGFibGVWYWx1ZVwiIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTggYm90dG9tLTFcIiBcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJDbGVhclZhbHVlKCRldmVudClcIiBjb2xvcj1cIm1lZGl1bVwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIHN0eWxlPVwiLS1ib3JkZXItcmFkaXVzOiAuNXJlbVwiXHJcbiAgPlxyXG4gICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gIDwvaW9uLWJ1dHRvbj5cclxuICBcclxuICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIi0xXCIgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0yIGJvdHRvbS0xXCIgKGNsaWNrKT1cIlByZXNlbnQoJGV2ZW50KVwiIGNvbG9yPVwibWVkaXVtXCIgc2l6ZT1cInNtYWxsXCIgZmlsbD1cImNsZWFyXCIgc3R5bGU9XCItLWJvcmRlci1yYWRpdXM6IC41cmVtXCI+XHJcbiAgICA8aW9uLWljb24gW25hbWVdPVwicHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uVGltZSA/ICd0aW1lJyA6ICdjYWxlbmRhcidcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICA8L2lvbi1idXR0b24+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiIFtjbGFzcy5sb2FkaW5nXT1cImxvYWRpbmcoKVwiPlxyXG4gICAgPGlvbi1zcGlubmVyPjwvaW9uLXNwaW5uZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuQGlmIChpbnRlcmZhY2UoKSA9PSBEYXRlSW50ZXJmYWNlcy5Qb3BvdmVyKSB7XHJcbiAgPHNpb24tcG9wb3ZlclxyXG4gICAgI3BvcG92ZXIgXHJcbiAgICBbYW5jaG9yXT1cImlucHV0Q29udGFpbmVyXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZXRpbWVUZW1wbGF0ZTtcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3Npb24tcG9wb3Zlcj5cclxufVxyXG5AZWxzZSB7XHJcbiAgPGlvbi1tb2RhbCBcclxuICAgICNtb2RhbFxyXG4gICAgW2NsYXNzLnRpbWVdPVwicHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uVGltZVwiIFxyXG4gICAgW2NsYXNzLmRhdGVdPVwicHJlc2VudGF0aW9uID09IERhdGVQcmVzZW50YXRpb24uRGF0ZVwiIFxyXG4gICAgW2NsYXNzLmRhdGV0aW1lXT1cInByZXNlbnRhdGlvbiA9PSBEYXRlUHJlc2VudGF0aW9uLkRhdGVUaW1lXCJcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRldGltZVRlbXBsYXRlO1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2lvbi1tb2RhbD5cclxufVxyXG5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZXRpbWVUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctWy0taW9uLWNvbG9yLWxpZ2h0XSByb3VuZGVkLXhsXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgXHJcbiAgICBAaWYgKFtEYXRlUHJlc2VudGF0aW9uLkRhdGVUaW1lLCBEYXRlUHJlc2VudGF0aW9uLkRhdGVdLmluY2x1ZGVzKHByZXNlbnRhdGlvbikpIHtcclxuICAgICAgPG1hdC1jYWxlbmRhciAjY2FsZW5kYXIgY2xhc3M9XCJ3LTcyIHRleHQtZGFya1wiIFxyXG4gICAgICAgIFsoc2VsZWN0ZWQpXT1cIm1vbWVudFZhbHVlXCIgXHJcbiAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIlNldFZhbHVlRnJvbU1vbWVudCgkZXZlbnQpXCJcclxuICAgICAgPjwvbWF0LWNhbGVuZGFyPlxyXG4gICAgfVxyXG4gICAgQGlmIChbRGF0ZVByZXNlbnRhdGlvbi5EYXRlVGltZSwgRGF0ZVByZXNlbnRhdGlvbi5UaW1lXS5pbmNsdWRlcyhwcmVzZW50YXRpb24pKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtZnVsbCBtYXNrLXkvMzAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgPGlvbi1waWNrZXI+XHJcbiAgICAgICAgICA8aW9uLXBpY2tlci1jb2x1bW4gKGlvbkNoYW5nZSk9XCJPbkNoYW5nZUhvdXIoJGV2ZW50LnRhcmdldC52YWx1ZS50b1N0cmluZygpKVwiIFt2YWx1ZV09XCJob3VyXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbHN0SG91cnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxpb24tcGlja2VyLWNvbHVtbi1vcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj57e2l0ZW19fTwvaW9uLXBpY2tlci1jb2x1bW4tb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2lvbi1waWNrZXItY29sdW1uPlxyXG4gICAgICAgICAgPGlvbi1waWNrZXItY29sdW1uIChpb25DaGFuZ2UpPVwiT25DaGFuZ2VNaW51dGUoJGV2ZW50LnRhcmdldC52YWx1ZS50b1N0cmluZygpKVwiIFt2YWx1ZV09XCJtaW51dGVcIj5cclxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RNaW51dGVzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8aW9uLXBpY2tlci1jb2x1bW4tb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+e3tpdGVtfX08L2lvbi1waWNrZXItY29sdW1uLW9wdGlvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9pb24tcGlja2VyLWNvbHVtbj5cclxuICAgICAgICA8L2lvbi1waWNrZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -208,13 +208,13 @@ export class InputDecimalComponent extends CustomInput {
208
208
  return;
209
209
  }
210
210
  }
211
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputDecimalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputDecimalComponent, selector: "input-decimal, input-number, input-currency, input-percentage", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configuration: "configurationChange" }, host: { listeners: { "paste": "onPaste($event)" } }, providers: [
211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputDecimalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: InputDecimalComponent, selector: "input-decimal, input-number, input-currency, input-percentage", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configuration: "configurationChange" }, host: { listeners: { "paste": "onPaste($event)" } }, providers: [
213
213
  ...InputProviderFactory.GetProviders(InputDecimalComponent),
214
214
  { provide: CustomInput, useExisting: forwardRef(() => InputDecimalComponent) },
215
215
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n\r\n <div class=\"decimal-input-container text-dark\">\r\n <span *ngIf=\"configuration().prefix\" slot=\"start\">{{configuration().prefix}}</span>\r\n <input #input\r\n inputmode=\"numeric\"\r\n [value]=\"valueString\" \r\n (keydown)=\"onKeyDown($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <span *ngIf=\"configuration().sufix\" slot=\"end\" >{{configuration().sufix}}</span>\r\n </div>\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>", styles: ["input{text-align:right;width:100%}.decimal-input-container{display:flex;width:100%;align-items:center;justify-content:center;gap:.25rem}.decimal-input-container span{flex-shrink:0}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputDecimalComponent, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputDecimalComponent, decorators: [{
218
218
  type: Component,
219
219
  args: [{ selector: 'input-decimal, input-number, input-currency, input-percentage', providers: [
220
220
  ...InputProviderFactory.GetProviders(InputDecimalComponent),
@@ -69,10 +69,10 @@ export class DownloadButtonComponent {
69
69
  isLoading(path) {
70
70
  return this.lstLoading.indexOf(path) != -1;
71
71
  }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadButtonComponent, deps: [{ token: i1.StorageService }, { token: i0.ElementRef }, { token: i2.ApiUrlProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DownloadButtonComponent, selector: "download-button", inputs: { expand: { classPropertyName: "expand", publicName: "expand", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, post: { classPropertyName: "post", publicName: "post", isSignal: false, isRequired: false, transformFunction: null }, configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: InputProviderFactory.GetProviders(DownloadButtonComponent), ngImport: i0, template: "@if(lstFiles().length == 0){\r\n <ion-button [color]=\"color\" fill=\"outline\" [disabled]=\"true\" [size]=\"size\"> \r\n <ion-icon name=\"close-circle\" slot=\"start\"></ion-icon> \r\n <ion-label> Sem arquivos... </ion-label>\r\n </ion-button>\r\n}\r\n@else if(lstFiles().length == 1){\r\n <ion-button [color]=\"color\" *ngVar=\"storageService.GetProgress(lstFiles()[0]) as val\" class=\"relative block {{expand == 'block' ? 'size-full' : ''}}\" [disabled]=\"val != 0 || disabled\" (click)=\"Download(lstFiles()[0])\" fill=\"outline\" [size]=\"size\"> \r\n <ion-icon name=\"download\" slot=\"start\"></ion-icon> \r\n <ion-label> {{Sanitize(lstFiles()[0])}} </ion-label>\r\n <div class=\"absolute size-full h-[calc(100%+var(--padding-top)+var(--padding-bottom))] w-[calc(100%+var(--padding-end)+var(--padding-start))]\">\r\n <loading [type]=\"3\" [loading]=\"val != 0\"></loading>\r\n <div class=\"size-full flex flex-row-reverse relative\">\r\n <ion-progress-bar class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'-translate-y-4 opacity-0': (!val || val == 0)}\" [value]=\"val\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n </ion-button>\r\n}\r\n@else{\r\n <ion-button [color]=\"color\" [id]=\"guid\" fill=\"outline\" [size]=\"size\"> \r\n <ion-icon name=\"download\" slot=\"start\"></ion-icon> \r\n <ion-label> {{lstFiles().length}} Arquivos </ion-label>\r\n </ion-button>\r\n\r\n <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content class=\"p-0 bg-transparent\">\r\n <ion-list>\r\n @for (item of lstFiles(); track item; let i = $index; let l = $last) {\r\n <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n @if (ExtensionIsImage(item)) {\r\n <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n }\r\n\r\n <ion-label>{{Sanitize(item)}}</ion-label>\r\n <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n </ion-item>\r\n <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n <loading [hidden]=\"!isLoading\"></loading>\r\n <ion-img [hidden]=\"isLoading\" [src]=\"apiUrl + item\" (ionImgWillLoad)=\"SetLoading(item)\" (ionImgDidLoad)=\"SetNotLoading(item)\"></ion-img>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </section>\r\n }\r\n </ion-list>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}", styles: ["ion-popover{--width: 30rem }\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i3.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "directive", type: i6.NgVarDirective, selector: "[ngVar]", inputs: ["ngVar"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }] }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DownloadButtonComponent, deps: [{ token: i1.StorageService }, { token: i0.ElementRef }, { token: i2.ApiUrlProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DownloadButtonComponent, selector: "download-button", inputs: { expand: { classPropertyName: "expand", publicName: "expand", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, post: { classPropertyName: "post", publicName: "post", isSignal: false, isRequired: false, transformFunction: null }, configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: InputProviderFactory.GetProviders(DownloadButtonComponent), ngImport: i0, template: "@if(lstFiles().length == 0){\r\n <ion-button [color]=\"color\" fill=\"outline\" [disabled]=\"true\" [size]=\"size\"> \r\n <ion-icon name=\"close-circle\" slot=\"start\"></ion-icon> \r\n <ion-label> Sem arquivos... </ion-label>\r\n </ion-button>\r\n}\r\n@else if(lstFiles().length == 1){\r\n <ion-button [color]=\"color\" *ngVar=\"storageService.GetProgress(lstFiles()[0]) as val\" class=\"relative block {{expand == 'block' ? 'size-full' : ''}}\" [disabled]=\"val != 0 || disabled\" (click)=\"Download(lstFiles()[0])\" fill=\"outline\" [size]=\"size\"> \r\n <ion-icon name=\"download\" slot=\"start\"></ion-icon> \r\n <ion-label> {{Sanitize(lstFiles()[0])}} </ion-label>\r\n <div class=\"absolute size-full h-[calc(100%+var(--padding-top)+var(--padding-bottom))] w-[calc(100%+var(--padding-end)+var(--padding-start))]\">\r\n <loading [type]=\"3\" [loading]=\"val != 0\"></loading>\r\n <div class=\"size-full flex flex-row-reverse relative\">\r\n <ion-progress-bar class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'-translate-y-4 opacity-0': (!val || val == 0)}\" [value]=\"val\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n </ion-button>\r\n}\r\n@else{\r\n <ion-button [color]=\"color\" [id]=\"guid\" fill=\"outline\" [size]=\"size\"> \r\n <ion-icon name=\"download\" slot=\"start\"></ion-icon> \r\n <ion-label> {{lstFiles().length}} Arquivos </ion-label>\r\n </ion-button>\r\n\r\n <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content class=\"p-0 bg-transparent\">\r\n <ion-list>\r\n @for (item of lstFiles(); track item; let i = $index; let l = $last) {\r\n <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n @if (ExtensionIsImage(item)) {\r\n <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n }\r\n\r\n <ion-label>{{Sanitize(item)}}</ion-label>\r\n <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n </ion-item>\r\n <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n <loading [hidden]=\"!isLoading\"></loading>\r\n <ion-img [hidden]=\"isLoading\" [src]=\"apiUrl + item\" (ionImgWillLoad)=\"SetLoading(item)\" (ionImgDidLoad)=\"SetNotLoading(item)\"></ion-img>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </section>\r\n }\r\n </ion-list>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}", styles: ["ion-popover{--width: 30rem }\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i3.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "directive", type: i6.NgVarDirective, selector: "[ngVar]", inputs: ["ngVar"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }] }); }
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadButtonComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DownloadButtonComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'download-button', providers: InputProviderFactory.GetProviders(DownloadButtonComponent), template: "@if(lstFiles().length == 0){\r\n <ion-button [color]=\"color\" fill=\"outline\" [disabled]=\"true\" [size]=\"size\"> \r\n <ion-icon name=\"close-circle\" slot=\"start\"></ion-icon> \r\n <ion-label> Sem arquivos... </ion-label>\r\n </ion-button>\r\n}\r\n@else if(lstFiles().length == 1){\r\n <ion-button [color]=\"color\" *ngVar=\"storageService.GetProgress(lstFiles()[0]) as val\" class=\"relative block {{expand == 'block' ? 'size-full' : ''}}\" [disabled]=\"val != 0 || disabled\" (click)=\"Download(lstFiles()[0])\" fill=\"outline\" [size]=\"size\"> \r\n <ion-icon name=\"download\" slot=\"start\"></ion-icon> \r\n <ion-label> {{Sanitize(lstFiles()[0])}} </ion-label>\r\n <div class=\"absolute size-full h-[calc(100%+var(--padding-top)+var(--padding-bottom))] w-[calc(100%+var(--padding-end)+var(--padding-start))]\">\r\n <loading [type]=\"3\" [loading]=\"val != 0\"></loading>\r\n <div class=\"size-full flex flex-row-reverse relative\">\r\n <ion-progress-bar class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'-translate-y-4 opacity-0': (!val || val == 0)}\" [value]=\"val\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n </ion-button>\r\n}\r\n@else{\r\n <ion-button [color]=\"color\" [id]=\"guid\" fill=\"outline\" [size]=\"size\"> \r\n <ion-icon name=\"download\" slot=\"start\"></ion-icon> \r\n <ion-label> {{lstFiles().length}} Arquivos </ion-label>\r\n </ion-button>\r\n\r\n <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content class=\"p-0 bg-transparent\">\r\n <ion-list>\r\n @for (item of lstFiles(); track item; let i = $index; let l = $last) {\r\n <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n @if (ExtensionIsImage(item)) {\r\n <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n }\r\n\r\n <ion-label>{{Sanitize(item)}}</ion-label>\r\n <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n </ion-item>\r\n <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n <loading [hidden]=\"!isLoading\"></loading>\r\n <ion-img [hidden]=\"isLoading\" [src]=\"apiUrl + item\" (ionImgWillLoad)=\"SetLoading(item)\" (ionImgDidLoad)=\"SetNotLoading(item)\"></ion-img>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </section>\r\n }\r\n </ion-list>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}", styles: ["ion-popover{--width: 30rem }\n"] }]
78
78
  }], ctorParameters: () => [{ type: i1.StorageService }, { type: i0.ElementRef }, { type: i2.ApiUrlProviderService }], propDecorators: { expand: [{
@@ -66,13 +66,13 @@ export class InputFileComponent extends CustomInput {
66
66
  Download() {
67
67
  this.storageService.StartDownload(this.value());
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputFileComponent, deps: [{ token: i1.UtilsService }, { token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputFileComponent, selector: "input-file", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputFileComponent, deps: [{ token: i1.UtilsService }, { token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Component }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InputFileComponent, selector: "input-file", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
71
71
  ...InputProviderFactory.GetProviders(InputFileComponent),
72
72
  { provide: CustomInput, useExisting: forwardRef(() => InputFileComponent) },
73
73
  ], viewQueries: [{ propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <div tabindex=\"0\" class=\"file-label-container text-dark\" [title]=\"valueString\" (click)=\"Upload()\">\r\n <ion-icon class=\"shrink-0\" color=\"dark\" name=\"document\"></ion-icon> \r\n <span class=\"shrink truncate\">\r\n {{valueString}}\r\n </span>\r\n\r\n <ion-button [class.available]=\"value()\" color=\"medium\" class=\"ellipsis-button ml-auto shrink-0\" fill=\"clear\" style=\"--border-radius: .5rem\" size=\"small\" (click)=\"popover.present($event); $event.stopPropagation()\">\r\n <ion-icon name=\"ellipsis-vertical\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <ion-popover #popover>\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"size-full flex flex-col\">\r\n @if(value()){\r\n <ion-button color=\"danger\"size=\"small\" style=\"--border-radius: 0rem\" (click)=\"Clear($event); popover.dismiss()\">\r\n <ion-icon color=\"dark\" name=\"trash\" slot=\"icon-only\"></ion-icon>\r\n Limpar\r\n </ion-button>\r\n }\r\n @if(isString){\r\n <ion-button color=\"secondary\" size=\"small\" style=\"--border-radius: 0rem\" (click)=\"Download()\">\r\n <ion-icon color=\"dark\" name=\"download\" slot=\"start\"></ion-icon>\r\n Download\r\n </ion-button>\r\n @if(storageService.GetProgress(this.value().toString())){\r\n <ion-progress-bar [value]=\"storageService.GetProgress(this.value().toString())\"></ion-progress-bar>\r\n }\r\n @if(isImage){\r\n <image fill=\"clear\" [src]=\"value().toString()\"></image>\r\n }\r\n }\r\n @else if(isImage){\r\n <ion-img [src]=\"objectURL\" class=\"w-full h-32\"></ion-img>\r\n }\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n </div>\r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>", styles: [".file-label-container{position:relative;display:flex;height:1.5rem;width:100%;align-items:center;justify-content:flex-start;gap:.25rem}.input-container{padding-right:.25rem!important}.ellipsis-button{opacity:0;pointer-events:none;will-change:opacity;transition:opacity .2s ease-in-out}.ellipsis-button.available{pointer-events:auto;opacity:1}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i3.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "component", type: i4.ImageComponent, selector: "image", inputs: ["fill", "object", "src"] }] }); }
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputFileComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputFileComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'input-file', providers: [
78
78
  ...InputProviderFactory.GetProviders(InputFileComponent),
@@ -38,13 +38,13 @@ export class InputIconComponent extends CustomInput {
38
38
  this.runValidation();
39
39
  this.propagateChange(obj);
40
40
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputIconComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputIconComponent, selector: "input-icon", providers: [
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputIconComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: InputIconComponent, selector: "input-icon", providers: [
43
43
  ...InputProviderFactory.GetProviders(InputIconComponent),
44
44
  { provide: CustomInput, useExisting: forwardRef(() => InputIconComponent) },
45
45
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input-select [ngModel]=\"value()\" (ngModelChange)=\"SetValue($event)\" [items]=\"lstIcons\" [configuration]=\"config\" [submitted]=\"submitted()\" [label]=\"label()\" [required]=\"required()\" [disabled]=\"disabled()\" [loading]=\"loading()\">\r\n <ng-template sionLabelTemplate sionOptionTemplate let-item=\"item\">\r\n <div class=\"flex truncate items-center justify-start gap-2 text-dark\">\r\n <ion-icon [name]=\"item.name\" class=\"size-5\"></ion-icon>\r\n <span class=\"truncate\">{{item.name}}</span>\r\n </div>\r\n </ng-template>\r\n</input-select>", styles: ["", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.InputSelectComponent, selector: "input-select", inputs: ["items", "configuration"], outputs: ["itemsChange"] }, { kind: "directive", type: i5.SIonLabelTemplateDirective, selector: "[sionLabelTemplate]" }, { kind: "directive", type: i6.SIonOptionTemplateDirective, selector: "[sionOptionTemplate]" }] }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputIconComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputIconComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'input-icon', providers: [
50
50
  ...InputProviderFactory.GetProviders(InputIconComponent),
@@ -4,10 +4,10 @@ export class SIonLabelTemplateDirective {
4
4
  constructor(template) {
5
5
  this.template = template;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonLabelTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SIonLabelTemplateDirective, selector: "[sionLabelTemplate]", ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SIonLabelTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: SIonLabelTemplateDirective, selector: "[sionLabelTemplate]", ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonLabelTemplateDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SIonLabelTemplateDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[sionLabelTemplate]',
@@ -4,10 +4,10 @@ export class SIonOptionTemplateDirective {
4
4
  constructor(template) {
5
5
  this.template = template;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonOptionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SIonOptionTemplateDirective, selector: "[sionOptionTemplate]", ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SIonOptionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: SIonOptionTemplateDirective, selector: "[sionOptionTemplate]", ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonOptionTemplateDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SIonOptionTemplateDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[sionOptionTemplate]',
@@ -4,10 +4,10 @@ export class SIonPlaceholderTemplateDirective {
4
4
  constructor(template) {
5
5
  this.template = template;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPlaceholderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SIonPlaceholderTemplateDirective, selector: "[sionPlaceholderTemplate]", ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SIonPlaceholderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: SIonPlaceholderTemplateDirective, selector: "[sionPlaceholderTemplate]", ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPlaceholderTemplateDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SIonPlaceholderTemplateDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[sionPlaceholderTemplate]',
@@ -306,13 +306,13 @@ export class InputSelectComponent extends CustomInput {
306
306
  isArray(obj) {
307
307
  return Array.isArray(obj);
308
308
  }
309
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
310
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputSelectComponent, selector: "input-select", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange" }, host: { listeners: { "window:resize": "onResize($event)", "document:keydown": "HandleKeyboardEvent($event)" } }, providers: [
309
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
310
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InputSelectComponent, selector: "input-select", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange" }, host: { listeners: { "window:resize": "onResize($event)", "document:keydown": "HandleKeyboardEvent($event)" } }, providers: [
311
311
  ...InputProviderFactory.GetProviders(InputSelectComponent),
312
312
  { provide: CustomInput, useExisting: forwardRef(() => InputSelectComponent) },
313
313
  ], queries: [{ propertyName: "labelTemplate", first: true, predicate: SIonLabelTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "optionTemplate", first: true, predicate: SIonOptionTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "placeholderTemplate", first: true, predicate: SIonPlaceholderTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }, { propertyName: "inputSelectLabel", first: true, predicate: ["inputSelectLabel"], descendants: true }, { propertyName: "inputSearchBar", first: true, predicate: ["inputSearchBar"], descendants: true }, { propertyName: "selectContent", first: true, predicate: ["selectContent"], descendants: true }, { propertyName: "popover", first: true, predicate: SIonPopoverComponent, descendants: true }, { propertyName: "modal", first: true, predicate: IonModal, descendants: true }, { propertyName: "alert", first: true, predicate: IonAlert, descendants: true }, { propertyName: "actionSheet", first: true, predicate: IonActionSheet, descendants: true }, { propertyName: "ionContent", first: true, predicate: ["scrollContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event);\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.manual-focus]=\"floatingVisible\"\r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"loading() || loadingFromLoader || disabled()\"\r\n [class.loading]=\"loading() || loadingFromLoader\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n \r\n <div class=\"w-full truncate outline-none\" [class.pr-7]=\"!configuration().clearable\" [class.pr-10]=\"configuration().clearable\" #inputSelectLabel tabindex=\"0\">\r\n @if (!configuration().multiple && currentLabel){\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: currentLabel, item: currentItems.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{currentLabel}} </span>\r\n }\r\n }\r\n @else if (configuration().multiple && isArray(currentItems) && $any(currentItems).length) {\r\n <div class=\"w-full min-h-6 overflow-hidden relative\">\r\n <div class=\"absolute left-0 top-0 overflow-x-auto flex gap-2 size-full mask-x/2\">\r\n @for (item of currentItems; track $index) {\r\n <div class=\"translucid-border rounded-lg flex items-center justify-center gap-2 pl-2\">\r\n @if(labelTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item.label, item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label\"> {{item.label}} </span>\r\n }\r\n \r\n <div class=\"h-full aspect-square flex items-center justify-center cursor-pointer\" (click)=\"Select(item); $event.stopPropagation()\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"m-0 h-full\" (click)=\"Select(item.value); $event.stopPropagation()\" color=\"medium\" size=\"small\" fill=\"outline\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n @if(placeholderTemplate){\r\n <ng-container \r\n [ngTemplateOutlet]=\"placeholderTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: this.configuration().placeholder, placeholder: this.configuration().placeholder }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"input-select-label !text-medium\"> {{this.configuration().placeholder}} </span>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"absolute bottom-1 flex flex-col items-center justify-center size-7\" [class.right-1]=\"!configuration().clearable\" [class.right-8]=\"configuration().clearable\">\r\n <ion-icon class=\"-mb-0.5\" name=\"chevron-up\"></ion-icon>\r\n <ion-icon class=\"-mt-0.5\" name=\"chevron-down\"></ion-icon>\r\n </div>\r\n @if(configuration().clearable){\r\n <ion-button class=\"absolute right-1 bottom-1\" (click)=\"Clear($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n } \r\n\r\n <div class=\"loading-container\" [class.loading]=\"loading() || loadingFromLoader\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n <div class=\"error-container\" (click)=\"configuration().loader.Refresh()\" [class.active]=\"configuration().loader.error && !loadingFromLoader\">\r\n <ion-icon class=\"text-xl\" color=\"danger\" name=\"refresh-circle\"></ion-icon>\r\n </div>\r\n</div>\r\n\r\n@if(!disabled() && renderInterface){\r\n @switch (interface()) {\r\n @case (SelectInterfaces.Popover) {\r\n <sion-popover \r\n #popover \r\n [width]=\"inputContainer.offsetWidth + 'px'\" \r\n (onWillPresent)=\"OnPresent()\" \r\n (onDidDismiss)=\"OnDismiss()\" \r\n [anchor]=\"inputContainer\" \r\n [placement]=\"configuration().popoverConfiguration.placement\" \r\n [flip]=\"configuration().popoverConfiguration.flip\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\"></ng-container>\r\n </sion-popover>\r\n }\r\n @case (SelectInterfaces.Modal) {\r\n <ion-modal #modal (ionModalWillPresent)=\"OnPresent()\" (didDismiss)=\"OnDismiss()\" [initialBreakpoint]=\"0.9\" [keepContentsMounted]=\"true\">\r\n <ng-template>\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-title class=\"text-center\">\r\n {{label()}}\r\n </ion-title>\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close-circle\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <ng-container [ngTemplateOutlet]=\"selectContentTemplate\" [ngTemplateOutletContext]=\"{ modal: true }\"></ng-container>\r\n </ng-template>\r\n </ion-modal>\r\n }\r\n @case (SelectInterfaces.ActionSheet) {\r\n <ion-action-sheet #actionSheet trigger=\"open-action-sheet\" [header]=\"label()\" [buttons]=\"lstOptionsActionSheet\"></ion-action-sheet>\r\n }\r\n }\r\n}\r\n\r\n<ng-template #selectContentTemplate let-modal=\"modal\">\r\n <div #selectContent class=\"select-content\" [class.!size-full]=\"modal\">\r\n <div class=\"select-search-bar-container\">\r\n <div class=\"select-search-bar-icon-container !border-r-0 border-primary/70 bg-primary/70 shrink-0\">\r\n <ion-icon color=\"dark\" name=\"search\"></ion-icon>\r\n </div>\r\n <input #inputSearchBar tabindex=\"-1\" class=\"select-search-bar border-primary/70 !rounded-l-none\" [formControl]=\"searchBarControl\"/>\r\n </div> \r\n <ul class=\"select-item-list mask-y\" role=\"listbox\" [attr.aria-activedescendant]=\"'sion-is-' + selectedIndex\">\r\n <ion-content #scrollContent class=\"size-full\" [scrollY]=\"true\">\r\n @for (item of lstOptions; track item.value) { \r\n <ng-container \r\n [ngTemplateOutlet]=\"baseOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, index: $index }\">\r\n </ng-container>\r\n }\r\n @if(configuration().useInfiniteScroll){\r\n <ion-infinite-scroll threshold=\"10px\" *ngIf=\"lstOptions.length && lstOptions.length != lstOptionsItemValue().length\" (ionInfinite)=\"AddPage($event)\">\r\n <ion-infinite-scroll-content></ion-infinite-scroll-content>\r\n </ion-infinite-scroll>\r\n }\r\n </ion-content>\r\n </ul>\r\n @if(isServiceAtivo()){\r\n <div class=\"w-full text-xs flex items-center justify-end\">\r\n <ion-checkbox [ngModel]=\"somenteAtivos()\" (ngModelChange)=\"somenteAtivos.set($event)\" class=\"scale-75\"> Somente ativos </ion-checkbox>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #baseOptionTemplate let-item=\"item\" let-index=\"index\">\r\n <li [id]=\"'sion-is-' + index\" class=\"select-item\" [class.disabled]=\"item.disabled\" [attr.aria-selected]=\"index == selectedIndex\" (mouseenter)=\"selectedIndex = index\" (click)=\"Select(item)\">\r\n <div class=\"select-item-checkmark-conteiner\">\r\n @if(item.selected) {\r\n <ion-icon class=\"select-item-checkmark\" color=\"primary\" name=\"checkmark\"></ion-icon>\r\n }\r\n </div>\r\n @if (optionTemplate) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item.item }\">\r\n </ng-container>\r\n }\r\n @else {\r\n <span class=\"select-item-label\"> {{item.label}} </span>\r\n }\r\n </li>\r\n</ng-template>", styles: [".input-container{cursor:pointer!important}.input-select-label{pointer-events:none;min-height:1.5rem;width:100%;outline:2px solid transparent;outline-offset:2px;color:var(--ion-color-dark)}.select-content{display:flex;height:18rem;width:100%;flex-direction:column;gap:.25rem;overflow:hidden;padding:.25rem}.select-content .select-search-bar-container{display:flex;width:100%;flex-shrink:1}.select-content .select-search-bar-container .select-search-bar-icon-container{display:flex;height:100%;width:1.75rem;align-items:center;justify-content:center;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-width:1px}.select-content .select-search-bar-container .select-search-bar{width:100%;flex-shrink:1;border-radius:.375rem;border-width:1px;background-color:transparent;padding-left:.5rem;padding-right:.5rem;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}@media (orientation: portrait){.select-content .select-search-bar-container .select-search-bar{height:2.5rem}}@media (orientation: landscape){.select-content .select-search-bar-container .select-search-bar{height:1.75rem}}.select-item-list{width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.select-item-list .select-item{color:var(--ion-color-dark);display:flex;width:100%;flex-shrink:0;align-items:center;justify-content:flex-start;border-radius:.375rem;padding-right:.5rem}@media (orientation: portrait){.select-item-list .select-item{min-height:2.5rem}}@media (orientation: landscape){.select-item-list .select-item{min-height:2rem}}.select-item-list .select-item{cursor:pointer}.select-item-list .select-item.disabled{opacity:.5;pointer-events:none}.select-item-list .select-item:hover,.select-item-list .select-item:focus,.select-item-list .select-item[aria-selected=true]{background-color:color-mix(in srgb,var(--ion-color-dark) 20%,transparent)}.select-item-list .select-item .select-item-checkmark-conteiner{display:flex;height:100%;width:1.75rem;flex-shrink:0;align-items:center;justify-content:center}.select-item-list .select-item .select-item-label{width:100%}.error-container{pointer-events:none;position:absolute;bottom:0;left:0;z-index:200;display:flex;width:100%;height:100%;--tw-translate-y: -3rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;opacity:0;will-change:opacity,auto;transition:opacity .2s ease-in-out,transform .2s ease-in-out}.error-container.active{pointer-events:auto!important;--tw-translate-y: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonActionSheet, selector: "ion-action-sheet", inputs: ["animated", "backdropDismiss", "buttons", "cssClass", "enterAnimation", "header", "htmlAttributes", "isOpen", "keyboardClose", "leaveAnimation", "mode", "subHeader", "translucent", "trigger"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: i1.IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
314
314
  }
315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputSelectComponent, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputSelectComponent, decorators: [{
316
316
  type: Component,
317
317
  args: [{ selector: 'input-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
318
318
  ...InputProviderFactory.GetProviders(InputSelectComponent),
@@ -19,13 +19,13 @@ export class InputStringComponent extends CustomInput {
19
19
  this.value.set(obj);
20
20
  this.runValidation();
21
21
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputStringComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputStringComponent, selector: "input-string", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputStringComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: InputStringComponent, selector: "input-string", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
24
24
  ...InputProviderFactory.GetProviders(InputStringComponent),
25
25
  { provide: CustomInput, useExisting: forwardRef(() => InputStringComponent) },
26
26
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n [ngModel]=\"value()\" \r\n [type]=\"configuration().type\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n [maxlength]=\"configuration().maxlength\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>", styles: ["", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputStringComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputStringComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ selector: 'input-string', providers: [
31
31
  ...InputProviderFactory.GetProviders(InputStringComponent),