@softpak/components 18.6.10 → 18.6.11

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.
@@ -2,6 +2,7 @@ import { Component, EventEmitter, HostListener, Input, Output } from '@angular/c
2
2
  import { SpxButtonComponent } from '@softpak/components/spx-button';
3
3
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
4
4
  import { faEdit, faQuestion, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';
5
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@fortawesome/angular-fontawesome";
7
8
  export class SpxInputBoxComponent {
@@ -41,6 +42,7 @@ export class SpxInputBoxComponent {
41
42
  this.faSearch = faSearch;
42
43
  this.faQuestion = faQuestion;
43
44
  this.faTimes = faTimes;
45
+ this.spxSeverityEnum = SpxSeverityEnum;
44
46
  this.spxFocused = false;
45
47
  this.spxReadonly = false;
46
48
  this.spxShowClear = true;
@@ -63,7 +65,7 @@ export class SpxInputBoxComponent {
63
65
  }
64
66
  }
65
67
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxCompact: "spxCompact", spxFocused: "spxFocused", spxLabel: "spxLabel", spxReadonly: "spxReadonly", spxRequired: "spxRequired", spxShowClear: "spxShowClear", spxShowEdit: "spxShowEdit", spxShowHelp: "spxShowHelp", spxShowLabel: "spxShowLabel", spxShowSearch: "spxShowSearch", spxShowValidationMessages: "spxShowValidationMessages", spxValue: "spxValue" }, outputs: { spxClear: "spxClear", spxSearch: "spxSearch", spxFocus: "spxFocus", spxFocusOut: "spxFocusOut", spxEdit: "spxEdit", spxHelp: "spxHelp" }, host: { listeners: { "focusin": "handleFocusIn($event)", "focusout": "handleFocusOut($event)", "document:click": "handleWindowClick($event)" } }, ngImport: i0, template: `<div class="flex rounded w-full gap-3"
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxCompact: "spxCompact", spxFocused: "spxFocused", spxLabel: "spxLabel", spxReadonly: "spxReadonly", spxRequired: "spxRequired", spxShowClear: "spxShowClear", spxShowEdit: "spxShowEdit", spxShowHelp: "spxShowHelp", spxShowLabel: "spxShowLabel", spxShowSearch: "spxShowSearch", spxAlertMessageSeverity: "spxAlertMessageSeverity", spxShowValidationMessages: "spxShowValidationMessages", spxValue: "spxValue" }, outputs: { spxClear: "spxClear", spxSearch: "spxSearch", spxFocus: "spxFocus", spxFocusOut: "spxFocusOut", spxEdit: "spxEdit", spxHelp: "spxHelp" }, host: { listeners: { "focusin": "handleFocusIn($event)", "focusout": "handleFocusOut($event)", "document:click": "handleWindowClick($event)" } }, ngImport: i0, template: `<div class="flex rounded w-full gap-3"
67
69
  [class.rounded-none]="this.spxShowValidationMessages"
68
70
  [class.rounded-t]="this.spxShowValidationMessages"
69
71
  [class.outline-none]="this.spxFocused && !this.spxReadonly"
@@ -137,7 +139,18 @@ export class SpxInputBoxComponent {
137
139
  <div class="bg-red-600 rounded-b text-white p-3">
138
140
  <ng-content select="[validation-messages]"></ng-content>
139
141
  </div>
140
- }`, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
142
+ }
143
+ @else if(this.spxAlertMessageSeverity) {
144
+ <div [class.bg-red-700]="spxSeverityEnum.error"
145
+ [class.bg-green-700]="spxSeverityEnum.success"
146
+ [class.bg-blue-700]="spxSeverityEnum.info"
147
+ [class.bg-gray-400]="spxSeverityEnum.unknown"
148
+ [class.bg-amber-700]="spxSeverityEnum.warning"
149
+ class="rounded-b text-white p-3">
150
+ <ng-content select="[validation-messages]"></ng-content>
151
+ </div>
152
+ }
153
+ `, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
141
154
  }
142
155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, decorators: [{
143
156
  type: Component,
@@ -222,7 +235,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
222
235
  <div class="bg-red-600 rounded-b text-white p-3">
223
236
  <ng-content select="[validation-messages]"></ng-content>
224
237
  </div>
225
- }`,
238
+ }
239
+ @else if(this.spxAlertMessageSeverity) {
240
+ <div [class.bg-red-700]="spxSeverityEnum.error"
241
+ [class.bg-green-700]="spxSeverityEnum.success"
242
+ [class.bg-blue-700]="spxSeverityEnum.info"
243
+ [class.bg-gray-400]="spxSeverityEnum.unknown"
244
+ [class.bg-amber-700]="spxSeverityEnum.warning"
245
+ class="rounded-b text-white p-3">
246
+ <ng-content select="[validation-messages]"></ng-content>
247
+ </div>
248
+ }
249
+ `,
226
250
  }]
227
251
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spxCompact: [{
228
252
  type: Input
@@ -244,6 +268,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
244
268
  type: Input
245
269
  }], spxShowSearch: [{
246
270
  type: Input
271
+ }], spxAlertMessageSeverity: [{
272
+ type: Input
247
273
  }], spxShowValidationMessages: [{
248
274
  type: Input
249
275
  }], spxValue: [{
@@ -270,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
270
296
  type: HostListener,
271
297
  args: ['document:click', ["$event"]]
272
298
  }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cy9zcHgtaW5wdXQtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQXFGMUYsTUFBTSxPQUFPLG9CQUFvQjtJQXVCTSxhQUFhLENBQUMsRUFBUztRQUMxRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNxQyxjQUFjLENBQUMsRUFBYztRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQTRCLENBQUM7UUFDdkQsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLGFBQTRCLENBQUM7UUFDdkQsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFDMkMsaUJBQWlCLENBQUMsRUFBUztRQUNyRSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixD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aEIsTUFBTTtnQkFDOEIsYUFBYTtzQkFBakQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBR0csY0FBYztzQkFBbkQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT1EsaUJBQWlCO3NCQUE1RCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcclxuaW1wb3J0IHsgU3B4VmFsdWVQYWlyIH0gZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XHJcbmltcG9ydCB7IGZhRWRpdCwgZmFRdWVzdGlvbiwgZmFTZWFyY2gsIGZhVGltZXMgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtYm94JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEZvbnRBd2Vzb21lTW9kdWxlXHJcbl0sXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZmxleCByb3VuZGVkIHctZnVsbCBnYXAtM1wiXHJcbiAgICAgIFtjbGFzcy5yb3VuZGVkLW5vbmVdPVwidGhpcy5zcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzXCJcclxuICAgICAgW2NsYXNzLnJvdW5kZWQtdF09XCJ0aGlzLnNweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNcIlxyXG4gICAgICBbY2xhc3Mub3V0bGluZS1ub25lXT1cInRoaXMuc3B4Rm9jdXNlZCAmJiAhdGhpcy5zcHhSZWFkb25seVwiXHJcbiAgICAgIFtjbGFzcy5yaW5nLTJdPVwidGhpcy5zcHhGb2N1c2VkICYmICF0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLnJpbmctb2Zmc2V0LTJdPVwidGhpcy5zcHhGb2N1c2VkICYmICF0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLnJpbmctYmx1ZS01MDBdPVwidGhpcy5zcHhGb2N1c2VkICYmICF0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLmJnLXdoaXRlXT1cIiF0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLmJnLWdyYXktMzAwXT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MuY3Vyc29yLW5vdC1hbGxvd2VkXT1cInRoaXMuc3B4UmVhZG9ubHlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0byBwLTNcIlxyXG4gICAgICAgIFtjbGFzcy5wLTBdPVwidGhpcy5zcHhDb21wYWN0XCJcclxuICAgICAgICBbY2xhc3MuZmxleF09XCJ0aGlzLnNweENvbXBhY3RcIlxyXG4gICAgICAgIFtjbGFzcy5pdGVtcy1jZW50ZXJdPVwidGhpcy5zcHhDb21wYWN0XCI+XHJcbiAgICAgICAgQGlmICh0aGlzLnNweFNob3dMYWJlbCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LXNtIG1iLTEgdGV4dC1ncmF5LTgwMFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5tYi0wXT1cInRoaXMuc3B4Q29tcGFjdFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5weC0zXT1cInRoaXMuc3B4Q29tcGFjdFwiPlxyXG4gICAgICAgICAgICB7e3RoaXMuc3B4TGFiZWx9fSBAaWYgKHNweFJlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtODAwXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29udHJvbHNdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vbmUgZ2FwLTEgcC0xXCI+XHJcbiAgICAgIEBpZiAodGhpcy5zcHhTaG93RWRpdCkge1xyXG4gICAgICAgIDxzcHgtYnV0dG9uXHJcbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25FZGl0KClcIlxyXG4gICAgICAgICAgW3NweEZ1bGxIZWlnaHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc3B4U2l6ZV09XCIneGwnXCJcclxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYUVkaXRcIiBjbGFzcz1cImJsb2NrIHRleHQteGxcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9zcHgtYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAodGhpcy5zcHhTaG93SGVscCkge1xyXG4gICAgICAgIDxzcHgtYnV0dG9uXHJcbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25IZWxwKClcIlxyXG4gICAgICAgICAgW3NweEZ1bGxIZWlnaHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc3B4RGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seVwiXHJcbiAgICAgICAgICBbc3B4U2l6ZV09XCIneGwnXCJcclxuICAgICAgICAgIFtzcHhUYWJJbmRleF09XCItMVwiXHJcbiAgICAgICAgICBbc3B4VHlwZV09XCInYnV0dG9uJ1wiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFRdWVzdGlvblwiIGNsYXNzPVwiYmxvY2sgdGV4dC14bFwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NweC1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICh0aGlzLnNweFNob3dTZWFyY2gpIHtcclxuICAgICAgICA8c3B4LWJ1dHRvblxyXG4gICAgICAgICAgKHNweENsaWNrKT1cIm9uU2VhcmNoKClcIlxyXG4gICAgICAgICAgW3NweEZ1bGxIZWlnaHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc3B4RGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seVwiXHJcbiAgICAgICAgICBbc3B4U2l6ZV09XCIneGwnXCJcclxuICAgICAgICAgIFtzcHhUYWJJbmRleF09XCItMVwiXHJcbiAgICAgICAgICBbc3B4VHlwZV09XCInYnV0dG9uJ1wiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFTZWFyY2hcIiBjbGFzcz1cImJsb2NrIHRleHQteGxcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9zcHgtYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAodGhpcy5zcHhTaG93Q2xlYXIpIHtcclxuICAgICAgICA8c3B4LWJ1dHRvblxyXG4gICAgICAgICAgKHNweENsaWNrKT1cIm9uQ2xlYXIoKVwiXHJcbiAgICAgICAgICBbc3B4RGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSB8fCAhdGhpcy5zcHhWYWx1ZT8udmFsdWVcIlxyXG4gICAgICAgICAgW3NweEZ1bGxIZWlnaHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc3B4U2l6ZV09XCIneGwnXCJcclxuICAgICAgICAgIFtzcHhUYWJJbmRleF09XCItMVwiXHJcbiAgICAgICAgICBbc3B4VHlwZV09XCInYnV0dG9uJ1wiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFUaW1lc1wiIGNsYXNzPVwiYmxvY2sgdGV4dC14bFwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NweC1idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKHRoaXMuc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlcykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmctcmVkLTYwMCByb3VuZGVkLWIgdGV4dC13aGl0ZSBwLTNcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdmFsaWRhdGlvbi1tZXNzYWdlc11cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfWAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dEJveENvbXBvbmVudCB7XHJcbiAgZmFFZGl0ID0gZmFFZGl0O1xyXG4gIGZhU2VhcmNoID0gZmFTZWFyY2g7XHJcbiAgZmFRdWVzdGlvbiA9IGZhUXVlc3Rpb247XHJcbiAgZmFUaW1lcyA9IGZhVGltZXM7XHJcbiAgQElucHV0KCkgc3B4Q29tcGFjdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3B4Rm9jdXNlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweExhYmVsPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNweFJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3B4UmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNweFNob3dDbGVhciA9IHRydWU7XHJcbiAgQElucHV0KCkgc3B4U2hvd0VkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNweFNob3dIZWxwPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzcHhTaG93TGFiZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweFNob3dTZWFyY2g/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNweFNob3dWYWxpZGF0aW9uTWVzc2FnZXM/OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzcHhWYWx1ZT86IFNweFZhbHVlUGFpcjxhbnk+O1xyXG4gIEBPdXRwdXQoKSBzcHhDbGVhcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhTZWFyY2g6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgc3B4Rm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgc3B4Rm9jdXNPdXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgc3B4RWRpdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhIZWxwOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicsIFtcIiRldmVudFwiXSkgaGFuZGxlRm9jdXNJbihldjogRXZlbnQpIHtcclxuICAgIHRoaXMuZW1pdEZvY3VzSW4oKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbXCIkZXZlbnRcIl0pIGhhbmRsZUZvY3VzT3V0KGV2OiBGb2N1c0V2ZW50KSB7XHJcbiAgICBjb25zdCB0aGlzRWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCByZWxhdGVkRWxlbWVudCA9IGV2LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXJlbGF0ZWRFbGVtZW50IHx8ICF0aGlzRWwuY29udGFpbnMocmVsYXRlZEVsZW1lbnQpKSB7XHJcbiAgICAgIHRoaXMuZW1pdEZvY3VzT3V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgW1wiJGV2ZW50XCJdKSBoYW5kbGVXaW5kb3dDbGljayhldjogRXZlbnQpIHtcclxuICAgIGlmIChldi5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpKSB7XHJcbiAgICAgIHRoaXMuZW1pdEZvY3VzSW4oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW1pdEZvY3VzT3V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyKCkge1xyXG4gICAgdGhpcy5zcHhDbGVhci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCgpIHtcclxuICAgIHRoaXMuc3B4U2VhcmNoLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRWRpdCgpIHtcclxuICAgIHRoaXMuc3B4RWRpdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkhlbHAoKSB7XHJcbiAgICB0aGlzLnNweEhlbHAuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0Rm9jdXNJbigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zcHhGb2N1c2VkKSB7XHJcbiAgICAgIHRoaXMuc3B4Rm9jdXMuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0Rm9jdXNPdXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zcHhGb2N1c2VkKSB7XHJcbiAgICAgIHRoaXMuc3B4Rm9jdXNPdXQuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cy9zcHgtaW5wdXQtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFnR2xFLE1BQU0sT0FBTyxvQkFBb0I7SUF5Qk0sYUFBYSxDQUFDLEVBQVM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDcUMsY0FBYyxDQUFDLEVBQWM7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBQzJDLGlCQUFpQixDQUFDLEVBQVM7UUFDckUsSUFBSSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUs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QkFBakIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQzhCLGFBQWE7c0JBQWpELFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUdHLGNBQWM7c0JBQW5ELFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9RLGlCQUFpQjtzQkFBNUQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQgeyBmYUVkaXQsIGZhUXVlc3Rpb24sIGZhU2VhcmNoLCBmYVRpbWVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcclxuaW1wb3J0IHsgU3B4U2V2ZXJpdHlFbnVtIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NweC1pbnB1dC1ib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRm9udEF3ZXNvbWVNb2R1bGVcclxuXSxcclxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJmbGV4IHJvdW5kZWQgdy1mdWxsIGdhcC0zXCJcclxuICAgICAgW2NsYXNzLnJvdW5kZWQtbm9uZV09XCJ0aGlzLnNweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNcIlxyXG4gICAgICBbY2xhc3Mucm91bmRlZC10XT1cInRoaXMuc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc1wiXHJcbiAgICAgIFtjbGFzcy5vdXRsaW5lLW5vbmVdPVwidGhpcy5zcHhGb2N1c2VkICYmICF0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLnJpbmctMl09XCJ0aGlzLnNweEZvY3VzZWQgJiYgIXRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MucmluZy1vZmZzZXQtMl09XCJ0aGlzLnNweEZvY3VzZWQgJiYgIXRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MucmluZy1ibHVlLTUwMF09XCJ0aGlzLnNweEZvY3VzZWQgJiYgIXRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MuYmctd2hpdGVdPVwiIXRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MuYmctZ3JheS0zMDBdPVwidGhpcy5zcHhSZWFkb25seVwiXHJcbiAgICAgIFtjbGFzcy5jdXJzb3Itbm90LWFsbG93ZWRdPVwidGhpcy5zcHhSZWFkb25seVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC1hdXRvIHAtM1wiXHJcbiAgICAgICAgW2NsYXNzLnAtMF09XCJ0aGlzLnNweENvbXBhY3RcIlxyXG4gICAgICAgIFtjbGFzcy5mbGV4XT1cInRoaXMuc3B4Q29tcGFjdFwiXHJcbiAgICAgICAgW2NsYXNzLml0ZW1zLWNlbnRlcl09XCJ0aGlzLnNweENvbXBhY3RcIj5cclxuICAgICAgICBAaWYgKHRoaXMuc3B4U2hvd0xhYmVsKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gbWItMSB0ZXh0LWdyYXktODAwXCJcclxuICAgICAgICAgICAgW2NsYXNzLm1iLTBdPVwidGhpcy5zcHhDb21wYWN0XCJcclxuICAgICAgICAgICAgW2NsYXNzLnB4LTNdPVwidGhpcy5zcHhDb21wYWN0XCI+XHJcbiAgICAgICAgICAgIHt7dGhpcy5zcHhMYWJlbH19IEBpZiAoc3B4UmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC04MDBcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb250cm9sc11cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtbm9uZSBnYXAtMSBwLTFcIj5cclxuICAgICAgQGlmICh0aGlzLnNweFNob3dFZGl0KSB7XHJcbiAgICAgICAgPHNweC1idXR0b25cclxuICAgICAgICAgIChzcHhDbGljayk9XCJvbkVkaXQoKVwiXHJcbiAgICAgICAgICBbc3B4RnVsbEhlaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxyXG4gICAgICAgICAgW3NweFR5cGVdPVwiJ2J1dHRvbidcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhRWRpdFwiIGNsYXNzPVwiYmxvY2sgdGV4dC14bFwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NweC1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICh0aGlzLnNweFNob3dIZWxwKSB7XHJcbiAgICAgICAgPHNweC1idXR0b25cclxuICAgICAgICAgIChzcHhDbGljayk9XCJvbkhlbHAoKVwiXHJcbiAgICAgICAgICBbc3B4RnVsbEhlaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxyXG4gICAgICAgICAgW3NweFRhYkluZGV4XT1cIi0xXCJcclxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVF1ZXN0aW9uXCIgY2xhc3M9XCJibG9jayB0ZXh0LXhsXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvc3B4LWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHRoaXMuc3B4U2hvd1NlYXJjaCkge1xyXG4gICAgICAgIDxzcHgtYnV0dG9uXHJcbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25TZWFyY2goKVwiXHJcbiAgICAgICAgICBbc3B4RnVsbEhlaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxyXG4gICAgICAgICAgW3NweFRhYkluZGV4XT1cIi0xXCJcclxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVNlYXJjaFwiIGNsYXNzPVwiYmxvY2sgdGV4dC14bFwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NweC1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICh0aGlzLnNweFNob3dDbGVhcikge1xyXG4gICAgICAgIDxzcHgtYnV0dG9uXHJcbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25DbGVhcigpXCJcclxuICAgICAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5IHx8ICF0aGlzLnNweFZhbHVlPy52YWx1ZVwiXHJcbiAgICAgICAgICBbc3B4RnVsbEhlaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxyXG4gICAgICAgICAgW3NweFRhYkluZGV4XT1cIi0xXCJcclxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVRpbWVzXCIgY2xhc3M9XCJibG9jayB0ZXh0LXhsXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvc3B4LWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAodGhpcy5zcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiZy1yZWQtNjAwIHJvdW5kZWQtYiB0ZXh0LXdoaXRlIHAtM1wiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt2YWxpZGF0aW9uLW1lc3NhZ2VzXVwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZih0aGlzLnNweEFsZXJ0TWVzc2FnZVNldmVyaXR5KSB7XHJcbiAgICAgIDxkaXYgIFtjbGFzcy5iZy1yZWQtNzAwXT1cInNweFNldmVyaXR5RW51bS5lcnJvclwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5iZy1ncmVlbi03MDBdPVwic3B4U2V2ZXJpdHlFbnVtLnN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYmctYmx1ZS03MDBdPVwic3B4U2V2ZXJpdHlFbnVtLmluZm9cIlxyXG4gICAgICAgICAgICBbY2xhc3MuYmctZ3JheS00MDBdPVwic3B4U2V2ZXJpdHlFbnVtLnVua25vd25cIlxyXG4gICAgICAgICAgICBbY2xhc3MuYmctYW1iZXItNzAwXT1cInNweFNldmVyaXR5RW51bS53YXJuaW5nXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWIgdGV4dC13aGl0ZSBwLTNcIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt2YWxpZGF0aW9uLW1lc3NhZ2VzXVwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRCb3hDb21wb25lbnQge1xyXG4gIGZhRWRpdCA9IGZhRWRpdDtcclxuICBmYVNlYXJjaCA9IGZhU2VhcmNoO1xyXG4gIGZhUXVlc3Rpb24gPSBmYVF1ZXN0aW9uO1xyXG4gIGZhVGltZXMgPSBmYVRpbWVzO1xyXG4gIHNweFNldmVyaXR5RW51bSA9IFNweFNldmVyaXR5RW51bTtcclxuICBASW5wdXQoKSBzcHhDb21wYWN0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3B4TGFiZWw/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhSZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3B4U2hvd0NsZWFyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTaG93RWRpdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3B4U2hvd0hlbHA/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNweFNob3dMYWJlbCA9IHRydWU7XHJcbiAgQElucHV0KCkgc3B4U2hvd1NlYXJjaD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3B4QWxlcnRNZXNzYWdlU2V2ZXJpdHk/OiBTcHhTZXZlcml0eUVudW07XHJcbiAgQElucHV0KCkgc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlcz86IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNweFZhbHVlPzogU3B4VmFsdWVQYWlyPGFueT47XHJcbiAgQE91dHB1dCgpIHNweENsZWFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweFNlYXJjaDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhGb2N1c091dDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhFZGl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweEhlbHA6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgW1wiJGV2ZW50XCJdKSBoYW5kbGVGb2N1c0luKGV2OiBFdmVudCkge1xyXG4gICAgdGhpcy5lbWl0Rm9jdXNJbigpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFtcIiRldmVudFwiXSkgaGFuZGxlRm9jdXNPdXQoZXY6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IHRoaXNFbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHJlbGF0ZWRFbGVtZW50ID0gZXYucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghcmVsYXRlZEVsZW1lbnQgfHwgIXRoaXNFbC5jb250YWlucyhyZWxhdGVkRWxlbWVudCkpIHtcclxuICAgICAgdGhpcy5lbWl0Rm9jdXNPdXQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbXCIkZXZlbnRcIl0pIGhhbmRsZVdpbmRvd0NsaWNrKGV2OiBFdmVudCkge1xyXG4gICAgaWYgKGV2LmNvbXBvc2VkUGF0aCgpLmluY2x1ZGVzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCkpIHtcclxuICAgICAgdGhpcy5lbWl0Rm9jdXNJbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbWl0Rm9jdXNPdXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICB0aGlzLnNweENsZWFyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zcHhTZWFyY2guZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25FZGl0KCkge1xyXG4gICAgdGhpcy5zcHhFZGl0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uSGVscCgpIHtcclxuICAgIHRoaXMuc3B4SGVscC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRGb2N1c0luKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNweEZvY3VzZWQpIHtcclxuICAgICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRGb2N1c091dCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNweEZvY3VzZWQpIHtcclxuICAgICAgdGhpcy5zcHhGb2N1c091dC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -236,7 +236,7 @@ export class SpxInputComponent {
236
236
  <div validation-messages>
237
237
  <ng-content></ng-content>
238
238
  </div>
239
- </spx-input-box>`, isInline: true, dependencies: [{ kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxCompact", "spxFocused", "spxLabel", "spxReadonly", "spxRequired", "spxShowClear", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxShowSearch", "spxShowValidationMessages", "spxValue"], outputs: ["spxClear", "spxSearch", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxReadonly", "spxValidators", "value", "spxFocused", "spxSelectDay", "spxSelectMonth", "spxSuggestions"], outputs: ["valueChange", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxAutocomplete", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTimeComponent, selector: "spx-input-time", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
239
+ </spx-input-box>`, isInline: true, dependencies: [{ kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxCompact", "spxFocused", "spxLabel", "spxReadonly", "spxRequired", "spxShowClear", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxShowSearch", "spxAlertMessageSeverity", "spxShowValidationMessages", "spxValue"], outputs: ["spxClear", "spxSearch", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxReadonly", "spxValidators", "value", "spxFocused", "spxSelectDay", "spxSelectMonth", "spxSuggestions"], outputs: ["valueChange", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxAutocomplete", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTimeComponent, selector: "spx-input-time", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
240
240
  }
241
241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, decorators: [{
242
242
  type: Component,
@@ -458,4 +458,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
458
458
  type: HostListener,
459
459
  args: ['focusout']
460
460
  }] } });
461
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQXVJbEYsTUFBTSxPQUFPLGlCQUFpQjtJQXJJOUI7UUFzSVcsYUFBUSxHQUFXLE9BQU8sQ0FBQztRQUkzQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLDhCQUF5QixHQUFnQyxLQUFLLENBQUM7UUFFL0QsbUJBQWMsR0FBOEMsRUFBRSxDQUFDO1FBQy9ELFlBQU8sR0FBcUIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBR2xELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2RCxhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEQsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEQsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZELFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2RCxjQUFTLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFNMUQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQTJFcEIsYUFBUSxHQUF5QixHQUFHLEVBQUUsR0FBTSxDQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFNLENBQUMsQ0FBQztLQXlCOUM7SUFwR0MsVUFBVTtRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVO1FBQ1IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxXQUFXO1FBQ1QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLEtBQUssZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1lBQ25DLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1lBQzNCLEtBQUssZ0JBQWdCLENBQUMsYUFBYTtnQkFDakMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsTUFBTTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsS0FBSztnQkFDekIsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsSUFBSTtnQkFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDOUIsTUFBTTtRQUNSLENBQUM7SUFDTCxDQUFDO0lBTUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLG1EQUFtRDtJQUMxRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUdELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBd0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxtQ0FBbUM7SUFDekQsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzsrR0ExSVUsaUJBQWlCO21HQUFqQixpQkFBaUIsd2lDQXRIakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysc0VBaUpVLHNCQUFzQiw4RUFDdEIsdUJBQXVCLDRFQUN2QixxQkFBcUIsNEVBQ3JCLHFCQUFxQiw2RUFDckIsc0JBQXNCLGdEQXBKdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBNkdPLDREQTVIZixvQkFBb0IsdVZBQ3BCLHFCQUFxQix1UEFDckIsc0JBQXNCLHVPQUN0Qix1QkFBdUIsd05BQ3ZCLHNCQUFzQiw4TUFDdEIscUJBQXFCLHNVQUNyQixxQkFBcUI7OzRGQXdIWixpQkFBaUI7a0JBckk3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSwyQkFBMkI7cUJBQzNDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixxQkFBcUI7cUJBQ3hCO29CQUNDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLG1CQUFtQjs0QkFDOUIsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21CQTZHTztpQkFDbEI7OEJBRVUsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQzRCLFVBQVU7c0JBQTVDLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUNHLFdBQVc7c0JBQTlDLFNBQVM7dUJBQUMsdUJBQXVCO2dCQUNBLFNBQVM7c0JBQTFDLFNBQVM7dUJBQUMscUJBQXFCO2dCQUNFLFNBQVM7c0JBQTFDLFNBQVM7dUJBQUMscUJBQXFCO2dCQUNHLFVBQVU7c0JBQTVDLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUN4QixVQUFVO3NCQUFsQixLQUFLO2dCQTJGTixnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dEJveENvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC10ZXh0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dEZsb2F0Q29tcG9uZW50IH0gZnJvbSAnLi9zcHgtaW5wdXQtZmxvYXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3B4SW5wdXROdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC1udW1iZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3B4SW5wdXRSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LXJhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweElucHV0VHlwZUVudW0gfSBmcm9tICcuL3NweC1pbnB1dC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTcHhJbnB1dFRpbWVDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC10aW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweElucHV0RGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGhvc3Q6IHtcclxuICAgICcoc3B4Q2hhbmdlKSc6ICdoYW5kbGVDaGFuZ2VFdmVudCgkZXZlbnQpJ1xyXG4gIH0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU3B4SW5wdXRCb3hDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dERhdGVDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dEZsb2F0Q29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXROdW1iZXJDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dFJhZGlvQ29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXRUZXh0Q29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXRUaW1lQ29tcG9uZW50XHJcbl0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogU3B4SW5wdXRDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICB0ZW1wbGF0ZTogYDxzcHgtaW5wdXQtYm94XHJcbiAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgW3NweExhYmVsXT1cInRoaXMuc3B4TGFiZWxcIlxyXG4gICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgW3NweFJlcXVpcmVkXT1cInRoaXMuc3B4UmVxdWlyZWRcIlxyXG4gICAgW3NweFZhbHVlXT1cInRoaXMudmFsdWVcIlxyXG4gICAgW3NweFNob3dIZWxwXT1cInRoaXMuc3B4U2hvd0hlbHBcIlxyXG4gICAgW3NweENvbXBhY3RdPVwidGhpcy5zcHhDb21wYWN0XCJcclxuICAgIFtzcHhTaG93Q2xlYXJdPVwidGhpcy5zcHhTaG93Q2xlYXJcIlxyXG4gICAgW3NweFNob3dFZGl0XT1cInRoaXMuc3B4U2hvd0VkaXRcIlxyXG4gICAgW3NweFNob3dMYWJlbF09XCJ0aGlzLnNweFNob3dMYWJlbFwiXHJcbiAgICBbc3B4U2hvd1NlYXJjaF09XCJ0aGlzLnNweFNob3dTZWFyY2ggPyB0aGlzLnNweFNob3dTZWFyY2ggOiB0aGlzLnNweFR5cGUgPT09ICdhdXRvY29tcGxldGUnXCJcclxuICAgIFtzcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzXT1cInRoaXMuc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc1wiXHJcbiAgICAoc3B4Q2xlYXIpPVwidGhpcy5oYW5kbGVDbGVhcigpXCJcclxuICAgIChzcHhFZGl0KT1cInRoaXMuaGFuZGxlRWRpdCgpXCJcclxuICAgIChzcHhIZWxwKT1cInRoaXMuaGFuZGxlSGVscCgpXCJcclxuICAgIChzcHhGb2N1cyk9XCJ0aGlzLnNldEZvY3VzSW4oKVwiXHJcbiAgICAoc3B4Rm9jdXNPdXQpPVwidGhpcy5zZXRGb2N1c091dCgpXCJcclxuICAgIChzcHhTZWFyY2gpPVwidGhpcy5oYW5kbGVTZWFyY2goKVwiPlxyXG4gICAgPGRpdiBjb250cm9scz5cclxuICAgICAgQGlmICh0aGlzLnNweFR5cGUgPT09ICdhdXRvY29tcGxldGUnIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXknIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ3RleHQnIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgKHNweEJsdXJGcm9tQ2hpbGQpPVwidGhpcy5oYW5kbGVCbHVyKClcIlxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9jb21wbGV0ZV09XCJ0aGlzLnNweEF1dG9jb21wbGV0ZSA/IHRoaXMuc3B4QXV0b2NvbXBsZXRlIDogdW5kZWZpbmVkXCJcclxuICAgICAgICAgIFtzcHhBdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXNcIlxyXG4gICAgICAgICAgW3NweENhcGl0YWxpemVdPVwidGhpcy5zcHhDYXBpdGFsaXplXCJcclxuICAgICAgICAgIFtzcHhGb2N1c2VkXT1cInRoaXMuc3B4Rm9jdXNlZFwiXHJcbiAgICAgICAgICBbc3B4SW5wdXRNb2RlXT1cInRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInID8gJ251bWVyaWMnIDogdGhpcy5zcHhJbnB1dE1vZGVcIlxyXG4gICAgICAgICAgW3NweE5hbWVdPVwidGhpcy5zcHhOYW1lXCJcclxuICAgICAgICAgIFtzcHhQYXR0ZXJuXT1cInRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInID8gJ1swLTldKicgOiB0aGlzLnNweFBhdHRlcm5cIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFN1Z2dlc3Rpb25zXT1cInRoaXMuc3B4U3VnZ2VzdGlvbnNcIlxyXG4gICAgICAgICAgW3NweFR5cGVdPVwidGhpcy5zcHhUeXBlXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LXRleHQ+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICh0aGlzLnNweFR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtZGF0ZVxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEZvY3VzZWRdPVwidGhpcy5zcHhGb2N1c2VkXCJcclxuICAgICAgICAgIFtzcHhNYXhdPVwidGhpcy5zcHhNYXghXCJcclxuICAgICAgICAgIFtzcHhNaW5dPVwidGhpcy5zcHhNaW4hXCJcclxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTZWxlY3REYXldPVwidGhpcy5zcHhTZWxlY3REYXlcIlxyXG4gICAgICAgICAgW3NweFNlbGVjdE1vbnRoXT1cInRoaXMuc3B4U2VsZWN0TW9udGhcIlxyXG4gICAgICAgICAgW3NweFZhbGlkYXRvcnNdPVwidGhpcy5zcHhWYWxpZGF0b3JzXCJcclxuICAgICAgICAgIFsodmFsdWUpXT1cInRoaXMudmFsdWVcIlxyXG4gICAgICAgID48L3NweC1pbnB1dC1kYXRlPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAodGhpcy5zcHhUeXBlID09PSAnZmxvYXQnKSB7XHJcbiAgICAgICAgPHNweC1pbnB1dC1mbG9hdFxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1c1wiXHJcbiAgICAgICAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgICAgICAgW3NweE5hbWVdPVwidGhpcy5zcHhOYW1lXCJcclxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTdGVwXT1cInRoaXMuc3B4U3RlcFwiXHJcbiAgICAgICAgICBbc3B4VmFsaWRhdG9yc109XCJ0aGlzLnNweFZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cInRoaXMudmFsdWVcIlxyXG4gICAgICAgID48L3NweC1pbnB1dC1mbG9hdD5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHRoaXMuc3B4VHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICA8c3B4LWlucHV0LW51bWJlclxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1c1wiXHJcbiAgICAgICAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgICAgICAgW3NweElucHV0TW9kZV09XCJ0aGlzLnNweElucHV0TW9kZVwiXHJcbiAgICAgICAgICBbc3B4TmFtZV09XCJ0aGlzLnNweE5hbWVcIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFN0ZXBdPVwidGhpcy5zcHhTdGVwXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LW51bWJlcj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHRoaXMuc3B4VHlwZSA9PT0gJ3JhZGlvJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtcmFkaW9cclxuICAgICAgICAgICNyYWRpb0lucHV0XHJcbiAgICAgICAgICAoc3B4Q2hhbmdlKT1cInRoaXMuaGFuZGxlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgW3NweEZvY3VzZWRdPVwidGhpcy5zcHhGb2N1c2VkXCJcclxuICAgICAgICAgIFtzcHhOYW1lXT1cInRoaXMuc3B4TmFtZVwiXHJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seVwiXHJcbiAgICAgICAgICBbc3B4U2hvd0xhYmVsXT1cInRoaXMuc3B4U2hvd0xhYmVsXCJcclxuICAgICAgICAgIFtzcHhTdWdnZXN0aW9uc109XCJ0aGlzLnNweFN1Z2dlc3Rpb25zXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LXJhZGlvPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAodGhpcy5zcHhUeXBlID09PSAndGltZScpIHtcclxuICAgICAgICA8c3B4LWlucHV0LXRpbWVcclxuICAgICAgICAgICN0aW1lSW5wdXRcclxuICAgICAgICAgIChzcHhDaGFuZ2UpPVwidGhpcy5oYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoc3B4Rm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygpXCJcclxuICAgICAgICAgIFtzcHhGb2N1c2VkXT1cInRoaXMuc3B4Rm9jdXNlZFwiXHJcbiAgICAgICAgICBbc3B4TmFtZV09XCJ0aGlzLnNweE5hbWVcIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFZhbGlkYXRvcnNdPVwidGhpcy5zcHhWYWxpZGF0b3JzXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJ0aGlzLnZhbHVlXCJcclxuICAgICAgICA+PC9zcHgtaW5wdXQtdGltZT5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IHZhbGlkYXRpb24tbWVzc2FnZXM+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvc3B4LWlucHV0LWJveD5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNweExhYmVsOiBzdHJpbmcgPSAnbGFiZWwnO1xyXG4gIEBJbnB1dCgpIHNweE1heD86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhNaW4/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweEF1dG9jb21wbGV0ZT86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhBdXRvZm9jdXMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhJbnB1dE1vZGU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4UGF0dGVybj86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweFNlbGVjdE1vbnRoID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTZWxlY3REYXkgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweFNob3dFZGl0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3B4U2hvd0hlbHAgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93TGFiZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweENvbXBhY3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93Q2xlYXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweFNob3dTZWFyY2ggPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTdGVwPzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zOiBTcHhWYWx1ZVBhaXI8Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZz5bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNweFR5cGU6IFNweElucHV0VHlwZUVudW0gPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XHJcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycyE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHZhbHVlITogU3B4VmFsdWVQYWlyPGFueT47XHJcbiAgQElucHV0KCkgc3B4Q2FwaXRhbGl6ZSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBzcHhCbHVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweENsZWFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XHJcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweEVkaXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgc3B4SGVscDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhTZWFyY2g6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAVmlld0NoaWxkKFNweElucHV0RmxvYXRDb21wb25lbnQpIGZsb2F0SW5wdXQ/OiBTcHhJbnB1dEZsb2F0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoU3B4SW5wdXROdW1iZXJDb21wb25lbnQpIG51bWJlcklucHV0PzogU3B4SW5wdXROdW1iZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChTcHhJbnB1dFRleHRDb21wb25lbnQpIHRleHRJbnB1dD86IFNweElucHV0VGV4dENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFNweElucHV0VGltZUNvbXBvbmVudCkgdGltZUlucHV0PzogU3B4SW5wdXRUaW1lQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoU3B4SW5wdXRSYWRpb0NvbXBvbmVudCkgcmFkaW9JbnB1dD86IFNweElucHV0UmFkaW9Db21wb25lbnQ7XHJcbiAgQElucHV0KCkgc3B4Rm9jdXNlZCA9IGZhbHNlO1xyXG4gIGhhbmRsZUJsdXIoKSB7XHJcbiAgICB0aGlzLnNweEJsdXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSBldmVudDtcclxuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGVhcigpIHtcclxuICAgIHRoaXMuc3B4Q2xlYXIuZW1pdCgpO1xyXG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMucGFzc0ZvY3VzVG9Db250cm9sKCk7XHJcbiAgICB0aGlzLnZhbHVlID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogbnVsbCxcclxuICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZvY3VzKCkge1xyXG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgICB0aGlzLnNweEZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zcHhTZWFyY2guZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXNJbigpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNweEZvY3VzZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBhc3NGb2N1c1RvQ29udHJvbCgpO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBzZXRGb2N1c091dCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNweEZvY3VzZWQgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuc3B4VHlwZSA9PT0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbykge1xyXG4gICAgICAgIHRoaXMucmFkaW9JbnB1dD8uc3B4Rm9jdXNPdXQoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFZGl0KCkge1xyXG4gICAgdGhpcy5zcHhFZGl0LmVtaXQoKTtcclxuICAgIHRoaXMuc3B4Rm9jdXNlZCA9IHRydWU7XHJcbiAgfVxyXG4gIFxyXG4gIGhhbmRsZUhlbHAoKSB7XHJcbiAgICB0aGlzLnNweEhlbHAuZW1pdCgpO1xyXG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFzc0ZvY3VzVG9Db250cm9sKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLnNweFR5cGUpIHtcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLmF1dG9jb21wbGV0ZTpcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ6XHJcbiAgICAgIGNhc2UgU3B4SW5wdXRUeXBlRW51bS5vdmVybGF5TnVtYmVyOlxyXG4gICAgICAgIHRoaXMudGV4dElucHV0Py5zcHhTZXRGb2N1cygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFNweElucHV0VHlwZUVudW0ubnVtYmVyOlxyXG4gICAgICAgIHRoaXMubnVtYmVySW5wdXQ/LnNweFNldEZvY3VzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3B4SW5wdXRUeXBlRW51bS5yYWRpbzpcclxuICAgICAgICB0aGlzLnJhZGlvSW5wdXQ/LnNweEZvY3VzSW4oKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLnRpbWU6XHJcbiAgICAgICAgdGhpcy50aW1lSW5wdXQ/LnNweFNldEZvY3VzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4gey8qKi99O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gey8qKi99O1xyXG4gIHByb3RlY3RlZCBsYXN0VmFsdWU6IGFueTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTsgLy8gaGllciBrb210IGluaXRpZWxlIHdhYXJkZSB2YW4gZm9ybWNvbnRyb2wgYmlubmVuXHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFuZ2VFdmVudCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMubGFzdFZhbHVlKSB7XHJcbiAgICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxyXG4gIF9oYW5kbGVCbHVyRXZlbnQoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjsgLy8gZW1pdCB2ZXJhbmRlcmluZyBhYW4gZm9ybWNvbnRyb2xcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG59XHJcbiJdfQ==
461
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQXVJbEYsTUFBTSxPQUFPLGlCQUFpQjtJQXJJOUI7UUFzSVcsYUFBUSxHQUFXLE9BQU8sQ0FBQztRQUkzQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFB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LFVBQVU7c0JBQTVDLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUN4QixVQUFVO3NCQUFsQixLQUFLO2dCQTJGTixnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dEJveENvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC10ZXh0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dEZsb2F0Q29tcG9uZW50IH0gZnJvbSAnLi9zcHgtaW5wdXQtZmxvYXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3B4SW5wdXROdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC1udW1iZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3B4SW5wdXRSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LXJhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweElucHV0VHlwZUVudW0gfSBmcm9tICcuL3NweC1pbnB1dC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTcHhJbnB1dFRpbWVDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC10aW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweElucHV0RGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGhvc3Q6IHtcclxuICAgICcoc3B4Q2hhbmdlKSc6ICdoYW5kbGVDaGFuZ2VFdmVudCgkZXZlbnQpJ1xyXG4gIH0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU3B4SW5wdXRCb3hDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dERhdGVDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dEZsb2F0Q29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXROdW1iZXJDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dFJhZGlvQ29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXRUZXh0Q29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXRUaW1lQ29tcG9uZW50XHJcbl0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogU3B4SW5wdXRDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICB0ZW1wbGF0ZTogYDxzcHgtaW5wdXQtYm94XHJcbiAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgW3NweExhYmVsXT1cInRoaXMuc3B4TGFiZWxcIlxyXG4gICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgW3NweFJlcXVpcmVkXT1cInRoaXMuc3B4UmVxdWlyZWRcIlxyXG4gICAgW3NweFZhbHVlXT1cInRoaXMudmFsdWVcIlxyXG4gICAgW3NweFNob3dIZWxwXT1cInRoaXMuc3B4U2hvd0hlbHBcIlxyXG4gICAgW3NweENvbXBhY3RdPVwidGhpcy5zcHhDb21wYWN0XCJcclxuICAgIFtzcHhTaG93Q2xlYXJdPVwidGhpcy5zcHhTaG93Q2xlYXJcIlxyXG4gICAgW3NweFNob3dFZGl0XT1cInRoaXMuc3B4U2hvd0VkaXRcIlxyXG4gICAgW3NweFNob3dMYWJlbF09XCJ0aGlzLnNweFNob3dMYWJlbFwiXHJcbiAgICBbc3B4U2hvd1NlYXJjaF09XCJ0aGlzLnNweFNob3dTZWFyY2ggPyB0aGlzLnNweFNob3dTZWFyY2ggOiB0aGlzLnNweFR5cGUgPT09ICdhdXRvY29tcGxldGUnXCJcclxuICAgIFtzcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzXT1cInRoaXMuc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc1wiXHJcbiAgICAoc3B4Q2xlYXIpPVwidGhpcy5oYW5kbGVDbGVhcigpXCJcclxuICAgIChzcHhFZGl0KT1cInRoaXMuaGFuZGxlRWRpdCgpXCJcclxuICAgIChzcHhIZWxwKT1cInRoaXMuaGFuZGxlSGVscCgpXCJcclxuICAgIChzcHhGb2N1cyk9XCJ0aGlzLnNldEZvY3VzSW4oKVwiXHJcbiAgICAoc3B4Rm9jdXNPdXQpPVwidGhpcy5zZXRGb2N1c091dCgpXCJcclxuICAgIChzcHhTZWFyY2gpPVwidGhpcy5oYW5kbGVTZWFyY2goKVwiPlxyXG4gICAgPGRpdiBjb250cm9scz5cclxuICAgICAgQGlmICh0aGlzLnNweFR5cGUgPT09ICdhdXRvY29tcGxldGUnIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXknIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ3RleHQnIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgKHNweEJsdXJGcm9tQ2hpbGQpPVwidGhpcy5oYW5kbGVCbHVyKClcIlxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9jb21wbGV0ZV09XCJ0aGlzLnNweEF1dG9jb21wbGV0ZSA/IHRoaXMuc3B4QXV0b2NvbXBsZXRlIDogdW5kZWZpbmVkXCJcclxuICAgICAgICAgIFtzcHhBdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXNcIlxyXG4gICAgICAgICAgW3NweENhcGl0YWxpemVdPVwidGhpcy5zcHhDYXBpdGFsaXplXCJcclxuICAgICAgICAgIFtzcHhGb2N1c2VkXT1cInRoaXMuc3B4Rm9jdXNlZFwiXHJcbiAgICAgICAgICBbc3B4SW5wdXRNb2RlXT1cInRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInID8gJ251bWVyaWMnIDogdGhpcy5zcHhJbnB1dE1vZGVcIlxyXG4gICAgICAgICAgW3NweE5hbWVdPVwidGhpcy5zcHhOYW1lXCJcclxuICAgICAgICAgIFtzcHhQYXR0ZXJuXT1cInRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInID8gJ1swLTldKicgOiB0aGlzLnNweFBhdHRlcm5cIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFN1Z2dlc3Rpb25zXT1cInRoaXMuc3B4U3VnZ2VzdGlvbnNcIlxyXG4gICAgICAgICAgW3NweFR5cGVdPVwidGhpcy5zcHhUeXBlXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LXRleHQ+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICh0aGlzLnNweFR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtZGF0ZVxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEZvY3VzZWRdPVwidGhpcy5zcHhGb2N1c2VkXCJcclxuICAgICAgICAgIFtzcHhNYXhdPVwidGhpcy5zcHhNYXghXCJcclxuICAgICAgICAgIFtzcHhNaW5dPVwidGhpcy5zcHhNaW4hXCJcclxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTZWxlY3REYXldPVwidGhpcy5zcHhTZWxlY3REYXlcIlxyXG4gICAgICAgICAgW3NweFNlbGVjdE1vbnRoXT1cInRoaXMuc3B4U2VsZWN0TW9udGhcIlxyXG4gICAgICAgICAgW3NweFZhbGlkYXRvcnNdPVwidGhpcy5zcHhWYWxpZGF0b3JzXCJcclxuICAgICAgICAgIFsodmFsdWUpXT1cInRoaXMudmFsdWVcIlxyXG4gICAgICAgID48L3NweC1pbnB1dC1kYXRlPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAodGhpcy5zcHhUeXBlID09PSAnZmxvYXQnKSB7XHJcbiAgICAgICAgPHNweC1pbnB1dC1mbG9hdFxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1c1wiXHJcbiAgICAgICAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgICAgICAgW3NweE5hbWVdPVwidGhpcy5zcHhOYW1lXCJcclxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTdGVwXT1cInRoaXMuc3B4U3RlcFwiXHJcbiAgICAgICAgICBbc3B4VmFsaWRhdG9yc109XCJ0aGlzLnNweFZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cInRoaXMudmFsdWVcIlxyXG4gICAgICAgID48L3NweC1pbnB1dC1mbG9hdD5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHRoaXMuc3B4VHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICA8c3B4LWlucHV0LW51bWJlclxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1c1wiXHJcbiAgICAgICAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgICAgICAgW3NweElucHV0TW9kZV09XCJ0aGlzLnNweElucHV0TW9kZVwiXHJcbiAgICAgICAgICBbc3B4TmFtZV09XCJ0aGlzLnNweE5hbWVcIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFN0ZXBdPVwidGhpcy5zcHhTdGVwXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LW51bWJlcj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHRoaXMuc3B4VHlwZSA9PT0gJ3JhZGlvJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtcmFkaW9cclxuICAgICAgICAgICNyYWRpb0lucHV0XHJcbiAgICAgICAgICAoc3B4Q2hhbmdlKT1cInRoaXMuaGFuZGxlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgW3NweEZvY3VzZWRdPVwidGhpcy5zcHhGb2N1c2VkXCJcclxuICAgICAgICAgIFtzcHhOYW1lXT1cInRoaXMuc3B4TmFtZVwiXHJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seVwiXHJcbiAgICAgICAgICBbc3B4U2hvd0xhYmVsXT1cInRoaXMuc3B4U2hvd0xhYmVsXCJcclxuICAgICAgICAgIFtzcHhTdWdnZXN0aW9uc109XCJ0aGlzLnNweFN1Z2dlc3Rpb25zXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LXJhZGlvPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAodGhpcy5zcHhUeXBlID09PSAndGltZScpIHtcclxuICAgICAgICA8c3B4LWlucHV0LXRpbWVcclxuICAgICAgICAgICN0aW1lSW5wdXRcclxuICAgICAgICAgIChzcHhDaGFuZ2UpPVwidGhpcy5oYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoc3B4Rm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygpXCJcclxuICAgICAgICAgIFtzcHhGb2N1c2VkXT1cInRoaXMuc3B4Rm9jdXNlZFwiXHJcbiAgICAgICAgICBbc3B4TmFtZV09XCJ0aGlzLnNweE5hbWVcIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFZhbGlkYXRvcnNdPVwidGhpcy5zcHhWYWxpZGF0b3JzXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJ0aGlzLnZhbHVlXCJcclxuICAgICAgICA+PC9zcHgtaW5wdXQtdGltZT5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IHZhbGlkYXRpb24tbWVzc2FnZXM+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvc3B4LWlucHV0LWJveD5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNweExhYmVsOiBzdHJpbmcgPSAnbGFiZWwnO1xyXG4gIEBJbnB1dCgpIHNweE1heD86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhNaW4/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweEF1dG9jb21wbGV0ZT86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhBdXRvZm9jdXMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhJbnB1dE1vZGU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4UGF0dGVybj86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweFNlbGVjdE1vbnRoID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTZWxlY3REYXkgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweFNob3dFZGl0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3B4U2hvd0hlbHAgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93TGFiZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweENvbXBhY3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93Q2xlYXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweFNob3dTZWFyY2ggPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTdGVwPzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zOiBTcHhWYWx1ZVBhaXI8Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZz5bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNweFR5cGU6IFNweElucHV0VHlwZUVudW0gPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XHJcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycyE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHZhbHVlITogU3B4VmFsdWVQYWlyPGFueT47XHJcbiAgQElucHV0KCkgc3B4Q2FwaXRhbGl6ZSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBzcHhCbHVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweENsZWFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XHJcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweEVkaXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgc3B4SGVscDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhTZWFyY2g6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAVmlld0NoaWxkKFNweElucHV0RmxvYXRDb21wb25lbnQpIGZsb2F0SW5wdXQ/OiBTcHhJbnB1dEZsb2F0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoU3B4SW5wdXROdW1iZXJDb21wb25lbnQpIG51bWJlcklucHV0PzogU3B4SW5wdXROdW1iZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChTcHhJbnB1dFRleHRDb21wb25lbnQpIHRleHRJbnB1dD86IFNweElucHV0VGV4dENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFNweElucHV0VGltZUNvbXBvbmVudCkgdGltZUlucHV0PzogU3B4SW5wdXRUaW1lQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoU3B4SW5wdXRSYWRpb0NvbXBvbmVudCkgcmFkaW9JbnB1dD86IFNweElucHV0UmFkaW9Db21wb25lbnQ7XHJcbiAgQElucHV0KCkgc3B4Rm9jdXNlZCA9IGZhbHNlO1xyXG4gIGhhbmRsZUJsdXIoKSB7XHJcbiAgICB0aGlzLnNweEJsdXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSBldmVudDtcclxuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGVhcigpIHtcclxuICAgIHRoaXMuc3B4Q2xlYXIuZW1pdCgpO1xyXG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMucGFzc0ZvY3VzVG9Db250cm9sKCk7XHJcbiAgICB0aGlzLnZhbHVlID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogbnVsbCxcclxuICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZvY3VzKCkge1xyXG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgICB0aGlzLnNweEZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zcHhTZWFyY2guZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXNJbigpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNweEZvY3VzZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBhc3NGb2N1c1RvQ29udHJvbCgpO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBzZXRGb2N1c091dCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNweEZvY3VzZWQgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuc3B4VHlwZSA9PT0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbykge1xyXG4gICAgICAgIHRoaXMucmFkaW9JbnB1dD8uc3B4Rm9jdXNPdXQoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFZGl0KCkge1xyXG4gICAgdGhpcy5zcHhFZGl0LmVtaXQoKTtcclxuICAgIHRoaXMuc3B4Rm9jdXNlZCA9IHRydWU7XHJcbiAgfVxyXG4gIFxyXG4gIGhhbmRsZUhlbHAoKSB7XHJcbiAgICB0aGlzLnNweEhlbHAuZW1pdCgpO1xyXG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFzc0ZvY3VzVG9Db250cm9sKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLnNweFR5cGUpIHtcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLmF1dG9jb21wbGV0ZTpcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ6XHJcbiAgICAgIGNhc2UgU3B4SW5wdXRUeXBlRW51bS5vdmVybGF5TnVtYmVyOlxyXG4gICAgICAgIHRoaXMudGV4dElucHV0Py5zcHhTZXRGb2N1cygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFNweElucHV0VHlwZUVudW0ubnVtYmVyOlxyXG4gICAgICAgIHRoaXMubnVtYmVySW5wdXQ/LnNweFNldEZvY3VzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3B4SW5wdXRUeXBlRW51bS5yYWRpbzpcclxuICAgICAgICB0aGlzLnJhZGlvSW5wdXQ/LnNweEZvY3VzSW4oKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLnRpbWU6XHJcbiAgICAgICAgdGhpcy50aW1lSW5wdXQ/LnNweFNldEZvY3VzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4gey8qKi99O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gey8qKi99O1xyXG4gIHByb3RlY3RlZCBsYXN0VmFsdWU6IGFueTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTsgLy8gaGllciBrb210IGluaXRpZWxlIHdhYXJkZSB2YW4gZm9ybWNvbnRyb2wgYmlubmVuXHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFuZ2VFdmVudCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMubGFzdFZhbHVlKSB7XHJcbiAgICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxyXG4gIF9oYW5kbGVCbHVyRXZlbnQoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjsgLy8gZW1pdCB2ZXJhbmRlcmluZyBhYW4gZm9ybWNvbnRyb2xcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -4,11 +4,11 @@ import { SpxButtonComponent } from '@softpak/components/spx-button';
4
4
  import * as i1 from '@fortawesome/angular-fontawesome';
5
5
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
6
6
  import { faEdit, faSearch, faQuestion, faTimes, faXmark } from '@fortawesome/free-solid-svg-icons';
7
+ import { SpxSeverityEnum, valuePairToValue } from '@softpak/components/spx-helpers';
7
8
  import { fromEvent } from 'rxjs';
8
9
  import * as i1$1 from '@angular/forms';
9
10
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
10
11
  import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
11
- import { valuePairToValue, SpxSeverityEnum } from '@softpak/components/spx-helpers';
12
12
  import { DateTime } from 'luxon';
13
13
  import * as i1$2 from '@ionic/angular';
14
14
  import { IonicModule } from '@ionic/angular';
@@ -50,6 +50,7 @@ class SpxInputBoxComponent {
50
50
  this.faSearch = faSearch;
51
51
  this.faQuestion = faQuestion;
52
52
  this.faTimes = faTimes;
53
+ this.spxSeverityEnum = SpxSeverityEnum;
53
54
  this.spxFocused = false;
54
55
  this.spxReadonly = false;
55
56
  this.spxShowClear = true;
@@ -72,7 +73,7 @@ class SpxInputBoxComponent {
72
73
  }
73
74
  }
74
75
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxCompact: "spxCompact", spxFocused: "spxFocused", spxLabel: "spxLabel", spxReadonly: "spxReadonly", spxRequired: "spxRequired", spxShowClear: "spxShowClear", spxShowEdit: "spxShowEdit", spxShowHelp: "spxShowHelp", spxShowLabel: "spxShowLabel", spxShowSearch: "spxShowSearch", spxShowValidationMessages: "spxShowValidationMessages", spxValue: "spxValue" }, outputs: { spxClear: "spxClear", spxSearch: "spxSearch", spxFocus: "spxFocus", spxFocusOut: "spxFocusOut", spxEdit: "spxEdit", spxHelp: "spxHelp" }, host: { listeners: { "focusin": "handleFocusIn($event)", "focusout": "handleFocusOut($event)", "document:click": "handleWindowClick($event)" } }, ngImport: i0, template: `<div class="flex rounded w-full gap-3"
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxCompact: "spxCompact", spxFocused: "spxFocused", spxLabel: "spxLabel", spxReadonly: "spxReadonly", spxRequired: "spxRequired", spxShowClear: "spxShowClear", spxShowEdit: "spxShowEdit", spxShowHelp: "spxShowHelp", spxShowLabel: "spxShowLabel", spxShowSearch: "spxShowSearch", spxAlertMessageSeverity: "spxAlertMessageSeverity", spxShowValidationMessages: "spxShowValidationMessages", spxValue: "spxValue" }, outputs: { spxClear: "spxClear", spxSearch: "spxSearch", spxFocus: "spxFocus", spxFocusOut: "spxFocusOut", spxEdit: "spxEdit", spxHelp: "spxHelp" }, host: { listeners: { "focusin": "handleFocusIn($event)", "focusout": "handleFocusOut($event)", "document:click": "handleWindowClick($event)" } }, ngImport: i0, template: `<div class="flex rounded w-full gap-3"
76
77
  [class.rounded-none]="this.spxShowValidationMessages"
77
78
  [class.rounded-t]="this.spxShowValidationMessages"
78
79
  [class.outline-none]="this.spxFocused && !this.spxReadonly"
@@ -146,7 +147,18 @@ class SpxInputBoxComponent {
146
147
  <div class="bg-red-600 rounded-b text-white p-3">
147
148
  <ng-content select="[validation-messages]"></ng-content>
148
149
  </div>
149
- }`, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
150
+ }
151
+ @else if(this.spxAlertMessageSeverity) {
152
+ <div [class.bg-red-700]="spxSeverityEnum.error"
153
+ [class.bg-green-700]="spxSeverityEnum.success"
154
+ [class.bg-blue-700]="spxSeverityEnum.info"
155
+ [class.bg-gray-400]="spxSeverityEnum.unknown"
156
+ [class.bg-amber-700]="spxSeverityEnum.warning"
157
+ class="rounded-b text-white p-3">
158
+ <ng-content select="[validation-messages]"></ng-content>
159
+ </div>
160
+ }
161
+ `, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
150
162
  }
151
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, decorators: [{
152
164
  type: Component,
@@ -231,7 +243,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
231
243
  <div class="bg-red-600 rounded-b text-white p-3">
232
244
  <ng-content select="[validation-messages]"></ng-content>
233
245
  </div>
234
- }`,
246
+ }
247
+ @else if(this.spxAlertMessageSeverity) {
248
+ <div [class.bg-red-700]="spxSeverityEnum.error"
249
+ [class.bg-green-700]="spxSeverityEnum.success"
250
+ [class.bg-blue-700]="spxSeverityEnum.info"
251
+ [class.bg-gray-400]="spxSeverityEnum.unknown"
252
+ [class.bg-amber-700]="spxSeverityEnum.warning"
253
+ class="rounded-b text-white p-3">
254
+ <ng-content select="[validation-messages]"></ng-content>
255
+ </div>
256
+ }
257
+ `,
235
258
  }]
236
259
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spxCompact: [{
237
260
  type: Input
@@ -253,6 +276,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
253
276
  type: Input
254
277
  }], spxShowSearch: [{
255
278
  type: Input
279
+ }], spxAlertMessageSeverity: [{
280
+ type: Input
256
281
  }], spxShowValidationMessages: [{
257
282
  type: Input
258
283
  }], spxValue: [{
@@ -1592,7 +1617,7 @@ class SpxInputComponent {
1592
1617
  <div validation-messages>
1593
1618
  <ng-content></ng-content>
1594
1619
  </div>
1595
- </spx-input-box>`, isInline: true, dependencies: [{ kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxCompact", "spxFocused", "spxLabel", "spxReadonly", "spxRequired", "spxShowClear", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxShowSearch", "spxShowValidationMessages", "spxValue"], outputs: ["spxClear", "spxSearch", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxReadonly", "spxValidators", "value", "spxFocused", "spxSelectDay", "spxSelectMonth", "spxSuggestions"], outputs: ["valueChange", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxAutocomplete", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTimeComponent, selector: "spx-input-time", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
1620
+ </spx-input-box>`, isInline: true, dependencies: [{ kind: "component", type: SpxInputBoxComponent, selector: "spx-input-box", inputs: ["spxCompact", "spxFocused", "spxLabel", "spxReadonly", "spxRequired", "spxShowClear", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxShowSearch", "spxAlertMessageSeverity", "spxShowValidationMessages", "spxValue"], outputs: ["spxClear", "spxSearch", "spxFocus", "spxFocusOut", "spxEdit", "spxHelp"] }, { kind: "component", type: SpxInputDateComponent, selector: "spx-input-date", inputs: ["spxMax", "spxMin", "spxReadonly", "spxValidators", "value", "spxFocused", "spxSelectDay", "spxSelectMonth", "spxSuggestions"], outputs: ["valueChange", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputFloatComponent, selector: "spx-input-float", inputs: ["spxName", "spxAutofocus", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value", "spxWasInternalUpdate", "tick"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputNumberComponent, selector: "spx-input-number", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxReadonly", "spxValidators", "spxFocused", "spxStep", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputRadioComponent, selector: "spx-input-radio", inputs: ["spxName", "spxValidators", "spxFocused", "spxShowLabel", "spxReadonly", "spxSuggestions", "value"], outputs: ["spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTextComponent, selector: "spx-input-text", inputs: ["spxName", "spxAutofocus", "spxAutocomplete", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }, { kind: "component", type: SpxInputTimeComponent, selector: "spx-input-time", inputs: ["spxName", "spxAutofocus", "spxInputMode", "spxPattern", "spxSuggestions", "spxReadonly", "spxValidators", "spxCapitalize", "spxFocused", "spxType", "value", "spxWasInternalUpdate"], outputs: ["spxBlurFromChild", "spxChange", "spxFocus"] }] }); }
1596
1621
  }
1597
1622
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputComponent, decorators: [{
1598
1623
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-inputs.mjs","sources":["../../../../projects/softpak/components/spx-inputs/spx-input-box.component.ts","../../../../projects/softpak/components/spx-inputs/spx-dropdown.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-text.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-float.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-number.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-radio.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-type.enum.ts","../../../../projects/softpak/components/spx-inputs/spx-input-time-modal.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-time.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-date/spx-input-date.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-date/spx-input-date.component.html","../../../../projects/softpak/components/spx-inputs/spx-input.component.ts","../../../../projects/softpak/components/spx-inputs/softpak-components-spx-inputs.ts"],"sourcesContent":["\r\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faEdit, faQuestion, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Component({\r\n selector: 'spx-input-box',\r\n standalone: true,\r\n imports: [\r\n SpxButtonComponent,\r\n FontAwesomeModule\r\n],\r\n template: `<div class=\"flex rounded w-full gap-3\"\r\n [class.rounded-none]=\"this.spxShowValidationMessages\"\r\n [class.rounded-t]=\"this.spxShowValidationMessages\"\r\n [class.outline-none]=\"this.spxFocused && !this.spxReadonly\"\r\n [class.ring-2]=\"this.spxFocused && !this.spxReadonly\"\r\n [class.ring-offset-2]=\"this.spxFocused && !this.spxReadonly\"\r\n [class.ring-blue-500]=\"this.spxFocused && !this.spxReadonly\"\r\n [class.bg-white]=\"!this.spxReadonly\"\r\n [class.bg-gray-300]=\"this.spxReadonly\"\r\n [class.cursor-not-allowed]=\"this.spxReadonly\">\r\n <div class=\"flex-auto p-3\"\r\n [class.p-0]=\"this.spxCompact\"\r\n [class.flex]=\"this.spxCompact\"\r\n [class.items-center]=\"this.spxCompact\">\r\n @if (this.spxShowLabel) {\r\n <div class=\"font-bold text-sm mb-1 text-gray-800\"\r\n [class.mb-0]=\"this.spxCompact\"\r\n [class.px-3]=\"this.spxCompact\">\r\n {{this.spxLabel}} @if (spxRequired) {\r\n <span class=\"text-red-800\">*</span>\r\n }\r\n </div>\r\n }\r\n <ng-content select=\"[controls]\"></ng-content>\r\n </div>\r\n <div class=\"flex flex-none gap-1 p-1\">\r\n @if (this.spxShowEdit) {\r\n <spx-button\r\n (spxClick)=\"onEdit()\"\r\n [spxFullHeight]=\"true\"\r\n [spxSize]=\"'xl'\"\r\n [spxType]=\"'button'\">\r\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\r\n </spx-button>\r\n }\r\n @if (this.spxShowHelp) {\r\n <spx-button\r\n (spxClick)=\"onHelp()\"\r\n [spxFullHeight]=\"true\"\r\n [spxDisabled]=\"this.spxReadonly\"\r\n [spxSize]=\"'xl'\"\r\n [spxTabIndex]=\"-1\"\r\n [spxType]=\"'button'\">\r\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\r\n </spx-button>\r\n }\r\n @if (this.spxShowSearch) {\r\n <spx-button\r\n (spxClick)=\"onSearch()\"\r\n [spxFullHeight]=\"true\"\r\n [spxDisabled]=\"this.spxReadonly\"\r\n [spxSize]=\"'xl'\"\r\n [spxTabIndex]=\"-1\"\r\n [spxType]=\"'button'\">\r\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\r\n </spx-button>\r\n }\r\n @if (this.spxShowClear) {\r\n <spx-button\r\n (spxClick)=\"onClear()\"\r\n [spxDisabled]=\"this.spxReadonly || !this.spxValue?.value\"\r\n [spxFullHeight]=\"true\"\r\n [spxSize]=\"'xl'\"\r\n [spxTabIndex]=\"-1\"\r\n [spxType]=\"'button'\">\r\n <fa-icon [icon]=\"faTimes\" class=\"block text-xl\"></fa-icon>\r\n </spx-button>\r\n }\r\n </div>\r\n </div>\r\n @if (this.spxShowValidationMessages) {\r\n <div class=\"bg-red-600 rounded-b text-white p-3\">\r\n <ng-content select=\"[validation-messages]\"></ng-content>\r\n </div>\r\n }`,\r\n})\r\nexport class SpxInputBoxComponent {\r\n faEdit = faEdit;\r\n faSearch = faSearch;\r\n faQuestion = faQuestion;\r\n faTimes = faTimes;\r\n @Input() spxCompact?: boolean;\r\n @Input() spxFocused = false;\r\n @Input() spxLabel?: string;\r\n @Input() spxReadonly = false;\r\n @Input() spxRequired?: boolean;\r\n @Input() spxShowClear = true;\r\n @Input() spxShowEdit?: boolean;\r\n @Input() spxShowHelp?: boolean;\r\n @Input() spxShowLabel = true;\r\n @Input() spxShowSearch?: boolean;\r\n @Input() spxShowValidationMessages?: boolean | null | undefined;\r\n @Input() spxValue?: SpxValuePair<any>;\r\n @Output() spxClear: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxSearch: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxFocusOut: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxEdit: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxHelp: EventEmitter<void> = new EventEmitter<void>();\r\n @HostListener('focusin', [\"$event\"]) handleFocusIn(ev: Event) {\r\n this.emitFocusIn();\r\n }\r\n @HostListener('focusout', [\"$event\"]) handleFocusOut(ev: FocusEvent) {\r\n const thisEl = this.elRef.nativeElement as HTMLElement;\r\n const relatedElement = ev.relatedTarget as HTMLElement;\r\n if (!relatedElement || !thisEl.contains(relatedElement)) {\r\n this.emitFocusOut();\r\n }\r\n }\r\n @HostListener('document:click', [\"$event\"]) handleWindowClick(ev: Event) {\r\n if (ev.composedPath().includes(this.elRef.nativeElement)) {\r\n this.emitFocusIn();\r\n } else {\r\n this.emitFocusOut();\r\n }\r\n }\r\n\r\n onClear() {\r\n this.spxClear.emit();\r\n }\r\n\r\n onSearch() {\r\n this.spxSearch.emit();\r\n }\r\n\r\n onEdit() {\r\n this.spxEdit.emit();\r\n }\r\n\r\n onHelp() {\r\n this.spxHelp.emit();\r\n }\r\n\r\n constructor(private elRef: ElementRef) {\r\n }\r\n\r\n private emitFocusIn(): void {\r\n if (!this.spxFocused) {\r\n this.spxFocus.emit();\r\n }\r\n }\r\n\r\n private emitFocusOut(): void {\r\n if (this.spxFocused) {\r\n this.spxFocusOut.emit();\r\n }\r\n }\r\n}\r\n","\r\nimport { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\nimport { Subscription, fromEvent } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'spx-dropdown',\r\n standalone: true,\r\n imports: [\r\n SpxButtonComponent\r\n],\r\n template: `<div class=\"relative text-black\">\r\n <div\r\n class=\"absolute bg-gray-100 left-0 right-0 z-20\">\r\n @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {\r\n <button\r\n class=\"text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left\"\r\n [class.bg-gray-100]=\"i === this.focusPosition\"\r\n [class.bg-white]=\"i !== this.focusPosition\"\r\n (click)=\"this.handleSuggestionClick(valuePair)\"\r\n [attr.tabindex]=\"-1\"\r\n [attr.type]=\"'button'\">\r\n <div class=\"flex-1 p-1 font-bold text-lg\">{{valuePair?.description}}</div>\r\n <spx-button (spxClick)=\"this.handleSuggestionClick(valuePair)\" [spxType]=\"'button'\" [spxTabIndex]=\"-1\">Select</spx-button>\r\n </button>\r\n }\r\n </div>\r\n </div>`,\r\n})\r\nexport class SpxDropdownComponent implements OnChanges, OnInit, OnDestroy {\r\n protected focusPosition = 0;\r\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\r\n @Output() spxSelect: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n subscriptionKeyUp?: Subscription;\r\n\r\n ngOnInit(): void {\r\n this.listenToKeyUp();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.focusPosition = 0;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptionKeyUp?.unsubscribe();\r\n }\r\n\r\n handleSuggestionClick(valuePair: SpxValuePair<string | number | boolean>) {\r\n this.select(valuePair);\r\n }\r\n\r\n private listenToKeyUp(): void {\r\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\r\n if ((event as KeyboardEvent).key === 'ArrowUp' && this.focusPosition > 0) {\r\n this.focusPosition = this.focusPosition - 1;\r\n event.preventDefault();\r\n }\r\n if ((event as KeyboardEvent).key === 'ArrowDown' && this.focusPosition < this.spxSuggestions.length - 1) {\r\n this.focusPosition = this.focusPosition + 1;\r\n event.preventDefault();\r\n }\r\n if ((event as KeyboardEvent).key === 'Enter' && this.spxSuggestions.length > 0) {\r\n this.select(this.spxSuggestions.at(this.focusPosition)!);\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\r\n this.focusPosition = 0;\r\n this.spxSelect.emit(valuePair);\r\n }\r\n}\r\n","\r\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { SpxDropdownComponent } from './spx-dropdown.component';\r\n\r\n@Component({\r\n selector: 'spx-input-text',\r\n standalone: true,\r\n imports: [\r\n SpxDropdownComponent\r\n],\r\n template: `<div class=\"relative text-black\">\r\n <input\r\n #input\r\n class=\"font-bold text-lg w-full outline-none\"\r\n autocomplete=\"off\"\r\n spellcheck=\"false\"\r\n [class.bg-white]=\"!this.spxReadonly\"\r\n [class.bg-gray-300]=\"this.spxReadonly\"\r\n [class.cursor-not-allowed]=\"this.spxReadonly\"\r\n [class.uppercase]=\"this.spxCapitalize\"\r\n [attr.autocomplete]=\"this.spxAutocomplete ? this.spxAutocomplete : undefined\"\r\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\r\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.inputMode]=\"this.spxInputMode ? this.spxInputMode : undefined\"\r\n [attr.pattern]=\"this.spxPattern ? this.spxPattern : undefined\"\r\n [attr.name]=\"this.spxName\"\r\n [attr.type]=\"this.spxType\"\r\n [value]=\"this.value?.description ? this.value?.description : this.value?.value\"\r\n (blur)=\"this.handleBlur()\"\r\n (keyUp)=\"this.handleKeyUp()\"\r\n (focus)=\"this.handleFocus()\"\r\n (input)=\"this.handleDescriptionInput($event)\"\r\n />\r\n @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {\r\n <span>{{this.value?.value}}</span>\r\n }\r\n @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {\r\n <spx-dropdown\r\n [spxSuggestions]=\"this.spxSuggestions\" (spxSelect)=\"this.handleSuggestionClick($event)\">\r\n </spx-dropdown>\r\n }\r\n </div>`,\r\n})\r\nexport class SpxInputTextComponent {\r\n // private elInput?: HTMLElement;\r\n // @Element() el!: HTMLElement;\r\n @Input() spxName?: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxAutocomplete?: string;\r\n @Input() spxInputMode?: string;\r\n @Input() spxPattern?: string;\r\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\r\n @Input() spxReadonly = false;\r\n @Input() spxValidators?: any[];\r\n @Input() spxCapitalize = false;\r\n @Input() spxFocused = true;\r\n @Input() spxType: 'autocomplete' | 'overlay' | 'overlaynumber' | 'text' | 'password' = 'text';\r\n @Input() value?: SpxValuePair<any>;\r\n @Output() spxBlurFromChild: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Input() spxWasInternalUpdate = false;\r\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\r\n \r\n \r\n spxSetFocus() {\r\n this.inputRef?.nativeElement?.focus();\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.spxAutofocus) {\r\n this.spxFocus.emit();\r\n this.spxSetFocus();\r\n }\r\n }\r\n\r\n handleBlur() {\r\n this.spxBlurFromChild.emit();\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n }\r\n\r\n handleDescriptionInput(event: any) {\r\n this.value = {\r\n description: event.target ? event.target.value : null,\r\n value: event.target ? event.target.value : null,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n handleSuggestionClick(value: any) {\r\n if (!this.spxReadonly) {\r\n this.value = value;\r\n this.spxChange.emit(this.value);\r\n this.spxFocused = false;\r\n }\r\n }\r\n\r\n handleKeyUp() {\r\n this.spxFocused = true;\r\n }\r\n}\r\n","\r\nimport { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'spx-input-float',\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n ],\r\n template: `<div class=\"flex items-end\">\r\n <input\r\n #firstInputRef\r\n class=\"spx-input-float__input\"\r\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\r\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.pattern]=\"'[0-9]*'\"\r\n [attr.step]=\"1\"\r\n [attr.type]=\"'text'\"\r\n [class.spx-input-float--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n (focus)=\"this.handleFocus()\"\r\n [ngModel]=\"this.internalValue?.first ? this.internalValue?.first : undefined\"\r\n (ngModelChange)=\"this.handleInput($event, 1)\" />\r\n <span class=\"text-black font-bold text-2xl mx-4\">,</span>\r\n <input\r\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\r\n class=\"spx-input-float__input\"\r\n [class.spx-input-float--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n (focus)=\"this.handleFocus()\"\r\n [ngModel]=\"this.internalValue?.second ? this.internalValue?.second : undefined\"\r\n (ngModelChange)=\"this.handleInput($event, 2)\"\r\n [attr.step]=\"1\"\r\n [attr.type]=\"'text'\"\r\n [attr.pattern]=\"'[0-9]*'\" />\r\n</div>`,\r\n styles: `\r\n :host {\r\n display: block;\r\n}\r\n\r\n.spx-input-float__input {\r\n border: 1px solid #333333;\r\n border-radius: 8px;\r\n background-color: transparent;\r\n box-sizing: border-box;\r\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\r\n flex: 1;\r\n font-size: 20px;\r\n font-weight: bold;\r\n padding: 8px;\r\n width: 100%;\r\n}\r\n\r\n.spx-input-float__input:focus {\r\n outline: none;\r\n}\r\n `,\r\n})\r\nexport class SpxInputFloatComponent implements OnInit, OnChanges {\r\n protected internalValue: {\r\n first: number | null;\r\n second: number | null;\r\n } = {\r\n first: null,\r\n second: null,\r\n };\r\n @Input() spxName!: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxReadonly = false;\r\n @Input() spxValidators!: any[];\r\n @Input() spxFocused = true;\r\n @Input() spxStep?: number;\r\n @Input() value!: SpxValuePair<any>;\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Input() spxWasInternalUpdate = false;\r\n @Input() tick = {};\r\n @ViewChild('firstInputRef', { static: true }) firstInputRef?: ElementRef<HTMLInputElement>;\r\n \r\n spxSetFocus() {\r\n this.firstInputRef?.nativeElement?.focus();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.spxAutofocus) {\r\n this.spxFocus.emit();\r\n this.spxSetFocus();\r\n }\r\n this.handleSetValue(this.value);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['value']) {\r\n this.handleSetValue(changes['value'].currentValue);\r\n }\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n }\r\n\r\n handleSetValue(newValue: SpxValuePair<any>) {\r\n if (this.isNumeric(newValue?.value)) {\r\n this.internalValue = {\r\n first: Math.floor(parseFloat(newValue?.value)),\r\n second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,\r\n };\r\n } else {\r\n this.internalValue = {\r\n first: null,\r\n second: null,\r\n };\r\n }\r\n this.tick = {};\r\n }\r\n\r\n handleInput(value: any, position: 1 | 2) {\r\n this.internalValue = {\r\n first: position === 1 ? value : this.internalValue.first,\r\n second: position === 2 ? value : this.internalValue.second,\r\n };\r\n let result;\r\n if (this.internalValue.first === null && this.internalValue.second === null) {\r\n result = null;\r\n } else {\r\n result = `${this.internalValue.first ? this.internalValue.first : 0}.${this.internalValue.second ? this.internalValue.second : 0}`;\r\n }\r\n this.value = {\r\n description: result,\r\n value: result,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n isNumeric(value: string) {\r\n return /^[+-]?\\d+(\\.\\d+)?$/.test(value);\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\n\r\n@Component({\r\n selector: 'spx-input-number',\r\n standalone: true,\r\n imports: [],\r\n template: `<div class=\"spx-input-number__controls\">\r\n <input\r\n #input\r\n class=\"spx-input-number__input\"\r\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\r\n [class.spx-input-number--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.inputMode]=\"this.spxInputMode ? this.spxInputMode : undefined\"\r\n [attr.value]=\"this.value?.value ? this.value?.value : undefined\"\r\n [attr.step]=\"this.spxStep ? this.spxStep : undefined\"\r\n [attr.type]=\"'number'\"\r\n (focus)=\"this.handleFocus()\"\r\n (input)=\"this.handleInput($event)\" />\r\n</div>`,\r\n styles: `\r\n:host {\r\n display: block;\r\n}\r\n\r\n.spx-input-number__input {\r\n border: 0;\r\n background-color: transparent;\r\n box-sizing: border-box;\r\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\r\n font-size: 20px;\r\n font-weight: bold;\r\n margin-right: 10px;\r\n padding: 0;\r\n width: 100%;\r\n}\r\n\r\n.spx-input-number__input:focus {\r\n outline: none;\r\n}\r\n\r\n.spx-input-number__value {\r\n color: rgba(0, 0, 0, .6);\r\n font-size: 14px;\r\n}\r\n `,\r\n})\r\nexport class SpxInputNumberComponent {\r\n // private elInput?: HTMLElement;\r\n // @Element() el!: HTMLElement;\r\n @Input() spxName!: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxInputMode?: string;\r\n @Input() spxReadonly = false;\r\n @Input() spxValidators!: any[];\r\n @Input() spxFocused = true;\r\n @Input() spxStep?: number;\r\n @Input() value?: SpxValuePair<any>;\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\r\n spxWasInternalUpdate = false;\r\n \r\n spxSetFocus() {\r\n this.inputRef?.nativeElement?.focus();\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.spxAutofocus) {\r\n this.spxFocus.emit();\r\n this.spxSetFocus();\r\n }\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n }\r\n\r\n handleInput(event: any) {\r\n this.value = {\r\n description: event.target ? event.target.value : null,\r\n value: event.target ? event.target.value : null,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n}","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\n\r\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\r\nimport { Subscription, fromEvent } from 'rxjs';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\n\r\n@Component({\r\n selector: 'spx-input-radio',\r\n standalone: true,\r\n imports: [\r\n SpxSuggestionComponent\r\n],\r\n template: `<div class=\"grid grid-cols-2 gap-2\" [class.mt-3]=\"this.spxShowLabel\">\r\n @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {\r\n <spx-suggestion\r\n [spxDisabled]=\"this.spxReadonly\"\r\n [spxFocused]=\"this.spxFocused && i === this.focusPosition\"\r\n [spxSelected]=\"this.value?.value === valuePair?.value\"\r\n [spxTabbable]=\"this.focusPosition === i\"\r\n (click)=\"this.handleSuggestionClick($event, valuePair)\">\r\n {{valuePair?.description}}\r\n </spx-suggestion>\r\n }\r\n </div>`,\r\n})\r\nexport class SpxInputRadioComponent {\r\n cachedSuggestions: SpxValuePair<any>[] = [];\r\n protected focusPosition = 0;\r\n // @Element() el!: HTMLElement;\r\n @Input() spxName?: string;\r\n @Input() spxValidators!: any[];\r\n @Input() spxFocused = false;\r\n @Input() spxShowLabel = true;\r\n @Input() spxReadonly = false;\r\n @Input() spxSuggestions: SpxValuePair<any>[] = [];\r\n @Input() value?: SpxValuePair<any>;\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n private subscriptionKeyUp?: Subscription;\r\n private subscriptionKeyDown?: Subscription;\r\n spxFocusIn() {\r\n this.listenToKeys();\r\n this.determineFocusPosition();\r\n }\r\n\r\n spxFocusOut() {\r\n this.subscriptionKeyDown?.unsubscribe();\r\n this.subscriptionKeyUp?.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n (changes['spxSuggestions'] && JSON.stringify(changes['spxSuggestions']?.previousValue) !== JSON.stringify(changes['spxSuggestions']?.currentValue))\r\n ) {\r\n this.cachedSuggestions = changes['spxSuggestions']?.currentValue ?? [];\r\n }\r\n }\r\n\r\n handleSuggestionClick(event: Event, valuePair: SpxValuePair<any>) {\r\n if (this.spxReadonly) {\r\n console.log('spxInputRadio: clicked, but readonly');\r\n } else {\r\n console.log('spxInputRadio: clicked');\r\n this.select(valuePair);\r\n }\r\n }\r\n\r\n private determineFocusPosition() {\r\n if (this.value && this.spxSuggestions?.length) {\r\n const index = this.spxSuggestions.findIndex(valuePair => valuePairToValue(valuePair) === valuePairToValue(this.value));\r\n this.focusPosition = index >= 0 ? index : 0;\r\n } else {\r\n this.focusPosition = 0;\r\n }\r\n }\r\n\r\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\r\n this.focusPosition = 0;\r\n this.value = valuePair;\r\n this.spxChange.emit(valuePair);\r\n }\r\n\r\n private listenToKeys(): void {\r\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\r\n if (((event as KeyboardEvent).key === 'ArrowUp' || (event as KeyboardEvent).key === 'ArrowLeft') && this.focusPosition > 0) {\r\n this.focusPosition = this.focusPosition - 1;\r\n this.select(this.spxSuggestions.at(this.focusPosition)!);\r\n event.preventDefault();\r\n }\r\n if (((event as KeyboardEvent).key === 'ArrowDown' || (event as KeyboardEvent).key === 'ArrowRight') && this.focusPosition < this.spxSuggestions.length - 1) {\r\n this.focusPosition = this.focusPosition + 1;\r\n this.select(this.spxSuggestions.at(this.focusPosition)!);\r\n event.preventDefault();\r\n }\r\n });\r\n this.subscriptionKeyDown = fromEvent(window, 'keydown').subscribe((event) => {\r\n if ((event as KeyboardEvent).key === 'ArrowDown' ||\r\n (event as KeyboardEvent).key === 'ArrowLeft' ||\r\n (event as KeyboardEvent).key === 'ArrowRight' ||\r\n (event as KeyboardEvent).key === 'ArrowUp') {\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n}","export enum SpxInputTypeEnum {\r\n autocomplete = 'autocomplete',\r\n button = 'button',\r\n date = 'date',\r\n float = 'float',\r\n hidden = 'hidden',\r\n overlay = 'overlay',\r\n overlayNumber = 'overlaynumber',\r\n radio = 'radio',\r\n number = 'number',\r\n password = 'password',\r\n text = 'text',\r\n textNumericKeyboard = 'textNumericKeyboard',\r\n time = 'time',\r\n}","\r\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\nimport { SpxDropdownComponent } from './spx-dropdown.component';\r\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\r\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IonicModule, ModalController } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'spx-input-time-modal',\r\n standalone: true,\r\n imports: [\r\n IonicModule,\r\n SpxButtonComponent,\r\n SpxDropdownComponent,\r\n FontAwesomeModule\r\n],\r\n template: `<ion-header>\r\n <ion-toolbar>\r\n <ion-title>Select {{view}}</ion-title>\r\n <ion-buttons slot=\"end\">\r\n <spx-button [spxSeverity]=\"typeError\" (spxClick)=\"closeDialog()\">\r\n <fa-icon [icon]=\"faXmark\"></fa-icon>\r\n </spx-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <ion-content class=\"ion-padding bg-white\">\r\n <!-- Uren -->\r\n <div class=\"custom-bg grid grid-cols-1 gap-3\">\r\n @if (view === 'hours') {\r\n <div class=\"flex-wrap gap-2\">\r\n <div class=\"grid grid-cols-3 md:grid-cols-4 gap-3\">\r\n @for (hour of hourOptions; track hour) {\r\n <div class=\"text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300\" [class.selected]=\"value === hour\" (click)=\"onChange(hour)\">\r\n {{ hour }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <!-- Minuten -->\r\n @if (view === 'minutes') {\r\n <div class=\"grid grid-cols-1 gap-3\">\r\n <div class=\"grid grid-cols-4 md:grid-cols-5 gap-3\">\r\n @for (minute of minuteOptions; track minute) {\r\n <div class=\"text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300\" [class.selected]=\"value === minute\" (click)=\"onChange(minute)\">\r\n {{ minute }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </ion-content>\r\n `,\r\n})\r\nexport class SpxInputTimeModalComponent {\r\n @Input() view!: 'hours' | 'minutes';\r\n @Input() value!: number;\r\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n faXmark = faXmark\r\n hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23\r\n minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5\r\n typeError = SpxSeverityEnum.error;\r\n\r\n constructor(private modalController: ModalController){\r\n this.hourOptions.push(this.hourOptions.shift()!);\r\n this.minuteOptions.push(this.minuteOptions.shift()!);\r\n }\r\n\r\n closeDialog() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n onChange(value: number) {\r\n this.change.emit(value);\r\n console.log(value);\r\n this.modalController.dismiss(value);\r\n }\r\n}\r\n","\r\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild, inject } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\nimport { SpxDropdownComponent } from './spx-dropdown.component';\r\nimport { DateTime } from 'luxon';\r\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\r\nimport { SpxInputTimeModalComponent } from './spx-input-time-modal.component';\r\nimport { IonicModule, ModalController } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'spx-input-time',\r\n standalone: true,\r\n imports: [\r\n SpxButtonComponent,\r\n SpxDropdownComponent,\r\n IonicModule\r\n],\r\n styles: `\r\n .custom-square.selected {\r\n background-color: #007bff;\r\n color: white;\r\n border-color: #007bff;\r\n }\r\n .custom-bg {\r\n --background: #FFFFFF;\r\n }\r\n `,\r\n template: `<div class=\"relative text-black\">\r\n <div class=\"flex items-center justify-around gap-3\">\r\n <div class=\"grow rounded bg-gray-100 p-3 text-xl text-center font-bold\" (click)=\"openDialog('hours')\">{{ formattedHour ?? '--' }}</div>\r\n <div class=\"text-gray text-xl\">:</div>\r\n <div class=\"grow rounded bg-gray-100 p-3 text-xl text-center font-bold\" (click)=\"openDialog('minutes')\">{{ formattedMinute ?? '--' }}</div>\r\n </div>\r\n</div>`,\r\n})\r\nexport class SpxInputTimeComponent {\r\n // private elInput?: HTMLElement;\r\n // @Element() el!: HTMLElement;\r\n @Input() spxName?: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxInputMode?: string;\r\n @Input() spxPattern?: string;\r\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\r\n @Input() spxReadonly = false;\r\n @Input() spxValidators?: any[];\r\n @Input() spxCapitalize = false;\r\n @Input() spxFocused = true;\r\n @Input() spxType!: any;\r\n @Input() value?: SpxValuePair<any>;\r\n @Output() spxBlurFromChild: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Input() spxWasInternalUpdate = false;\r\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\r\n\r\n severitySuccess = SpxSeverityEnum.success;\r\n hourOptions = Array.from({ length: 24 }, (_, i) => i).unshift(); // 0 to 23\r\n minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5).unshift(); // Minutes in incrementen van 5\r\n selectedHour: number | null = null;\r\n selectedMinute: number | null = null;\r\n\r\n get formattedHour() {\r\n return this.selectedHour !== null && this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;\r\n }\r\n\r\n get formattedMinute() {\r\n return this.selectedMinute !== null && this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;\r\n }\r\n\r\n\r\n get hour() { return this.value?.value ? DateTime.fromISO(this.value.value).hour : null; }\r\n get minute() { return this.value?.value ? DateTime.fromISO(this.value.value).minute : null; }\r\n\r\n constructor(private modalController: ModalController) {}\r\n\r\n spxSetFocus() {\r\n this.inputRef?.nativeElement?.focus();\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.spxAutofocus) {\r\n this.spxFocus.emit();\r\n this.spxSetFocus();\r\n }\r\n }\r\n\r\n handleBlur() {\r\n this.spxBlurFromChild.emit();\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n }\r\n\r\n handleDescriptionInput(event: any) {\r\n this.value = {\r\n description: event.target ? event.target.value : null,\r\n value: event.target ? event.target.value : null,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n handleSuggestionClick(value: any) {\r\n if (!this.spxReadonly) {\r\n this.value = value;\r\n this.spxChange.emit(this.value);\r\n this.spxFocused = false;\r\n }\r\n }\r\n\r\n handleKeyUp() {\r\n this.spxFocused = true;\r\n }\r\n\r\n async openDialog(view: 'hours' | 'minutes') {\r\n const modal = await this.modalController.create({\r\n component: SpxInputTimeModalComponent,\r\n componentProps: {\r\n value: this.value?.value ?\r\n (view === 'hours' ? DateTime.fromISO(this.value.value).hour : DateTime.fromISO(this.value.value).minute) : undefined,\r\n view,\r\n },\r\n });\r\n\r\n modal.onDidDismiss().then((data) => {\r\n // this.appStore.dispatch(infArticleActions.reset({}));\r\n\r\n if (view === 'hours') {\r\n // console.log('hours');\r\n // console.log(data);\r\n this.selectedHour = data.data;\r\n this.openDialog('minutes');\r\n this.updateValue();\r\n\r\n } else if (view === 'minutes') {\r\n // console.log('minutes');\r\n // console.log(data);\r\n this.selectedMinute = data.data;\r\n this.updateValue();\r\n }\r\n });\r\n\r\n await modal.present();\r\n }\r\n\r\n updateValue() {\r\n if (this.selectedHour !== null && this.selectedMinute !== null) {\r\n const formattedHour = this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;\r\n const formattedMinute = this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;\r\n const newValue = `${formattedHour}:${formattedMinute}`;\r\n\r\n this.value = {\r\n description: newValue,\r\n value: newValue,\r\n };\r\n\r\n this.spxChange.emit(this.value);\r\n }\r\n }\r\n}\r\n","\r\nimport { Component, computed, ElementRef, input, model, OnInit, output, signal, viewChild } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { SpxValuePair } from '../spx-value-interface';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\r\n\r\nenum stepType {\r\n years = \"years\",\r\n months = \"months\",\r\n days = \"days\"\r\n}\r\n\r\n@Component({\r\n selector: 'spx-input-date',\r\n standalone: true,\r\n imports: [\r\n SpxSuggestionComponent,\r\n FormsModule\r\n ],\r\n templateUrl: \"./spx-input-date.component.html\",\r\n styleUrl: \"./spx-input-date.component.css\"\r\n})\r\nexport class SpxInputDateComponent implements OnInit {\r\n\r\n spxMax = input.required<string>();\r\n spxMin = input.required<string>();\r\n spxReadonly = input<boolean>();\r\n spxValidators = input<any[]>();\r\n value = model<SpxValuePair<string>>({\r\n description: \"\",\r\n value: \"\",\r\n });\r\n spxChange = output<SpxValuePair<any>>();\r\n spxFocused = input<boolean>(true);\r\n spxFocus = output();\r\n\r\n spxSelectedStep = signal<stepType>(stepType.years);\r\n\r\n spxSelectDay = input<boolean>(false);\r\n spxSelectMonth = input<boolean>(true);\r\n\r\n selectedYear = signal<number | null>(null);\r\n selectedMonth = signal<number| null>(null);\r\n selectedDay = signal<number| null>(null);\r\n\r\n yearInputComponent = viewChild.required<ElementRef>(stepType.years);\r\n monthInputComponent = viewChild.required<ElementRef>(stepType.months);\r\n dayInputComponent = viewChild.required<ElementRef>(stepType.days);\r\n\r\n spxSuggestionC = computed<SpxValuePair<number>[]>(() => {\r\n switch(this.spxSelectedStep()) {\r\n case stepType.years:\r\n return this.spxSuggestions().years;\r\n case stepType.months:\r\n return [...this.spxSuggestions().months]\r\n case stepType.days:\r\n return [...this.spxSuggestions().days]\r\n }\r\n });\r\n\r\n handleFocus(selectedStep: string) {\r\n switch(selectedStep) {\r\n case stepType.years:\r\n this.spxSelectedStep.set(stepType.years);\r\n break; \r\n case stepType.months:\r\n this.spxSelectedStep.set(stepType.months);\r\n this.monthInputComponent().nativeElement.focus();\r\n break;\r\n case stepType.days:\r\n this.spxSelectedStep.set(stepType.days);\r\n this.dayInputComponent().nativeElement.focus();\r\n break; \r\n }\r\n }\r\n\r\n onModelChange(newValue: string, selectedStep: string) {\r\n const parsedValue = +newValue; // Convert to number\r\n\r\n if(parsedValue == 0) return;\r\n\r\n switch(selectedStep) {\r\n case stepType.years:\r\n this.selectedYear.set(parsedValue);\r\n break;\r\n case stepType.months:\r\n this.selectedMonth.set(parsedValue);\r\n break;\r\n case stepType.days:\r\n this.selectedDay.set(parsedValue);\r\n break;\r\n }\r\n }\r\n\r\n spxSuggestions = input<{\r\n years: SpxValuePair<number>[];\r\n months: SpxValuePair<number>[];\r\n days: SpxValuePair<number>[];\r\n }>({years: [],\r\n months: [{\r\n description: 'Jan',\r\n value: 1,\r\n }, {\r\n description: 'Feb',\r\n value: 2,\r\n }, {\r\n description: 'Mar',\r\n value: 3,\r\n }, {\r\n description: 'Apr',\r\n value: 4,\r\n }, {\r\n description: 'May',\r\n value: 5,\r\n }, {\r\n description: 'Jun',\r\n value: 6,\r\n }, {\r\n description: 'Jul',\r\n value: 7,\r\n }, {\r\n description: 'Aug',\r\n value: 8,\r\n }, {\r\n description: 'Sep',\r\n value: 9,\r\n }, {\r\n description: 'Oct',\r\n value: 10,\r\n }, {\r\n description: 'Nov',\r\n value: 11,\r\n }, {\r\n description: 'Dec',\r\n value: 12,\r\n }],\r\n days: [],});\r\n\r\n ngOnInit() {\r\n this.suggestYears();\r\n if (valuePairToValue(this.value)) {\r\n const parsedValue = DateTime.fromISO(valuePairToValue(this.value));\r\n this.selectedYear.set(parsedValue.year);\r\n this.selectedMonth.set(parsedValue.month);\r\n this.selectedDay.set(parsedValue.day);\r\n }\r\n }\r\n\r\n handleSuggestionClick(value: number) {\r\n\r\n switch(this.spxSelectedStep()) {\r\n case stepType.years:\r\n this.selectedYear.set(value);\r\n break;\r\n case stepType.months:\r\n this.selectedMonth.set(value);\r\n break;\r\n case stepType.days:\r\n this.selectedDay.set(value);\r\n break;\r\n }\r\n\r\n this.updateValueAndEmit();\r\n this.changeSelectedStep();\r\n }\r\n\r\n updateValueAndEmit() {\r\n const concatenatedValue = `${this.selectedYear() ? this.selectedYear() : ``}${this.selectedMonth() ? `${this.selectedMonth()! < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}${this.selectedDay() ? `-${this.selectedDay()! < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`\r\n\r\n const parsedValue = DateTime.fromISO(concatenatedValue);\r\n \r\n this.value.set({value: parsedValue.toISO()!, description: parsedValue.toISO()});\r\n this.spxChange.emit(this.value());\r\n }\r\n\r\n changeSelectedStep() {\r\n switch(this.spxSelectedStep()) {\r\n case stepType.years:\r\n if(this.spxSelectMonth()) {\r\n this.spxSelectedStep.set(stepType.months);\r\n this.monthInputComponent().nativeElement.focus();\r\n }\r\n else {\r\n this.spxSelectedStep.set(stepType.years);\r\n this.yearInputComponent().nativeElement.focus();\r\n }\r\n break; \r\n case stepType.months:\r\n if(this.spxSelectDay()) {\r\n this.spxSelectedStep.set(stepType.days);\r\n this.dayInputComponent().nativeElement.focus();\r\n }\r\n else {\r\n this.spxSelectedStep.set(stepType.years);\r\n this.yearInputComponent().nativeElement.focus();\r\n }\r\n break;\r\n case stepType.days:\r\n this.spxSelectedStep.set(stepType.years);\r\n this.yearInputComponent().nativeElement.focus();\r\n break; \r\n }\r\n }\r\n\r\n private suggestYears(): void {\r\n this.spxSuggestions().years = [];\r\n for (let year = DateTime.fromISO(this.spxMin()).year; year <= DateTime.fromISO(this.spxMax()).year; year++) {\r\n this.spxSuggestions().years.push({\r\n description: `'${year.toString().substring(2, 4)}`,\r\n value: year,\r\n });\r\n }\r\n }\r\n}\r\n","<div class='spx-input-date__controls'>\r\n <input #years\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\r\n (click)=\"this.handleFocus('years')\"\r\n (ngModelChange)=\"onModelChange($event, 'years')\"\r\n [attr.min]=\"1900\"\r\n [attr.max]=\"2100\"\r\n [attr.step]=\"1\"\r\n />\r\n <div class='spx-input-date__control-label'>Year</div>\r\n @if (this.spxSelectMonth()) {\r\n <input #months\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, 'months')\"\r\n (click)=\"this.handleFocus('months')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"12\"\r\n [attr.step]=\"1\" />\r\n }\r\n <div class='spx-input-date__control-label'>Month</div>\r\n @if (this.spxSelectDay()) {\r\n <input #days\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, 'days')\"\r\n (click)=\"this.handleFocus('days')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"31\"\r\n [attr.step]=\"1\" />\r\n <div class='spx-input-date__control-label'>Days</div>\r\n }\r\n</div>\r\n<div class='spx-input-date__suggestions'>\r\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\r\n <spx-suggestion [spxSelected]=\"\r\n (selectedYear() === valuePair.value) ||\r\n (selectedMonth() === valuePair.value) || \r\n (selectedDay() === valuePair.value)\"\r\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\r\n }\r\n</div>","\r\nimport { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\r\nimport { SpxInputBoxComponent } from './spx-input-box.component';\r\nimport { SpxInputTextComponent } from './spx-input-text.component';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SpxInputFloatComponent } from './spx-input-float.component';\r\nimport { SpxInputNumberComponent } from './spx-input-number.component';\r\nimport { SpxInputRadioComponent } from './spx-input-radio.component';\r\nimport { SpxInputTypeEnum } from './spx-input-type.enum';\r\nimport { SpxInputTimeComponent } from './spx-input-time.component';\r\nimport { SpxInputDateComponent } from './spx-input-date/spx-input-date.component';\r\n\r\n@Component({\r\n selector: 'spx-input',\r\n standalone: true,\r\n host: {\r\n '(spxChange)': 'handleChangeEvent($event)'\r\n },\r\n imports: [\r\n SpxInputBoxComponent,\r\n SpxInputDateComponent,\r\n SpxInputFloatComponent,\r\n SpxInputNumberComponent,\r\n SpxInputRadioComponent,\r\n SpxInputTextComponent,\r\n SpxInputTimeComponent\r\n],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: SpxInputComponent,\r\n multi: true\r\n }\r\n ],\r\n template: `<spx-input-box\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxLabel]=\"this.spxLabel\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxRequired]=\"this.spxRequired\"\r\n [spxValue]=\"this.value\"\r\n [spxShowHelp]=\"this.spxShowHelp\"\r\n [spxCompact]=\"this.spxCompact\"\r\n [spxShowClear]=\"this.spxShowClear\"\r\n [spxShowEdit]=\"this.spxShowEdit\"\r\n [spxShowLabel]=\"this.spxShowLabel\"\r\n [spxShowSearch]=\"this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'\"\r\n [spxShowValidationMessages]=\"this.spxShowValidationMessages\"\r\n (spxClear)=\"this.handleClear()\"\r\n (spxEdit)=\"this.handleEdit()\"\r\n (spxHelp)=\"this.handleHelp()\"\r\n (spxFocus)=\"this.setFocusIn()\"\r\n (spxFocusOut)=\"this.setFocusOut()\"\r\n (spxSearch)=\"this.handleSearch()\">\r\n <div controls>\r\n @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {\r\n <spx-input-text\r\n (spxBlurFromChild)=\"this.handleBlur()\"\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxAutocomplete]=\"this.spxAutocomplete ? this.spxAutocomplete : undefined\"\r\n [spxAutofocus]=\"this.spxAutofocus\"\r\n [spxCapitalize]=\"this.spxCapitalize\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxInputMode]=\"this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode\"\r\n [spxName]=\"this.spxName\"\r\n [spxPattern]=\"this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxSuggestions]=\"this.spxSuggestions\"\r\n [spxType]=\"this.spxType\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-text>\r\n }\r\n @if (this.spxType === 'date') {\r\n <spx-input-date\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxMax]=\"this.spxMax!\"\r\n [spxMin]=\"this.spxMin!\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxSelectDay]=\"this.spxSelectDay\"\r\n [spxSelectMonth]=\"this.spxSelectMonth\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [(value)]=\"this.value\"\r\n ></spx-input-date>\r\n }\r\n @if (this.spxType === 'float') {\r\n <spx-input-float\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxAutofocus]=\"this.spxAutofocus\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxName]=\"this.spxName\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxStep]=\"this.spxStep\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-float>\r\n }\r\n @if (this.spxType === 'number') {\r\n <spx-input-number\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxAutofocus]=\"this.spxAutofocus\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxInputMode]=\"this.spxInputMode\"\r\n [spxName]=\"this.spxName\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxStep]=\"this.spxStep\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-number>\r\n }\r\n @if (this.spxType === 'radio') {\r\n <spx-input-radio\r\n #radioInput\r\n (spxChange)=\"this.handleChange($event)\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxName]=\"this.spxName\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxShowLabel]=\"this.spxShowLabel\"\r\n [spxSuggestions]=\"this.spxSuggestions\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-radio>\r\n }\r\n @if (this.spxType === 'time') {\r\n <spx-input-time\r\n #timeInput\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxName]=\"this.spxName\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-time>\r\n }\r\n </div>\r\n <div validation-messages>\r\n <ng-content></ng-content>\r\n </div>\r\n </spx-input-box>`,\r\n})\r\nexport class SpxInputComponent {\r\n @Input() spxLabel: string = 'label';\r\n @Input() spxMax?: string;\r\n @Input() spxMin?: string;\r\n @Input() spxName!: string;\r\n @Input() spxReadonly = false;\r\n @Input() spxAutocomplete?: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxInputMode?: string;\r\n @Input() spxPattern?: string;\r\n @Input() spxRequired = false;\r\n @Input() spxSelectMonth = true;\r\n @Input() spxSelectDay = true;\r\n @Input() spxShowEdit = false;\r\n @Input() spxShowHelp = false;\r\n @Input() spxShowLabel = true;\r\n @Input() spxCompact = false;\r\n @Input() spxShowClear = true;\r\n @Input() spxShowSearch = false;\r\n @Input() spxShowValidationMessages?: boolean | null | undefined = false;\r\n @Input() spxStep?: number;\r\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\r\n @Input() spxType: SpxInputTypeEnum = SpxInputTypeEnum.text;\r\n @Input() spxValidators!: any[];\r\n @Input() value!: SpxValuePair<any>;\r\n @Input() spxCapitalize = false;\r\n @Output() spxBlur: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxClear: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxEdit: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxHelp: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxSearch: EventEmitter<void> = new EventEmitter<void>();\r\n @ViewChild(SpxInputFloatComponent) floatInput?: SpxInputFloatComponent;\r\n @ViewChild(SpxInputNumberComponent) numberInput?: SpxInputNumberComponent;\r\n @ViewChild(SpxInputTextComponent) textInput?: SpxInputTextComponent;\r\n @ViewChild(SpxInputTimeComponent) timeInput?: SpxInputTimeComponent;\r\n @ViewChild(SpxInputRadioComponent) radioInput?: SpxInputRadioComponent;\r\n @Input() spxFocused = false;\r\n handleBlur() {\r\n this.spxBlur.emit();\r\n }\r\n\r\n handleChange(event: any) {\r\n this.value = event;\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n handleClear() {\r\n this.spxClear.emit();\r\n this.spxFocused = true;\r\n this.passFocusToControl();\r\n this.value = {\r\n description: null,\r\n value: null,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n this.spxFocused = true;\r\n }\r\n\r\n handleSearch() {\r\n this.spxSearch.emit();\r\n }\r\n\r\n setFocusIn() {\r\n setTimeout(() => {\r\n this.spxFocused = true;\r\n this.passFocusToControl();\r\n }, 0);\r\n }\r\n\r\n setFocusOut() {\r\n setTimeout(() => {\r\n this.spxFocused = false;\r\n if (this.spxType === SpxInputTypeEnum.radio) {\r\n this.radioInput?.spxFocusOut();\r\n }\r\n }, 0);\r\n }\r\n\r\n handleEdit() {\r\n this.spxEdit.emit();\r\n this.spxFocused = true;\r\n }\r\n \r\n handleHelp() {\r\n this.spxHelp.emit();\r\n this.spxFocused = true;\r\n }\r\n\r\n private passFocusToControl() {\r\n switch (this.spxType) {\r\n case SpxInputTypeEnum.autocomplete:\r\n case SpxInputTypeEnum.text:\r\n case SpxInputTypeEnum.overlayNumber:\r\n this.textInput?.spxSetFocus();\r\n break;\r\n case SpxInputTypeEnum.number:\r\n this.numberInput?.spxSetFocus();\r\n break;\r\n case SpxInputTypeEnum.radio:\r\n this.radioInput?.spxFocusIn();\r\n break;\r\n case SpxInputTypeEnum.time:\r\n this.timeInput?.spxSetFocus();\r\n break;\r\n }\r\n }\r\n\r\n private onChange: (value: any) => void = () => {/**/};\r\n private onTouched: () => void = () => {/**/};\r\n protected lastValue: any;\r\n\r\n writeValue(value: any) {\r\n this.value = this.lastValue = value; // hier komt initiele waarde van formcontrol binnen\r\n }\r\n\r\n handleChangeEvent(value: any) {\r\n if (value !== this.lastValue) {\r\n this.lastValue = value;\r\n this.onChange(value);\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n _handleBlurEvent() {\r\n this.onTouched();\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this.onChange = fn; // emit verandering aan formcontrol\r\n }\r\n registerOnTouched(fn: () => void) {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-inputs.mjs","sources":["../../../../projects/softpak/components/spx-inputs/spx-input-box.component.ts","../../../../projects/softpak/components/spx-inputs/spx-dropdown.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-text.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-float.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-number.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-radio.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-type.enum.ts","../../../../projects/softpak/components/spx-inputs/spx-input-time-modal.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-time.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-date/spx-input-date.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-date/spx-input-date.component.html","../../../../projects/softpak/components/spx-inputs/spx-input.component.ts","../../../../projects/softpak/components/spx-inputs/softpak-components-spx-inputs.ts"],"sourcesContent":["\r\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faEdit, faQuestion, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\r\n\r\n@Component({\r\n selector: 'spx-input-box',\r\n standalone: true,\r\n imports: [\r\n SpxButtonComponent,\r\n FontAwesomeModule\r\n],\r\n template: `<div class=\"flex rounded w-full gap-3\"\r\n [class.rounded-none]=\"this.spxShowValidationMessages\"\r\n [class.rounded-t]=\"this.spxShowValidationMessages\"\r\n [class.outline-none]=\"this.spxFocused && !this.spxReadonly\"\r\n [class.ring-2]=\"this.spxFocused && !this.spxReadonly\"\r\n [class.ring-offset-2]=\"this.spxFocused && !this.spxReadonly\"\r\n [class.ring-blue-500]=\"this.spxFocused && !this.spxReadonly\"\r\n [class.bg-white]=\"!this.spxReadonly\"\r\n [class.bg-gray-300]=\"this.spxReadonly\"\r\n [class.cursor-not-allowed]=\"this.spxReadonly\">\r\n <div class=\"flex-auto p-3\"\r\n [class.p-0]=\"this.spxCompact\"\r\n [class.flex]=\"this.spxCompact\"\r\n [class.items-center]=\"this.spxCompact\">\r\n @if (this.spxShowLabel) {\r\n <div class=\"font-bold text-sm mb-1 text-gray-800\"\r\n [class.mb-0]=\"this.spxCompact\"\r\n [class.px-3]=\"this.spxCompact\">\r\n {{this.spxLabel}} @if (spxRequired) {\r\n <span class=\"text-red-800\">*</span>\r\n }\r\n </div>\r\n }\r\n <ng-content select=\"[controls]\"></ng-content>\r\n </div>\r\n <div class=\"flex flex-none gap-1 p-1\">\r\n @if (this.spxShowEdit) {\r\n <spx-button\r\n (spxClick)=\"onEdit()\"\r\n [spxFullHeight]=\"true\"\r\n [spxSize]=\"'xl'\"\r\n [spxType]=\"'button'\">\r\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\r\n </spx-button>\r\n }\r\n @if (this.spxShowHelp) {\r\n <spx-button\r\n (spxClick)=\"onHelp()\"\r\n [spxFullHeight]=\"true\"\r\n [spxDisabled]=\"this.spxReadonly\"\r\n [spxSize]=\"'xl'\"\r\n [spxTabIndex]=\"-1\"\r\n [spxType]=\"'button'\">\r\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\r\n </spx-button>\r\n }\r\n @if (this.spxShowSearch) {\r\n <spx-button\r\n (spxClick)=\"onSearch()\"\r\n [spxFullHeight]=\"true\"\r\n [spxDisabled]=\"this.spxReadonly\"\r\n [spxSize]=\"'xl'\"\r\n [spxTabIndex]=\"-1\"\r\n [spxType]=\"'button'\">\r\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\r\n </spx-button>\r\n }\r\n @if (this.spxShowClear) {\r\n <spx-button\r\n (spxClick)=\"onClear()\"\r\n [spxDisabled]=\"this.spxReadonly || !this.spxValue?.value\"\r\n [spxFullHeight]=\"true\"\r\n [spxSize]=\"'xl'\"\r\n [spxTabIndex]=\"-1\"\r\n [spxType]=\"'button'\">\r\n <fa-icon [icon]=\"faTimes\" class=\"block text-xl\"></fa-icon>\r\n </spx-button>\r\n }\r\n </div>\r\n </div>\r\n @if (this.spxShowValidationMessages) {\r\n <div class=\"bg-red-600 rounded-b text-white p-3\">\r\n <ng-content select=\"[validation-messages]\"></ng-content>\r\n </div>\r\n }\r\n @else if(this.spxAlertMessageSeverity) {\r\n <div [class.bg-red-700]=\"spxSeverityEnum.error\"\r\n [class.bg-green-700]=\"spxSeverityEnum.success\"\r\n [class.bg-blue-700]=\"spxSeverityEnum.info\"\r\n [class.bg-gray-400]=\"spxSeverityEnum.unknown\"\r\n [class.bg-amber-700]=\"spxSeverityEnum.warning\"\r\n class=\"rounded-b text-white p-3\">\r\n <ng-content select=\"[validation-messages]\"></ng-content>\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class SpxInputBoxComponent {\r\n faEdit = faEdit;\r\n faSearch = faSearch;\r\n faQuestion = faQuestion;\r\n faTimes = faTimes;\r\n spxSeverityEnum = SpxSeverityEnum;\r\n @Input() spxCompact?: boolean;\r\n @Input() spxFocused = false;\r\n @Input() spxLabel?: string;\r\n @Input() spxReadonly = false;\r\n @Input() spxRequired?: boolean;\r\n @Input() spxShowClear = true;\r\n @Input() spxShowEdit?: boolean;\r\n @Input() spxShowHelp?: boolean;\r\n @Input() spxShowLabel = true;\r\n @Input() spxShowSearch?: boolean;\r\n @Input() spxAlertMessageSeverity?: SpxSeverityEnum;\r\n @Input() spxShowValidationMessages?: boolean | null | undefined;\r\n @Input() spxValue?: SpxValuePair<any>;\r\n @Output() spxClear: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxSearch: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxFocusOut: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxEdit: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxHelp: EventEmitter<void> = new EventEmitter<void>();\r\n @HostListener('focusin', [\"$event\"]) handleFocusIn(ev: Event) {\r\n this.emitFocusIn();\r\n }\r\n @HostListener('focusout', [\"$event\"]) handleFocusOut(ev: FocusEvent) {\r\n const thisEl = this.elRef.nativeElement as HTMLElement;\r\n const relatedElement = ev.relatedTarget as HTMLElement;\r\n if (!relatedElement || !thisEl.contains(relatedElement)) {\r\n this.emitFocusOut();\r\n }\r\n }\r\n @HostListener('document:click', [\"$event\"]) handleWindowClick(ev: Event) {\r\n if (ev.composedPath().includes(this.elRef.nativeElement)) {\r\n this.emitFocusIn();\r\n } else {\r\n this.emitFocusOut();\r\n }\r\n }\r\n\r\n onClear() {\r\n this.spxClear.emit();\r\n }\r\n\r\n onSearch() {\r\n this.spxSearch.emit();\r\n }\r\n\r\n onEdit() {\r\n this.spxEdit.emit();\r\n }\r\n\r\n onHelp() {\r\n this.spxHelp.emit();\r\n }\r\n\r\n constructor(private elRef: ElementRef) {\r\n }\r\n\r\n private emitFocusIn(): void {\r\n if (!this.spxFocused) {\r\n this.spxFocus.emit();\r\n }\r\n }\r\n\r\n private emitFocusOut(): void {\r\n if (this.spxFocused) {\r\n this.spxFocusOut.emit();\r\n }\r\n }\r\n}\r\n","\r\nimport { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\nimport { Subscription, fromEvent } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'spx-dropdown',\r\n standalone: true,\r\n imports: [\r\n SpxButtonComponent\r\n],\r\n template: `<div class=\"relative text-black\">\r\n <div\r\n class=\"absolute bg-gray-100 left-0 right-0 z-20\">\r\n @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {\r\n <button\r\n class=\"text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left\"\r\n [class.bg-gray-100]=\"i === this.focusPosition\"\r\n [class.bg-white]=\"i !== this.focusPosition\"\r\n (click)=\"this.handleSuggestionClick(valuePair)\"\r\n [attr.tabindex]=\"-1\"\r\n [attr.type]=\"'button'\">\r\n <div class=\"flex-1 p-1 font-bold text-lg\">{{valuePair?.description}}</div>\r\n <spx-button (spxClick)=\"this.handleSuggestionClick(valuePair)\" [spxType]=\"'button'\" [spxTabIndex]=\"-1\">Select</spx-button>\r\n </button>\r\n }\r\n </div>\r\n </div>`,\r\n})\r\nexport class SpxDropdownComponent implements OnChanges, OnInit, OnDestroy {\r\n protected focusPosition = 0;\r\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\r\n @Output() spxSelect: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n subscriptionKeyUp?: Subscription;\r\n\r\n ngOnInit(): void {\r\n this.listenToKeyUp();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.focusPosition = 0;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptionKeyUp?.unsubscribe();\r\n }\r\n\r\n handleSuggestionClick(valuePair: SpxValuePair<string | number | boolean>) {\r\n this.select(valuePair);\r\n }\r\n\r\n private listenToKeyUp(): void {\r\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\r\n if ((event as KeyboardEvent).key === 'ArrowUp' && this.focusPosition > 0) {\r\n this.focusPosition = this.focusPosition - 1;\r\n event.preventDefault();\r\n }\r\n if ((event as KeyboardEvent).key === 'ArrowDown' && this.focusPosition < this.spxSuggestions.length - 1) {\r\n this.focusPosition = this.focusPosition + 1;\r\n event.preventDefault();\r\n }\r\n if ((event as KeyboardEvent).key === 'Enter' && this.spxSuggestions.length > 0) {\r\n this.select(this.spxSuggestions.at(this.focusPosition)!);\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\r\n this.focusPosition = 0;\r\n this.spxSelect.emit(valuePair);\r\n }\r\n}\r\n","\r\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { SpxDropdownComponent } from './spx-dropdown.component';\r\n\r\n@Component({\r\n selector: 'spx-input-text',\r\n standalone: true,\r\n imports: [\r\n SpxDropdownComponent\r\n],\r\n template: `<div class=\"relative text-black\">\r\n <input\r\n #input\r\n class=\"font-bold text-lg w-full outline-none\"\r\n autocomplete=\"off\"\r\n spellcheck=\"false\"\r\n [class.bg-white]=\"!this.spxReadonly\"\r\n [class.bg-gray-300]=\"this.spxReadonly\"\r\n [class.cursor-not-allowed]=\"this.spxReadonly\"\r\n [class.uppercase]=\"this.spxCapitalize\"\r\n [attr.autocomplete]=\"this.spxAutocomplete ? this.spxAutocomplete : undefined\"\r\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\r\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.inputMode]=\"this.spxInputMode ? this.spxInputMode : undefined\"\r\n [attr.pattern]=\"this.spxPattern ? this.spxPattern : undefined\"\r\n [attr.name]=\"this.spxName\"\r\n [attr.type]=\"this.spxType\"\r\n [value]=\"this.value?.description ? this.value?.description : this.value?.value\"\r\n (blur)=\"this.handleBlur()\"\r\n (keyUp)=\"this.handleKeyUp()\"\r\n (focus)=\"this.handleFocus()\"\r\n (input)=\"this.handleDescriptionInput($event)\"\r\n />\r\n @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {\r\n <span>{{this.value?.value}}</span>\r\n }\r\n @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {\r\n <spx-dropdown\r\n [spxSuggestions]=\"this.spxSuggestions\" (spxSelect)=\"this.handleSuggestionClick($event)\">\r\n </spx-dropdown>\r\n }\r\n </div>`,\r\n})\r\nexport class SpxInputTextComponent {\r\n // private elInput?: HTMLElement;\r\n // @Element() el!: HTMLElement;\r\n @Input() spxName?: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxAutocomplete?: string;\r\n @Input() spxInputMode?: string;\r\n @Input() spxPattern?: string;\r\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\r\n @Input() spxReadonly = false;\r\n @Input() spxValidators?: any[];\r\n @Input() spxCapitalize = false;\r\n @Input() spxFocused = true;\r\n @Input() spxType: 'autocomplete' | 'overlay' | 'overlaynumber' | 'text' | 'password' = 'text';\r\n @Input() value?: SpxValuePair<any>;\r\n @Output() spxBlurFromChild: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Input() spxWasInternalUpdate = false;\r\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\r\n \r\n \r\n spxSetFocus() {\r\n this.inputRef?.nativeElement?.focus();\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.spxAutofocus) {\r\n this.spxFocus.emit();\r\n this.spxSetFocus();\r\n }\r\n }\r\n\r\n handleBlur() {\r\n this.spxBlurFromChild.emit();\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n }\r\n\r\n handleDescriptionInput(event: any) {\r\n this.value = {\r\n description: event.target ? event.target.value : null,\r\n value: event.target ? event.target.value : null,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n handleSuggestionClick(value: any) {\r\n if (!this.spxReadonly) {\r\n this.value = value;\r\n this.spxChange.emit(this.value);\r\n this.spxFocused = false;\r\n }\r\n }\r\n\r\n handleKeyUp() {\r\n this.spxFocused = true;\r\n }\r\n}\r\n","\r\nimport { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'spx-input-float',\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n ],\r\n template: `<div class=\"flex items-end\">\r\n <input\r\n #firstInputRef\r\n class=\"spx-input-float__input\"\r\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\r\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.pattern]=\"'[0-9]*'\"\r\n [attr.step]=\"1\"\r\n [attr.type]=\"'text'\"\r\n [class.spx-input-float--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n (focus)=\"this.handleFocus()\"\r\n [ngModel]=\"this.internalValue?.first ? this.internalValue?.first : undefined\"\r\n (ngModelChange)=\"this.handleInput($event, 1)\" />\r\n <span class=\"text-black font-bold text-2xl mx-4\">,</span>\r\n <input\r\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\r\n class=\"spx-input-float__input\"\r\n [class.spx-input-float--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n (focus)=\"this.handleFocus()\"\r\n [ngModel]=\"this.internalValue?.second ? this.internalValue?.second : undefined\"\r\n (ngModelChange)=\"this.handleInput($event, 2)\"\r\n [attr.step]=\"1\"\r\n [attr.type]=\"'text'\"\r\n [attr.pattern]=\"'[0-9]*'\" />\r\n</div>`,\r\n styles: `\r\n :host {\r\n display: block;\r\n}\r\n\r\n.spx-input-float__input {\r\n border: 1px solid #333333;\r\n border-radius: 8px;\r\n background-color: transparent;\r\n box-sizing: border-box;\r\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\r\n flex: 1;\r\n font-size: 20px;\r\n font-weight: bold;\r\n padding: 8px;\r\n width: 100%;\r\n}\r\n\r\n.spx-input-float__input:focus {\r\n outline: none;\r\n}\r\n `,\r\n})\r\nexport class SpxInputFloatComponent implements OnInit, OnChanges {\r\n protected internalValue: {\r\n first: number | null;\r\n second: number | null;\r\n } = {\r\n first: null,\r\n second: null,\r\n };\r\n @Input() spxName!: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxReadonly = false;\r\n @Input() spxValidators!: any[];\r\n @Input() spxFocused = true;\r\n @Input() spxStep?: number;\r\n @Input() value!: SpxValuePair<any>;\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Input() spxWasInternalUpdate = false;\r\n @Input() tick = {};\r\n @ViewChild('firstInputRef', { static: true }) firstInputRef?: ElementRef<HTMLInputElement>;\r\n \r\n spxSetFocus() {\r\n this.firstInputRef?.nativeElement?.focus();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.spxAutofocus) {\r\n this.spxFocus.emit();\r\n this.spxSetFocus();\r\n }\r\n this.handleSetValue(this.value);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['value']) {\r\n this.handleSetValue(changes['value'].currentValue);\r\n }\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n }\r\n\r\n handleSetValue(newValue: SpxValuePair<any>) {\r\n if (this.isNumeric(newValue?.value)) {\r\n this.internalValue = {\r\n first: Math.floor(parseFloat(newValue?.value)),\r\n second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,\r\n };\r\n } else {\r\n this.internalValue = {\r\n first: null,\r\n second: null,\r\n };\r\n }\r\n this.tick = {};\r\n }\r\n\r\n handleInput(value: any, position: 1 | 2) {\r\n this.internalValue = {\r\n first: position === 1 ? value : this.internalValue.first,\r\n second: position === 2 ? value : this.internalValue.second,\r\n };\r\n let result;\r\n if (this.internalValue.first === null && this.internalValue.second === null) {\r\n result = null;\r\n } else {\r\n result = `${this.internalValue.first ? this.internalValue.first : 0}.${this.internalValue.second ? this.internalValue.second : 0}`;\r\n }\r\n this.value = {\r\n description: result,\r\n value: result,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n isNumeric(value: string) {\r\n return /^[+-]?\\d+(\\.\\d+)?$/.test(value);\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\n\r\n@Component({\r\n selector: 'spx-input-number',\r\n standalone: true,\r\n imports: [],\r\n template: `<div class=\"spx-input-number__controls\">\r\n <input\r\n #input\r\n class=\"spx-input-number__input\"\r\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\r\n [class.spx-input-number--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\r\n [attr.inputMode]=\"this.spxInputMode ? this.spxInputMode : undefined\"\r\n [attr.value]=\"this.value?.value ? this.value?.value : undefined\"\r\n [attr.step]=\"this.spxStep ? this.spxStep : undefined\"\r\n [attr.type]=\"'number'\"\r\n (focus)=\"this.handleFocus()\"\r\n (input)=\"this.handleInput($event)\" />\r\n</div>`,\r\n styles: `\r\n:host {\r\n display: block;\r\n}\r\n\r\n.spx-input-number__input {\r\n border: 0;\r\n background-color: transparent;\r\n box-sizing: border-box;\r\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\r\n font-size: 20px;\r\n font-weight: bold;\r\n margin-right: 10px;\r\n padding: 0;\r\n width: 100%;\r\n}\r\n\r\n.spx-input-number__input:focus {\r\n outline: none;\r\n}\r\n\r\n.spx-input-number__value {\r\n color: rgba(0, 0, 0, .6);\r\n font-size: 14px;\r\n}\r\n `,\r\n})\r\nexport class SpxInputNumberComponent {\r\n // private elInput?: HTMLElement;\r\n // @Element() el!: HTMLElement;\r\n @Input() spxName!: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxInputMode?: string;\r\n @Input() spxReadonly = false;\r\n @Input() spxValidators!: any[];\r\n @Input() spxFocused = true;\r\n @Input() spxStep?: number;\r\n @Input() value?: SpxValuePair<any>;\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\r\n spxWasInternalUpdate = false;\r\n \r\n spxSetFocus() {\r\n this.inputRef?.nativeElement?.focus();\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.spxAutofocus) {\r\n this.spxFocus.emit();\r\n this.spxSetFocus();\r\n }\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n }\r\n\r\n handleInput(event: any) {\r\n this.value = {\r\n description: event.target ? event.target.value : null,\r\n value: event.target ? event.target.value : null,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n}","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\n\r\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\r\nimport { Subscription, fromEvent } from 'rxjs';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\n\r\n@Component({\r\n selector: 'spx-input-radio',\r\n standalone: true,\r\n imports: [\r\n SpxSuggestionComponent\r\n],\r\n template: `<div class=\"grid grid-cols-2 gap-2\" [class.mt-3]=\"this.spxShowLabel\">\r\n @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {\r\n <spx-suggestion\r\n [spxDisabled]=\"this.spxReadonly\"\r\n [spxFocused]=\"this.spxFocused && i === this.focusPosition\"\r\n [spxSelected]=\"this.value?.value === valuePair?.value\"\r\n [spxTabbable]=\"this.focusPosition === i\"\r\n (click)=\"this.handleSuggestionClick($event, valuePair)\">\r\n {{valuePair?.description}}\r\n </spx-suggestion>\r\n }\r\n </div>`,\r\n})\r\nexport class SpxInputRadioComponent {\r\n cachedSuggestions: SpxValuePair<any>[] = [];\r\n protected focusPosition = 0;\r\n // @Element() el!: HTMLElement;\r\n @Input() spxName?: string;\r\n @Input() spxValidators!: any[];\r\n @Input() spxFocused = false;\r\n @Input() spxShowLabel = true;\r\n @Input() spxReadonly = false;\r\n @Input() spxSuggestions: SpxValuePair<any>[] = [];\r\n @Input() value?: SpxValuePair<any>;\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n private subscriptionKeyUp?: Subscription;\r\n private subscriptionKeyDown?: Subscription;\r\n spxFocusIn() {\r\n this.listenToKeys();\r\n this.determineFocusPosition();\r\n }\r\n\r\n spxFocusOut() {\r\n this.subscriptionKeyDown?.unsubscribe();\r\n this.subscriptionKeyUp?.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n (changes['spxSuggestions'] && JSON.stringify(changes['spxSuggestions']?.previousValue) !== JSON.stringify(changes['spxSuggestions']?.currentValue))\r\n ) {\r\n this.cachedSuggestions = changes['spxSuggestions']?.currentValue ?? [];\r\n }\r\n }\r\n\r\n handleSuggestionClick(event: Event, valuePair: SpxValuePair<any>) {\r\n if (this.spxReadonly) {\r\n console.log('spxInputRadio: clicked, but readonly');\r\n } else {\r\n console.log('spxInputRadio: clicked');\r\n this.select(valuePair);\r\n }\r\n }\r\n\r\n private determineFocusPosition() {\r\n if (this.value && this.spxSuggestions?.length) {\r\n const index = this.spxSuggestions.findIndex(valuePair => valuePairToValue(valuePair) === valuePairToValue(this.value));\r\n this.focusPosition = index >= 0 ? index : 0;\r\n } else {\r\n this.focusPosition = 0;\r\n }\r\n }\r\n\r\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\r\n this.focusPosition = 0;\r\n this.value = valuePair;\r\n this.spxChange.emit(valuePair);\r\n }\r\n\r\n private listenToKeys(): void {\r\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\r\n if (((event as KeyboardEvent).key === 'ArrowUp' || (event as KeyboardEvent).key === 'ArrowLeft') && this.focusPosition > 0) {\r\n this.focusPosition = this.focusPosition - 1;\r\n this.select(this.spxSuggestions.at(this.focusPosition)!);\r\n event.preventDefault();\r\n }\r\n if (((event as KeyboardEvent).key === 'ArrowDown' || (event as KeyboardEvent).key === 'ArrowRight') && this.focusPosition < this.spxSuggestions.length - 1) {\r\n this.focusPosition = this.focusPosition + 1;\r\n this.select(this.spxSuggestions.at(this.focusPosition)!);\r\n event.preventDefault();\r\n }\r\n });\r\n this.subscriptionKeyDown = fromEvent(window, 'keydown').subscribe((event) => {\r\n if ((event as KeyboardEvent).key === 'ArrowDown' ||\r\n (event as KeyboardEvent).key === 'ArrowLeft' ||\r\n (event as KeyboardEvent).key === 'ArrowRight' ||\r\n (event as KeyboardEvent).key === 'ArrowUp') {\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n}","export enum SpxInputTypeEnum {\r\n autocomplete = 'autocomplete',\r\n button = 'button',\r\n date = 'date',\r\n float = 'float',\r\n hidden = 'hidden',\r\n overlay = 'overlay',\r\n overlayNumber = 'overlaynumber',\r\n radio = 'radio',\r\n number = 'number',\r\n password = 'password',\r\n text = 'text',\r\n textNumericKeyboard = 'textNumericKeyboard',\r\n time = 'time',\r\n}","\r\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\nimport { SpxDropdownComponent } from './spx-dropdown.component';\r\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\r\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IonicModule, ModalController } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'spx-input-time-modal',\r\n standalone: true,\r\n imports: [\r\n IonicModule,\r\n SpxButtonComponent,\r\n SpxDropdownComponent,\r\n FontAwesomeModule\r\n],\r\n template: `<ion-header>\r\n <ion-toolbar>\r\n <ion-title>Select {{view}}</ion-title>\r\n <ion-buttons slot=\"end\">\r\n <spx-button [spxSeverity]=\"typeError\" (spxClick)=\"closeDialog()\">\r\n <fa-icon [icon]=\"faXmark\"></fa-icon>\r\n </spx-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <ion-content class=\"ion-padding bg-white\">\r\n <!-- Uren -->\r\n <div class=\"custom-bg grid grid-cols-1 gap-3\">\r\n @if (view === 'hours') {\r\n <div class=\"flex-wrap gap-2\">\r\n <div class=\"grid grid-cols-3 md:grid-cols-4 gap-3\">\r\n @for (hour of hourOptions; track hour) {\r\n <div class=\"text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300\" [class.selected]=\"value === hour\" (click)=\"onChange(hour)\">\r\n {{ hour }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <!-- Minuten -->\r\n @if (view === 'minutes') {\r\n <div class=\"grid grid-cols-1 gap-3\">\r\n <div class=\"grid grid-cols-4 md:grid-cols-5 gap-3\">\r\n @for (minute of minuteOptions; track minute) {\r\n <div class=\"text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300\" [class.selected]=\"value === minute\" (click)=\"onChange(minute)\">\r\n {{ minute }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </ion-content>\r\n `,\r\n})\r\nexport class SpxInputTimeModalComponent {\r\n @Input() view!: 'hours' | 'minutes';\r\n @Input() value!: number;\r\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n faXmark = faXmark\r\n hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23\r\n minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5\r\n typeError = SpxSeverityEnum.error;\r\n\r\n constructor(private modalController: ModalController){\r\n this.hourOptions.push(this.hourOptions.shift()!);\r\n this.minuteOptions.push(this.minuteOptions.shift()!);\r\n }\r\n\r\n closeDialog() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n onChange(value: number) {\r\n this.change.emit(value);\r\n console.log(value);\r\n this.modalController.dismiss(value);\r\n }\r\n}\r\n","\r\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild, inject } from '@angular/core';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\r\nimport { SpxDropdownComponent } from './spx-dropdown.component';\r\nimport { DateTime } from 'luxon';\r\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\r\nimport { SpxInputTimeModalComponent } from './spx-input-time-modal.component';\r\nimport { IonicModule, ModalController } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'spx-input-time',\r\n standalone: true,\r\n imports: [\r\n SpxButtonComponent,\r\n SpxDropdownComponent,\r\n IonicModule\r\n],\r\n styles: `\r\n .custom-square.selected {\r\n background-color: #007bff;\r\n color: white;\r\n border-color: #007bff;\r\n }\r\n .custom-bg {\r\n --background: #FFFFFF;\r\n }\r\n `,\r\n template: `<div class=\"relative text-black\">\r\n <div class=\"flex items-center justify-around gap-3\">\r\n <div class=\"grow rounded bg-gray-100 p-3 text-xl text-center font-bold\" (click)=\"openDialog('hours')\">{{ formattedHour ?? '--' }}</div>\r\n <div class=\"text-gray text-xl\">:</div>\r\n <div class=\"grow rounded bg-gray-100 p-3 text-xl text-center font-bold\" (click)=\"openDialog('minutes')\">{{ formattedMinute ?? '--' }}</div>\r\n </div>\r\n</div>`,\r\n})\r\nexport class SpxInputTimeComponent {\r\n // private elInput?: HTMLElement;\r\n // @Element() el!: HTMLElement;\r\n @Input() spxName?: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxInputMode?: string;\r\n @Input() spxPattern?: string;\r\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\r\n @Input() spxReadonly = false;\r\n @Input() spxValidators?: any[];\r\n @Input() spxCapitalize = false;\r\n @Input() spxFocused = true;\r\n @Input() spxType!: any;\r\n @Input() value?: SpxValuePair<any>;\r\n @Output() spxBlurFromChild: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Input() spxWasInternalUpdate = false;\r\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\r\n\r\n severitySuccess = SpxSeverityEnum.success;\r\n hourOptions = Array.from({ length: 24 }, (_, i) => i).unshift(); // 0 to 23\r\n minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5).unshift(); // Minutes in incrementen van 5\r\n selectedHour: number | null = null;\r\n selectedMinute: number | null = null;\r\n\r\n get formattedHour() {\r\n return this.selectedHour !== null && this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;\r\n }\r\n\r\n get formattedMinute() {\r\n return this.selectedMinute !== null && this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;\r\n }\r\n\r\n\r\n get hour() { return this.value?.value ? DateTime.fromISO(this.value.value).hour : null; }\r\n get minute() { return this.value?.value ? DateTime.fromISO(this.value.value).minute : null; }\r\n\r\n constructor(private modalController: ModalController) {}\r\n\r\n spxSetFocus() {\r\n this.inputRef?.nativeElement?.focus();\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.spxAutofocus) {\r\n this.spxFocus.emit();\r\n this.spxSetFocus();\r\n }\r\n }\r\n\r\n handleBlur() {\r\n this.spxBlurFromChild.emit();\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n }\r\n\r\n handleDescriptionInput(event: any) {\r\n this.value = {\r\n description: event.target ? event.target.value : null,\r\n value: event.target ? event.target.value : null,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n handleSuggestionClick(value: any) {\r\n if (!this.spxReadonly) {\r\n this.value = value;\r\n this.spxChange.emit(this.value);\r\n this.spxFocused = false;\r\n }\r\n }\r\n\r\n handleKeyUp() {\r\n this.spxFocused = true;\r\n }\r\n\r\n async openDialog(view: 'hours' | 'minutes') {\r\n const modal = await this.modalController.create({\r\n component: SpxInputTimeModalComponent,\r\n componentProps: {\r\n value: this.value?.value ?\r\n (view === 'hours' ? DateTime.fromISO(this.value.value).hour : DateTime.fromISO(this.value.value).minute) : undefined,\r\n view,\r\n },\r\n });\r\n\r\n modal.onDidDismiss().then((data) => {\r\n // this.appStore.dispatch(infArticleActions.reset({}));\r\n\r\n if (view === 'hours') {\r\n // console.log('hours');\r\n // console.log(data);\r\n this.selectedHour = data.data;\r\n this.openDialog('minutes');\r\n this.updateValue();\r\n\r\n } else if (view === 'minutes') {\r\n // console.log('minutes');\r\n // console.log(data);\r\n this.selectedMinute = data.data;\r\n this.updateValue();\r\n }\r\n });\r\n\r\n await modal.present();\r\n }\r\n\r\n updateValue() {\r\n if (this.selectedHour !== null && this.selectedMinute !== null) {\r\n const formattedHour = this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;\r\n const formattedMinute = this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;\r\n const newValue = `${formattedHour}:${formattedMinute}`;\r\n\r\n this.value = {\r\n description: newValue,\r\n value: newValue,\r\n };\r\n\r\n this.spxChange.emit(this.value);\r\n }\r\n }\r\n}\r\n","\r\nimport { Component, computed, ElementRef, input, model, OnInit, output, signal, viewChild } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\nimport { SpxValuePair } from '../spx-value-interface';\r\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\r\n\r\nenum stepType {\r\n years = \"years\",\r\n months = \"months\",\r\n days = \"days\"\r\n}\r\n\r\n@Component({\r\n selector: 'spx-input-date',\r\n standalone: true,\r\n imports: [\r\n SpxSuggestionComponent,\r\n FormsModule\r\n ],\r\n templateUrl: \"./spx-input-date.component.html\",\r\n styleUrl: \"./spx-input-date.component.css\"\r\n})\r\nexport class SpxInputDateComponent implements OnInit {\r\n\r\n spxMax = input.required<string>();\r\n spxMin = input.required<string>();\r\n spxReadonly = input<boolean>();\r\n spxValidators = input<any[]>();\r\n value = model<SpxValuePair<string>>({\r\n description: \"\",\r\n value: \"\",\r\n });\r\n spxChange = output<SpxValuePair<any>>();\r\n spxFocused = input<boolean>(true);\r\n spxFocus = output();\r\n\r\n spxSelectedStep = signal<stepType>(stepType.years);\r\n\r\n spxSelectDay = input<boolean>(false);\r\n spxSelectMonth = input<boolean>(true);\r\n\r\n selectedYear = signal<number | null>(null);\r\n selectedMonth = signal<number| null>(null);\r\n selectedDay = signal<number| null>(null);\r\n\r\n yearInputComponent = viewChild.required<ElementRef>(stepType.years);\r\n monthInputComponent = viewChild.required<ElementRef>(stepType.months);\r\n dayInputComponent = viewChild.required<ElementRef>(stepType.days);\r\n\r\n spxSuggestionC = computed<SpxValuePair<number>[]>(() => {\r\n switch(this.spxSelectedStep()) {\r\n case stepType.years:\r\n return this.spxSuggestions().years;\r\n case stepType.months:\r\n return [...this.spxSuggestions().months]\r\n case stepType.days:\r\n return [...this.spxSuggestions().days]\r\n }\r\n });\r\n\r\n handleFocus(selectedStep: string) {\r\n switch(selectedStep) {\r\n case stepType.years:\r\n this.spxSelectedStep.set(stepType.years);\r\n break; \r\n case stepType.months:\r\n this.spxSelectedStep.set(stepType.months);\r\n this.monthInputComponent().nativeElement.focus();\r\n break;\r\n case stepType.days:\r\n this.spxSelectedStep.set(stepType.days);\r\n this.dayInputComponent().nativeElement.focus();\r\n break; \r\n }\r\n }\r\n\r\n onModelChange(newValue: string, selectedStep: string) {\r\n const parsedValue = +newValue; // Convert to number\r\n\r\n if(parsedValue == 0) return;\r\n\r\n switch(selectedStep) {\r\n case stepType.years:\r\n this.selectedYear.set(parsedValue);\r\n break;\r\n case stepType.months:\r\n this.selectedMonth.set(parsedValue);\r\n break;\r\n case stepType.days:\r\n this.selectedDay.set(parsedValue);\r\n break;\r\n }\r\n }\r\n\r\n spxSuggestions = input<{\r\n years: SpxValuePair<number>[];\r\n months: SpxValuePair<number>[];\r\n days: SpxValuePair<number>[];\r\n }>({years: [],\r\n months: [{\r\n description: 'Jan',\r\n value: 1,\r\n }, {\r\n description: 'Feb',\r\n value: 2,\r\n }, {\r\n description: 'Mar',\r\n value: 3,\r\n }, {\r\n description: 'Apr',\r\n value: 4,\r\n }, {\r\n description: 'May',\r\n value: 5,\r\n }, {\r\n description: 'Jun',\r\n value: 6,\r\n }, {\r\n description: 'Jul',\r\n value: 7,\r\n }, {\r\n description: 'Aug',\r\n value: 8,\r\n }, {\r\n description: 'Sep',\r\n value: 9,\r\n }, {\r\n description: 'Oct',\r\n value: 10,\r\n }, {\r\n description: 'Nov',\r\n value: 11,\r\n }, {\r\n description: 'Dec',\r\n value: 12,\r\n }],\r\n days: [],});\r\n\r\n ngOnInit() {\r\n this.suggestYears();\r\n if (valuePairToValue(this.value)) {\r\n const parsedValue = DateTime.fromISO(valuePairToValue(this.value));\r\n this.selectedYear.set(parsedValue.year);\r\n this.selectedMonth.set(parsedValue.month);\r\n this.selectedDay.set(parsedValue.day);\r\n }\r\n }\r\n\r\n handleSuggestionClick(value: number) {\r\n\r\n switch(this.spxSelectedStep()) {\r\n case stepType.years:\r\n this.selectedYear.set(value);\r\n break;\r\n case stepType.months:\r\n this.selectedMonth.set(value);\r\n break;\r\n case stepType.days:\r\n this.selectedDay.set(value);\r\n break;\r\n }\r\n\r\n this.updateValueAndEmit();\r\n this.changeSelectedStep();\r\n }\r\n\r\n updateValueAndEmit() {\r\n const concatenatedValue = `${this.selectedYear() ? this.selectedYear() : ``}${this.selectedMonth() ? `${this.selectedMonth()! < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}${this.selectedDay() ? `-${this.selectedDay()! < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`\r\n\r\n const parsedValue = DateTime.fromISO(concatenatedValue);\r\n \r\n this.value.set({value: parsedValue.toISO()!, description: parsedValue.toISO()});\r\n this.spxChange.emit(this.value());\r\n }\r\n\r\n changeSelectedStep() {\r\n switch(this.spxSelectedStep()) {\r\n case stepType.years:\r\n if(this.spxSelectMonth()) {\r\n this.spxSelectedStep.set(stepType.months);\r\n this.monthInputComponent().nativeElement.focus();\r\n }\r\n else {\r\n this.spxSelectedStep.set(stepType.years);\r\n this.yearInputComponent().nativeElement.focus();\r\n }\r\n break; \r\n case stepType.months:\r\n if(this.spxSelectDay()) {\r\n this.spxSelectedStep.set(stepType.days);\r\n this.dayInputComponent().nativeElement.focus();\r\n }\r\n else {\r\n this.spxSelectedStep.set(stepType.years);\r\n this.yearInputComponent().nativeElement.focus();\r\n }\r\n break;\r\n case stepType.days:\r\n this.spxSelectedStep.set(stepType.years);\r\n this.yearInputComponent().nativeElement.focus();\r\n break; \r\n }\r\n }\r\n\r\n private suggestYears(): void {\r\n this.spxSuggestions().years = [];\r\n for (let year = DateTime.fromISO(this.spxMin()).year; year <= DateTime.fromISO(this.spxMax()).year; year++) {\r\n this.spxSuggestions().years.push({\r\n description: `'${year.toString().substring(2, 4)}`,\r\n value: year,\r\n });\r\n }\r\n }\r\n}\r\n","<div class='spx-input-date__controls'>\r\n <input #years\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\r\n (click)=\"this.handleFocus('years')\"\r\n (ngModelChange)=\"onModelChange($event, 'years')\"\r\n [attr.min]=\"1900\"\r\n [attr.max]=\"2100\"\r\n [attr.step]=\"1\"\r\n />\r\n <div class='spx-input-date__control-label'>Year</div>\r\n @if (this.spxSelectMonth()) {\r\n <input #months\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, 'months')\"\r\n (click)=\"this.handleFocus('months')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"12\"\r\n [attr.step]=\"1\" />\r\n }\r\n <div class='spx-input-date__control-label'>Month</div>\r\n @if (this.spxSelectDay()) {\r\n <input #days\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, 'days')\"\r\n (click)=\"this.handleFocus('days')\"\r\n [attr.type]=\"'number'\"\r\n [attr.min]=\"1\"\r\n [attr.max]=\"31\"\r\n [attr.step]=\"1\" />\r\n <div class='spx-input-date__control-label'>Days</div>\r\n }\r\n</div>\r\n<div class='spx-input-date__suggestions'>\r\n @for (valuePair of spxSuggestionC(); track valuePair.value) {\r\n <spx-suggestion [spxSelected]=\"\r\n (selectedYear() === valuePair.value) ||\r\n (selectedMonth() === valuePair.value) || \r\n (selectedDay() === valuePair.value)\"\r\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\r\n }\r\n</div>","\r\nimport { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\r\nimport { SpxInputBoxComponent } from './spx-input-box.component';\r\nimport { SpxInputTextComponent } from './spx-input-text.component';\r\nimport { SpxValuePair } from './spx-value-interface';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SpxInputFloatComponent } from './spx-input-float.component';\r\nimport { SpxInputNumberComponent } from './spx-input-number.component';\r\nimport { SpxInputRadioComponent } from './spx-input-radio.component';\r\nimport { SpxInputTypeEnum } from './spx-input-type.enum';\r\nimport { SpxInputTimeComponent } from './spx-input-time.component';\r\nimport { SpxInputDateComponent } from './spx-input-date/spx-input-date.component';\r\n\r\n@Component({\r\n selector: 'spx-input',\r\n standalone: true,\r\n host: {\r\n '(spxChange)': 'handleChangeEvent($event)'\r\n },\r\n imports: [\r\n SpxInputBoxComponent,\r\n SpxInputDateComponent,\r\n SpxInputFloatComponent,\r\n SpxInputNumberComponent,\r\n SpxInputRadioComponent,\r\n SpxInputTextComponent,\r\n SpxInputTimeComponent\r\n],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: SpxInputComponent,\r\n multi: true\r\n }\r\n ],\r\n template: `<spx-input-box\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxLabel]=\"this.spxLabel\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxRequired]=\"this.spxRequired\"\r\n [spxValue]=\"this.value\"\r\n [spxShowHelp]=\"this.spxShowHelp\"\r\n [spxCompact]=\"this.spxCompact\"\r\n [spxShowClear]=\"this.spxShowClear\"\r\n [spxShowEdit]=\"this.spxShowEdit\"\r\n [spxShowLabel]=\"this.spxShowLabel\"\r\n [spxShowSearch]=\"this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'\"\r\n [spxShowValidationMessages]=\"this.spxShowValidationMessages\"\r\n (spxClear)=\"this.handleClear()\"\r\n (spxEdit)=\"this.handleEdit()\"\r\n (spxHelp)=\"this.handleHelp()\"\r\n (spxFocus)=\"this.setFocusIn()\"\r\n (spxFocusOut)=\"this.setFocusOut()\"\r\n (spxSearch)=\"this.handleSearch()\">\r\n <div controls>\r\n @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {\r\n <spx-input-text\r\n (spxBlurFromChild)=\"this.handleBlur()\"\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxAutocomplete]=\"this.spxAutocomplete ? this.spxAutocomplete : undefined\"\r\n [spxAutofocus]=\"this.spxAutofocus\"\r\n [spxCapitalize]=\"this.spxCapitalize\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxInputMode]=\"this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode\"\r\n [spxName]=\"this.spxName\"\r\n [spxPattern]=\"this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxSuggestions]=\"this.spxSuggestions\"\r\n [spxType]=\"this.spxType\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-text>\r\n }\r\n @if (this.spxType === 'date') {\r\n <spx-input-date\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxMax]=\"this.spxMax!\"\r\n [spxMin]=\"this.spxMin!\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxSelectDay]=\"this.spxSelectDay\"\r\n [spxSelectMonth]=\"this.spxSelectMonth\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [(value)]=\"this.value\"\r\n ></spx-input-date>\r\n }\r\n @if (this.spxType === 'float') {\r\n <spx-input-float\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxAutofocus]=\"this.spxAutofocus\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxName]=\"this.spxName\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxStep]=\"this.spxStep\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-float>\r\n }\r\n @if (this.spxType === 'number') {\r\n <spx-input-number\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxAutofocus]=\"this.spxAutofocus\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxInputMode]=\"this.spxInputMode\"\r\n [spxName]=\"this.spxName\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxStep]=\"this.spxStep\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-number>\r\n }\r\n @if (this.spxType === 'radio') {\r\n <spx-input-radio\r\n #radioInput\r\n (spxChange)=\"this.handleChange($event)\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxName]=\"this.spxName\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxShowLabel]=\"this.spxShowLabel\"\r\n [spxSuggestions]=\"this.spxSuggestions\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-radio>\r\n }\r\n @if (this.spxType === 'time') {\r\n <spx-input-time\r\n #timeInput\r\n (spxChange)=\"this.handleChange($event)\"\r\n (spxFocus)=\"this.handleFocus()\"\r\n [spxFocused]=\"this.spxFocused\"\r\n [spxName]=\"this.spxName\"\r\n [spxReadonly]=\"this.spxReadonly\"\r\n [spxValidators]=\"this.spxValidators\"\r\n [value]=\"this.value\"\r\n ></spx-input-time>\r\n }\r\n </div>\r\n <div validation-messages>\r\n <ng-content></ng-content>\r\n </div>\r\n </spx-input-box>`,\r\n})\r\nexport class SpxInputComponent {\r\n @Input() spxLabel: string = 'label';\r\n @Input() spxMax?: string;\r\n @Input() spxMin?: string;\r\n @Input() spxName!: string;\r\n @Input() spxReadonly = false;\r\n @Input() spxAutocomplete?: string;\r\n @Input() spxAutofocus = false;\r\n @Input() spxInputMode?: string;\r\n @Input() spxPattern?: string;\r\n @Input() spxRequired = false;\r\n @Input() spxSelectMonth = true;\r\n @Input() spxSelectDay = true;\r\n @Input() spxShowEdit = false;\r\n @Input() spxShowHelp = false;\r\n @Input() spxShowLabel = true;\r\n @Input() spxCompact = false;\r\n @Input() spxShowClear = true;\r\n @Input() spxShowSearch = false;\r\n @Input() spxShowValidationMessages?: boolean | null | undefined = false;\r\n @Input() spxStep?: number;\r\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\r\n @Input() spxType: SpxInputTypeEnum = SpxInputTypeEnum.text;\r\n @Input() spxValidators!: any[];\r\n @Input() value!: SpxValuePair<any>;\r\n @Input() spxCapitalize = false;\r\n @Output() spxBlur: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxClear: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\r\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxEdit: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxHelp: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() spxSearch: EventEmitter<void> = new EventEmitter<void>();\r\n @ViewChild(SpxInputFloatComponent) floatInput?: SpxInputFloatComponent;\r\n @ViewChild(SpxInputNumberComponent) numberInput?: SpxInputNumberComponent;\r\n @ViewChild(SpxInputTextComponent) textInput?: SpxInputTextComponent;\r\n @ViewChild(SpxInputTimeComponent) timeInput?: SpxInputTimeComponent;\r\n @ViewChild(SpxInputRadioComponent) radioInput?: SpxInputRadioComponent;\r\n @Input() spxFocused = false;\r\n handleBlur() {\r\n this.spxBlur.emit();\r\n }\r\n\r\n handleChange(event: any) {\r\n this.value = event;\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n handleClear() {\r\n this.spxClear.emit();\r\n this.spxFocused = true;\r\n this.passFocusToControl();\r\n this.value = {\r\n description: null,\r\n value: null,\r\n };\r\n this.spxChange.emit(this.value);\r\n }\r\n\r\n handleFocus() {\r\n this.spxFocus.emit();\r\n this.spxFocused = true;\r\n }\r\n\r\n handleSearch() {\r\n this.spxSearch.emit();\r\n }\r\n\r\n setFocusIn() {\r\n setTimeout(() => {\r\n this.spxFocused = true;\r\n this.passFocusToControl();\r\n }, 0);\r\n }\r\n\r\n setFocusOut() {\r\n setTimeout(() => {\r\n this.spxFocused = false;\r\n if (this.spxType === SpxInputTypeEnum.radio) {\r\n this.radioInput?.spxFocusOut();\r\n }\r\n }, 0);\r\n }\r\n\r\n handleEdit() {\r\n this.spxEdit.emit();\r\n this.spxFocused = true;\r\n }\r\n \r\n handleHelp() {\r\n this.spxHelp.emit();\r\n this.spxFocused = true;\r\n }\r\n\r\n private passFocusToControl() {\r\n switch (this.spxType) {\r\n case SpxInputTypeEnum.autocomplete:\r\n case SpxInputTypeEnum.text:\r\n case SpxInputTypeEnum.overlayNumber:\r\n this.textInput?.spxSetFocus();\r\n break;\r\n case SpxInputTypeEnum.number:\r\n this.numberInput?.spxSetFocus();\r\n break;\r\n case SpxInputTypeEnum.radio:\r\n this.radioInput?.spxFocusIn();\r\n break;\r\n case SpxInputTypeEnum.time:\r\n this.timeInput?.spxSetFocus();\r\n break;\r\n }\r\n }\r\n\r\n private onChange: (value: any) => void = () => {/**/};\r\n private onTouched: () => void = () => {/**/};\r\n protected lastValue: any;\r\n\r\n writeValue(value: any) {\r\n this.value = this.lastValue = value; // hier komt initiele waarde van formcontrol binnen\r\n }\r\n\r\n handleChangeEvent(value: any) {\r\n if (value !== this.lastValue) {\r\n this.lastValue = value;\r\n this.onChange(value);\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n _handleBlurEvent() {\r\n this.onTouched();\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this.onChange = fn; // emit verandering aan formcontrol\r\n }\r\n registerOnTouched(fn: () => void) {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;;MAsGa,oBAAoB,CAAA;AAyBM,IAAA,aAAa,CAAC,EAAS,EAAA;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AACqC,IAAA,cAAc,CAAC,EAAc,EAAA;AACjE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAA4B,CAAC;AACvD,QAAA,MAAM,cAAc,GAAG,EAAE,CAAC,aAA4B,CAAC;QACvD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACvD,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;AAC2C,IAAA,iBAAiB,CAAC,EAAS,EAAA;AACrE,QAAA,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YACxD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,WAAA,CAAoB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QA1DrC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;QACxB,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;QAClB,IAAe,CAAA,eAAA,GAAG,eAAe,CAAC;QAEzB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEnB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QAGpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAKnB,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACzD,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAC3D,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;KAoChE;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;KACF;+GAxEU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAvFrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqFP,EAxFD,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,oOAClB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAyFR,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA9FhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,kBAAkB;wBAClB,iBAAiB;AACpB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqFP,IAAA,CAAA;AACJ,iBAAA,CAAA;+EAOU,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBACG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAC8B,aAAa,EAAA,CAAA;sBAAjD,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAGG,cAAc,EAAA,CAAA;sBAAnD,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAOQ,iBAAiB,EAAA,CAAA;sBAA5D,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC3G/B,oBAAoB,CAAA;AAxBjC,IAAA,WAAA,GAAA;QAyBY,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QACnB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;AAC9D,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AAwC9F,KAAA;IArCC,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;KACxB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACvC;AAED,IAAA,qBAAqB,CAAC,SAAkD,EAAA;AACtE,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACxB;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACtE,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;gBACxE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACD,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACD,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9E,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,MAAM,CAAC,SAAkD,EAAA;AAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;+GA1CU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAlBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;AAgBH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBL,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAoBT,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAxBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,kBAAkB;AACrB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBH,QAAA,CAAA;AACR,iBAAA,CAAA;8BAGU,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCWI,qBAAqB,CAAA;AAvClC,IAAA,WAAA,GAAA;QA2CW,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAIrB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;QAC/D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAO,CAAA,OAAA,GAAuE,MAAM,CAAC;AAEpF,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAChE,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AA0CvC,KAAA;IAtCC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;+GA3DU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAjCtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjCL,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAmCX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvCjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACvB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BH,QAAA,CAAA;AACR,iBAAA,CAAA;8BAIU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACgC,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCHzB,sBAAsB,CAAA;AAvDnC,IAAA,WAAA,GAAA;AAwDY,QAAA,IAAA,CAAA,aAAa,GAGnB;AACF,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,MAAM,EAAE,IAAI;SACb,CAAC;QAEO,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AA6DpB,KAAA;IA1DC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KAC5C;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACpB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;SACpD;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,cAAc,CAAC,QAA2B,EAAA;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;YACnC,IAAI,CAAC,aAAa,GAAG;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aACnE,CAAC;SACH;aAAM;YACL,IAAI,CAAC,aAAa,GAAG;AACnB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,MAAM,EAAE,IAAI;aACb,CAAC;SACH;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;KAChB;IAED,WAAW,CAAC,KAAU,EAAE,QAAe,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA,KAAK,EAAE,QAAQ,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;AACxD,YAAA,MAAM,EAAE,QAAQ,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;SAC3D,CAAC;AACF,QAAA,IAAI,MAAM,CAAC;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,EAAE;YAC3E,MAAM,GAAG,IAAI,CAAC;SACf;aAAM;AACL,YAAA,MAAM,GAAG,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;SACpI;QACD,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,KAAK,EAAE,MAAM;SACd,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;+GA9EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAjDvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBL,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA3BH,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAmDF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAvDlC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA;wBACP,WAAW;qBACZ,EACS,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBL,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uSAAA,CAAA,EAAA,CAAA;8BAgCI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACwC,aAAa,EAAA,CAAA;sBAA1D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MC/BjC,uBAAuB,CAAA;AA7CpC,IAAA,WAAA,GAAA;QAiDW,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAElE,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAwB9B,KAAA;IAtBC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;+GArCU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAzCxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaL,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA4BM,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA7CnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaL,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA,CAAA;8BA+BI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAC+B,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCnCzB,sBAAsB,CAAA;AAnBnC,IAAA,WAAA,GAAA;QAoBE,IAAiB,CAAA,iBAAA,GAAwB,EAAE,CAAC;QAClC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAInB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAwB,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAmEnE,KAAA;IAhEC,UAAU,GAAA;QACR,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACvC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,KACG,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,GAClJ;YACA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;SACxE;KACF;IAED,qBAAqB,CAAC,KAAY,EAAE,SAA4B,EAAA;AAC9D,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;KACF;IAEO,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvH,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;SAC7C;aAAM;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SACxB;KACF;AAEO,IAAA,MAAM,CAAC,SAAkD,EAAA;AAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YACtE,IAAI,CAAE,KAAuB,CAAC,GAAG,KAAK,SAAS,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW,KAAK,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;gBAC1H,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;YACD,IAAI,CAAE,KAAuB,CAAC,GAAG,KAAK,WAAW,IAAK,KAAuB,CAAC,GAAG,KAAK,YAAY,KAAK,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1J,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC1E,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW;gBAC7C,KAAuB,CAAC,GAAG,KAAK,WAAW;gBAC3C,KAAuB,CAAC,GAAG,KAAK,YAAY;AAC5C,gBAAA,KAAuB,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACJ;+GA9EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAbvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWC,YAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAbT,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAeb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,sBAAsB;AACzB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWC,YAAA,CAAA;AACZ,iBAAA,CAAA;8BAKU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;ICtCG,iBAcX;AAdD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAAgC,CAAA;AAChC,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,gBAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAdW,gBAAgB,KAAhB,gBAAgB,GAc3B,EAAA,CAAA,CAAA;;MC4CY,0BAA0B,CAAA;AAUrC,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAP1C,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,YAAY,EAAU,CAAC;QAEpE,IAAO,CAAA,OAAA,GAAG,OAAO,CAAA;QACjB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;AAGhC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAG,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAG,CAAC,CAAC;KACtD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;KAChC;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrC;+GAvBU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAxC3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA3CC,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAElB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA0CR,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAjDtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,kBAAkB;wBAClB,oBAAoB;wBACpB,iBAAiB;AACpB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA;AACF,iBAAA,CAAA;sFAEU,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MCzBI,qBAAqB,CAAA;AA0BhC,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,CAAA,CAAE,GAAG,IAAI,CAAC,YAAY,CAAC;KAC3G;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,cAAc,CAAA,CAAE,GAAG,IAAI,CAAC,cAAc,CAAC;KACnH;AAGD,IAAA,IAAI,IAAI,GAAA,EAAK,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;AACzF,IAAA,IAAI,MAAM,GAAA,EAAK,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;AAE7F,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAlC3C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAGrB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;QAC/D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAChE,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAGtC,QAAA,IAAA,CAAA,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC;QAC1C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChE,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACtE,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;QACnC,IAAc,CAAA,cAAA,GAAkB,IAAI,CAAC;KAcmB;IAExD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,MAAM,UAAU,CAAC,IAAyB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AAC9C,YAAA,SAAS,EAAE,0BAA0B;AACrC,YAAA,cAAc,EAAE;AACd,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK;AACtB,qBAAC,IAAI,KAAK,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,SAAS;gBACtH,IAAI;AACL,aAAA;AACF,SAAA,CAAC,CAAC;QAEH,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;;AAGjC,YAAA,IAAI,IAAI,KAAK,OAAO,EAAE;;;AAGpB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9B,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;aAEpB;AAAM,iBAAA,IAAI,IAAI,KAAK,SAAS,EAAE;;;AAG7B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;KACvB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAE,CAAA,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3F,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,cAAc,CAAE,CAAA,GAAG,IAAI,CAAC,cAAc,CAAC;AACnG,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,aAAa,CAAI,CAAA,EAAA,eAAe,EAAE,CAAC;YAEvD,IAAI,CAAC,KAAK,GAAG;AACX,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,KAAK,EAAE,QAAQ;aAChB,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;KACF;+GA3HU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EARtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAML,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAlBH,WAAW,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAoBF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA1BjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,kBAAkB;wBAClB,oBAAoB;wBACpB,WAAW;qBACd,EAWW,QAAA,EAAA,CAAA;;;;;;AAML,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,CAAA;sFAKI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACgC,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AC9CtC,IAAK,QAIJ,CAAA;AAJD,CAAA,UAAK,QAAQ,EAAA;AACX,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJI,QAAQ,KAAR,QAAQ,GAIZ,EAAA,CAAA,CAAA,CAAA;MAYY,qBAAqB,CAAA;AAVlC,IAAA,WAAA,GAAA;AAYE,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;QAClC,IAAW,CAAA,WAAA,GAAG,KAAK,EAAW,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAG,KAAK,EAAS,CAAC;QAC/B,IAAK,CAAA,KAAA,GAAI,KAAK,CAAuB;AACnC,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,KAAK,EAAE,EAAE;AACV,SAAA,CAAC,CAAC;QACH,IAAS,CAAA,SAAA,GAAG,MAAM,EAAqB,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,IAAI,CAAC,CAAC;QAClC,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAE,CAAC;AAEpB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAW,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEnD,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAU,IAAI,CAAC,CAAC;AAEtC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAe,IAAI,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAe,IAAI,CAAC,CAAC;QAEzC,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC,QAAQ,CAAa,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpE,IAAmB,CAAA,mBAAA,GAAG,SAAS,CAAC,QAAQ,CAAa,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtE,IAAiB,CAAA,iBAAA,GAAG,SAAS,CAAC,QAAQ,CAAa,QAAQ,CAAC,IAAI,CAAC,CAAC;AAElE,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAyB,MAAK;AACrD,YAAA,QAAO,IAAI,CAAC,eAAe,EAAE;gBAC3B,KAAK,QAAQ,CAAC,KAAK;AACjB,oBAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC;gBACrC,KAAK,QAAQ,CAAC,MAAM;oBAClB,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAA;gBAC1C,KAAK,QAAQ,CAAC,IAAI;oBAChB,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAA;aACzC;AACH,SAAC,CAAC,CAAC;AAoCH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAInB,EAAC,KAAK,EAAE,EAAE;AACX,YAAA,MAAM,EAAE,CAAC;AACP,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,CAAC;AACF,YAAA,IAAI,EAAE,EAAE,GAAE,CAAC,CAAC;AA6Ef,KAAA;AAzJC,IAAA,WAAW,CAAC,YAAoB,EAAA;QAC9B,QAAO,YAAY;YACjB,KAAK,QAAQ,CAAC,KAAK;gBACjB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM;YACN,KAAK,QAAQ,CAAC,MAAM;gBAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACnD,MAAM;YACN,KAAK,QAAQ,CAAC,IAAI;gBAChB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACjD,MAAM;SACP;KACF;IAED,aAAa,CAAC,QAAgB,EAAE,YAAoB,EAAA;AAClD,QAAA,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC;QAE9B,IAAG,WAAW,IAAI,CAAC;YAAE,OAAO;QAE5B,QAAO,YAAY;YACjB,KAAK,QAAQ,CAAC,KAAK;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACrC,MAAM;YACN,KAAK,QAAQ,CAAC,MAAM;AAClB,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACtC,MAAM;YACN,KAAK,QAAQ,CAAC,IAAI;AAChB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACpC,MAAM;SACP;KACF;IA8CD,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SACvC;KACF;AAED,IAAA,qBAAqB,CAAC,KAAa,EAAA;AAEjC,QAAA,QAAO,IAAI,CAAC,eAAe,EAAE;YAC3B,KAAK,QAAQ,CAAC,KAAK;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM;YACN,KAAK,QAAQ,CAAC,MAAM;AAClB,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM;YACN,KAAK,QAAQ,CAAC,IAAI;AAChB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM;SACP;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,kBAAkB,GAAA;AAChB,QAAA,MAAM,iBAAiB,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAA,CAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,EAAG,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAA,CAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAE,CAAA,GAAG,CAAA,CAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,EAAG,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA,CAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAE,CAAA,GAAG,CAAA,CAAE,EAAE,CAAA;QAE1S,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAExD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAG,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KACnC;IAED,kBAAkB,GAAA;AAChB,QAAA,QAAO,IAAI,CAAC,eAAe,EAAE;YAC3B,KAAK,QAAQ,CAAC,KAAK;AACjB,gBAAA,IAAG,IAAI,CAAC,cAAc,EAAE,EAAE;oBACxB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;iBAClD;qBACI;oBACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;iBACjD;gBACH,MAAM;YACN,KAAK,QAAQ,CAAC,MAAM;AAClB,gBAAA,IAAG,IAAI,CAAC,YAAY,EAAE,EAAE;oBACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;iBAChD;qBACI;oBACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;iBACjD;gBACH,MAAM;YACN,KAAK,QAAQ,CAAC,IAAI;gBAChB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBAClD,MAAM;SACP;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;AACjC,QAAA,KAAK,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;AAC1G,YAAA,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,gBAAA,WAAW,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA,CAAC,CAAC;SACJ;KACF;+GA9LU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,25CAuBoB,QAAQ,CAAC,KAAK,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACb,QAAQ,CAAC,MAAM,EACjB,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,QAAQ,CAAC,IAAI,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjDlE,0pDA6CM,ED3BF,MAAA,EAAA,CAAA,+3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,+HACtB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,sBAAsB;wBACtB,WAAW;AACZ,qBAAA,EAAA,QAAA,EAAA,0pDAAA,EAAA,MAAA,EAAA,CAAA,+3BAAA,CAAA,EAAA,CAAA;;;ME8HU,iBAAiB,CAAA;AArI9B,IAAA,WAAA,GAAA;QAsIW,IAAQ,CAAA,QAAA,GAAW,OAAO,CAAC;QAI3B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAGrB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAyB,CAAA,yBAAA,GAAgC,KAAK,CAAC;QAE/D,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,OAAO,GAAqB,gBAAgB,CAAC,IAAI,CAAC;QAGlD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAM1D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AA2EpB,QAAA,IAAA,CAAA,QAAQ,GAAyB,MAAK,GAAO,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAO,CAAC;AAyB9C,KAAA;IApGC,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,UAAU,GAAA;QACR,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B,EAAE,CAAC,CAAC,CAAC;KACP;IAED,WAAW,GAAA;QACT,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,KAAK,EAAE;AAC3C,gBAAA,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;aAChC;SACF,EAAE,CAAC,CAAC,CAAC;KACP;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAEO,kBAAkB,GAAA;AACxB,QAAA,QAAQ,IAAI,CAAC,OAAO;YAClB,KAAK,gBAAgB,CAAC,YAAY,CAAC;YACnC,KAAK,gBAAgB,CAAC,IAAI,CAAC;YAC3B,KAAK,gBAAgB,CAAC,aAAa;AACjC,gBAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,gBAAgB,CAAC,MAAM;AAC1B,gBAAA,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,gBAAgB,CAAC,KAAK;AACzB,gBAAA,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,gBAAgB,CAAC,IAAI;AACxB,gBAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;gBAC9B,MAAM;SACP;KACJ;AAMD,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACrC;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;KACF;IAGD,gBAAgB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AACD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;+GA1IU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAtHjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,iBAAiB;AAC9B,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAiJU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,8EACtB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACvB,qBAAqB,EACrB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qBAAqB,EACrB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,EApJvB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GO,kBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA5Hf,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAwHZ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBArI7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,aAAa,EAAE,2BAA2B;AAC3C,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,qBAAqB;wBACrB,sBAAsB;wBACtB,uBAAuB;wBACvB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;AACxB,qBAAA;AACC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAmB,iBAAA;AAC9B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GO,kBAAA,CAAA;AAClB,iBAAA,CAAA;8BAEU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAC4B,UAAU,EAAA,CAAA;sBAA5C,SAAS;uBAAC,sBAAsB,CAAA;gBACG,WAAW,EAAA,CAAA;sBAA9C,SAAS;uBAAC,uBAAuB,CAAA;gBACA,SAAS,EAAA,CAAA;sBAA1C,SAAS;uBAAC,qBAAqB,CAAA;gBACE,SAAS,EAAA,CAAA;sBAA1C,SAAS;uBAAC,qBAAqB,CAAA;gBACG,UAAU,EAAA,CAAA;sBAA5C,SAAS;uBAAC,sBAAsB,CAAA;gBACxB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBA2FN,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,UAAU,CAAA;;;AClR1B;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softpak/components",
3
- "version": "18.6.10",
3
+ "version": "18.6.11",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "18.x.x || 19.x.x",
@@ -40,23 +40,17 @@
40
40
  "esm": "./esm2022/spx-app-update/softpak-components-spx-app-update.mjs",
41
41
  "default": "./fesm2022/softpak-components-spx-app-update.mjs"
42
42
  },
43
- "./spx-app-configuration": {
44
- "types": "./spx-app-configuration/index.d.ts",
45
- "esm2022": "./esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs",
46
- "esm": "./esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs",
47
- "default": "./fesm2022/softpak-components-spx-app-configuration.mjs"
48
- },
49
43
  "./spx-app-expiry": {
50
44
  "types": "./spx-app-expiry/index.d.ts",
51
45
  "esm2022": "./esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs",
52
46
  "esm": "./esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs",
53
47
  "default": "./fesm2022/softpak-components-spx-app-expiry.mjs"
54
48
  },
55
- "./spx-button": {
56
- "types": "./spx-button/index.d.ts",
57
- "esm2022": "./esm2022/spx-button/softpak-components-spx-button.mjs",
58
- "esm": "./esm2022/spx-button/softpak-components-spx-button.mjs",
59
- "default": "./fesm2022/softpak-components-spx-button.mjs"
49
+ "./spx-app-configuration": {
50
+ "types": "./spx-app-configuration/index.d.ts",
51
+ "esm2022": "./esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs",
52
+ "esm": "./esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs",
53
+ "default": "./fesm2022/softpak-components-spx-app-configuration.mjs"
60
54
  },
61
55
  "./spx-capitalize": {
62
56
  "types": "./spx-capitalize/index.d.ts",
@@ -64,18 +58,24 @@
64
58
  "esm": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
65
59
  "default": "./fesm2022/softpak-components-spx-capitalize.mjs"
66
60
  },
67
- "./spx-card": {
68
- "types": "./spx-card/index.d.ts",
69
- "esm2022": "./esm2022/spx-card/softpak-components-spx-card.mjs",
70
- "esm": "./esm2022/spx-card/softpak-components-spx-card.mjs",
71
- "default": "./fesm2022/softpak-components-spx-card.mjs"
72
- },
73
61
  "./spx-change-details": {
74
62
  "types": "./spx-change-details/index.d.ts",
75
63
  "esm2022": "./esm2022/spx-change-details/softpak-components-spx-change-details.mjs",
76
64
  "esm": "./esm2022/spx-change-details/softpak-components-spx-change-details.mjs",
77
65
  "default": "./fesm2022/softpak-components-spx-change-details.mjs"
78
66
  },
67
+ "./spx-button": {
68
+ "types": "./spx-button/index.d.ts",
69
+ "esm2022": "./esm2022/spx-button/softpak-components-spx-button.mjs",
70
+ "esm": "./esm2022/spx-button/softpak-components-spx-button.mjs",
71
+ "default": "./fesm2022/softpak-components-spx-button.mjs"
72
+ },
73
+ "./spx-card": {
74
+ "types": "./spx-card/index.d.ts",
75
+ "esm2022": "./esm2022/spx-card/softpak-components-spx-card.mjs",
76
+ "esm": "./esm2022/spx-card/softpak-components-spx-card.mjs",
77
+ "default": "./fesm2022/softpak-components-spx-card.mjs"
78
+ },
79
79
  "./spx-channel-selection": {
80
80
  "types": "./spx-channel-selection/index.d.ts",
81
81
  "esm2022": "./esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs",
@@ -94,6 +94,12 @@
94
94
  "esm": "./esm2022/spx-form-view/softpak-components-spx-form-view.mjs",
95
95
  "default": "./fesm2022/softpak-components-spx-form-view.mjs"
96
96
  },
97
+ "./spx-helpers": {
98
+ "types": "./spx-helpers/index.d.ts",
99
+ "esm2022": "./esm2022/spx-helpers/softpak-components-spx-helpers.mjs",
100
+ "esm": "./esm2022/spx-helpers/softpak-components-spx-helpers.mjs",
101
+ "default": "./fesm2022/softpak-components-spx-helpers.mjs"
102
+ },
97
103
  "./spx-form-section": {
98
104
  "types": "./spx-form-section/index.d.ts",
99
105
  "esm2022": "./esm2022/spx-form-section/softpak-components-spx-form-section.mjs",
@@ -106,18 +112,6 @@
106
112
  "esm": "./esm2022/spx-inputs/softpak-components-spx-inputs.mjs",
107
113
  "default": "./fesm2022/softpak-components-spx-inputs.mjs"
108
114
  },
109
- "./spx-navigation": {
110
- "types": "./spx-navigation/index.d.ts",
111
- "esm2022": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
112
- "esm": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
113
- "default": "./fesm2022/softpak-components-spx-navigation.mjs"
114
- },
115
- "./spx-helpers": {
116
- "types": "./spx-helpers/index.d.ts",
117
- "esm2022": "./esm2022/spx-helpers/softpak-components-spx-helpers.mjs",
118
- "esm": "./esm2022/spx-helpers/softpak-components-spx-helpers.mjs",
119
- "default": "./fesm2022/softpak-components-spx-helpers.mjs"
120
- },
121
115
  "./spx-number-check": {
122
116
  "types": "./spx-number-check/index.d.ts",
123
117
  "esm2022": "./esm2022/spx-number-check/softpak-components-spx-number-check.mjs",
@@ -130,11 +124,11 @@
130
124
  "esm": "./esm2022/spx-pagination/softpak-components-spx-pagination.mjs",
131
125
  "default": "./fesm2022/softpak-components-spx-pagination.mjs"
132
126
  },
133
- "./spx-patch": {
134
- "types": "./spx-patch/index.d.ts",
135
- "esm2022": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
136
- "esm": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
137
- "default": "./fesm2022/softpak-components-spx-patch.mjs"
127
+ "./spx-navigation": {
128
+ "types": "./spx-navigation/index.d.ts",
129
+ "esm2022": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
130
+ "esm": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
131
+ "default": "./fesm2022/softpak-components-spx-navigation.mjs"
138
132
  },
139
133
  "./spx-progress-bar": {
140
134
  "types": "./spx-progress-bar/index.d.ts",
@@ -142,24 +136,18 @@
142
136
  "esm": "./esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs",
143
137
  "default": "./fesm2022/softpak-components-spx-progress-bar.mjs"
144
138
  },
139
+ "./spx-patch": {
140
+ "types": "./spx-patch/index.d.ts",
141
+ "esm2022": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
142
+ "esm": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
143
+ "default": "./fesm2022/softpak-components-spx-patch.mjs"
144
+ },
145
145
  "./spx-spinner": {
146
146
  "types": "./spx-spinner/index.d.ts",
147
147
  "esm2022": "./esm2022/spx-spinner/softpak-components-spx-spinner.mjs",
148
148
  "esm": "./esm2022/spx-spinner/softpak-components-spx-spinner.mjs",
149
149
  "default": "./fesm2022/softpak-components-spx-spinner.mjs"
150
150
  },
151
- "./spx-storage": {
152
- "types": "./spx-storage/index.d.ts",
153
- "esm2022": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
154
- "esm": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
155
- "default": "./fesm2022/softpak-components-spx-storage.mjs"
156
- },
157
- "./spx-stock-info": {
158
- "types": "./spx-stock-info/index.d.ts",
159
- "esm2022": "./esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs",
160
- "esm": "./esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs",
161
- "default": "./fesm2022/softpak-components-spx-stock-info.mjs"
162
- },
163
151
  "./spx-suggestion": {
164
152
  "types": "./spx-suggestion/index.d.ts",
165
153
  "esm2022": "./esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs",
@@ -178,6 +166,18 @@
178
166
  "esm": "./esm2022/spx-update/softpak-components-spx-update.mjs",
179
167
  "default": "./fesm2022/softpak-components-spx-update.mjs"
180
168
  },
169
+ "./spx-storage": {
170
+ "types": "./spx-storage/index.d.ts",
171
+ "esm2022": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
172
+ "esm": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
173
+ "default": "./fesm2022/softpak-components-spx-storage.mjs"
174
+ },
175
+ "./spx-stock-info": {
176
+ "types": "./spx-stock-info/index.d.ts",
177
+ "esm2022": "./esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs",
178
+ "esm": "./esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs",
179
+ "default": "./fesm2022/softpak-components-spx-stock-info.mjs"
180
+ },
181
181
  "./spx-validation": {
182
182
  "types": "./spx-validation/index.d.ts",
183
183
  "esm2022": "./esm2022/spx-validation/softpak-components-spx-validation.mjs",
@@ -1,5 +1,6 @@
1
1
  import { ElementRef, EventEmitter } from '@angular/core';
2
2
  import { SpxValuePair } from './spx-value-interface';
3
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class SpxInputBoxComponent {
5
6
  private elRef;
@@ -7,6 +8,7 @@ export declare class SpxInputBoxComponent {
7
8
  faSearch: import("@fortawesome/fontawesome-common-types").IconDefinition;
8
9
  faQuestion: import("@fortawesome/fontawesome-common-types").IconDefinition;
9
10
  faTimes: import("@fortawesome/fontawesome-common-types").IconDefinition;
11
+ spxSeverityEnum: typeof SpxSeverityEnum;
10
12
  spxCompact?: boolean;
11
13
  spxFocused: boolean;
12
14
  spxLabel?: string;
@@ -17,6 +19,7 @@ export declare class SpxInputBoxComponent {
17
19
  spxShowHelp?: boolean;
18
20
  spxShowLabel: boolean;
19
21
  spxShowSearch?: boolean;
22
+ spxAlertMessageSeverity?: SpxSeverityEnum;
20
23
  spxShowValidationMessages?: boolean | null | undefined;
21
24
  spxValue?: SpxValuePair<any>;
22
25
  spxClear: EventEmitter<void>;
@@ -36,5 +39,5 @@ export declare class SpxInputBoxComponent {
36
39
  private emitFocusIn;
37
40
  private emitFocusOut;
38
41
  static ɵfac: i0.ɵɵFactoryDeclaration<SpxInputBoxComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<SpxInputBoxComponent, "spx-input-box", never, { "spxCompact": { "alias": "spxCompact"; "required": false; }; "spxFocused": { "alias": "spxFocused"; "required": false; }; "spxLabel": { "alias": "spxLabel"; "required": false; }; "spxReadonly": { "alias": "spxReadonly"; "required": false; }; "spxRequired": { "alias": "spxRequired"; "required": false; }; "spxShowClear": { "alias": "spxShowClear"; "required": false; }; "spxShowEdit": { "alias": "spxShowEdit"; "required": false; }; "spxShowHelp": { "alias": "spxShowHelp"; "required": false; }; "spxShowLabel": { "alias": "spxShowLabel"; "required": false; }; "spxShowSearch": { "alias": "spxShowSearch"; "required": false; }; "spxShowValidationMessages": { "alias": "spxShowValidationMessages"; "required": false; }; "spxValue": { "alias": "spxValue"; "required": false; }; }, { "spxClear": "spxClear"; "spxSearch": "spxSearch"; "spxFocus": "spxFocus"; "spxFocusOut": "spxFocusOut"; "spxEdit": "spxEdit"; "spxHelp": "spxHelp"; }, never, ["[controls]", "[validation-messages]"], true, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpxInputBoxComponent, "spx-input-box", never, { "spxCompact": { "alias": "spxCompact"; "required": false; }; "spxFocused": { "alias": "spxFocused"; "required": false; }; "spxLabel": { "alias": "spxLabel"; "required": false; }; "spxReadonly": { "alias": "spxReadonly"; "required": false; }; "spxRequired": { "alias": "spxRequired"; "required": false; }; "spxShowClear": { "alias": "spxShowClear"; "required": false; }; "spxShowEdit": { "alias": "spxShowEdit"; "required": false; }; "spxShowHelp": { "alias": "spxShowHelp"; "required": false; }; "spxShowLabel": { "alias": "spxShowLabel"; "required": false; }; "spxShowSearch": { "alias": "spxShowSearch"; "required": false; }; "spxAlertMessageSeverity": { "alias": "spxAlertMessageSeverity"; "required": false; }; "spxShowValidationMessages": { "alias": "spxShowValidationMessages"; "required": false; }; "spxValue": { "alias": "spxValue"; "required": false; }; }, { "spxClear": "spxClear"; "spxSearch": "spxSearch"; "spxFocus": "spxFocus"; "spxFocusOut": "spxFocusOut"; "spxEdit": "spxEdit"; "spxHelp": "spxHelp"; }, never, ["[controls]", "[validation-messages]", "[validation-messages]"], true, never>;
40
43
  }