@softpak/components 18.6.3 → 18.6.4

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.
@@ -7,7 +7,7 @@ export class SpxFormSectionComponent {
7
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxFormSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
8
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxFormSectionComponent, isStandalone: true, selector: "spx-form-section", inputs: { spxIndex: "spxIndex", spxIndexSecondary: "spxIndexSecondary", spxTitle: "spxTitle", spxShowTitle: "spxShowTitle" }, ngImport: i0, template: `@if (this.spxShowTitle) {
9
9
  <div class="spx-form-section__title mb-2 flex gap-3 items-center">
10
- <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold">{{this.spxIndex}}@if (this.spxIndexSecondary) {
10
+ <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold rounded">{{this.spxIndex}}@if (this.spxIndexSecondary) {
11
11
  {{ this.spxIndexSecondary }}
12
12
  }</div>
13
13
  <div class="spx-form-section__content font-bold grow text-black dark:text-white">{{this.spxTitle}}</div>
@@ -21,7 +21,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
21
21
  type: Component,
22
22
  args: [{ selector: 'spx-form-section', standalone: true, imports: [], template: `@if (this.spxShowTitle) {
23
23
  <div class="spx-form-section__title mb-2 flex gap-3 items-center">
24
- <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold">{{this.spxIndex}}@if (this.spxIndexSecondary) {
24
+ <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold rounded">{{this.spxIndex}}@if (this.spxIndexSecondary) {
25
25
  {{ this.spxIndexSecondary }}
26
26
  }</div>
27
27
  <div class="spx-form-section__content font-bold grow text-black dark:text-white">{{this.spxTitle}}</div>
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
39
39
  }], spxShowTitle: [{
40
40
  type: Input
41
41
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tc2VjdGlvbi9zcHgtZm9ybS1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF3Q2pELE1BQU0sT0FBTyx1QkFBdUI7SUF0Q3BDO1FBMENXLGlCQUFZLEdBQUcsSUFBSSxDQUFDO0tBQzlCOytHQUxZLHVCQUF1QjttR0FBdkIsdUJBQXVCLDBNQWxDeEI7Ozs7Ozs7Ozs7T0FVTDs7NEZBd0JNLHVCQUF1QjtrQkF0Q25DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxFQUFFLFlBQ0Q7Ozs7Ozs7Ozs7T0FVTDs4QkF5QkksUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3B4LWZvcm0tc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZTogYEBpZiAodGhpcy5zcHhTaG93VGl0bGUpIHtcclxuICA8ZGl2IGNsYXNzPVwic3B4LWZvcm0tc2VjdGlvbl9fdGl0bGUgbWItMiBmbGV4IGdhcC0zIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNweC1mb3JtLXNlY3Rpb25fX3RpdGxlLWluZGV4IGZsZXggY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgdGV4dC1zbSBoLVszMHB4XSB3LVszMHB4XSBmb250LWJvbGRcIj57e3RoaXMuc3B4SW5kZXh9fUBpZiAodGhpcy5zcHhJbmRleFNlY29uZGFyeSkge1xyXG4gICAgICB7eyB0aGlzLnNweEluZGV4U2Vjb25kYXJ5IH19XHJcbiAgICB9PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3B4LWZvcm0tc2VjdGlvbl9fY29udGVudCBmb250LWJvbGQgZ3JvdyB0ZXh0LWJsYWNrIGRhcms6dGV4dC13aGl0ZVwiPnt7dGhpcy5zcHhUaXRsZX19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbn1cclxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBgXHJcbiAgOmhvc3Qge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIFxyXG4gIC5zcHgtZm9ybS1zZWN0aW9uX190aXRsZS1pbmRleCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS1pbmRleC0tYmFja2dyb3VuZC1jb2xvcik7XHJcbiAgICBjb2xvcjogdmFyKC0tc3B4LWZvcm0tc2VjdGlvbi0taW5kZXgtLWNvbG9yLCAjRkZGRkZGKTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG5cclxuICAuc3B4LWZvcm0tc2VjdGlvbl9fY29udGVudCB7XHJcbiAgICBjb2xvcjogdmFyKC0tc3B4LWZvcm0tc2VjdGlvbi0taW5kZXgtLWJhY2tncm91bmQtY29sb3IsICMwMDAwMDApO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xyXG4gICAgLnNweC1mb3JtLXNlY3Rpb25fX2NvbnRlbnQge1xyXG4gICAgICBjb2xvcjogdmFyKC0tc3B4LWZvcm0tc2VjdGlvbi0taW5kZXgtLWJhY2tncm91bmQtY29sb3IsICNGRkZGRkYpO1xyXG4gICAgfVxyXG59XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNweEZvcm1TZWN0aW9uQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzcHhJbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBzcHhJbmRleFNlY29uZGFyeT86IG51bWJlcjtcclxuICBASW5wdXQoKSBzcHhUaXRsZT86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhTaG93VGl0bGUgPSB0cnVlO1xyXG59XHJcbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tc2VjdGlvbi9zcHgtZm9ybS1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF3Q2pELE1BQU0sT0FBTyx1QkFBdUI7SUF0Q3BDO1FBMENXLGlCQUFZLEdBQUcsSUFBSSxDQUFDO0tBQzlCOytHQUxZLHVCQUF1QjttR0FBdkIsdUJBQXVCLDBNQWxDeEI7Ozs7Ozs7Ozs7T0FVTDs7NEZBd0JNLHVCQUF1QjtrQkF0Q25DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxFQUFFLFlBQ0Q7Ozs7Ozs7Ozs7T0FVTDs4QkF5QkksUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3B4LWZvcm0tc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZTogYEBpZiAodGhpcy5zcHhTaG93VGl0bGUpIHtcclxuICA8ZGl2IGNsYXNzPVwic3B4LWZvcm0tc2VjdGlvbl9fdGl0bGUgbWItMiBmbGV4IGdhcC0zIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNweC1mb3JtLXNlY3Rpb25fX3RpdGxlLWluZGV4IGZsZXggY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgdGV4dC1zbSBoLVszMHB4XSB3LVszMHB4XSBmb250LWJvbGQgcm91bmRlZFwiPnt7dGhpcy5zcHhJbmRleH19QGlmICh0aGlzLnNweEluZGV4U2Vjb25kYXJ5KSB7XHJcbiAgICAgIHt7IHRoaXMuc3B4SW5kZXhTZWNvbmRhcnkgfX1cclxuICAgIH08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzcHgtZm9ybS1zZWN0aW9uX19jb250ZW50IGZvbnQtYm9sZCBncm93IHRleHQtYmxhY2sgZGFyazp0ZXh0LXdoaXRlXCI+e3t0aGlzLnNweFRpdGxlfX08L2Rpdj5cclxuICA8L2Rpdj5cclxufVxyXG48ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9kaXY+YCxcclxuICBzdHlsZXM6IGBcclxuICA6aG9zdCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgXHJcbiAgLnNweC1mb3JtLXNlY3Rpb25fX3RpdGxlLWluZGV4IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNweC1mb3JtLXNlY3Rpb24tLWluZGV4LS1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuICAgIGNvbG9yOiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS1pbmRleC0tY29sb3IsICNGRkZGRkYpO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcblxyXG4gIC5zcHgtZm9ybS1zZWN0aW9uX19jb250ZW50IHtcclxuICAgIGNvbG9yOiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS1pbmRleC0tYmFja2dyb3VuZC1jb2xvciwgIzAwMDAwMCk7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XHJcbiAgICAuc3B4LWZvcm0tc2VjdGlvbl9fY29udGVudCB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS1pbmRleC0tYmFja2dyb3VuZC1jb2xvciwgI0ZGRkZGRik7XHJcbiAgICB9XHJcbn1cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4Rm9ybVNlY3Rpb25Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNweEluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNweEluZGV4U2Vjb25kYXJ5PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNweFRpdGxlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNweFNob3dUaXRsZSA9IHRydWU7XHJcbn1cclxuIl19
@@ -121,10 +121,7 @@ export class SpxInputDateComponent {
121
121
  this.changeSelectedStep();
122
122
  }
123
123
  updateValueAndEmit() {
124
- const concatenatedValue = `
125
- ${this.selectedYear() ? this.selectedYear() : ``}
126
- ${this.selectedMonth() ? `${this.selectedMonth() < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}
127
- ${this.selectedDay() ? `-${this.selectedDay() < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`;
124
+ 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()}` : ``}`;
128
125
  const parsedValue = DateTime.fromISO(concatenatedValue);
129
126
  this.value.set({ value: parsedValue.toISO(), description: parsedValue.toISO() });
130
127
  this.spxChange.emit(this.value());
@@ -161,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
161
158
  FormsModule
162
159
  ], template: "<div class='spx-input-date__controls'>\r\n <input\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, '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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, '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>", styles: [":host{display:block}.spx-input-date__input{background-color:transparent;border:1px solid #979797;border-radius:4px;color:var(--spx-input--color, rgba(0, 0, 0, .9));box-sizing:border-box;font-size:16px;margin-right:10px;padding:6px;text-align:center;width:100%}.spx-input-date__input:active{transform:scale(.95)}.spx-input-date__input:focus{border:var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));border-radius:4px;outline:none}.spx-input-date__control-label{align-items:center;color:#000000b3;display:inline-grid;font-size:13px;letter-spacing:1px}.spx-input-date__input::-webkit-outer-spin-button,.spx-input-date__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spx-input-date__input[type=number]{-moz-appearance:textfield}.spx-input-date__suggestions,.spx-input-date__controls{display:grid;grid-gap:8px;grid-template-columns:repeat(4,1fr);margin-top:8px}\n"] }]
163
160
  }] });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFNUUsSUFBSyxRQUlKO0FBSkQsV0FBSyxRQUFRO0lBQ1gsMkJBQWUsQ0FBQTtJQUNmLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7QUFDZixDQUFDLEVBSkksUUFBUSxLQUFSLFFBQVEsUUFJWjtBQVlELE1BQU0sT0FBTyxxQkFBcUI7SUFWbEM7UUFXRSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2xDLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUMvQixrQkFBYSxHQUFHLEtBQUssRUFBUyxDQUFDO1FBQy9CLFVBQUssR0FBSSxLQUFLLENBQXVCO1lBQ25DLFdBQVcs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clxuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xyXG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN1Z2dlc3Rpb24nO1xyXG5cclxuZW51bSBzdGVwVHlwZSB7XHJcbiAgeWVhcnMgPSBcInllYXJzXCIsXHJcbiAgbW9udGhzID0gXCJtb250aHNcIixcclxuICBkYXlzID0gXCJkYXlzXCJcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtZGF0ZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBTcHhTdWdnZXN0aW9uQ29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3B4LWlucHV0LWRhdGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3NweC1pbnB1dC1kYXRlLmNvbXBvbmVudC5jc3NcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXREYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzcHhNYXggPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgc3B4TWluID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gIHNweFJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuICBzcHhWYWxpZGF0b3JzID0gaW5wdXQ8YW55W10+KCk7XHJcbiAgdmFsdWUgPSAgbW9kZWw8U3B4VmFsdWVQYWlyPHN0cmluZz4+KHtcclxuICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgdmFsdWU6IFwiXCIsXHJcbiAgfSk7XHJcbiAgc3B4Q2hhbmdlID0gb3V0cHV0PFNweFZhbHVlUGFpcjxhbnk+PigpO1xyXG4gIHNweEZvY3VzZWQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBzcHhGb2N1cyA9IG91dHB1dCgpO1xyXG5cclxuICBzcHhTZWxlY3RlZFN0ZXAgPSBzaWduYWw8c3RlcFR5cGU+KHN0ZXBUeXBlLnllYXJzKTtcclxuXHJcbiAgc3B4U2VsZWN0RGF5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHNweFNlbGVjdE1vbnRoID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIHNlbGVjdGVkWWVhciA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBzZWxlY3RlZE1vbnRoID0gc2lnbmFsPG51bWJlcnwgbnVsbD4obnVsbCk7XHJcbiAgc2VsZWN0ZWREYXkgPSBzaWduYWw8bnVtYmVyfCBudWxsPihudWxsKTtcclxuXHJcbiAgc3B4U3VnZ2VzdGlvbkMgPSBjb21wdXRlZDxTcHhWYWx1ZVBhaXI8bnVtYmVyPltdPigoKSA9PiB7XHJcbiAgICBzd2l0Y2godGhpcy5zcHhTZWxlY3RlZFN0ZXAoKSkge1xyXG4gICAgICBjYXNlICdtb250aHMnIDpcclxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuc3B4U3VnZ2VzdGlvbnMoKS5tb250aHNdXHJcbiAgICAgIGNhc2UgJ2RheXMnIDpcclxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuc3B4U3VnZ2VzdGlvbnMoKS5kYXlzXVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLnNweFN1Z2dlc3Rpb25zKCkueWVhcnM7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIG9uTW9kZWxDaGFuZ2UobmV3VmFsdWU6IHN0cmluZywgc2VsZWN0ZWRTdGVwOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gK25ld1ZhbHVlOyAvLyBDb252ZXJ0IHRvIG51bWJlclxyXG5cclxuICAgIGlmKHBhcnNlZFZhbHVlID09IDApIHJldHVybjtcclxuXHJcbiAgICBzd2l0Y2goc2VsZWN0ZWRTdGVwKSB7XHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUueWVhcnM6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXIuc2V0KHBhcnNlZFZhbHVlKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUubW9udGhzOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aC5zZXQocGFyc2VkVmFsdWUpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSBzdGVwVHlwZS5kYXlzOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXkuc2V0KHBhcnNlZFZhbHVlKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzcHhTdWdnZXN0aW9ucyA9IGlucHV0PHtcclxuICAgIHllYXJzOiBTcHhWYWx1ZVBhaXI8bnVtYmVyPltdO1xyXG4gICAgbW9udGhzOiBTcHhWYWx1ZVBhaXI8bnVtYmVyPltdO1xyXG4gICAgZGF5czogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcclxuICB9Pih7eWVhcnM6IFtdLFxyXG4gICAgbW9udGhzOiBbe1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0phbicsXHJcbiAgICAgIHZhbHVlOiAxLFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0ZlYicsXHJcbiAgICAgIHZhbHVlOiAyLFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ01hcicsXHJcbiAgICAgIHZhbHVlOiAzLFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0FwcicsXHJcbiAgICAgIHZhbHVlOiA0LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ01heScsXHJcbiAgICAgIHZhbHVlOiA1LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0p1bicsXHJcbiAgICAgIHZhbHVlOiA2LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0p1bCcsXHJcbiAgICAgIHZhbHVlOiA3LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0F1ZycsXHJcbiAgICAgIHZhbHVlOiA4LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ1NlcCcsXHJcbiAgICAgIHZhbHVlOiA5LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ09jdCcsXHJcbiAgICAgIHZhbHVlOiAxMCxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdOb3YnLFxyXG4gICAgICB2YWx1ZTogMTEsXHJcbiAgICB9LCB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVjJyxcclxuICAgICAgdmFsdWU6IDEyLFxyXG4gICAgfV0sXHJcbiAgICBkYXlzOiBbXSx9KTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN1Z2dlc3RZZWFycygpO1xyXG4gICAgaWYgKHZhbHVlUGFpclRvVmFsdWUodGhpcy52YWx1ZSkpIHtcclxuICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBEYXRlVGltZS5mcm9tSVNPKHZhbHVlUGFpclRvVmFsdWUodGhpcy52YWx1ZSkpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWWVhci5zZXQocGFyc2VkVmFsdWUueWVhcik7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb250aC5zZXQocGFyc2VkVmFsdWUubW9udGgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5LnNldChwYXJzZWRWYWx1ZS5kYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKHZhbHVlOiBudW1iZXIpIHtcclxuXHJcbiAgICBzd2l0Y2godGhpcy5zcHhTZWxlY3RlZFN0ZXAoKSkge1xyXG4gICAgICBjYXNlIFwieWVhcnNcIjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhci5zZXQodmFsdWUpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm1vbnRoc1wiOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aC5zZXQodmFsdWUpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImRheXNcIjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF5LnNldCh2YWx1ZSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlVmFsdWVBbmRFbWl0KCk7XHJcbiAgICB0aGlzLmNoYW5nZVNlbGVjdGVkU3RlcCgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWVBbmRFbWl0KCkge1xyXG4gICAgY29uc3QgY29uY2F0ZW5hdGVkVmFsdWUgPSBgXHJcbiAgICAke3RoaXMuc2VsZWN0ZWRZZWFyKCkgPyB0aGlzLnNlbGVjdGVkWWVhcigpIDogYGB9XHJcbiAgICAke3RoaXMuc2VsZWN0ZWRNb250aCgpID8gYCR7dGhpcy5zZWxlY3RlZE1vbnRoKCkhIDwgMTAgPyBgMCR7dGhpcy5zZWxlY3RlZE1vbnRoKCl9YCA6IHRoaXMuc2VsZWN0ZWRNb250aCgpfWAgOiBgYH1cclxuICAgICR7dGhpcy5zZWxlY3RlZERheSgpID8gYC0ke3RoaXMuc2VsZWN0ZWREYXkoKSEgPCAxMCA/IGAwJHt0aGlzLnNlbGVjdGVkRGF5KCl9YCA6IHRoaXMuc2VsZWN0ZWREYXkoKX1gIDogYGB9YFxyXG5cclxuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gRGF0ZVRpbWUuZnJvbUlTTyhjb25jYXRlbmF0ZWRWYWx1ZSk7XHJcbiAgICBcclxuICAgIHRoaXMudmFsdWUuc2V0KHt2YWx1ZTogcGFyc2VkVmFsdWUudG9JU08oKSEsIGRlc2NyaXB0aW9uOiBwYXJzZWRWYWx1ZS50b0lTTygpfSk7XHJcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUoKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTZWxlY3RlZFN0ZXAoKSB7XHJcbiAgICBzd2l0Y2godGhpcy5zcHhTZWxlY3RlZFN0ZXAoKSkge1xyXG4gICAgICBjYXNlICdkYXlzJzpcclxuICAgICAgICB0aGlzLnNweFNlbGVjdGVkU3RlcC5zZXQoc3RlcFR5cGUueWVhcnMpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbW9udGhzJzpcclxuICAgICAgICB0aGlzLnNweFNlbGVjdGVkU3RlcC5zZXQodGhpcy5zcHhTZWxlY3REYXkoKSA/IHN0ZXBUeXBlLmRheXMgOiBzdGVwVHlwZS55ZWFycyk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd5ZWFycyc6XHJcbiAgICAgICAgdGhpcy5zcHhTZWxlY3RlZFN0ZXAuc2V0KHRoaXMuc3B4U2VsZWN0TW9udGgoKSA/IHN0ZXBUeXBlLm1vbnRocyA6IHN0ZXBUeXBlLnllYXJzKTtcclxuICAgICAgYnJlYWs7ICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VnZ2VzdFllYXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zcHhTdWdnZXN0aW9ucygpLnllYXJzID0gW107XHJcbiAgICBmb3IgKGxldCB5ZWFyID0gRGF0ZVRpbWUuZnJvbUlTTyh0aGlzLnNweE1pbigpKS55ZWFyOyB5ZWFyIDw9IERhdGVUaW1lLmZyb21JU08odGhpcy5zcHhNYXgoKSkueWVhcjsgeWVhcisrKSB7XHJcbiAgICAgIHRoaXMuc3B4U3VnZ2VzdGlvbnMoKS55ZWFycy5wdXNoKHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogYCcke3llYXIudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiwgNCl9YCxcclxuICAgICAgICB2YWx1ZTogeWVhcixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9scyc+XHJcbiAgPGlucHV0XHJcbiAgICBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2lucHV0J1xyXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFllYXJcIlxyXG4gICAgW2F0dHIudHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudCwgJ3llYXJzJylcIlxyXG4gICAgW2F0dHIubWluXT1cIjE5MDBcIlxyXG4gICAgW2F0dHIubWF4XT1cIjIxMDBcIlxyXG4gICAgW2F0dHIuc3RlcF09XCIxXCJcclxuICAgIC8+XHJcbiAgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwnPlllYXI8L2Rpdj5cclxuICBAaWYgKHRoaXMuc3B4U2VsZWN0TW9udGgoKSkge1xyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9faW5wdXQnXHJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb250aFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50LCAnbW9udGhzJylcIlxyXG4gICAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgW2F0dHIubWluXT1cIjFcIlxyXG4gICAgICBbYXR0ci5tYXhdPVwiMTJcIlxyXG4gICAgICBbYXR0ci5zdGVwXT1cIjFcIiAvPlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fY29udHJvbC1sYWJlbCc+TW9udGg8L2Rpdj5cclxuICBAaWYgKHRoaXMuc3B4U2VsZWN0RGF5KCkpIHtcclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2lucHV0J1xyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF5XCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQsICdkYXlzJylcIlxyXG4gICAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgW2F0dHIubWluXT1cIjFcIlxyXG4gICAgICBbYXR0ci5tYXhdPVwiMzFcIlxyXG4gICAgICBbYXR0ci5zdGVwXT1cIjFcIiAvPlxyXG4gICAgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwnPkRheXM8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fc3VnZ2VzdGlvbnMnPlxyXG4gIEBmb3IgKHZhbHVlUGFpciBvZiBzcHhTdWdnZXN0aW9uQygpOyB0cmFjayB2YWx1ZVBhaXIudmFsdWUpIHtcclxuICAgIDxzcHgtc3VnZ2VzdGlvbiBbc3B4U2VsZWN0ZWRdPVwiXHJcbiAgICAoc2VsZWN0ZWRZZWFyKCkgPT09IHZhbHVlUGFpci52YWx1ZSkgfHxcclxuICAgIChzZWxlY3RlZE1vbnRoKCkgPT09IHZhbHVlUGFpci52YWx1ZSkgfHwgIFxyXG4gICAgKHNlbGVjdGVkRGF5KCkgPT09IHZhbHVlUGFpci52YWx1ZSlcIlxyXG4gICAgKGNsaWNrKT1cInRoaXMuaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKHZhbHVlUGFpci52YWx1ZSlcIj57e3ZhbHVlUGFpcj8uZGVzY3JpcHRpb259fTwvc3B4LXN1Z2dlc3Rpb24+XHJcbiAgfVxyXG48L2Rpdj4iXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFNUUsSUFBSyxRQUlKO0FBSkQsV0FBSyxRQUFRO0lBQ1gsMkJBQWUsQ0FBQTtJQUNmLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7QUFDZixDQUFDLEVBSkksUUFBUSxLQUFSLFFBQVEsUUFJWjtBQVlELE1BQU0sT0FBTyxxQkFBcUI7SUFWbEM7UUFXRSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2xDLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUMvQixrQkFBYSxHQUFHLEtBQUssRUFBUyxDQUFDO1FBQy9CLFVBQUssR0FBSSxLQUFLLENBQXVCO1lBQ25DLFdBQVcs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aW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xyXG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN1Z2dlc3Rpb24nO1xyXG5cclxuZW51bSBzdGVwVHlwZSB7XHJcbiAgeWVhcnMgPSBcInllYXJzXCIsXHJcbiAgbW9udGhzID0gXCJtb250aHNcIixcclxuICBkYXlzID0gXCJkYXlzXCJcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtZGF0ZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBTcHhTdWdnZXN0aW9uQ29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3B4LWlucHV0LWRhdGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3NweC1pbnB1dC1kYXRlLmNvbXBvbmVudC5jc3NcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXREYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzcHhNYXggPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgc3B4TWluID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gIHNweFJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuICBzcHhWYWxpZGF0b3JzID0gaW5wdXQ8YW55W10+KCk7XHJcbiAgdmFsdWUgPSAgbW9kZWw8U3B4VmFsdWVQYWlyPHN0cmluZz4+KHtcclxuICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgdmFsdWU6IFwiXCIsXHJcbiAgfSk7XHJcbiAgc3B4Q2hhbmdlID0gb3V0cHV0PFNweFZhbHVlUGFpcjxhbnk+PigpO1xyXG4gIHNweEZvY3VzZWQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBzcHhGb2N1cyA9IG91dHB1dCgpO1xyXG5cclxuICBzcHhTZWxlY3RlZFN0ZXAgPSBzaWduYWw8c3RlcFR5cGU+KHN0ZXBUeXBlLnllYXJzKTtcclxuXHJcbiAgc3B4U2VsZWN0RGF5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHNweFNlbGVjdE1vbnRoID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIHNlbGVjdGVkWWVhciA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBzZWxlY3RlZE1vbnRoID0gc2lnbmFsPG51bWJlcnwgbnVsbD4obnVsbCk7XHJcbiAgc2VsZWN0ZWREYXkgPSBzaWduYWw8bnVtYmVyfCBudWxsPihudWxsKTtcclxuXHJcbiAgc3B4U3VnZ2VzdGlvbkMgPSBjb21wdXRlZDxTcHhWYWx1ZVBhaXI8bnVtYmVyPltdPigoKSA9PiB7XHJcbiAgICBzd2l0Y2godGhpcy5zcHhTZWxlY3RlZFN0ZXAoKSkge1xyXG4gICAgICBjYXNlICdtb250aHMnIDpcclxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuc3B4U3VnZ2VzdGlvbnMoKS5tb250aHNdXHJcbiAgICAgIGNhc2UgJ2RheXMnIDpcclxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuc3B4U3VnZ2VzdGlvbnMoKS5kYXlzXVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLnNweFN1Z2dlc3Rpb25zKCkueWVhcnM7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIG9uTW9kZWxDaGFuZ2UobmV3VmFsdWU6IHN0cmluZywgc2VsZWN0ZWRTdGVwOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gK25ld1ZhbHVlOyAvLyBDb252ZXJ0IHRvIG51bWJlclxyXG5cclxuICAgIGlmKHBhcnNlZFZhbHVlID09IDApIHJldHVybjtcclxuXHJcbiAgICBzd2l0Y2goc2VsZWN0ZWRTdGVwKSB7XHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUueWVhcnM6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXIuc2V0KHBhcnNlZFZhbHVlKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2Ugc3RlcFR5cGUubW9udGhzOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aC5zZXQocGFyc2VkVmFsdWUpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSBzdGVwVHlwZS5kYXlzOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXkuc2V0KHBhcnNlZFZhbHVlKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzcHhTdWdnZXN0aW9ucyA9IGlucHV0PHtcclxuICAgIHllYXJzOiBTcHhWYWx1ZVBhaXI8bnVtYmVyPltdO1xyXG4gICAgbW9udGhzOiBTcHhWYWx1ZVBhaXI8bnVtYmVyPltdO1xyXG4gICAgZGF5czogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcclxuICB9Pih7eWVhcnM6IFtdLFxyXG4gICAgbW9udGhzOiBbe1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0phbicsXHJcbiAgICAgIHZhbHVlOiAxLFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0ZlYicsXHJcbiAgICAgIHZhbHVlOiAyLFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ01hcicsXHJcbiAgICAgIHZhbHVlOiAzLFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0FwcicsXHJcbiAgICAgIHZhbHVlOiA0LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ01heScsXHJcbiAgICAgIHZhbHVlOiA1LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0p1bicsXHJcbiAgICAgIHZhbHVlOiA2LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0p1bCcsXHJcbiAgICAgIHZhbHVlOiA3LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ0F1ZycsXHJcbiAgICAgIHZhbHVlOiA4LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ1NlcCcsXHJcbiAgICAgIHZhbHVlOiA5LFxyXG4gICAgfSwge1xyXG4gICAgICBkZXNjcmlwdGlvbjogJ09jdCcsXHJcbiAgICAgIHZhbHVlOiAxMCxcclxuICAgIH0sIHtcclxuICAgICAgZGVzY3JpcHRpb246ICdOb3YnLFxyXG4gICAgICB2YWx1ZTogMTEsXHJcbiAgICB9LCB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVjJyxcclxuICAgICAgdmFsdWU6IDEyLFxyXG4gICAgfV0sXHJcbiAgICBkYXlzOiBbXSx9KTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN1Z2dlc3RZZWFycygpO1xyXG4gICAgaWYgKHZhbHVlUGFpclRvVmFsdWUodGhpcy52YWx1ZSkpIHtcclxuICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBEYXRlVGltZS5mcm9tSVNPKHZhbHVlUGFpclRvVmFsdWUodGhpcy52YWx1ZSkpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWWVhci5zZXQocGFyc2VkVmFsdWUueWVhcik7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb250aC5zZXQocGFyc2VkVmFsdWUubW9udGgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5LnNldChwYXJzZWRWYWx1ZS5kYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKHZhbHVlOiBudW1iZXIpIHtcclxuXHJcbiAgICBzd2l0Y2godGhpcy5zcHhTZWxlY3RlZFN0ZXAoKSkge1xyXG4gICAgICBjYXNlIFwieWVhcnNcIjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhci5zZXQodmFsdWUpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm1vbnRoc1wiOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aC5zZXQodmFsdWUpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImRheXNcIjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF5LnNldCh2YWx1ZSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlVmFsdWVBbmRFbWl0KCk7XHJcbiAgICB0aGlzLmNoYW5nZVNlbGVjdGVkU3RlcCgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWVBbmRFbWl0KCkge1xyXG4gICAgY29uc3QgY29uY2F0ZW5hdGVkVmFsdWUgPSBgJHt0aGlzLnNlbGVjdGVkWWVhcigpID8gdGhpcy5zZWxlY3RlZFllYXIoKSA6IGBgfSR7dGhpcy5zZWxlY3RlZE1vbnRoKCkgPyBgJHt0aGlzLnNlbGVjdGVkTW9udGgoKSEgPCAxMCA/IGAwJHt0aGlzLnNlbGVjdGVkTW9udGgoKX1gIDogdGhpcy5zZWxlY3RlZE1vbnRoKCl9YCA6IGBgfSR7dGhpcy5zZWxlY3RlZERheSgpID8gYC0ke3RoaXMuc2VsZWN0ZWREYXkoKSEgPCAxMCA/IGAwJHt0aGlzLnNlbGVjdGVkRGF5KCl9YCA6IHRoaXMuc2VsZWN0ZWREYXkoKX1gIDogYGB9YFxyXG5cclxuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gRGF0ZVRpbWUuZnJvbUlTTyhjb25jYXRlbmF0ZWRWYWx1ZSk7XHJcbiAgICBcclxuICAgIHRoaXMudmFsdWUuc2V0KHt2YWx1ZTogcGFyc2VkVmFsdWUudG9JU08oKSEsIGRlc2NyaXB0aW9uOiBwYXJzZWRWYWx1ZS50b0lTTygpfSk7XHJcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUoKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTZWxlY3RlZFN0ZXAoKSB7XHJcbiAgICBzd2l0Y2godGhpcy5zcHhTZWxlY3RlZFN0ZXAoKSkge1xyXG4gICAgICBjYXNlICdkYXlzJzpcclxuICAgICAgICB0aGlzLnNweFNlbGVjdGVkU3RlcC5zZXQoc3RlcFR5cGUueWVhcnMpO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbW9udGhzJzpcclxuICAgICAgICB0aGlzLnNweFNlbGVjdGVkU3RlcC5zZXQodGhpcy5zcHhTZWxlY3REYXkoKSA/IHN0ZXBUeXBlLmRheXMgOiBzdGVwVHlwZS55ZWFycyk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd5ZWFycyc6XHJcbiAgICAgICAgdGhpcy5zcHhTZWxlY3RlZFN0ZXAuc2V0KHRoaXMuc3B4U2VsZWN0TW9udGgoKSA/IHN0ZXBUeXBlLm1vbnRocyA6IHN0ZXBUeXBlLnllYXJzKTtcclxuICAgICAgYnJlYWs7ICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VnZ2VzdFllYXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zcHhTdWdnZXN0aW9ucygpLnllYXJzID0gW107XHJcbiAgICBmb3IgKGxldCB5ZWFyID0gRGF0ZVRpbWUuZnJvbUlTTyh0aGlzLnNweE1pbigpKS55ZWFyOyB5ZWFyIDw9IERhdGVUaW1lLmZyb21JU08odGhpcy5zcHhNYXgoKSkueWVhcjsgeWVhcisrKSB7XHJcbiAgICAgIHRoaXMuc3B4U3VnZ2VzdGlvbnMoKS55ZWFycy5wdXNoKHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogYCcke3llYXIudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiwgNCl9YCxcclxuICAgICAgICB2YWx1ZTogeWVhcixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9scyc+XHJcbiAgPGlucHV0XHJcbiAgICBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2lucHV0J1xyXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFllYXJcIlxyXG4gICAgW2F0dHIudHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudCwgJ3llYXJzJylcIlxyXG4gICAgW2F0dHIubWluXT1cIjE5MDBcIlxyXG4gICAgW2F0dHIubWF4XT1cIjIxMDBcIlxyXG4gICAgW2F0dHIuc3RlcF09XCIxXCJcclxuICAgIC8+XHJcbiAgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwnPlllYXI8L2Rpdj5cclxuICBAaWYgKHRoaXMuc3B4U2VsZWN0TW9udGgoKSkge1xyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9faW5wdXQnXHJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb250aFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50LCAnbW9udGhzJylcIlxyXG4gICAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgW2F0dHIubWluXT1cIjFcIlxyXG4gICAgICBbYXR0ci5tYXhdPVwiMTJcIlxyXG4gICAgICBbYXR0ci5zdGVwXT1cIjFcIiAvPlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fY29udHJvbC1sYWJlbCc+TW9udGg8L2Rpdj5cclxuICBAaWYgKHRoaXMuc3B4U2VsZWN0RGF5KCkpIHtcclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2lucHV0J1xyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF5XCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQsICdkYXlzJylcIlxyXG4gICAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgW2F0dHIubWluXT1cIjFcIlxyXG4gICAgICBbYXR0ci5tYXhdPVwiMzFcIlxyXG4gICAgICBbYXR0ci5zdGVwXT1cIjFcIiAvPlxyXG4gICAgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwnPkRheXM8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fc3VnZ2VzdGlvbnMnPlxyXG4gIEBmb3IgKHZhbHVlUGFpciBvZiBzcHhTdWdnZXN0aW9uQygpOyB0cmFjayB2YWx1ZVBhaXIudmFsdWUpIHtcclxuICAgIDxzcHgtc3VnZ2VzdGlvbiBbc3B4U2VsZWN0ZWRdPVwiXHJcbiAgICAoc2VsZWN0ZWRZZWFyKCkgPT09IHZhbHVlUGFpci52YWx1ZSkgfHxcclxuICAgIChzZWxlY3RlZE1vbnRoKCkgPT09IHZhbHVlUGFpci52YWx1ZSkgfHwgIFxyXG4gICAgKHNlbGVjdGVkRGF5KCkgPT09IHZhbHVlUGFpci52YWx1ZSlcIlxyXG4gICAgKGNsaWNrKT1cInRoaXMuaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKHZhbHVlUGFpci52YWx1ZSlcIj57e3ZhbHVlUGFpcj8uZGVzY3JpcHRpb259fTwvc3B4LXN1Z2dlc3Rpb24+XHJcbiAgfVxyXG48L2Rpdj4iXX0=
@@ -1,5 +1,4 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { SpxButtonComponent } from '@softpak/components/spx-button';
3
2
  import { FormsModule } from '@angular/forms';
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "@angular/forms";
@@ -102,7 +101,6 @@ export class SpxInputFloatComponent {
102
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
103
102
  type: Component,
104
103
  args: [{ selector: 'spx-input-float', standalone: true, imports: [
105
- SpxButtonComponent,
106
104
  FormsModule,
107
105
  ], template: `<div class="flex items-end">
108
106
  <input
@@ -156,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
156
154
  type: ViewChild,
157
155
  args: ['firstInputRef', { static: true }]
158
156
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWZsb2F0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC1mbG9hdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQTBEN0MsTUFBTSxPQUFPLHNCQUFzQjtJQXhEbkM7UUF5RFksa0JBQWEsR0FHbkI7WUFDRixLQUFLLEVBQUUsSUFBSTtZQUNYLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUVPLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHakIsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDekQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLFNBQUksR0FBRyxFQUFFLENBQUM7S0E2RHBCO0lBMURDLFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElB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QUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDd0MsYUFBYTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtZmxvYXQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWVuZFwiPlxyXG4gIDxpbnB1dFxyXG4gICAgI2ZpcnN0SW5wdXRSZWZcclxuICAgIGNsYXNzPVwic3B4LWlucHV0LWZsb2F0X19pbnB1dFwiXHJcbiAgICBbYXR0ci5hdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXMgPyB0aGlzLnNweEF1dG9mb2N1cyA6IHVuZGVmaW5lZFwiXHJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXHJcbiAgICBbYXR0ci5wYXR0ZXJuXT1cIidbMC05XSonXCJcclxuICAgIFthdHRyLnN0ZXBdPVwiMVwiXHJcbiAgICBbYXR0ci50eXBlXT1cIid0ZXh0J1wiXHJcbiAgICBbY2xhc3Muc3B4LWlucHV0LWZsb2F0LS1yZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXHJcbiAgICAoZm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygpXCJcclxuICAgIFtuZ01vZGVsXT1cInRoaXMuaW50ZXJuYWxWYWx1ZT8uZmlyc3QgPyB0aGlzLmludGVybmFsVmFsdWU/LmZpcnN0IDogdW5kZWZpbmVkXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuaGFuZGxlSW5wdXQoJGV2ZW50LCAxKVwiIC8+XHJcbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWJsYWNrIGZvbnQtYm9sZCB0ZXh0LTJ4bCBteC00XCI+LDwvc3Bhbj5cclxuICA8aW5wdXRcclxuICAgIFthdHRyLmF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1cyA/IHRoaXMuc3B4QXV0b2ZvY3VzIDogdW5kZWZpbmVkXCJcclxuICAgIGNsYXNzPVwic3B4LWlucHV0LWZsb2F0X19pbnB1dFwiXHJcbiAgICBbY2xhc3Muc3B4LWlucHV0LWZsb2F0LS1yZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXHJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5ID8gdGhpcy5zcHhSZWFkb25seSA6IHVuZGVmaW5lZFwiXHJcbiAgICAoZm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygpXCJcclxuICAgIFtuZ01vZGVsXT1cInRoaXMuaW50ZXJuYWxWYWx1ZT8uc2Vjb25kID8gdGhpcy5pbnRlcm5hbFZhbHVlPy5zZWNvbmQgOiB1bmRlZmluZWRcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidGhpcy5oYW5kbGVJbnB1dCgkZXZlbnQsIDIpXCJcclxuICAgIFthdHRyLnN0ZXBdPVwiMVwiXHJcbiAgICBbYXR0ci50eXBlXT1cIid0ZXh0J1wiXHJcbiAgICBbYXR0ci5wYXR0ZXJuXT1cIidbMC05XSonXCIgLz5cclxuPC9kaXY+YCxcclxuICBzdHlsZXM6IGBcclxuICA6aG9zdCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5zcHgtaW5wdXQtZmxvYXRfX2lucHV0IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGNvbG9yOiB2YXIoLS1zcHgtaW5wdXQtLWNvbG9yLCByZ2JhKDAsIDAsIDAsIC45KSk7XHJcbiAgZmxleDogMTtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogOHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uc3B4LWlucHV0LWZsb2F0X19pbnB1dDpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG4gIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dEZsb2F0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlOiB7XHJcbiAgICBmaXJzdDogbnVtYmVyIHwgbnVsbDtcclxuICAgIHNlY29uZDogbnVtYmVyIHwgbnVsbDtcclxuICB9ID0ge1xyXG4gICAgZmlyc3Q6IG51bGwsXHJcbiAgICBzZWNvbmQ6IG51bGwsXHJcbiAgfTtcclxuICBASW5wdXQoKSBzcHhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNweEF1dG9mb2N1cyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweFJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycyE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweFN0ZXA/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgdmFsdWUhOiBTcHhWYWx1ZVBhaXI8YW55PjtcclxuICBAT3V0cHV0KCkgc3B4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4oKTtcclxuICBAT3V0cHV0KCkgc3B4Rm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBASW5wdXQoKSBzcHhXYXNJbnRlcm5hbFVwZGF0ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRpY2sgPSB7fTtcclxuICBAVmlld0NoaWxkKCdmaXJzdElucHV0UmVmJywgeyBzdGF0aWM6IHRydWUgfSkgZmlyc3RJbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgXHJcbiAgc3B4U2V0Rm9jdXMoKSB7XHJcbiAgICB0aGlzLmZpcnN0SW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnNweEF1dG9mb2N1cykge1xyXG4gICAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcclxuICAgICAgdGhpcy5zcHhTZXRGb2N1cygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5oYW5kbGVTZXRWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZSddKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU2V0VmFsdWUoY2hhbmdlc1sndmFsdWUnXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9jdXMoKSB7XHJcbiAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNldFZhbHVlKG5ld1ZhbHVlOiBTcHhWYWx1ZVBhaXI8YW55Pikge1xyXG4gICAgaWYgKHRoaXMuaXNOdW1lcmljKG5ld1ZhbHVlPy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlID0ge1xyXG4gICAgICAgIGZpcnN0OiBNYXRoLmZsb29yKHBhcnNlRmxvYXQobmV3VmFsdWU/LnZhbHVlKSksXHJcbiAgICAgICAgc2Vjb25kOiBuZXdWYWx1ZT8udmFsdWU/LnNwbGl0ID8gbmV3VmFsdWU/LnZhbHVlLnNwbGl0KCcuJylbMV0gOiAwLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlID0ge1xyXG4gICAgICAgIGZpcnN0OiBudWxsLFxyXG4gICAgICAgIHNlY29uZDogbnVsbCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMudGljayA9IHt9O1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXQodmFsdWU6IGFueSwgcG9zaXRpb246IDEgfCAyKSB7XHJcbiAgICB0aGlzLmludGVybmFsVmFsdWUgPSB7XHJcbiAgICAgIGZpcnN0OiBwb3NpdGlvbiA9PT0gMSA/IHZhbHVlIDogdGhpcy5pbnRlcm5hbFZhbHVlLmZpcnN0LFxyXG4gICAgICBzZWNvbmQ6IHBvc2l0aW9uID09PSAyID8gdmFsdWUgOiB0aGlzLmludGVybmFsVmFsdWUuc2Vjb25kLFxyXG4gICAgfTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBpZiAodGhpcy5pbnRlcm5hbFZhbHVlLmZpcnN0ID09PSBudWxsICYmIHRoaXMuaW50ZXJuYWxWYWx1ZS5zZWNvbmQgPT09IG51bGwpIHtcclxuICAgICAgcmVzdWx0ID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdCA9IGAke3RoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCA/IHRoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCA6IDB9LiR7dGhpcy5pbnRlcm5hbFZhbHVlLnNlY29uZCA/IHRoaXMuaW50ZXJuYWxWYWx1ZS5zZWNvbmQgOiAwfWA7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogcmVzdWx0LFxyXG4gICAgICB2YWx1ZTogcmVzdWx0LFxyXG4gICAgfTtcclxuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBpc051bWVyaWModmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIC9eWystXT9cXGQrKFxcLlxcZCspPyQvLnRlc3QodmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWZsb2F0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC1mbG9hdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQXlEN0MsTUFBTSxPQUFPLHNCQUFzQjtJQXZEbkM7UUF3RFksa0JBQWEsR0FHbkI7WUFDRixLQUFLLEVBQUUsSUFBSTtZQUNYLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUVPLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHakIsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDekQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLFNBQUksR0FBRyxFQUFFLENBQUM7S0E2RHBCO0lBMURDLFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxD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ckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3dDLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LWZsb2F0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1lbmRcIj5cclxuICA8aW5wdXRcclxuICAgICNmaXJzdElucHV0UmVmXHJcbiAgICBjbGFzcz1cInNweC1pbnB1dC1mbG9hdF9faW5wdXRcIlxyXG4gICAgW2F0dHIuYXV0b2ZvY3VzXT1cInRoaXMuc3B4QXV0b2ZvY3VzID8gdGhpcy5zcHhBdXRvZm9jdXMgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIucGF0dGVybl09XCInWzAtOV0qJ1wiXHJcbiAgICBbYXR0ci5zdGVwXT1cIjFcIlxyXG4gICAgW2F0dHIudHlwZV09XCIndGV4dCdcIlxyXG4gICAgW2NsYXNzLnNweC1pbnB1dC1mbG9hdC0tcmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoKVwiXHJcbiAgICBbbmdNb2RlbF09XCJ0aGlzLmludGVybmFsVmFsdWU/LmZpcnN0ID8gdGhpcy5pbnRlcm5hbFZhbHVlPy5maXJzdCA6IHVuZGVmaW5lZFwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLmhhbmRsZUlucHV0KCRldmVudCwgMSlcIiAvPlxyXG4gIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFjayBmb250LWJvbGQgdGV4dC0yeGwgbXgtNFwiPiw8L3NwYW4+XHJcbiAgPGlucHV0XHJcbiAgICBbYXR0ci5hdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXMgPyB0aGlzLnNweEF1dG9mb2N1cyA6IHVuZGVmaW5lZFwiXHJcbiAgICBjbGFzcz1cInNweC1pbnB1dC1mbG9hdF9faW5wdXRcIlxyXG4gICAgW2NsYXNzLnNweC1pbnB1dC1mbG9hdC0tcmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgW2F0dHIuZGlzYWJsZWRdPVwidGhpcy5zcHhSZWFkb25seSA/IHRoaXMuc3B4UmVhZG9ubHkgOiB1bmRlZmluZWRcIlxyXG4gICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoKVwiXHJcbiAgICBbbmdNb2RlbF09XCJ0aGlzLmludGVybmFsVmFsdWU/LnNlY29uZCA/IHRoaXMuaW50ZXJuYWxWYWx1ZT8uc2Vjb25kIDogdW5kZWZpbmVkXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuaGFuZGxlSW5wdXQoJGV2ZW50LCAyKVwiXHJcbiAgICBbYXR0ci5zdGVwXT1cIjFcIlxyXG4gICAgW2F0dHIudHlwZV09XCIndGV4dCdcIlxyXG4gICAgW2F0dHIucGF0dGVybl09XCInWzAtOV0qJ1wiIC8+XHJcbjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBgXHJcbiAgOmhvc3Qge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uc3B4LWlucHV0LWZsb2F0X19pbnB1dCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBjb2xvcjogdmFyKC0tc3B4LWlucHV0LS1jb2xvciwgcmdiYSgwLCAwLCAwLCAuOSkpO1xyXG4gIGZsZXg6IDE7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLnNweC1pbnB1dC1mbG9hdF9faW5wdXQ6Zm9jdXMge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRGbG9hdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZToge1xyXG4gICAgZmlyc3Q6IG51bWJlciB8IG51bGw7XHJcbiAgICBzZWNvbmQ6IG51bWJlciB8IG51bGw7XHJcbiAgfSA9IHtcclxuICAgIGZpcnN0OiBudWxsLFxyXG4gICAgc2Vjb25kOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgc3B4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhBdXRvZm9jdXMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweFZhbGlkYXRvcnMhOiBhbnlbXTtcclxuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTdGVwPzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHZhbHVlITogU3B4VmFsdWVQYWlyPGFueT47XHJcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XHJcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQElucHV0KCkgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0aWNrID0ge307XHJcbiAgQFZpZXdDaGlsZCgnZmlyc3RJbnB1dFJlZicsIHsgc3RhdGljOiB0cnVlIH0pIGZpcnN0SW5wdXRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIFxyXG4gIHNweFNldEZvY3VzKCkge1xyXG4gICAgdGhpcy5maXJzdElucHV0UmVmPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zcHhBdXRvZm9jdXMpIHtcclxuICAgICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgICAgIHRoaXMuc3B4U2V0Rm9jdXMoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaGFuZGxlU2V0VmFsdWUodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sndmFsdWUnXSkge1xyXG4gICAgICB0aGlzLmhhbmRsZVNldFZhbHVlKGNoYW5nZXNbJ3ZhbHVlJ10uY3VycmVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUZvY3VzKCkge1xyXG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZXRWYWx1ZShuZXdWYWx1ZTogU3B4VmFsdWVQYWlyPGFueT4pIHtcclxuICAgIGlmICh0aGlzLmlzTnVtZXJpYyhuZXdWYWx1ZT8udmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHtcclxuICAgICAgICBmaXJzdDogTWF0aC5mbG9vcihwYXJzZUZsb2F0KG5ld1ZhbHVlPy52YWx1ZSkpLFxyXG4gICAgICAgIHNlY29uZDogbmV3VmFsdWU/LnZhbHVlPy5zcGxpdCA/IG5ld1ZhbHVlPy52YWx1ZS5zcGxpdCgnLicpWzFdIDogMCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHtcclxuICAgICAgICBmaXJzdDogbnVsbCxcclxuICAgICAgICBzZWNvbmQ6IG51bGwsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLnRpY2sgPSB7fTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0KHZhbHVlOiBhbnksIHBvc2l0aW9uOiAxIHwgMikge1xyXG4gICAgdGhpcy5pbnRlcm5hbFZhbHVlID0ge1xyXG4gICAgICBmaXJzdDogcG9zaXRpb24gPT09IDEgPyB2YWx1ZSA6IHRoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCxcclxuICAgICAgc2Vjb25kOiBwb3NpdGlvbiA9PT0gMiA/IHZhbHVlIDogdGhpcy5pbnRlcm5hbFZhbHVlLnNlY29uZCxcclxuICAgIH07XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgaWYgKHRoaXMuaW50ZXJuYWxWYWx1ZS5maXJzdCA9PT0gbnVsbCAmJiB0aGlzLmludGVybmFsVmFsdWUuc2Vjb25kID09PSBudWxsKSB7XHJcbiAgICAgIHJlc3VsdCA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQgPSBgJHt0aGlzLmludGVybmFsVmFsdWUuZmlyc3QgPyB0aGlzLmludGVybmFsVmFsdWUuZmlyc3QgOiAwfS4ke3RoaXMuaW50ZXJuYWxWYWx1ZS5zZWNvbmQgPyB0aGlzLmludGVybmFsVmFsdWUuc2Vjb25kIDogMH1gO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZSA9IHtcclxuICAgICAgZGVzY3JpcHRpb246IHJlc3VsdCxcclxuICAgICAgdmFsdWU6IHJlc3VsdCxcclxuICAgIH07XHJcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgaXNOdW1lcmljKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAvXlsrLV0/XFxkKyhcXC5cXGQrKT8kLy50ZXN0KHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -103,7 +103,7 @@ export class SpxInputComponent {
103
103
  }
104
104
  }
105
105
  writeValue(value) {
106
- this.value = this.lastValue = value;
106
+ this.value = this.lastValue = value; // hier komt initiele waarde van formcontrol binnen
107
107
  }
108
108
  handleChangeEvent(value) {
109
109
  if (value !== this.lastValue) {
@@ -115,7 +115,7 @@ export class SpxInputComponent {
115
115
  this.onTouched();
116
116
  }
117
117
  registerOnChange(fn) {
118
- this.onChange = fn;
118
+ this.onChange = fn; // emit verandering aan formcontrol
119
119
  }
120
120
  registerOnTouched(fn) {
121
121
  this.onTouched = fn;
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQXVJbEYsTUFBTSxPQUFPLGlCQUFpQjtJQXJJOUI7UUFzSVcsYUFBUSxHQUFXLE9BQU8sQ0FBQztRQUkzQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFB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c0JBQXNCO2dCQUN4QixVQUFVO3NCQUFsQixLQUFLO2dCQTJGTixnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dEJveENvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC10ZXh0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTcHhJbnB1dEZsb2F0Q29tcG9uZW50IH0gZnJvbSAnLi9zcHgtaW5wdXQtZmxvYXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3B4SW5wdXROdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC1udW1iZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3B4SW5wdXRSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LXJhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweElucHV0VHlwZUVudW0gfSBmcm9tICcuL3NweC1pbnB1dC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTcHhJbnB1dFRpbWVDb21wb25lbnQgfSBmcm9tICcuL3NweC1pbnB1dC10aW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNweElucHV0RGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vc3B4LWlucHV0LWRhdGUvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGhvc3Q6IHtcclxuICAgICcoc3B4Q2hhbmdlKSc6ICdoYW5kbGVDaGFuZ2VFdmVudCgkZXZlbnQpJ1xyXG4gIH0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU3B4SW5wdXRCb3hDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dERhdGVDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dEZsb2F0Q29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXROdW1iZXJDb21wb25lbnQsXHJcbiAgICBTcHhJbnB1dFJhZGlvQ29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXRUZXh0Q29tcG9uZW50LFxyXG4gICAgU3B4SW5wdXRUaW1lQ29tcG9uZW50XHJcbl0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogU3B4SW5wdXRDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICB0ZW1wbGF0ZTogYDxzcHgtaW5wdXQtYm94XHJcbiAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgW3NweExhYmVsXT1cInRoaXMuc3B4TGFiZWxcIlxyXG4gICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgW3NweFJlcXVpcmVkXT1cInRoaXMuc3B4UmVxdWlyZWRcIlxyXG4gICAgW3NweFZhbHVlXT1cInRoaXMudmFsdWVcIlxyXG4gICAgW3NweFNob3dIZWxwXT1cInRoaXMuc3B4U2hvd0hlbHBcIlxyXG4gICAgW3NweENvbXBhY3RdPVwidGhpcy5zcHhDb21wYWN0XCJcclxuICAgIFtzcHhTaG93Q2xlYXJdPVwidGhpcy5zcHhTaG93Q2xlYXJcIlxyXG4gICAgW3NweFNob3dFZGl0XT1cInRoaXMuc3B4U2hvd0VkaXRcIlxyXG4gICAgW3NweFNob3dMYWJlbF09XCJ0aGlzLnNweFNob3dMYWJlbFwiXHJcbiAgICBbc3B4U2hvd1NlYXJjaF09XCJ0aGlzLnNweFNob3dTZWFyY2ggPyB0aGlzLnNweFNob3dTZWFyY2ggOiB0aGlzLnNweFR5cGUgPT09ICdhdXRvY29tcGxldGUnXCJcclxuICAgIFtzcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzXT1cInRoaXMuc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc1wiXHJcbiAgICAoc3B4Q2xlYXIpPVwidGhpcy5oYW5kbGVDbGVhcigpXCJcclxuICAgIChzcHhFZGl0KT1cInRoaXMuaGFuZGxlRWRpdCgpXCJcclxuICAgIChzcHhIZWxwKT1cInRoaXMuaGFuZGxlSGVscCgpXCJcclxuICAgIChzcHhGb2N1cyk9XCJ0aGlzLnNldEZvY3VzSW4oKVwiXHJcbiAgICAoc3B4Rm9jdXNPdXQpPVwidGhpcy5zZXRGb2N1c091dCgpXCJcclxuICAgIChzcHhTZWFyY2gpPVwidGhpcy5oYW5kbGVTZWFyY2goKVwiPlxyXG4gICAgPGRpdiBjb250cm9scz5cclxuICAgICAgQGlmICh0aGlzLnNweFR5cGUgPT09ICdhdXRvY29tcGxldGUnIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXknIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ3RleHQnIHx8IHRoaXMuc3B4VHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgKHNweEJsdXJGcm9tQ2hpbGQpPVwidGhpcy5oYW5kbGVCbHVyKClcIlxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9jb21wbGV0ZV09XCJ0aGlzLnNweEF1dG9jb21wbGV0ZSA/IHRoaXMuc3B4QXV0b2NvbXBsZXRlIDogdW5kZWZpbmVkXCJcclxuICAgICAgICAgIFtzcHhBdXRvZm9jdXNdPVwidGhpcy5zcHhBdXRvZm9jdXNcIlxyXG4gICAgICAgICAgW3NweENhcGl0YWxpemVdPVwidGhpcy5zcHhDYXBpdGFsaXplXCJcclxuICAgICAgICAgIFtzcHhGb2N1c2VkXT1cInRoaXMuc3B4Rm9jdXNlZFwiXHJcbiAgICAgICAgICBbc3B4SW5wdXRNb2RlXT1cInRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInID8gJ251bWVyaWMnIDogdGhpcy5zcHhJbnB1dE1vZGVcIlxyXG4gICAgICAgICAgW3NweE5hbWVdPVwidGhpcy5zcHhOYW1lXCJcclxuICAgICAgICAgIFtzcHhQYXR0ZXJuXT1cInRoaXMuc3B4VHlwZSA9PT0gJ292ZXJsYXludW1iZXInID8gJ1swLTldKicgOiB0aGlzLnNweFBhdHRlcm5cIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFN1Z2dlc3Rpb25zXT1cInRoaXMuc3B4U3VnZ2VzdGlvbnNcIlxyXG4gICAgICAgICAgW3NweFR5cGVdPVwidGhpcy5zcHhUeXBlXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LXRleHQ+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICh0aGlzLnNweFR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtZGF0ZVxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEZvY3VzZWRdPVwidGhpcy5zcHhGb2N1c2VkXCJcclxuICAgICAgICAgIFtzcHhNYXhdPVwidGhpcy5zcHhNYXghXCJcclxuICAgICAgICAgIFtzcHhNaW5dPVwidGhpcy5zcHhNaW4hXCJcclxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTZWxlY3REYXldPVwidGhpcy5zcHhTZWxlY3REYXlcIlxyXG4gICAgICAgICAgW3NweFNlbGVjdE1vbnRoXT1cInRoaXMuc3B4U2VsZWN0TW9udGhcIlxyXG4gICAgICAgICAgW3NweFZhbGlkYXRvcnNdPVwidGhpcy5zcHhWYWxpZGF0b3JzXCJcclxuICAgICAgICAgIFsodmFsdWUpXT1cInRoaXMudmFsdWVcIlxyXG4gICAgICAgID48L3NweC1pbnB1dC1kYXRlPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAodGhpcy5zcHhUeXBlID09PSAnZmxvYXQnKSB7XHJcbiAgICAgICAgPHNweC1pbnB1dC1mbG9hdFxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1c1wiXHJcbiAgICAgICAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgICAgICAgW3NweE5hbWVdPVwidGhpcy5zcHhOYW1lXCJcclxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTdGVwXT1cInRoaXMuc3B4U3RlcFwiXHJcbiAgICAgICAgICBbc3B4VmFsaWRhdG9yc109XCJ0aGlzLnNweFZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cInRoaXMudmFsdWVcIlxyXG4gICAgICAgID48L3NweC1pbnB1dC1mbG9hdD5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHRoaXMuc3B4VHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICA8c3B4LWlucHV0LW51bWJlclxyXG4gICAgICAgICAgKHNweENoYW5nZSk9XCJ0aGlzLmhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChzcHhGb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKClcIlxyXG4gICAgICAgICAgW3NweEF1dG9mb2N1c109XCJ0aGlzLnNweEF1dG9mb2N1c1wiXHJcbiAgICAgICAgICBbc3B4Rm9jdXNlZF09XCJ0aGlzLnNweEZvY3VzZWRcIlxyXG4gICAgICAgICAgW3NweElucHV0TW9kZV09XCJ0aGlzLnNweElucHV0TW9kZVwiXHJcbiAgICAgICAgICBbc3B4TmFtZV09XCJ0aGlzLnNweE5hbWVcIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFN0ZXBdPVwidGhpcy5zcHhTdGVwXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LW51bWJlcj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHRoaXMuc3B4VHlwZSA9PT0gJ3JhZGlvJykge1xyXG4gICAgICAgIDxzcHgtaW5wdXQtcmFkaW9cclxuICAgICAgICAgICNyYWRpb0lucHV0XHJcbiAgICAgICAgICAoc3B4Q2hhbmdlKT1cInRoaXMuaGFuZGxlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgW3NweEZvY3VzZWRdPVwidGhpcy5zcHhGb2N1c2VkXCJcclxuICAgICAgICAgIFtzcHhOYW1lXT1cInRoaXMuc3B4TmFtZVwiXHJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidGhpcy5zcHhSZWFkb25seVwiXHJcbiAgICAgICAgICBbc3B4U2hvd0xhYmVsXT1cInRoaXMuc3B4U2hvd0xhYmVsXCJcclxuICAgICAgICAgIFtzcHhTdWdnZXN0aW9uc109XCJ0aGlzLnNweFN1Z2dlc3Rpb25zXCJcclxuICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cInRoaXMuc3B4VmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidGhpcy52YWx1ZVwiXHJcbiAgICAgICAgPjwvc3B4LWlucHV0LXJhZGlvPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAodGhpcy5zcHhUeXBlID09PSAndGltZScpIHtcclxuICAgICAgICA8c3B4LWlucHV0LXRpbWVcclxuICAgICAgICAgICN0aW1lSW5wdXRcclxuICAgICAgICAgIChzcHhDaGFuZ2UpPVwidGhpcy5oYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoc3B4Rm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygpXCJcclxuICAgICAgICAgIFtzcHhGb2N1c2VkXT1cInRoaXMuc3B4Rm9jdXNlZFwiXHJcbiAgICAgICAgICBbc3B4TmFtZV09XCJ0aGlzLnNweE5hbWVcIlxyXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICAgICAgW3NweFZhbGlkYXRvcnNdPVwidGhpcy5zcHhWYWxpZGF0b3JzXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJ0aGlzLnZhbHVlXCJcclxuICAgICAgICA+PC9zcHgtaW5wdXQtdGltZT5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IHZhbGlkYXRpb24tbWVzc2FnZXM+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvc3B4LWlucHV0LWJveD5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNweExhYmVsOiBzdHJpbmcgPSAnbGFiZWwnO1xyXG4gIEBJbnB1dCgpIHNweE1heD86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhNaW4/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweEF1dG9jb21wbGV0ZT86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhBdXRvZm9jdXMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhJbnB1dE1vZGU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4UGF0dGVybj86IHN0cmluZztcclxuICBASW5wdXQoKSBzcHhSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNweFNlbGVjdE1vbnRoID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTZWxlY3REYXkgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweFNob3dFZGl0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3B4U2hvd0hlbHAgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93TGFiZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweENvbXBhY3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93Q2xlYXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNweFNob3dTZWFyY2ggPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhTdGVwPzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zOiBTcHhWYWx1ZVBhaXI8Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZz5bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNweFR5cGU6IFNweElucHV0VHlwZUVudW0gPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XHJcbiAgQElucHV0KCkgc3B4VmFsaWRhdG9ycyE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHZhbHVlITogU3B4VmFsdWVQYWlyPGFueT47XHJcbiAgQElucHV0KCkgc3B4Q2FwaXRhbGl6ZSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBzcHhCbHVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweENsZWFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweENoYW5nZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XHJcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweEVkaXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgc3B4SGVscDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhTZWFyY2g6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAVmlld0NoaWxkKFNweElucHV0RmxvYXRDb21wb25lbnQpIGZsb2F0SW5wdXQ/OiBTcHhJbnB1dEZsb2F0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoU3B4SW5wdXROdW1iZXJDb21wb25lbnQpIG51bWJlcklucHV0PzogU3B4SW5wdXROdW1iZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChTcHhJbnB1dFRleHRDb21wb25lbnQpIHRleHRJbnB1dD86IFNweElucHV0VGV4dENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFNweElucHV0VGltZUNvbXBvbmVudCkgdGltZUlucHV0PzogU3B4SW5wdXRUaW1lQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoU3B4SW5wdXRSYWRpb0NvbXBvbmVudCkgcmFkaW9JbnB1dD86IFNweElucHV0UmFkaW9Db21wb25lbnQ7XHJcbiAgQElucHV0KCkgc3B4Rm9jdXNlZCA9IGZhbHNlO1xyXG4gIGhhbmRsZUJsdXIoKSB7XHJcbiAgICB0aGlzLnNweEJsdXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSBldmVudDtcclxuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGVhcigpIHtcclxuICAgIHRoaXMuc3B4Q2xlYXIuZW1pdCgpO1xyXG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMucGFzc0ZvY3VzVG9Db250cm9sKCk7XHJcbiAgICB0aGlzLnZhbHVlID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogbnVsbCxcclxuICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZvY3VzKCkge1xyXG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgICB0aGlzLnNweEZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zcHhTZWFyY2guZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXNJbigpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNweEZvY3VzZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBhc3NGb2N1c1RvQ29udHJvbCgpO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBzZXRGb2N1c091dCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNweEZvY3VzZWQgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuc3B4VHlwZSA9PT0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbykge1xyXG4gICAgICAgIHRoaXMucmFkaW9JbnB1dD8uc3B4Rm9jdXNPdXQoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFZGl0KCkge1xyXG4gICAgdGhpcy5zcHhFZGl0LmVtaXQoKTtcclxuICAgIHRoaXMuc3B4Rm9jdXNlZCA9IHRydWU7XHJcbiAgfVxyXG4gIFxyXG4gIGhhbmRsZUhlbHAoKSB7XHJcbiAgICB0aGlzLnNweEhlbHAuZW1pdCgpO1xyXG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFzc0ZvY3VzVG9Db250cm9sKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLnNweFR5cGUpIHtcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLmF1dG9jb21wbGV0ZTpcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ6XHJcbiAgICAgIGNhc2UgU3B4SW5wdXRUeXBlRW51bS5vdmVybGF5TnVtYmVyOlxyXG4gICAgICAgIHRoaXMudGV4dElucHV0Py5zcHhTZXRGb2N1cygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFNweElucHV0VHlwZUVudW0ubnVtYmVyOlxyXG4gICAgICAgIHRoaXMubnVtYmVySW5wdXQ/LnNweFNldEZvY3VzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3B4SW5wdXRUeXBlRW51bS5yYWRpbzpcclxuICAgICAgICB0aGlzLnJhZGlvSW5wdXQ/LnNweEZvY3VzSW4oKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTcHhJbnB1dFR5cGVFbnVtLnRpbWU6XHJcbiAgICAgICAgdGhpcy50aW1lSW5wdXQ/LnNweFNldEZvY3VzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4gey8qKi99O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gey8qKi99O1xyXG4gIHByb3RlY3RlZCBsYXN0VmFsdWU6IGFueTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYW5nZUV2ZW50KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5sYXN0VmFsdWUpIHtcclxuICAgICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXHJcbiAgX2hhbmRsZUJsdXJFdmVudCgpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbn1cclxuIl19
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==
@@ -8,7 +8,7 @@ class SpxFormSectionComponent {
8
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxFormSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
9
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxFormSectionComponent, isStandalone: true, selector: "spx-form-section", inputs: { spxIndex: "spxIndex", spxIndexSecondary: "spxIndexSecondary", spxTitle: "spxTitle", spxShowTitle: "spxShowTitle" }, ngImport: i0, template: `@if (this.spxShowTitle) {
10
10
  <div class="spx-form-section__title mb-2 flex gap-3 items-center">
11
- <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold">{{this.spxIndex}}@if (this.spxIndexSecondary) {
11
+ <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold rounded">{{this.spxIndex}}@if (this.spxIndexSecondary) {
12
12
  {{ this.spxIndexSecondary }}
13
13
  }</div>
14
14
  <div class="spx-form-section__content font-bold grow text-black dark:text-white">{{this.spxTitle}}</div>
@@ -22,7 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
22
22
  type: Component,
23
23
  args: [{ selector: 'spx-form-section', standalone: true, imports: [], template: `@if (this.spxShowTitle) {
24
24
  <div class="spx-form-section__title mb-2 flex gap-3 items-center">
25
- <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold">{{this.spxIndex}}@if (this.spxIndexSecondary) {
25
+ <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold rounded">{{this.spxIndex}}@if (this.spxIndexSecondary) {
26
26
  {{ this.spxIndexSecondary }}
27
27
  }</div>
28
28
  <div class="spx-form-section__content font-bold grow text-black dark:text-white">{{this.spxTitle}}</div>
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-form-section.mjs","sources":["../../../../projects/softpak/components/spx-form-section/spx-form-section.component.ts","../../../../projects/softpak/components/spx-form-section/softpak-components-spx-form-section.ts"],"sourcesContent":["\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spx-form-section',\r\n standalone: true,\r\n imports: [],\r\n template: `@if (this.spxShowTitle) {\r\n <div class=\"spx-form-section__title mb-2 flex gap-3 items-center\">\r\n <div class=\"spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold\">{{this.spxIndex}}@if (this.spxIndexSecondary) {\r\n {{ this.spxIndexSecondary }}\r\n }</div>\r\n <div class=\"spx-form-section__content font-bold grow text-black dark:text-white\">{{this.spxTitle}}</div>\r\n </div>\r\n}\r\n<div class=\"flex flex-col gap-3\">\r\n <ng-content></ng-content>\r\n</div>`,\r\n styles: `\r\n :host {\r\n display: block;\r\n }\r\n \r\n .spx-form-section__title-index {\r\n background-color: var(--spx-form-section--index--background-color);\r\n color: var(--spx-form-section--index--color, #FFFFFF);\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n\r\n .spx-form-section__content {\r\n color: var(--spx-form-section--index--background-color, #000000);\r\n }\r\n\r\n @media (prefers-color-scheme: dark) {\r\n .spx-form-section__content {\r\n color: var(--spx-form-section--index--background-color, #FFFFFF);\r\n }\r\n}\r\n `,\r\n})\r\nexport class SpxFormSectionComponent {\r\n @Input() spxIndex?: number;\r\n @Input() spxIndexSecondary?: number;\r\n @Input() spxTitle?: string;\r\n @Input() spxShowTitle = true;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAyCa,uBAAuB,CAAA;AAtCpC,IAAA,WAAA,GAAA;QA0CW,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAC9B,KAAA;+GALY,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,EAlCxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;AAUL,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,obAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAwBM,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAtCnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA,CAAA;;;;;;;;;;AAUL,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,obAAA,CAAA,EAAA,CAAA;8BAyBI,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;AC7CR;;AAEG;;;;"}
1
+ {"version":3,"file":"softpak-components-spx-form-section.mjs","sources":["../../../../projects/softpak/components/spx-form-section/spx-form-section.component.ts","../../../../projects/softpak/components/spx-form-section/softpak-components-spx-form-section.ts"],"sourcesContent":["\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spx-form-section',\r\n standalone: true,\r\n imports: [],\r\n template: `@if (this.spxShowTitle) {\r\n <div class=\"spx-form-section__title mb-2 flex gap-3 items-center\">\r\n <div class=\"spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold rounded\">{{this.spxIndex}}@if (this.spxIndexSecondary) {\r\n {{ this.spxIndexSecondary }}\r\n }</div>\r\n <div class=\"spx-form-section__content font-bold grow text-black dark:text-white\">{{this.spxTitle}}</div>\r\n </div>\r\n}\r\n<div class=\"flex flex-col gap-3\">\r\n <ng-content></ng-content>\r\n</div>`,\r\n styles: `\r\n :host {\r\n display: block;\r\n }\r\n \r\n .spx-form-section__title-index {\r\n background-color: var(--spx-form-section--index--background-color);\r\n color: var(--spx-form-section--index--color, #FFFFFF);\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n\r\n .spx-form-section__content {\r\n color: var(--spx-form-section--index--background-color, #000000);\r\n }\r\n\r\n @media (prefers-color-scheme: dark) {\r\n .spx-form-section__content {\r\n color: var(--spx-form-section--index--background-color, #FFFFFF);\r\n }\r\n}\r\n `,\r\n})\r\nexport class SpxFormSectionComponent {\r\n @Input() spxIndex?: number;\r\n @Input() spxIndexSecondary?: number;\r\n @Input() spxTitle?: string;\r\n @Input() spxShowTitle = true;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAyCa,uBAAuB,CAAA;AAtCpC,IAAA,WAAA,GAAA;QA0CW,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAC9B,KAAA;+GALY,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,EAlCxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;AAUL,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,obAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAwBM,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAtCnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA,CAAA;;;;;;;;;;AAUL,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,obAAA,CAAA,EAAA,CAAA;8BAyBI,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;AC7CR;;AAEG;;;;"}
@@ -625,7 +625,6 @@ class SpxInputFloatComponent {
625
625
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputFloatComponent, decorators: [{
626
626
  type: Component,
627
627
  args: [{ selector: 'spx-input-float', standalone: true, imports: [
628
- SpxButtonComponent,
629
628
  FormsModule,
630
629
  ], template: `<div class="flex items-end">
631
630
  <input
@@ -1295,10 +1294,7 @@ class SpxInputDateComponent {
1295
1294
  this.changeSelectedStep();
1296
1295
  }
1297
1296
  updateValueAndEmit() {
1298
- const concatenatedValue = `
1299
- ${this.selectedYear() ? this.selectedYear() : ``}
1300
- ${this.selectedMonth() ? `${this.selectedMonth() < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}
1301
- ${this.selectedDay() ? `-${this.selectedDay() < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`;
1297
+ 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()}` : ``}`;
1302
1298
  const parsedValue = DateTime.fromISO(concatenatedValue);
1303
1299
  this.value.set({ value: parsedValue.toISO(), description: parsedValue.toISO() });
1304
1300
  this.spxChange.emit(this.value());
@@ -1430,7 +1426,7 @@ class SpxInputComponent {
1430
1426
  }
1431
1427
  }
1432
1428
  writeValue(value) {
1433
- this.value = this.lastValue = value;
1429
+ this.value = this.lastValue = value; // hier komt initiele waarde van formcontrol binnen
1434
1430
  }
1435
1431
  handleChangeEvent(value) {
1436
1432
  if (value !== this.lastValue) {
@@ -1442,7 +1438,7 @@ class SpxInputComponent {
1442
1438
  this.onTouched();
1443
1439
  }
1444
1440
  registerOnChange(fn) {
1445
- this.onChange = fn;
1441
+ this.onChange = fn; // emit verandering aan formcontrol
1446
1442
  }
1447
1443
  registerOnTouched(fn) {
1448
1444
  this.onTouched = fn;
@@ -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 { SpxButtonComponent } from '@softpak/components/spx-button';\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 SpxButtonComponent,\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, input, model, OnInit, output, signal } 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 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 spxSuggestionC = computed<SpxValuePair<number>[]>(() => {\r\n switch(this.spxSelectedStep()) {\r\n case 'months' :\r\n return [...this.spxSuggestions().months]\r\n case 'days' :\r\n return [...this.spxSuggestions().days]\r\n default:\r\n return this.spxSuggestions().years;\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 \"years\":\r\n this.selectedYear.set(value);\r\n break;\r\n case \"months\":\r\n this.selectedMonth.set(value);\r\n break;\r\n case \"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 = `\r\n ${this.selectedYear() ? this.selectedYear() : ``}\r\n ${this.selectedMonth() ? `${this.selectedMonth()! < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}\r\n ${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 'days':\r\n this.spxSelectedStep.set(stepType.years);\r\n break;\r\n case 'months':\r\n this.spxSelectedStep.set(this.spxSelectDay() ? stepType.days : stepType.years);\r\n break;\r\n case 'years':\r\n this.spxSelectedStep.set(this.spxSelectMonth() ? stepType.months : stepType.years);\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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, '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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, '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;\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;\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\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, input, model, OnInit, output, signal } 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 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 spxSuggestionC = computed<SpxValuePair<number>[]>(() => {\r\n switch(this.spxSelectedStep()) {\r\n case 'months' :\r\n return [...this.spxSuggestions().months]\r\n case 'days' :\r\n return [...this.spxSuggestions().days]\r\n default:\r\n return this.spxSuggestions().years;\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 \"years\":\r\n this.selectedYear.set(value);\r\n break;\r\n case \"months\":\r\n this.selectedMonth.set(value);\r\n break;\r\n case \"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 'days':\r\n this.spxSelectedStep.set(stepType.years);\r\n break;\r\n case 'months':\r\n this.spxSelectedStep.set(this.spxSelectDay() ? stepType.days : stepType.years);\r\n break;\r\n case 'years':\r\n this.spxSelectedStep.set(this.spxSelectMonth() ? stepType.months : stepType.years);\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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedYear\"\r\n [attr.type]=\"'number'\"\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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedMonth\"\r\n (ngModelChange)=\"onModelChange($event, '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\r\n class='spx-input-date__input'\r\n [(ngModel)]=\"selectedDay\"\r\n (ngModelChange)=\"onModelChange($event, '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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softpak/components",
3
- "version": "18.6.3",
3
+ "version": "18.6.4",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "18.x.x || 19.x.x",
@@ -34,36 +34,36 @@
34
34
  "esm": "./esm2022/spx-alert/softpak-components-spx-alert.mjs",
35
35
  "default": "./fesm2022/softpak-components-spx-alert.mjs"
36
36
  },
37
+ "./spx-button": {
38
+ "types": "./spx-button/index.d.ts",
39
+ "esm2022": "./esm2022/spx-button/softpak-components-spx-button.mjs",
40
+ "esm": "./esm2022/spx-button/softpak-components-spx-button.mjs",
41
+ "default": "./fesm2022/softpak-components-spx-button.mjs"
42
+ },
37
43
  "./spx-app-update": {
38
44
  "types": "./spx-app-update/index.d.ts",
39
45
  "esm2022": "./esm2022/spx-app-update/softpak-components-spx-app-update.mjs",
40
46
  "esm": "./esm2022/spx-app-update/softpak-components-spx-app-update.mjs",
41
47
  "default": "./fesm2022/softpak-components-spx-app-update.mjs"
42
48
  },
43
- "./spx-capitalize": {
44
- "types": "./spx-capitalize/index.d.ts",
45
- "esm2022": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
46
- "esm": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
47
- "default": "./fesm2022/softpak-components-spx-capitalize.mjs"
48
- },
49
49
  "./spx-app-expiry": {
50
50
  "types": "./spx-app-expiry/index.d.ts",
51
51
  "esm2022": "./esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs",
52
52
  "esm": "./esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs",
53
53
  "default": "./fesm2022/softpak-components-spx-app-expiry.mjs"
54
54
  },
55
+ "./spx-capitalize": {
56
+ "types": "./spx-capitalize/index.d.ts",
57
+ "esm2022": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
58
+ "esm": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
59
+ "default": "./fesm2022/softpak-components-spx-capitalize.mjs"
60
+ },
55
61
  "./spx-app-configuration": {
56
62
  "types": "./spx-app-configuration/index.d.ts",
57
63
  "esm2022": "./esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs",
58
64
  "esm": "./esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs",
59
65
  "default": "./fesm2022/softpak-components-spx-app-configuration.mjs"
60
66
  },
61
- "./spx-button": {
62
- "types": "./spx-button/index.d.ts",
63
- "esm2022": "./esm2022/spx-button/softpak-components-spx-button.mjs",
64
- "esm": "./esm2022/spx-button/softpak-components-spx-button.mjs",
65
- "default": "./fesm2022/softpak-components-spx-button.mjs"
66
- },
67
67
  "./spx-card": {
68
68
  "types": "./spx-card/index.d.ts",
69
69
  "esm2022": "./esm2022/spx-card/softpak-components-spx-card.mjs",
@@ -112,17 +112,23 @@
112
112
  "esm": "./esm2022/spx-inputs/softpak-components-spx-inputs.mjs",
113
113
  "default": "./fesm2022/softpak-components-spx-inputs.mjs"
114
114
  },
115
+ "./spx-navigation": {
116
+ "types": "./spx-navigation/index.d.ts",
117
+ "esm2022": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
118
+ "esm": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
119
+ "default": "./fesm2022/softpak-components-spx-navigation.mjs"
120
+ },
115
121
  "./spx-number-check": {
116
122
  "types": "./spx-number-check/index.d.ts",
117
123
  "esm2022": "./esm2022/spx-number-check/softpak-components-spx-number-check.mjs",
118
124
  "esm": "./esm2022/spx-number-check/softpak-components-spx-number-check.mjs",
119
125
  "default": "./fesm2022/softpak-components-spx-number-check.mjs"
120
126
  },
121
- "./spx-navigation": {
122
- "types": "./spx-navigation/index.d.ts",
123
- "esm2022": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
124
- "esm": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
125
- "default": "./fesm2022/softpak-components-spx-navigation.mjs"
127
+ "./spx-patch": {
128
+ "types": "./spx-patch/index.d.ts",
129
+ "esm2022": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
130
+ "esm": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
131
+ "default": "./fesm2022/softpak-components-spx-patch.mjs"
126
132
  },
127
133
  "./spx-pagination": {
128
134
  "types": "./spx-pagination/index.d.ts",
@@ -136,11 +142,11 @@
136
142
  "esm": "./esm2022/spx-spinner/softpak-components-spx-spinner.mjs",
137
143
  "default": "./fesm2022/softpak-components-spx-spinner.mjs"
138
144
  },
139
- "./spx-storage": {
140
- "types": "./spx-storage/index.d.ts",
141
- "esm2022": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
142
- "esm": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
143
- "default": "./fesm2022/softpak-components-spx-storage.mjs"
145
+ "./spx-progress-bar": {
146
+ "types": "./spx-progress-bar/index.d.ts",
147
+ "esm2022": "./esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs",
148
+ "esm": "./esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs",
149
+ "default": "./fesm2022/softpak-components-spx-progress-bar.mjs"
144
150
  },
145
151
  "./spx-stock-info": {
146
152
  "types": "./spx-stock-info/index.d.ts",
@@ -154,17 +160,11 @@
154
160
  "esm": "./esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs",
155
161
  "default": "./fesm2022/softpak-components-spx-suggestion.mjs"
156
162
  },
157
- "./spx-update": {
158
- "types": "./spx-update/index.d.ts",
159
- "esm2022": "./esm2022/spx-update/softpak-components-spx-update.mjs",
160
- "esm": "./esm2022/spx-update/softpak-components-spx-update.mjs",
161
- "default": "./fesm2022/softpak-components-spx-update.mjs"
162
- },
163
- "./spx-patch": {
164
- "types": "./spx-patch/index.d.ts",
165
- "esm2022": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
166
- "esm": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
167
- "default": "./fesm2022/softpak-components-spx-patch.mjs"
163
+ "./spx-storage": {
164
+ "types": "./spx-storage/index.d.ts",
165
+ "esm2022": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
166
+ "esm": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
167
+ "default": "./fesm2022/softpak-components-spx-storage.mjs"
168
168
  },
169
169
  "./spx-toaster": {
170
170
  "types": "./spx-toaster/index.d.ts",
@@ -172,17 +172,17 @@
172
172
  "esm": "./esm2022/spx-toaster/softpak-components-spx-toaster.mjs",
173
173
  "default": "./fesm2022/softpak-components-spx-toaster.mjs"
174
174
  },
175
+ "./spx-update": {
176
+ "types": "./spx-update/index.d.ts",
177
+ "esm2022": "./esm2022/spx-update/softpak-components-spx-update.mjs",
178
+ "esm": "./esm2022/spx-update/softpak-components-spx-update.mjs",
179
+ "default": "./fesm2022/softpak-components-spx-update.mjs"
180
+ },
175
181
  "./spx-validation": {
176
182
  "types": "./spx-validation/index.d.ts",
177
183
  "esm2022": "./esm2022/spx-validation/softpak-components-spx-validation.mjs",
178
184
  "esm": "./esm2022/spx-validation/softpak-components-spx-validation.mjs",
179
185
  "default": "./fesm2022/softpak-components-spx-validation.mjs"
180
- },
181
- "./spx-progress-bar": {
182
- "types": "./spx-progress-bar/index.d.ts",
183
- "esm2022": "./esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs",
184
- "esm": "./esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs",
185
- "default": "./fesm2022/softpak-components-spx-progress-bar.mjs"
186
186
  }
187
187
  }
188
188
  }