@softpak/components 18.1.0 → 18.2.0-beta.1
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.
- package/esm2022/spx-form-view/spx-form-view.component.mjs +1 -3
- package/esm2022/spx-inputs/spx-input-date.component.mjs +7 -7
- package/fesm2022/softpak-components-spx-form-view.mjs +0 -2
- package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-inputs.mjs +6 -5
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/package.json +19 -19
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { JsonPipe } from '@angular/common';
|
|
2
1
|
import { Component, EventEmitter, Input, Output, ViewChildren } from '@angular/core';
|
|
3
2
|
import { SpxFormSectionComponent } from '@softpak/components/spx-form-section';
|
|
4
3
|
import { SpxInputComponent, SpxInputTypeEnum } from '@softpak/components/spx-inputs';
|
|
@@ -188,7 +187,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
188
187
|
imports: [
|
|
189
188
|
FormsModule,
|
|
190
189
|
ReactiveFormsModule,
|
|
191
|
-
JsonPipe,
|
|
192
190
|
SpxAutocompleteSearchComponent,
|
|
193
191
|
SpxButtonComponent,
|
|
194
192
|
SpxCapitalizePipe,
|
|
@@ -296,4 +294,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
296
294
|
type: ViewChildren,
|
|
297
295
|
args: [SpxInputComponent]
|
|
298
296
|
}] } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tdmlldy9zcHgtZm9ybS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBd0IsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQTJDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQXFHcEUsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsWUFBWSxDQUFDLEdBQVc7UUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsVUFBVSxFQUFFLENB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QUN2QixpQkFBaUIscWlCQUNqQiwyQkFBMkIsNkdBQzNCLGVBQWU7OzRGQXFGTixvQkFBb0I7a0JBbEdoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixRQUFRO3dCQUNSLDhCQUE4Qjt3QkFDOUIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQiwyQkFBMkI7d0JBQzNCLGVBQWU7cUJBQ2xCO29CQUNDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUZYO2lCQUNBO2dGQUVVLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQzBCLFNBQVM7c0JBQXpDLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweEZvcm1TZWN0aW9uSSB9IGZyb20gJy4vc3B4LWZvcm0tc2VjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3B4Rm9ybVNlY3Rpb25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1mb3JtLXNlY3Rpb24nO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQsIFNweElucHV0VHlwZUVudW0sIFNweFZhbHVlUGFpciB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhDYXBpdGFsaXplUGlwZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWNhcGl0YWxpemUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNweEZvcm1GaWVsZEkgfSBmcm9tICcuL3NweC1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcHhBdXRvY29tcGxldGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3NweC1hdXRvY29tcGxldGUtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcHhWYWxpZGF0ZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcbmltcG9ydCB7IFNweEZvcm1JIH0gZnJvbSAnLi9zcHgtZm9ybS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtZm9ybS12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSnNvblBpcGUsXG4gICAgU3B4QXV0b2NvbXBsZXRlU2VhcmNoQ29tcG9uZW50LFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTcHhDYXBpdGFsaXplUGlwZSxcbiAgICBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBTcHhWYWxpZGF0ZUNvbnRyb2xDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG5dLFxuICB0ZW1wbGF0ZTogYEBpZiAoYXV0b2NvbXBsZXRlRmllbGQpIHtcbiAgPHNweC1hdXRvY29tcGxldGUtc2VhcmNoXG4gICAgW3NweEZpZWxkXT1cImF1dG9jb21wbGV0ZUZpZWxkXCJcbiAgICBbc3B4U3VnZ2VzdGlvbnNdPVwidGhpcy5zcHhTdWdnZXN0aW9uc1thdXRvY29tcGxldGVGaWVsZC5rZXldXCJcbiAgICBbc3B4VmFsdWVQYWlyXT1cIiRhbnkodGhpcy5zcHhGb3JtR3JvdXAuZ2V0KGF1dG9jb21wbGV0ZUZpZWxkLmtleSkpLnZhbHVlXCJcbiAgICBbdHh0T3B0aW9uc109XCInT3B0aW9ucydcIlxuICAgIFt0eHRRdWVyeV09XCInUXVlcnknXCJcbiAgICBbdHh0U3VibWl0XT1cIidTYXZlJ1wiXG4gICAgKHNweENhbmNlbCk9XCJvbkF1dG9jb21wbGV0ZUNhbmNlbCgpXCJcbiAgICAoc3B4U2VhcmNoKT1cIm9uQXV0b2NvbXBsZXRlU2VhcmNoKCRldmVudClcIlxuICAgIChzcHhTdWJtaXQpPVwib25BdXRvY29tcGxldGVTYXZlKCRldmVudClcIj5cbiAgPC9zcHgtYXV0b2NvbXBsZXRlLXNlYXJjaD5cbn1cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gIEBmb3IgKHNweFNlY3Rpb24gb2Ygc3B4Rm9ybS5zZWN0aW9uczsgdHJhY2sgc3B4U2VjdGlvbjsgbGV0IHNweFNlY3Rpb25JbmRleCA9ICRpbmRleCkge1xuICAgIDxzcHgtZm9ybS1zZWN0aW9uXG4gICAgICBbc3B4U2hvd1RpdGxlXT1cIiFzcHhTZWN0aW9uLnNob3dUaXRsZSB8fCBzcHhTZWN0aW9uLnNob3dUaXRsZSgpXCJcbiAgICAgIFtzcHhJbmRleF09XCJzcHhTZWN0aW9uSW5kZXggKyAxXCJcbiAgICAgIFtzcHhUaXRsZV09XCJzcHhTZWN0aW9uLnRpdGxlID8gKHNweFNlY3Rpb24udGl0bGUoKSB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemUpIDogdW5kZWZpbmVkXCI+XG4gICAgICBAZm9yIChzcHhGaWVsZCBvZiBzcHhTZWN0aW9uLmZpZWxkczsgdHJhY2sgc3B4RmllbGQ7IGxldCBzcHhGaWVsZEluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIEBpZiAoc3B4RmllbGQuc2hvdyA9PT0gdW5kZWZpbmVkIHx8IHNweEZpZWxkLnNob3coKSkge1xuICAgICAgICAgIEBpZiAoc3B4RmllbGQudHlwZSgpID09PSB0eXBlQnV0dG9uKSB7XG4gICAgICAgICAgICA8c3B4LWJ1dHRvblxuICAgICAgICAgICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICBbc3B4U2V2ZXJpdHldPVwic3B4RmllbGQuc2V2ZXJpdHkgPyBzcHhGaWVsZC5zZXZlcml0eSgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgW3NweFR5cGVdPVwiJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAoc3B4Q2xpY2spPVwib25DbGljayhzcHhGaWVsZClcIlxuICAgICAgICAgICAgPnt7IChzcHhGaWVsZC5sYWJlbCA/IHNweEZpZWxkLmxhYmVsKCkgOiBzcHhGaWVsZC5rZXkpIHwgdHJhbnNsYXRlICB8IGNhcGl0YWxpemUgfX08L3NweC1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoc3B4RmllbGQudHlwZSgpID09PSB0eXBlT3ZlcmxheSB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVPdmVybGF5TnVtYmVyIHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZUZsb2F0IHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZU51bWJlciB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVUZXh0IHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZUF1dG9jb21wbGV0ZSB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVOdW1lcmljS2V5Ym9hcmQpIHtcbiAgICAgICAgICAgIDxzcHgtaW5wdXRcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkodGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkpXCJcbiAgICAgICAgICAgICAgW3NweEF1dG9mb2N1c109XCJzcHhGaWVsZC5hdXRvZm9jdXMgPyBzcHhGaWVsZC5hdXRvZm9jdXMoKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweENhcGl0YWxpemVdPVwic3B4RmllbGQuY2FwaXRhbGl6ZSA/IHNweEZpZWxkLmNhcGl0YWxpemUoKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweExhYmVsXT1cIihzcHhGaWVsZC5sYWJlbCA/IHNweEZpZWxkLmxhYmVsKCkgOiBzcHhGaWVsZC5rZXkpIHwgdHJhbnNsYXRlICB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgICAgICBbc3B4TmFtZV09XCJzcHhGaWVsZC5rZXlcIlxuICAgICAgICAgICAgICBbc3B4UGF0dGVybl09XCJzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVOdW1lcmljS2V5Ym9hcmQgPyAnXFxcXGQqJyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIFtzcHhSZWFkb25seV09XCJzcHhGaWVsZC5yZWFkb25seSA/IHNweEZpZWxkLnJlYWRvbmx5KCkgOiBmYWxzZVwiXG4gICAgICAgICAgICAgIFtzcHhSZXF1aXJlZF09XCJoYXNSZXF1aXJlZEZpZWxkKHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpISlcIlxuICAgICAgICAgICAgICBbc3B4U2hvd1NlYXJjaF09XCJzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICBbc3B4U2hvd0hlbHBdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc109XCJ0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEgJiYgdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhLmVycm9ycyAmJiB0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEudG91Y2hlZFwiXG4gICAgICAgICAgICAgIFtzcHhTdGVwXT1cInNweEZpZWxkLnN0ZXAgPyBzcHhGaWVsZC5zdGVwKCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICBbc3B4VHlwZV09XCJzcHhGaWVsZC50eXBlKClcIlxuICAgICAgICAgICAgICBbc3B4VmFsaWRhdG9yc109XCJnZXRSYXdWYWxpZGF0b3JzKHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpISlcIlxuICAgICAgICAgICAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3B4RmllbGQuc3VnZ2VzdGlvbnNGaXhlZCA/IHNweEZpZWxkLnN1Z2dlc3Rpb25zRml4ZWQoKSA6IHRoaXMuc3B4U3VnZ2VzdGlvbnNbc3B4RmllbGQua2V5XVwiXG4gICAgICAgICAgICAgIChzcHhCbHVyKT1cIm9uQmx1cihzcHhGaWVsZClcIlxuICAgICAgICAgICAgICAoc3B4U2VhcmNoKT1cIm9uU2VhcmNoKHNweEZpZWxkKVwiPlxuICAgICAgICAgICAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiJGFueSh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSlcIiBbbGFiZWxdPVwiKHNweEZpZWxkLmxhYmVsID8gc3B4RmllbGQubGFiZWwoKSA6IHNweEZpZWxkLmtleSl8IHRyYW5zbGF0ZSAgfCBjYXBpdGFsaXplXCI+PC9zcHgtdmFsaWRhdGUtY29udHJvbD5cbiAgICAgICAgICAgIDwvc3B4LWlucHV0PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZVJhZGlvKSB7XG4gICAgICAgICAgICA8c3B4LWlucHV0XG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCIkYW55KHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpKVwiXG4gICAgICAgICAgICAgIFtzcHhMYWJlbF09XCIoc3B4RmllbGQubGFiZWwgPyBzcHhGaWVsZC5sYWJlbCgpIDogc3B4RmllbGQua2V5KSB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgICAgICBbc3B4TmFtZV09XCJzcHhGaWVsZC5rZXlcIlxuICAgICAgICAgICAgICBbc3B4UmVhZG9ubHldPVwic3B4RmllbGQucmVhZG9ubHkgPyBzcHhGaWVsZC5yZWFkb25seSgpIDogZmFsc2VcIlxuICAgICAgICAgICAgICBbc3B4UmVxdWlyZWRdPVwiaGFzUmVxdWlyZWRGaWVsZCh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEpXCJcbiAgICAgICAgICAgICAgW3NweFNob3dIZWxwXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNdPVwidGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhICYmIHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpIS5lcnJvcnMgJiYgdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhLnRvdWNoZWRcIlxuICAgICAgICAgICAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3B4RmllbGQuc3VnZ2VzdGlvbnNGaXhlZCA/IHNweEZpZWxkLnN1Z2dlc3Rpb25zRml4ZWQoKSA6IHRoaXMuc3B4U3VnZ2VzdGlvbnNbc3B4RmllbGQua2V5XVwiXG4gICAgICAgICAgICAgIFtzcHhUeXBlXT1cInR5cGVSYWRpb1wiXG4gICAgICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cImdldFJhd1ZhbGlkYXRvcnModGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhKVwiPlxuICAgICAgICAgICAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiJGFueSh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSlcIiBbbGFiZWxdPVwiKHNweEZpZWxkLmxhYmVsID8gc3B4RmllbGQubGFiZWwoKSA6IHNweEZpZWxkLmtleSkgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCI+PC9zcHgtdmFsaWRhdGUtY29udHJvbD5cbiAgICAgICAgICAgIDwvc3B4LWlucHV0PlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvc3B4LWZvcm0tc2VjdGlvbj5cbiAgfVxuXG4gIEBmb3IgKHNweEJ1dHRvbiBvZiBzcHhGb3JtLmJ1dHRvbnM7IHRyYWNrIHNweEJ1dHRvbikge1xuICAgIDxzcHgtYnV0dG9uXG4gICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW3NweFNldmVyaXR5XT1cInNweEJ1dHRvbi5zZXZlcml0eVwiXG4gICAgICBbc3B4VHlwZV09XCJzcHhCdXR0b24udHlwZVwiXG4gICAgICAoc3B4Q2xpY2spPVwic3B4QnV0dG9uLm9uQ2xpY2sgPyBzcHhCdXR0b24ub25DbGljaygpIDogdW5kZWZpbmVkXCI+XG4gICAgICB7eyAoKHNweEJ1dHRvbiAmJiBzcHhCdXR0b24ubGFiZWwpID8gc3B4QnV0dG9uLmxhYmVsKCkgOiAnJykgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplIH19XG4gICAgPC9zcHgtYnV0dG9uPlxuICB9XG48L2Rpdj5cbmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweEZvcm1WaWV3Q29tcG9uZW50IHtcbiAgQElucHV0KCkgc3B4Rm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBzcHhGb3JtITogU3B4Rm9ybUk7XG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zITogYW55O1xuICBAT3V0cHV0KCkgc3B4Qmx1cjogRXZlbnRFbWl0dGVyPHsgZmllbGQ6IFNweEZvcm1GaWVsZEksIHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IFNweEZvcm1GaWVsZEksIHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4gfT4oKTtcbiAgQE91dHB1dCgpIHNweENsaWNrOiBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSB9PigpO1xuICBAT3V0cHV0KCkgc3B4U2VhcmNoOiBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9PigpO1xuICBAVmlld0NoaWxkcmVuKFNweElucHV0Q29tcG9uZW50KSBzcHhJbnB1dHMhOiBRdWVyeUxpc3Q8U3B4SW5wdXRDb21wb25lbnQ+O1xuICBhdXRvY29tcGxldGVGaWVsZD86IFNweEZvcm1GaWVsZEk7XG5cbiAgdHlwZUF1dG9jb21wbGV0ZSA9IFNweElucHV0VHlwZUVudW0uYXV0b2NvbXBsZXRlO1xuICB0eXBlQnV0dG9uID0gU3B4SW5wdXRUeXBlRW51bS5idXR0b247XG4gIHR5cGVGbG9hdCA9IFNweElucHV0VHlwZUVudW0uZmxvYXQ7XG4gIHR5cGVOdW1iZXIgPSBTcHhJbnB1dFR5cGVFbnVtLm51bWJlcjtcbiAgdHlwZVJhZGlvID0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbztcbiAgdHlwZVRleHQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XG4gIHR5cGVOdW1lcmljS2V5Ym9hcmQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHROdW1lcmljS2V5Ym9hcmQ7XG4gIHR5cGVPdmVybGF5ID0gU3B4SW5wdXRUeXBlRW51bS5vdmVybGF5O1xuICB0eXBlT3ZlcmxheU51bWJlciA9IFNweElucHV0VHlwZUVudW0ub3ZlcmxheU51bWJlcjtcblxuICBzZXRBdXRvZm9jdXMoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuc3B4SW5wdXRzLmZpbmQoaW5wdXQgPT4gaW5wdXQuc3B4TmFtZSA9PT0ga2V5KTtcbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGZpZWxkLnNldEZvY3VzSW4oKTtcbiAgICB9XG4gIH1cblxuICBvbkJsdXIoZmllbGQ6IFNweEZvcm1GaWVsZEkpIHtcbiAgICB0aGlzLnNweEJsdXIuZW1pdCh7XG4gICAgICBmaWVsZCxcbiAgICAgIHZhbHVlUGFpcjogdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KGZpZWxkLmtleSkhLnZhbHVlLFxuICAgIH0pO1xuICB9XG5cbiAgb25DbGljayhmaWVsZDogU3B4Rm9ybUZpZWxkSSkge1xuICAgIHRoaXMuc3B4Q2xpY2suZW1pdCh7XG4gICAgICBmaWVsZCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQXV0b2NvbXBsZXRlQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZVNlYXJjaCh2YWx1ZVBhaXI6IFNweFZhbHVlUGFpcjxhbnk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlRmllbGQpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoLmVtaXQoe1xuICAgICAgICBmaWVsZDogdGhpcy5hdXRvY29tcGxldGVGaWVsZCxcbiAgICAgICAgdmFsdWVQYWlyLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvY29tcGxldGVTYXZlKHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4pIHtcbiAgICB0aGlzLnNweEZvcm1Hcm91cC5nZXQodGhpcy5hdXRvY29tcGxldGVGaWVsZCEua2V5KT8uc2V0VmFsdWUodmFsdWVQYWlyKTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgb25TZWFyY2goZmllbGQ6IFNweEZvcm1GaWVsZEkpIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkID0gZmllbGQ7XG4gIH1cblxuICBnZXRSYXdWYWxpZGF0b3JzKGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICByZXR1cm4gKGZvcm1Db250cm9sIGFzIGFueSkuX3Jhd1ZhbGlkYXRvcnM7XG4gIH1cblxuICBoYXNSZXF1aXJlZEZpZWxkKGFic3RyYWN0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogYm9vbGVhbiB7XG4gICAgaWYgKGFic3RyYWN0Q29udHJvbC52YWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IGFic3RyYWN0Q29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcbiAgICAgIGlmICh2YWxpZGF0b3IgJiYgdmFsaWRhdG9yWydyZXF1aXJlZCddKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbnRyb2xOYW1lIGluIChhYnN0cmFjdENvbnRyb2wgYXMgYW55KVsnY29udHJvbHMnXSkge1xuICAgICAgICBpZiAoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddW2NvbnRyb2xOYW1lXSkge1xuICAgICAgICAgIGlmICh0aGlzLmhhc1JlcXVpcmVkRmllbGQoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddW2NvbnRyb2xOYW1lXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgaW5pdGlhbEZvcm1WYWx1ZShzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10pIHtcbiAgICBjb25zdCBmb3JtT2JqZWN0OiBhbnkgPSB7fTtcbiAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGZvcm1PYmplY3RbZmllbGQua2V5XSA9IFtmaWVsZC5kZWZhdWx0VmFsdWUgPyBmaWVsZC5kZWZhdWx0VmFsdWUoKSA6IG51bGwsIGZpZWxkLnZhbGlkYXRvcnMgPyBbLi4uZmllbGQudmFsaWRhdG9ycygpXSA6IFtdXTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBmb3JtT2JqZWN0O1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUZvcm0oZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10pOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiBmb3JtQnVpbGRlci5ncm91cCh0aGlzLmluaXRpYWxGb3JtVmFsdWUoc2VjdGlvbnMpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICB9XG59XG4iXX0=
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tdmlldy9zcHgtZm9ybS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUF3QixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0csT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFnQixNQUFNLGdDQUFnQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBMkMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0csT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBb0dwRSxNQUFNLE9BQU8sb0JBQW9CO0lBb0IvQixZQUFZLENBQUMsR0FBVztRQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFv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cUZOLG9CQUFvQjtrQkFqR2hDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQiwyQkFBMkI7d0JBQzNCLGVBQWU7cUJBQ2xCO29CQUNDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUZYO2lCQUNBO2dGQUVVLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQzBCLFNBQVM7c0JBQXpDLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweEZvcm1TZWN0aW9uSSB9IGZyb20gJy4vc3B4LWZvcm0tc2VjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3B4Rm9ybVNlY3Rpb25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1mb3JtLXNlY3Rpb24nO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQsIFNweElucHV0VHlwZUVudW0sIFNweFZhbHVlUGFpciB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhDYXBpdGFsaXplUGlwZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWNhcGl0YWxpemUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNweEZvcm1GaWVsZEkgfSBmcm9tICcuL3NweC1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcHhBdXRvY29tcGxldGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3NweC1hdXRvY29tcGxldGUtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcHhWYWxpZGF0ZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcbmltcG9ydCB7IFNweEZvcm1JIH0gZnJvbSAnLi9zcHgtZm9ybS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtZm9ybS12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4QXV0b2NvbXBsZXRlU2VhcmNoQ29tcG9uZW50LFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTcHhDYXBpdGFsaXplUGlwZSxcbiAgICBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBTcHhWYWxpZGF0ZUNvbnRyb2xDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG5dLFxuICB0ZW1wbGF0ZTogYEBpZiAoYXV0b2NvbXBsZXRlRmllbGQpIHtcbiAgPHNweC1hdXRvY29tcGxldGUtc2VhcmNoXG4gICAgW3NweEZpZWxkXT1cImF1dG9jb21wbGV0ZUZpZWxkXCJcbiAgICBbc3B4U3VnZ2VzdGlvbnNdPVwidGhpcy5zcHhTdWdnZXN0aW9uc1thdXRvY29tcGxldGVGaWVsZC5rZXldXCJcbiAgICBbc3B4VmFsdWVQYWlyXT1cIiRhbnkodGhpcy5zcHhGb3JtR3JvdXAuZ2V0KGF1dG9jb21wbGV0ZUZpZWxkLmtleSkpLnZhbHVlXCJcbiAgICBbdHh0T3B0aW9uc109XCInT3B0aW9ucydcIlxuICAgIFt0eHRRdWVyeV09XCInUXVlcnknXCJcbiAgICBbdHh0U3VibWl0XT1cIidTYXZlJ1wiXG4gICAgKHNweENhbmNlbCk9XCJvbkF1dG9jb21wbGV0ZUNhbmNlbCgpXCJcbiAgICAoc3B4U2VhcmNoKT1cIm9uQXV0b2NvbXBsZXRlU2VhcmNoKCRldmVudClcIlxuICAgIChzcHhTdWJtaXQpPVwib25BdXRvY29tcGxldGVTYXZlKCRldmVudClcIj5cbiAgPC9zcHgtYXV0b2NvbXBsZXRlLXNlYXJjaD5cbn1cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gIEBmb3IgKHNweFNlY3Rpb24gb2Ygc3B4Rm9ybS5zZWN0aW9uczsgdHJhY2sgc3B4U2VjdGlvbjsgbGV0IHNweFNlY3Rpb25JbmRleCA9ICRpbmRleCkge1xuICAgIDxzcHgtZm9ybS1zZWN0aW9uXG4gICAgICBbc3B4U2hvd1RpdGxlXT1cIiFzcHhTZWN0aW9uLnNob3dUaXRsZSB8fCBzcHhTZWN0aW9uLnNob3dUaXRsZSgpXCJcbiAgICAgIFtzcHhJbmRleF09XCJzcHhTZWN0aW9uSW5kZXggKyAxXCJcbiAgICAgIFtzcHhUaXRsZV09XCJzcHhTZWN0aW9uLnRpdGxlID8gKHNweFNlY3Rpb24udGl0bGUoKSB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemUpIDogdW5kZWZpbmVkXCI+XG4gICAgICBAZm9yIChzcHhGaWVsZCBvZiBzcHhTZWN0aW9uLmZpZWxkczsgdHJhY2sgc3B4RmllbGQ7IGxldCBzcHhGaWVsZEluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIEBpZiAoc3B4RmllbGQuc2hvdyA9PT0gdW5kZWZpbmVkIHx8IHNweEZpZWxkLnNob3coKSkge1xuICAgICAgICAgIEBpZiAoc3B4RmllbGQudHlwZSgpID09PSB0eXBlQnV0dG9uKSB7XG4gICAgICAgICAgICA8c3B4LWJ1dHRvblxuICAgICAgICAgICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICBbc3B4U2V2ZXJpdHldPVwic3B4RmllbGQuc2V2ZXJpdHkgPyBzcHhGaWVsZC5zZXZlcml0eSgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgW3NweFR5cGVdPVwiJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAoc3B4Q2xpY2spPVwib25DbGljayhzcHhGaWVsZClcIlxuICAgICAgICAgICAgPnt7IChzcHhGaWVsZC5sYWJlbCA/IHNweEZpZWxkLmxhYmVsKCkgOiBzcHhGaWVsZC5rZXkpIHwgdHJhbnNsYXRlICB8IGNhcGl0YWxpemUgfX08L3NweC1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoc3B4RmllbGQudHlwZSgpID09PSB0eXBlT3ZlcmxheSB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVPdmVybGF5TnVtYmVyIHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZUZsb2F0IHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZU51bWJlciB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVUZXh0IHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZUF1dG9jb21wbGV0ZSB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVOdW1lcmljS2V5Ym9hcmQpIHtcbiAgICAgICAgICAgIDxzcHgtaW5wdXRcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkodGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkpXCJcbiAgICAgICAgICAgICAgW3NweEF1dG9mb2N1c109XCJzcHhGaWVsZC5hdXRvZm9jdXMgPyBzcHhGaWVsZC5hdXRvZm9jdXMoKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweENhcGl0YWxpemVdPVwic3B4RmllbGQuY2FwaXRhbGl6ZSA/IHNweEZpZWxkLmNhcGl0YWxpemUoKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweExhYmVsXT1cIihzcHhGaWVsZC5sYWJlbCA/IHNweEZpZWxkLmxhYmVsKCkgOiBzcHhGaWVsZC5rZXkpIHwgdHJhbnNsYXRlICB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgICAgICBbc3B4TmFtZV09XCJzcHhGaWVsZC5rZXlcIlxuICAgICAgICAgICAgICBbc3B4UGF0dGVybl09XCJzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVOdW1lcmljS2V5Ym9hcmQgPyAnXFxcXGQqJyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIFtzcHhSZWFkb25seV09XCJzcHhGaWVsZC5yZWFkb25seSA/IHNweEZpZWxkLnJlYWRvbmx5KCkgOiBmYWxzZVwiXG4gICAgICAgICAgICAgIFtzcHhSZXF1aXJlZF09XCJoYXNSZXF1aXJlZEZpZWxkKHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpISlcIlxuICAgICAgICAgICAgICBbc3B4U2hvd1NlYXJjaF09XCJzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICBbc3B4U2hvd0hlbHBdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc109XCJ0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEgJiYgdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhLmVycm9ycyAmJiB0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEudG91Y2hlZFwiXG4gICAgICAgICAgICAgIFtzcHhTdGVwXT1cInNweEZpZWxkLnN0ZXAgPyBzcHhGaWVsZC5zdGVwKCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICBbc3B4VHlwZV09XCJzcHhGaWVsZC50eXBlKClcIlxuICAgICAgICAgICAgICBbc3B4VmFsaWRhdG9yc109XCJnZXRSYXdWYWxpZGF0b3JzKHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpISlcIlxuICAgICAgICAgICAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3B4RmllbGQuc3VnZ2VzdGlvbnNGaXhlZCA/IHNweEZpZWxkLnN1Z2dlc3Rpb25zRml4ZWQoKSA6IHRoaXMuc3B4U3VnZ2VzdGlvbnNbc3B4RmllbGQua2V5XVwiXG4gICAgICAgICAgICAgIChzcHhCbHVyKT1cIm9uQmx1cihzcHhGaWVsZClcIlxuICAgICAgICAgICAgICAoc3B4U2VhcmNoKT1cIm9uU2VhcmNoKHNweEZpZWxkKVwiPlxuICAgICAgICAgICAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiJGFueSh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSlcIiBbbGFiZWxdPVwiKHNweEZpZWxkLmxhYmVsID8gc3B4RmllbGQubGFiZWwoKSA6IHNweEZpZWxkLmtleSl8IHRyYW5zbGF0ZSAgfCBjYXBpdGFsaXplXCI+PC9zcHgtdmFsaWRhdGUtY29udHJvbD5cbiAgICAgICAgICAgIDwvc3B4LWlucHV0PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZVJhZGlvKSB7XG4gICAgICAgICAgICA8c3B4LWlucHV0XG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCIkYW55KHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpKVwiXG4gICAgICAgICAgICAgIFtzcHhMYWJlbF09XCIoc3B4RmllbGQubGFiZWwgPyBzcHhGaWVsZC5sYWJlbCgpIDogc3B4RmllbGQua2V5KSB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgICAgICBbc3B4TmFtZV09XCJzcHhGaWVsZC5rZXlcIlxuICAgICAgICAgICAgICBbc3B4UmVhZG9ubHldPVwic3B4RmllbGQucmVhZG9ubHkgPyBzcHhGaWVsZC5yZWFkb25seSgpIDogZmFsc2VcIlxuICAgICAgICAgICAgICBbc3B4UmVxdWlyZWRdPVwiaGFzUmVxdWlyZWRGaWVsZCh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEpXCJcbiAgICAgICAgICAgICAgW3NweFNob3dIZWxwXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNdPVwidGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhICYmIHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpIS5lcnJvcnMgJiYgdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhLnRvdWNoZWRcIlxuICAgICAgICAgICAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3B4RmllbGQuc3VnZ2VzdGlvbnNGaXhlZCA/IHNweEZpZWxkLnN1Z2dlc3Rpb25zRml4ZWQoKSA6IHRoaXMuc3B4U3VnZ2VzdGlvbnNbc3B4RmllbGQua2V5XVwiXG4gICAgICAgICAgICAgIFtzcHhUeXBlXT1cInR5cGVSYWRpb1wiXG4gICAgICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cImdldFJhd1ZhbGlkYXRvcnModGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhKVwiPlxuICAgICAgICAgICAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiJGFueSh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSlcIiBbbGFiZWxdPVwiKHNweEZpZWxkLmxhYmVsID8gc3B4RmllbGQubGFiZWwoKSA6IHNweEZpZWxkLmtleSkgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCI+PC9zcHgtdmFsaWRhdGUtY29udHJvbD5cbiAgICAgICAgICAgIDwvc3B4LWlucHV0PlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvc3B4LWZvcm0tc2VjdGlvbj5cbiAgfVxuXG4gIEBmb3IgKHNweEJ1dHRvbiBvZiBzcHhGb3JtLmJ1dHRvbnM7IHRyYWNrIHNweEJ1dHRvbikge1xuICAgIDxzcHgtYnV0dG9uXG4gICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW3NweFNldmVyaXR5XT1cInNweEJ1dHRvbi5zZXZlcml0eVwiXG4gICAgICBbc3B4VHlwZV09XCJzcHhCdXR0b24udHlwZVwiXG4gICAgICAoc3B4Q2xpY2spPVwic3B4QnV0dG9uLm9uQ2xpY2sgPyBzcHhCdXR0b24ub25DbGljaygpIDogdW5kZWZpbmVkXCI+XG4gICAgICB7eyAoKHNweEJ1dHRvbiAmJiBzcHhCdXR0b24ubGFiZWwpID8gc3B4QnV0dG9uLmxhYmVsKCkgOiAnJykgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplIH19XG4gICAgPC9zcHgtYnV0dG9uPlxuICB9XG48L2Rpdj5cbmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweEZvcm1WaWV3Q29tcG9uZW50IHtcbiAgQElucHV0KCkgc3B4Rm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBzcHhGb3JtITogU3B4Rm9ybUk7XG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zITogYW55O1xuICBAT3V0cHV0KCkgc3B4Qmx1cjogRXZlbnRFbWl0dGVyPHsgZmllbGQ6IFNweEZvcm1GaWVsZEksIHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IFNweEZvcm1GaWVsZEksIHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4gfT4oKTtcbiAgQE91dHB1dCgpIHNweENsaWNrOiBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSB9PigpO1xuICBAT3V0cHV0KCkgc3B4U2VhcmNoOiBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9PigpO1xuICBAVmlld0NoaWxkcmVuKFNweElucHV0Q29tcG9uZW50KSBzcHhJbnB1dHMhOiBRdWVyeUxpc3Q8U3B4SW5wdXRDb21wb25lbnQ+O1xuICBhdXRvY29tcGxldGVGaWVsZD86IFNweEZvcm1GaWVsZEk7XG5cbiAgdHlwZUF1dG9jb21wbGV0ZSA9IFNweElucHV0VHlwZUVudW0uYXV0b2NvbXBsZXRlO1xuICB0eXBlQnV0dG9uID0gU3B4SW5wdXRUeXBlRW51bS5idXR0b247XG4gIHR5cGVGbG9hdCA9IFNweElucHV0VHlwZUVudW0uZmxvYXQ7XG4gIHR5cGVOdW1iZXIgPSBTcHhJbnB1dFR5cGVFbnVtLm51bWJlcjtcbiAgdHlwZVJhZGlvID0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbztcbiAgdHlwZVRleHQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XG4gIHR5cGVOdW1lcmljS2V5Ym9hcmQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHROdW1lcmljS2V5Ym9hcmQ7XG4gIHR5cGVPdmVybGF5ID0gU3B4SW5wdXRUeXBlRW51bS5vdmVybGF5O1xuICB0eXBlT3ZlcmxheU51bWJlciA9IFNweElucHV0VHlwZUVudW0ub3ZlcmxheU51bWJlcjtcblxuICBzZXRBdXRvZm9jdXMoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuc3B4SW5wdXRzLmZpbmQoaW5wdXQgPT4gaW5wdXQuc3B4TmFtZSA9PT0ga2V5KTtcbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGZpZWxkLnNldEZvY3VzSW4oKTtcbiAgICB9XG4gIH1cblxuICBvbkJsdXIoZmllbGQ6IFNweEZvcm1GaWVsZEkpIHtcbiAgICB0aGlzLnNweEJsdXIuZW1pdCh7XG4gICAgICBmaWVsZCxcbiAgICAgIHZhbHVlUGFpcjogdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KGZpZWxkLmtleSkhLnZhbHVlLFxuICAgIH0pO1xuICB9XG5cbiAgb25DbGljayhmaWVsZDogU3B4Rm9ybUZpZWxkSSkge1xuICAgIHRoaXMuc3B4Q2xpY2suZW1pdCh7XG4gICAgICBmaWVsZCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQXV0b2NvbXBsZXRlQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZVNlYXJjaCh2YWx1ZVBhaXI6IFNweFZhbHVlUGFpcjxhbnk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlRmllbGQpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoLmVtaXQoe1xuICAgICAgICBmaWVsZDogdGhpcy5hdXRvY29tcGxldGVGaWVsZCxcbiAgICAgICAgdmFsdWVQYWlyLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvY29tcGxldGVTYXZlKHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4pIHtcbiAgICB0aGlzLnNweEZvcm1Hcm91cC5nZXQodGhpcy5hdXRvY29tcGxldGVGaWVsZCEua2V5KT8uc2V0VmFsdWUodmFsdWVQYWlyKTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgb25TZWFyY2goZmllbGQ6IFNweEZvcm1GaWVsZEkpIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkID0gZmllbGQ7XG4gIH1cblxuICBnZXRSYXdWYWxpZGF0b3JzKGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICByZXR1cm4gKGZvcm1Db250cm9sIGFzIGFueSkuX3Jhd1ZhbGlkYXRvcnM7XG4gIH1cblxuICBoYXNSZXF1aXJlZEZpZWxkKGFic3RyYWN0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogYm9vbGVhbiB7XG4gICAgaWYgKGFic3RyYWN0Q29udHJvbC52YWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IGFic3RyYWN0Q29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcbiAgICAgIGlmICh2YWxpZGF0b3IgJiYgdmFsaWRhdG9yWydyZXF1aXJlZCddKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbnRyb2xOYW1lIGluIChhYnN0cmFjdENvbnRyb2wgYXMgYW55KVsnY29udHJvbHMnXSkge1xuICAgICAgICBpZiAoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddW2NvbnRyb2xOYW1lXSkge1xuICAgICAgICAgIGlmICh0aGlzLmhhc1JlcXVpcmVkRmllbGQoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddW2NvbnRyb2xOYW1lXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgaW5pdGlhbEZvcm1WYWx1ZShzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10pIHtcbiAgICBjb25zdCBmb3JtT2JqZWN0OiBhbnkgPSB7fTtcbiAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGZvcm1PYmplY3RbZmllbGQua2V5XSA9IFtmaWVsZC5kZWZhdWx0VmFsdWUgPyBmaWVsZC5kZWZhdWx0VmFsdWUoKSA6IG51bGwsIGZpZWxkLnZhbGlkYXRvcnMgPyBbLi4uZmllbGQudmFsaWRhdG9ycygpXSA6IFtdXTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBmb3JtT2JqZWN0O1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUZvcm0oZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10pOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiBmb3JtQnVpbGRlci5ncm91cCh0aGlzLmluaXRpYWxGb3JtVmFsdWUoc2VjdGlvbnMpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { SpxButtonComponent } from '@softpak/components/spx-button';
|
|
3
2
|
import { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';
|
|
4
3
|
import { DateTime } from 'luxon';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
@@ -90,7 +89,7 @@ export class SpxInputDateComponent {
|
|
|
90
89
|
}
|
|
91
90
|
afterMonthChange() {
|
|
92
91
|
if (this.spxInternalValue.months.toString().length === 2 && this.spxSelectDay && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {
|
|
93
|
-
|
|
92
|
+
this.elDay?.focus();
|
|
94
93
|
}
|
|
95
94
|
this.updateValue();
|
|
96
95
|
}
|
|
@@ -100,7 +99,7 @@ export class SpxInputDateComponent {
|
|
|
100
99
|
}
|
|
101
100
|
afterYearChange() {
|
|
102
101
|
if (this.spxInternalValue.years.toString().length === 4 && this.spxSelectMonth && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {
|
|
103
|
-
|
|
102
|
+
this.elMonth?.focus();
|
|
104
103
|
}
|
|
105
104
|
this.updateValue();
|
|
106
105
|
}
|
|
@@ -154,6 +153,7 @@ export class SpxInputDateComponent {
|
|
|
154
153
|
this.spxWasInternalUpdate = true;
|
|
155
154
|
}
|
|
156
155
|
suggestYears() {
|
|
156
|
+
console.log('suggest years');
|
|
157
157
|
this.spxSuggestions.years = [];
|
|
158
158
|
for (let year = DateTime.fromISO(this.spxMin).year; year <= DateTime.fromISO(this.spxMax).year; year++) {
|
|
159
159
|
this.spxSuggestions.years.push({
|
|
@@ -161,6 +161,7 @@ export class SpxInputDateComponent {
|
|
|
161
161
|
value: year,
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
|
+
console.log('suggest years', this.spxSuggestions);
|
|
164
165
|
}
|
|
165
166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
167
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", value: "value", spxLastKeyPressed: "spxLastKeyPressed", spxSelectStep: "spxSelectStep", spxInternalValue: "spxInternalValue", spxSuggestions: "spxSuggestions", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class='spx-input-date__controls'>
|
|
@@ -200,8 +201,8 @@ export class SpxInputDateComponent {
|
|
|
200
201
|
[attr.min]="1"
|
|
201
202
|
[attr.max]="31"
|
|
202
203
|
[attr.step]="1" />
|
|
204
|
+
<div class='spx-input-date__control-label'>Days</div>
|
|
203
205
|
}
|
|
204
|
-
<div class='spx-input-date__control-label'>Days</div>
|
|
205
206
|
</div>
|
|
206
207
|
<div class='spx-input-date__suggestions'>
|
|
207
208
|
@for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
|
|
@@ -213,7 +214,6 @@ export class SpxInputDateComponent {
|
|
|
213
214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
|
|
214
215
|
type: Component,
|
|
215
216
|
args: [{ selector: 'spx-input-date', standalone: true, imports: [
|
|
216
|
-
SpxButtonComponent,
|
|
217
217
|
SpxSuggestionComponent
|
|
218
218
|
], template: `<div class='spx-input-date__controls'>
|
|
219
219
|
<input
|
|
@@ -252,8 +252,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
252
252
|
[attr.min]="1"
|
|
253
253
|
[attr.max]="31"
|
|
254
254
|
[attr.step]="1" />
|
|
255
|
+
<div class='spx-input-date__control-label'>Days</div>
|
|
255
256
|
}
|
|
256
|
-
<div class='spx-input-date__control-label'>Days</div>
|
|
257
257
|
</div>
|
|
258
258
|
<div class='spx-input-date__suggestions'>
|
|
259
259
|
@for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
|
|
@@ -294,4 +294,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
294
294
|
}], spxWasInternalUpdate: [{
|
|
295
295
|
type: Input
|
|
296
296
|
}] } });
|
|
297
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFnSGpDLE1BQU0sT0FBTyxxQkFBcUI7SUFxRWhDLEtBQUssQ0FBQyxXQUFXO1FBQ2YsdUJBQXVCO0lBQ3pCLENBQUM7SUFDRCx5REFBeUQ7SUFDekQseUNBQXlDO0lBQ3pDLElBQUk7SUFDSix5Q0FBeUM7SUFDekMscUNBQXFDO0lBQ3JDLHlDQUF5QztJQUN6QyxhQUFhO0lBQ2IsNkRBQTZEO0lBQzdELHNEQUFzRDtJQUN0RCx3REFBd0Q7SUFDeEQsb0RBQW9EO0lBQ3BELG9DQUFvQztJQUNwQyxNQUFNO0lBQ04sSUFBSTtJQUVKO1FBL0VTLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFbkIsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekQsa0JBQWEsR0FBZ0MsT0FBTyxDQUFDO1FBQ3JELHFCQUFnQixHQUlyQixFQUFFLENBQUM7UUFDRSxtQkFBYyxHQUluQjtZQUNBLEtBQUssRUFB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LENBQUM7WUFDekcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUM3QixXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRTtnQkFDakQsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0E3TFUscUJBQXFCO21HQUFyQixxQkFBcUIsNmlCQXRHdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQTZDSCx1OEJBL0NMLHNCQUFzQjs7NEZBd0diLHFCQUFxQjtrQkE3R2pDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3FCQUN6QixZQUNXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E2Q0g7d0RBOERFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQTZDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1idXR0b24nO1xuaW1wb3J0IHsgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN1Z2dlc3Rpb24nO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtZGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBTcHhCdXR0b25Db21wb25lbnQsXG4gICAgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudFxuXSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fY29udHJvbHMnPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19pbnB1dCdcbiAgICAgIFthdHRyLnZhbHVlXT1cInRoaXMuc3B4SW50ZXJuYWxWYWx1ZS55ZWFyc1wiXG4gICAgICAoZm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygneWVhcnMnKVwiXG4gICAgICAoaW5wdXQpPVwidGhpcy5oYW5kbGVZZWFySW5wdXQoJGV2ZW50KVwiXG4gICAgICAoa2V5RG93bik9XCJ0aGlzLmhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcbiAgICAgIFthdHRyLm1pbl09XCIxOTAwXCJcbiAgICAgIFthdHRyLm1heF09XCIyMTAwXCJcbiAgICAgIFthdHRyLnN0ZXBdPVwiMVwiXG4gICAgICAvPlxuICAgIDxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsJz5ZZWFyPC9kaXY+XG4gICAgQGlmICh0aGlzLnNweFNlbGVjdE1vbnRoKSB7XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19pbnB1dCdcbiAgICAgICAgW2F0dHIudmFsdWVdPVwidGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRoc1wiXG4gICAgICAgIChmb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKCdtb250aHMnKVwiXG4gICAgICAgIChpbnB1dCk9XCJ0aGlzLmhhbmRsZU1vbnRoSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChrZXlEb3duKT1cInRoaXMuaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIudHlwZV09XCInbnVtYmVyJ1wiXG4gICAgICAgIFthdHRyLm1pbl09XCIxXCJcbiAgICAgICAgW2F0dHIubWF4XT1cIjEyXCJcbiAgICAgICAgW2F0dHIuc3RlcF09XCIxXCIgLz5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwnPk1vbnRoPC9kaXY+XG4gICAgQGlmICh0aGlzLnNweFNlbGVjdERheSkge1xuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9faW5wdXQnXG4gICAgICAgIFthdHRyLnZhbHVlXT1cInRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5kYXlzXCJcbiAgICAgICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoJ2RheXMnKVwiXG4gICAgICAgIChpbnB1dCk9XCJ0aGlzLmhhbmRsZURheUlucHV0KCRldmVudClcIlxuICAgICAgICAoa2V5RG93bik9XCJ0aGlzLmhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLnR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgICBbYXR0ci5taW5dPVwiMVwiXG4gICAgICAgIFthdHRyLm1heF09XCIzMVwiXG4gICAgICAgIFthdHRyLnN0ZXBdPVwiMVwiIC8+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsJz5EYXlzPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fc3VnZ2VzdGlvbnMnPlxuICAgIEBmb3IgKHZhbHVlUGFpciBvZiBzcHhTdWdnZXN0aW9uc1tzcHhTZWxlY3RTdGVwXTsgdHJhY2sgdmFsdWVQYWlyKSB7XG4gICAgICA8c3B4LXN1Z2dlc3Rpb25cbiAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZVBhaXIudmFsdWUpXCI+e3t2YWx1ZVBhaXI/LmRlc2NyaXB0aW9ufX08L3NweC1zdWdnZXN0aW9uPlxuICAgIH1cbiAgPC9kaXY+YCxcbnN0eWxlczogYFxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNweC1pbnB1dC1kYXRlX19pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTc5Nzk3O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS1zcHgtaW5wdXQtLWNvbG9yLCByZ2JhKDAsIDAsIDAsIC45KSk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zcHgtaW5wdXQtZGF0ZV9faW5wdXQ6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbn1cblxuLnNweC1pbnB1dC1kYXRlX19pbnB1dDpmb2N1cyB7XG4gIGJvcmRlcjogdmFyKC0tc3B4LWlucHV0LWJveC0tZm9jdXMtLWJvcmRlciwgMXB4IHNvbGlkIHJnYigxMTUsIDE2OCwgMjEwKSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjcpO1xuICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xufVxuXG4uc3B4LWlucHV0LWRhdGVfX2lucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLnNweC1pbnB1dC1kYXRlX19pbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgLyogZGlzcGxheTogbm9uZTsgPC0gQ3Jhc2hlcyBDaHJvbWUgb24gaG92ZXIgKi9cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwOyAvKiA8LS0gQXBwYXJlbnRseSBzb21lIG1hcmdpbiBhcmUgc3RpbGwgdGhlcmUgZXZlbiB0aG91Z2ggaXQncyBoaWRkZW4gKi9cbn1cblxuLnNweC1pbnB1dC1kYXRlX19pbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgIC1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7IC8qIEZpcmVmb3ggKi9cbn1cblxuLnNweC1pbnB1dC1kYXRlX19zdWdnZXN0aW9ucyxcbi5zcHgtaW5wdXQtZGF0ZV9fY29udHJvbHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogOHB4O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5gLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dERhdGVDb21wb25lbnQge1xuICBwcml2YXRlIGVsWWVhcj86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGVsTW9udGg/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBlbERheT86IEhUTUxFbGVtZW50O1xuICAvLyBARWxlbWVudCgpIGVsITogSFRNTEVsZW1lbnQ7XG4gIEBJbnB1dCgpIHNweE1heD86IHN0cmluZztcbiAgQElucHV0KCkgc3B4TWluPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhWYWxpZGF0b3JzPzogYW55W107XG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSB0cnVlO1xuICBASW5wdXQoKSBzcHhTZWxlY3RNb250aCA9IHRydWU7XG4gIEBJbnB1dCgpIHNweFNlbGVjdERheSA9IHRydWU7XG4gIEBJbnB1dCgpIHZhbHVlPzogU3B4VmFsdWVQYWlyPHN0cmluZz47XG4gIEBPdXRwdXQoKSBzcHhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PigpO1xuICBAT3V0cHV0KCkgc3B4Rm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgc3B4TGFzdEtleVByZXNzZWQhOiBudWxsO1xuICBASW5wdXQoKSBzcHhTZWxlY3RTdGVwOiAneWVhcnMnIHwgJ2RheXMnIHwgJ21vbnRocycgPSAneWVhcnMnO1xuICBASW5wdXQoKSBzcHhJbnRlcm5hbFZhbHVlOiB7XG4gICAgeWVhcnM/OiBudW1iZXI7XG4gICAgbW9udGhzPzogbnVtYmVyO1xuICAgIGRheXM/OiBudW1iZXI7XG4gIH0gPSB7fTtcbiAgQElucHV0KCkgc3B4U3VnZ2VzdGlvbnM6IHtcbiAgICB5ZWFyczogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcbiAgICBtb250aHM6IFNweFZhbHVlUGFpcjxudW1iZXI+W107XG4gICAgZGF5czogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcbiAgfSA9IHtcbiAgICAgIHllYXJzOiBbXSxcbiAgICAgIG1vbnRoczogW3tcbiAgICAgICAgZGVzY3JpcHRpb246ICdKYW4nLFxuICAgICAgICB2YWx1ZTogMSxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdGZWInLFxuICAgICAgICB2YWx1ZTogMixcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdNYXInLFxuICAgICAgICB2YWx1ZTogMyxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdBcHInLFxuICAgICAgICB2YWx1ZTogNCxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdNYXknLFxuICAgICAgICB2YWx1ZTogNSxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdKdW4nLFxuICAgICAgICB2YWx1ZTogNixcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdKdWwnLFxuICAgICAgICB2YWx1ZTogNyxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdBdWcnLFxuICAgICAgICB2YWx1ZTogOCxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdTZXAnLFxuICAgICAgICB2YWx1ZTogOSxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdPY3QnLFxuICAgICAgICB2YWx1ZTogMTAsXG4gICAgICB9LCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTm92JyxcbiAgICAgICAgdmFsdWU6IDExLFxuICAgICAgfSwge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0RlYycsXG4gICAgICAgIHZhbHVlOiAxMixcbiAgICAgIH1dLFxuICAgICAgZGF5czogW10sXG4gICAgfTtcbiAgQElucHV0KCkgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcbiAgYXN5bmMgc3B4U2V0Rm9jdXMoKSB7XG4gICAgLy8gdGhpcy5lbFllYXIuZm9jdXMoKTtcbiAgfVxuICAvLyBAV2F0Y2goJ3NweFZhbGlkYXRvcnMnKSB3YXRjaFNweFZhbGlkYXRvcnMobmV3VmFsdWUpIHtcbiAgLy8gICBjb25zb2xlLmxvZygndmFsaWRhdG9ycycsIG5ld1ZhbHVlKTtcbiAgLy8gfVxuICAvLyBAV2F0Y2goJ3ZhbHVlJykgd2F0Y2hWYWx1ZShuZXdWYWx1ZSkge1xuICAvLyAgIGlmICh0aGlzLnNweFdhc0ludGVybmFsVXBkYXRlKSB7XG4gIC8vICAgICB0aGlzLnNweFdhc0ludGVybmFsVXBkYXRlID0gZmFsc2U7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gRGF0ZVRpbWUuZnJvbUlTTyhuZXdWYWx1ZT8udmFsdWUpO1xuICAvLyAgICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLnllYXJzID0gcGFyc2VkVmFsdWUueWVhcjtcbiAgLy8gICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHMgPSBwYXJzZWRWYWx1ZS5tb250aDtcbiAgLy8gICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5kYXlzID0gcGFyc2VkVmFsdWUuZGF5O1xuICAvLyAgICAgdGhpcy5zcHhTZWxlY3RTdGVwID0gJ3llYXJzJztcbiAgLy8gICB9XG4gIC8vIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN1Z2dlc3RZZWFycygpO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbExvYWQoKSB7XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSB0aGlzLnZhbHVlID8gRGF0ZVRpbWUuZnJvbUlTTyh0aGlzLnZhbHVlIS52YWx1ZSkgOiBEYXRlVGltZS5ub3coKTtcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgPSBwYXJzZWRWYWx1ZS55ZWFyO1xuICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHMgPSBwYXJzZWRWYWx1ZS5tb250aDtcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUuZGF5cyA9IHBhcnNlZFZhbHVlLmRheTtcbiAgfVxuXG4gIGhhbmRsZURheUlucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUuZGF5cyA9IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGw7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICB9XG5cbiAgaGFuZGxlTW9udGhJbnB1dChldmVudDogYW55KSB7XG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRocyA9IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGw7XG4gICAgdGhpcy5hZnRlck1vbnRoQ2hhbmdlKCk7XG4gIH1cblxuICBhZnRlck1vbnRoQ2hhbmdlKCkge1xuICAgIGlmICh0aGlzLnNweEludGVybmFsVmFsdWUubW9udGhzIS50b1N0cmluZygpLmxlbmd0aCA9PT0gMiAmJiB0aGlzLnNweFNlbGVjdERheSAmJiB0aGlzLnNweExhc3RLZXlQcmVzc2VkICE9PSAzOCAmJiB0aGlzLnNweExhc3RLZXlQcmVzc2VkICE9PSA0MCkge1xuICAgICAgLy8gdGhpcy5lbERheSEuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICB9XG5cbiAgaGFuZGxlWWVhcklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgPSBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsO1xuICAgIHRoaXMuYWZ0ZXJZZWFyQ2hhbmdlKCk7XG4gIH1cblxuICBhZnRlclllYXJDaGFuZ2UoKSB7XG4gICAgaWYgKHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS55ZWFycyEudG9TdHJpbmcoKS5sZW5ndGggPT09IDQgJiYgdGhpcy5zcHhTZWxlY3RNb250aCAmJiB0aGlzLnNweExhc3RLZXlQcmVzc2VkICE9PSAzOCAmJiB0aGlzLnNweExhc3RLZXlQcmVzc2VkICE9PSA0MCkge1xuICAgICAgLy8gdGhpcy5lbE1vbnRoIS5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gIH1cblxuICBoYW5kbGVJbnB1dChldmVudDogYW55KSB7XG4gICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsKTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzKHN0ZXA6ICd5ZWFycycgfCAnbW9udGhzJyB8ICdkYXlzJykge1xuICAgIHRoaXMuc3B4U2VsZWN0U3RlcCA9IHN0ZXA7XG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNweExhc3RLZXlQcmVzc2VkID0gZXZlbnQud2hpY2g7XG4gIH1cblxuICBoYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuc3B4TGFzdEtleVByZXNzZWQgPSBudWxsO1xuICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZVt0aGlzLnNweFNlbGVjdFN0ZXBdID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgIHRoaXMuZG9uZVdpdGhGaWVsZCgpO1xuICB9XG5cbiAgdXBkYXRlVmFsdWUoKSB7XG4gICAgY29uc3QgY29uY2F0ZW5hdGVkVmFsdWUgPSBgJHt0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgPyB0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgOiBgYH0ke3RoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHMgPyBgLSR7dGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRocyA8IDEwID8gYDAke3RoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHN9YCA6IHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHN9YCA6IGBgfSR7dGhpcy5zcHhJbnRlcm5hbFZhbHVlLmRheXMgPyBgLSR7dGhpcy5zcHhJbnRlcm5hbFZhbHVlLmRheXMgPCAxMCA/IGAwJHt0aGlzLnNweEludGVybmFsVmFsdWUuZGF5c31gIDogdGhpcy5zcHhJbnRlcm5hbFZhbHVlLmRheXN9YCA6IGBgfWBcbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IERhdGVUaW1lLmZyb21JU08oY29uY2F0ZW5hdGVkVmFsdWUpO1xuICAgIHRoaXMuc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSB0cnVlO1xuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICBkZXNjcmlwdGlvbjogcGFyc2VkVmFsdWUudG9JU08oKSxcbiAgICAgIHZhbHVlOiBwYXJzZWRWYWx1ZS50b0lTTygpISxcbiAgICB9O1xuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBkb25lV2l0aEZpZWxkKCkge1xuICAgIGlmICh0aGlzLnNweFNlbGVjdFN0ZXAgPT09ICdkYXlzJykge1xuICAgICAgdGhpcy5zcHhTZWxlY3RTdGVwID0gJ3llYXJzJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3B4U2VsZWN0U3RlcCA9PT0gJ21vbnRocycpIHtcbiAgICAgIHRoaXMuc3B4U2VsZWN0U3RlcCA9IHRoaXMuc3B4U2VsZWN0RGF5ID8gJ2RheXMnIDogJ3llYXJzJztcbiAgICAgIHRoaXMuYWZ0ZXJNb250aENoYW5nZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zcHhTZWxlY3RTdGVwID09PSAneWVhcnMnKSB7XG4gICAgICB0aGlzLmFmdGVyWWVhckNoYW5nZSgpO1xuICAgICAgdGhpcy5zcHhTZWxlY3RTdGVwID0gdGhpcy5zcHhTZWxlY3RNb250aCA/ICdtb250aHMnIDogJ3llYXJzJztcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gICAgY29uc3QgcGFyc2VkID0gRGF0ZVRpbWUuZnJvbUlTTyh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBwYXJzZWQudG9JU08oKSxcbiAgICAgIHZhbHVlOiBwYXJzZWQudG9JU08oKSEsXG4gICAgfTtcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMuc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWdnZXN0WWVhcnMoKTogdm9pZCB7XG4gICAgdGhpcy5zcHhTdWdnZXN0aW9ucy55ZWFycyA9IFtdO1xuICAgIGZvciAobGV0IHllYXIgPSBEYXRlVGltZS5mcm9tSVNPKHRoaXMuc3B4TWluISkueWVhcjsgeWVhciA8PSBEYXRlVGltZS5mcm9tSVNPKHRoaXMuc3B4TWF4ISkueWVhcjsgeWVhcisrKSB7XG4gICAgICB0aGlzLnNweFN1Z2dlc3Rpb25zLnllYXJzLnB1c2goe1xuICAgICAgICBkZXNjcmlwdGlvbjogYCcke3llYXIudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiw0KX1gLFxuICAgICAgICB2YWx1ZTogeWVhcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUErR2pDLE1BQU0sT0FBTyxxQkFBcUI7SUFxRWhDLEtBQUssQ0FBQyxXQUFXO1FBQ2YsdUJBQXVCO0lBQ3pCLENBQUM7SUFDRCx5REFBeUQ7SUFDekQseUNBQXlDO0lBQ3pDLElBQUk7SUFDSix5Q0FBeUM7SUFDekMscUNBQXFDO0lBQ3JDLHlDQUF5QztJQUN6QyxhQUFhO0lBQ2IsNkRBQTZEO0lBQzdELHNEQUFzRDtJQUN0RCx3REFBd0Q7SUFDeEQsb0RBQW9EO0lBQ3BELG9DQUFvQztJQUNwQyxNQUFNO0lBQ04sSUFBSTtJQUVKO1FBL0VTLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFbkIsY0FBUyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNuRixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekQsa0JBQWEsR0FBZ0MsT0FBTyxDQUFDO1FBQ3JELHFCQUFnQixHQUlyQixFQUFFLENBQUM7UUFDRSxtQkFBYyxHQUluQjtZQUNBLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLENBQUM7b0JBQ1AsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxDQUFDO2lCQUNULEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxFQUFFO2lCQUNWLEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxFQUFFO2lCQUNWLEVBQUU7b0JBQ0QsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLEtBQUssRUFBRSxFQUFFO2lCQUNWLENBQUM7WUFDRixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7UUFDSyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFvQnBDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2pKLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDbEosSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWlDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0saUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBQ3pYLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxXQUFXLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRTtZQUNoQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRztTQUM1QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQy9CLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMxRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxXQUFXLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRztTQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDL0IsS0FBSyxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3pHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDN0IsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2xELEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQS9MVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw2aUJBdEd0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBNkNILHU4QkEvQ0wsc0JBQXNCOzs0RkF3R2IscUJBQXFCO2tCQTVHakMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1A7d0JBQ1Asc0JBQXNCO3FCQUN2QixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E2Q0g7d0RBOERFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQTZDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1idXR0b24nO1xuaW1wb3J0IHsgU3B4U3VnZ2VzdGlvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN1Z2dlc3Rpb24nO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgeyBTcHhWYWx1ZVBhaXIgfSBmcm9tICcuL3NweC12YWx1ZS1pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtaW5wdXQtZGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBTcHhTdWdnZXN0aW9uQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2NvbnRyb2xzJz5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9faW5wdXQnXG4gICAgICBbYXR0ci52YWx1ZV09XCJ0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnNcIlxuICAgICAgKGZvY3VzKT1cInRoaXMuaGFuZGxlRm9jdXMoJ3llYXJzJylcIlxuICAgICAgKGlucHV0KT1cInRoaXMuaGFuZGxlWWVhcklucHV0KCRldmVudClcIlxuICAgICAgKGtleURvd24pPVwidGhpcy5oYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgW2F0dHIudHlwZV09XCInbnVtYmVyJ1wiXG4gICAgICBbYXR0ci5taW5dPVwiMTkwMFwiXG4gICAgICBbYXR0ci5tYXhdPVwiMjEwMFwiXG4gICAgICBbYXR0ci5zdGVwXT1cIjFcIlxuICAgICAgLz5cbiAgICA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fY29udHJvbC1sYWJlbCc+WWVhcjwvZGl2PlxuICAgIEBpZiAodGhpcy5zcHhTZWxlY3RNb250aCkge1xuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9faW5wdXQnXG4gICAgICAgIFthdHRyLnZhbHVlXT1cInRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHNcIlxuICAgICAgICAoZm9jdXMpPVwidGhpcy5oYW5kbGVGb2N1cygnbW9udGhzJylcIlxuICAgICAgICAoaW5wdXQpPVwidGhpcy5oYW5kbGVNb250aElucHV0KCRldmVudClcIlxuICAgICAgICAoa2V5RG93bik9XCJ0aGlzLmhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLnR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgICBbYXR0ci5taW5dPVwiMVwiXG4gICAgICAgIFthdHRyLm1heF09XCIxMlwiXG4gICAgICAgIFthdHRyLnN0ZXBdPVwiMVwiIC8+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9J3NweC1pbnB1dC1kYXRlX19jb250cm9sLWxhYmVsJz5Nb250aDwvZGl2PlxuICAgIEBpZiAodGhpcy5zcHhTZWxlY3REYXkpIHtcbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2lucHV0J1xuICAgICAgICBbYXR0ci52YWx1ZV09XCJ0aGlzLnNweEludGVybmFsVmFsdWUuZGF5c1wiXG4gICAgICAgIChmb2N1cyk9XCJ0aGlzLmhhbmRsZUZvY3VzKCdkYXlzJylcIlxuICAgICAgICAoaW5wdXQpPVwidGhpcy5oYW5kbGVEYXlJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgKGtleURvd24pPVwidGhpcy5oYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgICBbYXR0ci50eXBlXT1cIidudW1iZXInXCJcbiAgICAgICAgW2F0dHIubWluXT1cIjFcIlxuICAgICAgICBbYXR0ci5tYXhdPVwiMzFcIlxuICAgICAgICBbYXR0ci5zdGVwXT1cIjFcIiAvPlxuICAgICAgPGRpdiBjbGFzcz0nc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwnPkRheXM8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPSdzcHgtaW5wdXQtZGF0ZV9fc3VnZ2VzdGlvbnMnPlxuICAgIEBmb3IgKHZhbHVlUGFpciBvZiBzcHhTdWdnZXN0aW9uc1tzcHhTZWxlY3RTdGVwXTsgdHJhY2sgdmFsdWVQYWlyKSB7XG4gICAgICA8c3B4LXN1Z2dlc3Rpb25cbiAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZVBhaXIudmFsdWUpXCI+e3t2YWx1ZVBhaXI/LmRlc2NyaXB0aW9ufX08L3NweC1zdWdnZXN0aW9uPlxuICAgIH1cbiAgPC9kaXY+YCxcbiAgc3R5bGVzOiBgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNweC1pbnB1dC1kYXRlX19pbnB1dCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Nzk3OTc7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBjb2xvcjogdmFyKC0tc3B4LWlucHV0LS1jb2xvciwgcmdiYSgwLCAwLCAwLCAuOSkpO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5zcHgtaW5wdXQtZGF0ZV9faW5wdXQ6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gICAgfVxuXG4gICAgLnNweC1pbnB1dC1kYXRlX19pbnB1dDpmb2N1cyB7XG4gICAgICBib3JkZXI6IHZhcigtLXNweC1pbnB1dC1ib3gtLWZvY3VzLS1ib3JkZXIsIDFweCBzb2xpZCByZ2IoMTE1LCAxNjgsIDIxMCkpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAuc3B4LWlucHV0LWRhdGVfX2NvbnRyb2wtbGFiZWwge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC43KTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICB9XG5cbiAgICAuc3B4LWlucHV0LWRhdGVfX2lucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgIC5zcHgtaW5wdXQtZGF0ZV9faW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAvKiBkaXNwbGF5OiBub25lOyA8LSBDcmFzaGVzIENocm9tZSBvbiBob3ZlciAqL1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDsgLyogPC0tIEFwcGFyZW50bHkgc29tZSBtYXJnaW4gYXJlIHN0aWxsIHRoZXJlIGV2ZW4gdGhvdWdoIGl0J3MgaGlkZGVuICovXG4gICAgfVxuXG4gICAgLnNweC1pbnB1dC1kYXRlX19pbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgICAgICAtbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkOyAvKiBGaXJlZm94ICovXG4gICAgfVxuXG4gICAgLnNweC1pbnB1dC1kYXRlX19zdWdnZXN0aW9ucyxcbiAgICAuc3B4LWlucHV0LWRhdGVfX2NvbnRyb2xzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLWdhcDogOHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG5gLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dERhdGVDb21wb25lbnQge1xuICBwcml2YXRlIGVsWWVhcj86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGVsTW9udGg/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBlbERheT86IEhUTUxFbGVtZW50O1xuICAvLyBARWxlbWVudCgpIGVsITogSFRNTEVsZW1lbnQ7XG4gIEBJbnB1dCgpIHNweE1heD86IHN0cmluZztcbiAgQElucHV0KCkgc3B4TWluPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhWYWxpZGF0b3JzPzogYW55W107XG4gIEBJbnB1dCgpIHNweEZvY3VzZWQgPSB0cnVlO1xuICBASW5wdXQoKSBzcHhTZWxlY3RNb250aCA9IHRydWU7XG4gIEBJbnB1dCgpIHNweFNlbGVjdERheSA9IHRydWU7XG4gIEBJbnB1dCgpIHZhbHVlPzogU3B4VmFsdWVQYWlyPHN0cmluZz47XG4gIEBPdXRwdXQoKSBzcHhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PigpO1xuICBAT3V0cHV0KCkgc3B4Rm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgc3B4TGFzdEtleVByZXNzZWQhOiBudWxsO1xuICBASW5wdXQoKSBzcHhTZWxlY3RTdGVwOiAneWVhcnMnIHwgJ2RheXMnIHwgJ21vbnRocycgPSAneWVhcnMnO1xuICBASW5wdXQoKSBzcHhJbnRlcm5hbFZhbHVlOiB7XG4gICAgeWVhcnM/OiBudW1iZXI7XG4gICAgbW9udGhzPzogbnVtYmVyO1xuICAgIGRheXM/OiBudW1iZXI7XG4gIH0gPSB7fTtcbiAgQElucHV0KCkgc3B4U3VnZ2VzdGlvbnM6IHtcbiAgICB5ZWFyczogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcbiAgICBtb250aHM6IFNweFZhbHVlUGFpcjxudW1iZXI+W107XG4gICAgZGF5czogU3B4VmFsdWVQYWlyPG51bWJlcj5bXTtcbiAgfSA9IHtcbiAgICAgIHllYXJzOiBbXSxcbiAgICAgIG1vbnRoczogW3tcbiAgICAgICAgZGVzY3JpcHRpb246ICdKYW4nLFxuICAgICAgICB2YWx1ZTogMSxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdGZWInLFxuICAgICAgICB2YWx1ZTogMixcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdNYXInLFxuICAgICAgICB2YWx1ZTogMyxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdBcHInLFxuICAgICAgICB2YWx1ZTogNCxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdNYXknLFxuICAgICAgICB2YWx1ZTogNSxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdKdW4nLFxuICAgICAgICB2YWx1ZTogNixcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdKdWwnLFxuICAgICAgICB2YWx1ZTogNyxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdBdWcnLFxuICAgICAgICB2YWx1ZTogOCxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdTZXAnLFxuICAgICAgICB2YWx1ZTogOSxcbiAgICAgIH0sIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdPY3QnLFxuICAgICAgICB2YWx1ZTogMTAsXG4gICAgICB9LCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTm92JyxcbiAgICAgICAgdmFsdWU6IDExLFxuICAgICAgfSwge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0RlYycsXG4gICAgICAgIHZhbHVlOiAxMixcbiAgICAgIH1dLFxuICAgICAgZGF5czogW10sXG4gICAgfTtcbiAgQElucHV0KCkgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcbiAgYXN5bmMgc3B4U2V0Rm9jdXMoKSB7XG4gICAgLy8gdGhpcy5lbFllYXIuZm9jdXMoKTtcbiAgfVxuICAvLyBAV2F0Y2goJ3NweFZhbGlkYXRvcnMnKSB3YXRjaFNweFZhbGlkYXRvcnMobmV3VmFsdWUpIHtcbiAgLy8gICBjb25zb2xlLmxvZygndmFsaWRhdG9ycycsIG5ld1ZhbHVlKTtcbiAgLy8gfVxuICAvLyBAV2F0Y2goJ3ZhbHVlJykgd2F0Y2hWYWx1ZShuZXdWYWx1ZSkge1xuICAvLyAgIGlmICh0aGlzLnNweFdhc0ludGVybmFsVXBkYXRlKSB7XG4gIC8vICAgICB0aGlzLnNweFdhc0ludGVybmFsVXBkYXRlID0gZmFsc2U7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gRGF0ZVRpbWUuZnJvbUlTTyhuZXdWYWx1ZT8udmFsdWUpO1xuICAvLyAgICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLnllYXJzID0gcGFyc2VkVmFsdWUueWVhcjtcbiAgLy8gICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHMgPSBwYXJzZWRWYWx1ZS5tb250aDtcbiAgLy8gICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5kYXlzID0gcGFyc2VkVmFsdWUuZGF5O1xuICAvLyAgICAgdGhpcy5zcHhTZWxlY3RTdGVwID0gJ3llYXJzJztcbiAgLy8gICB9XG4gIC8vIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN1Z2dlc3RZZWFycygpO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbExvYWQoKSB7XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSB0aGlzLnZhbHVlID8gRGF0ZVRpbWUuZnJvbUlTTyh0aGlzLnZhbHVlIS52YWx1ZSkgOiBEYXRlVGltZS5ub3coKTtcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgPSBwYXJzZWRWYWx1ZS55ZWFyO1xuICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHMgPSBwYXJzZWRWYWx1ZS5tb250aDtcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUuZGF5cyA9IHBhcnNlZFZhbHVlLmRheTtcbiAgfVxuXG4gIGhhbmRsZURheUlucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUuZGF5cyA9IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGw7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICB9XG5cbiAgaGFuZGxlTW9udGhJbnB1dChldmVudDogYW55KSB7XG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRocyA9IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IG51bGw7XG4gICAgdGhpcy5hZnRlck1vbnRoQ2hhbmdlKCk7XG4gIH1cblxuICBhZnRlck1vbnRoQ2hhbmdlKCkge1xuICAgIGlmICh0aGlzLnNweEludGVybmFsVmFsdWUubW9udGhzIS50b1N0cmluZygpLmxlbmd0aCA9PT0gMiAmJiB0aGlzLnNweFNlbGVjdERheSAmJiB0aGlzLnNweExhc3RLZXlQcmVzc2VkICE9PSAzOCAmJiB0aGlzLnNweExhc3RLZXlQcmVzc2VkICE9PSA0MCkge1xuICAgICAgdGhpcy5lbERheT8uZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICB9XG5cbiAgaGFuZGxlWWVhcklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgPSBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsO1xuICAgIHRoaXMuYWZ0ZXJZZWFyQ2hhbmdlKCk7XG4gIH1cblxuICBhZnRlclllYXJDaGFuZ2UoKSB7XG4gICAgaWYgKHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS55ZWFycyEudG9TdHJpbmcoKS5sZW5ndGggPT09IDQgJiYgdGhpcy5zcHhTZWxlY3RNb250aCAmJiB0aGlzLnNweExhc3RLZXlQcmVzc2VkICE9PSAzOCAmJiB0aGlzLnNweExhc3RLZXlQcmVzc2VkICE9PSA0MCkge1xuICAgICAgdGhpcy5lbE1vbnRoPy5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gIH1cblxuICBoYW5kbGVJbnB1dChldmVudDogYW55KSB7XG4gICAgdGhpcy5zZXRWYWx1ZShldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsKTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzKHN0ZXA6ICd5ZWFycycgfCAnbW9udGhzJyB8ICdkYXlzJykge1xuICAgIHRoaXMuc3B4U2VsZWN0U3RlcCA9IHN0ZXA7XG4gICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNweExhc3RLZXlQcmVzc2VkID0gZXZlbnQud2hpY2g7XG4gIH1cblxuICBoYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuc3B4TGFzdEtleVByZXNzZWQgPSBudWxsO1xuICAgIHRoaXMuc3B4SW50ZXJuYWxWYWx1ZVt0aGlzLnNweFNlbGVjdFN0ZXBdID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgIHRoaXMuZG9uZVdpdGhGaWVsZCgpO1xuICB9XG5cbiAgdXBkYXRlVmFsdWUoKSB7XG4gICAgY29uc3QgY29uY2F0ZW5hdGVkVmFsdWUgPSBgJHt0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgPyB0aGlzLnNweEludGVybmFsVmFsdWUueWVhcnMgOiBgYH0ke3RoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHMgPyBgLSR7dGhpcy5zcHhJbnRlcm5hbFZhbHVlLm1vbnRocyA8IDEwID8gYDAke3RoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHN9YCA6IHRoaXMuc3B4SW50ZXJuYWxWYWx1ZS5tb250aHN9YCA6IGBgfSR7dGhpcy5zcHhJbnRlcm5hbFZhbHVlLmRheXMgPyBgLSR7dGhpcy5zcHhJbnRlcm5hbFZhbHVlLmRheXMgPCAxMCA/IGAwJHt0aGlzLnNweEludGVybmFsVmFsdWUuZGF5c31gIDogdGhpcy5zcHhJbnRlcm5hbFZhbHVlLmRheXN9YCA6IGBgfWBcbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IERhdGVUaW1lLmZyb21JU08oY29uY2F0ZW5hdGVkVmFsdWUpO1xuICAgIHRoaXMuc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSB0cnVlO1xuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICBkZXNjcmlwdGlvbjogcGFyc2VkVmFsdWUudG9JU08oKSxcbiAgICAgIHZhbHVlOiBwYXJzZWRWYWx1ZS50b0lTTygpISxcbiAgICB9O1xuICAgIHRoaXMuc3B4Q2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBkb25lV2l0aEZpZWxkKCkge1xuICAgIGlmICh0aGlzLnNweFNlbGVjdFN0ZXAgPT09ICdkYXlzJykge1xuICAgICAgdGhpcy5zcHhTZWxlY3RTdGVwID0gJ3llYXJzJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3B4U2VsZWN0U3RlcCA9PT0gJ21vbnRocycpIHtcbiAgICAgIHRoaXMuc3B4U2VsZWN0U3RlcCA9IHRoaXMuc3B4U2VsZWN0RGF5ID8gJ2RheXMnIDogJ3llYXJzJztcbiAgICAgIHRoaXMuYWZ0ZXJNb250aENoYW5nZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zcHhTZWxlY3RTdGVwID09PSAneWVhcnMnKSB7XG4gICAgICB0aGlzLmFmdGVyWWVhckNoYW5nZSgpO1xuICAgICAgdGhpcy5zcHhTZWxlY3RTdGVwID0gdGhpcy5zcHhTZWxlY3RNb250aCA/ICdtb250aHMnIDogJ3llYXJzJztcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5zcHhJbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gICAgY29uc3QgcGFyc2VkID0gRGF0ZVRpbWUuZnJvbUlTTyh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBwYXJzZWQudG9JU08oKSxcbiAgICAgIHZhbHVlOiBwYXJzZWQudG9JU08oKSEsXG4gICAgfTtcbiAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMuc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWdnZXN0WWVhcnMoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ3N1Z2dlc3QgeWVhcnMnKTtcbiAgICB0aGlzLnNweFN1Z2dlc3Rpb25zLnllYXJzID0gW107XG4gICAgZm9yIChsZXQgeWVhciA9IERhdGVUaW1lLmZyb21JU08odGhpcy5zcHhNaW4hKS55ZWFyOyB5ZWFyIDw9IERhdGVUaW1lLmZyb21JU08odGhpcy5zcHhNYXghKS55ZWFyOyB5ZWFyKyspIHtcbiAgICAgIHRoaXMuc3B4U3VnZ2VzdGlvbnMueWVhcnMucHVzaCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJyR7eWVhci50b1N0cmluZygpLnN1YnN0cmluZygyLCA0KX1gLFxuICAgICAgICB2YWx1ZTogeWVhcixcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygnc3VnZ2VzdCB5ZWFycycsIHRoaXMuc3B4U3VnZ2VzdGlvbnMpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { JsonPipe } from '@angular/common';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
2
|
import { EventEmitter, Component, Input, Output, ViewChildren } from '@angular/core';
|
|
4
3
|
import { SpxFormSectionComponent } from '@softpak/components/spx-form-section';
|
|
@@ -304,7 +303,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
304
303
|
imports: [
|
|
305
304
|
FormsModule,
|
|
306
305
|
ReactiveFormsModule,
|
|
307
|
-
JsonPipe,
|
|
308
306
|
SpxAutocompleteSearchComponent,
|
|
309
307
|
SpxButtonComponent,
|
|
310
308
|
SpxCapitalizePipe,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"softpak-components-spx-form-view.mjs","sources":["../../../../projects/softpak/components/spx-form-view/spx-form-button-type.enum.ts","../../../../projects/softpak/components/spx-form-view/spx-autocomplete-search.component.ts","../../../../projects/softpak/components/spx-form-view/spx-autocomplete-search.component.html","../../../../projects/softpak/components/spx-form-view/spx-form-view.component.ts","../../../../projects/softpak/components/spx-form-view/softpak-components-spx-form-view.ts"],"sourcesContent":["export enum SpxFormButtonTypeEnum {\n button = 'button',\n submit = 'submit',\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription, debounceTime } from 'rxjs';\n\nimport { SpxInputComponent, SpxInputTypeEnum, SpxValuePair } from '@softpak/components/spx-inputs';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxFormFieldI } from './spx-form-field.interface';\nimport { SpxFormSectionI } from './spx-form-section.interface';\nimport { SpxValidateControlComponent } from '@softpak/components/spx-validation';\n\nexport const sectionAutocompleteSearch = 'autocompleteSearch';\nexport const ctrlQuery = 'query';\nexport const ctrlOptions = 'options';\n\n@Component({\n selector: 'spx-autocomplete-search',\n templateUrl: './spx-autocomplete-search.component.html',\n standalone: true,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n SpxButtonComponent,\n SpxInputComponent,\n SpxValidateControlComponent\n]\n})\nexport class SpxAutocompleteSearchComponent implements OnInit, OnDestroy {\n formGroup!: FormGroup;\n @Input() spxSuggestions: SpxValuePair<any>[] = [];\n @Input() spxField!: SpxFormFieldI;\n @Input() txtOptions!: string;\n @Input() txtQuery!: string;\n @Input() txtSubmit!: string;\n @Input() spxValuePair!: SpxValuePair<any>;\n @Output() spxCancel: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxSearch: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>(); \n @Output() spxSubmit: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n inputTypeRadio = SpxInputTypeEnum.radio;\n inputTypeText = SpxInputTypeEnum.text;\n severityError = SpxSeverityEnum.error;\n severitySuccess = SpxSeverityEnum.success;\n \n sections: SpxFormSectionI[] = [\n {\n key: sectionAutocompleteSearch,\n showTitle: () => false,\n fields: [\n {\n key: ctrlQuery,\n type: () => SpxInputTypeEnum.text,\n label: () => this.txtQuery,\n capitalize: () => true,\n },\n {\n key: ctrlOptions,\n type: () => SpxInputTypeEnum.radio,\n label: () => this.txtOptions,\n },\n ]\n }\n ];\n\n get ctrlQuery(): FormControl { return this.formGroup.get(ctrlQuery) as FormControl; }\n get ctrlOptions(): FormControl { return this.formGroup.get(ctrlOptions) as FormControl; }\n\n private subSelection?: Subscription;\n private subQuery?: Subscription;\n\n constructor(readonly formBuilder: FormBuilder) {\n this.createForm();\n }\n\n ngOnInit(): void {\n this.listenToSelection();\n this.listenToQuery();\n this.ctrlQuery.setValue(this.spxValuePair, { emitEvent: false });\n this.spxSearch.emit(this.spxValuePair);\n }\n\n ngOnDestroy(): void {\n if (this.subSelection) {\n this.subSelection.unsubscribe();\n }\n if (this.subQuery) {\n this.subQuery.unsubscribe();\n }\n }\n\n private createForm(): void {\n this.formGroup = this.formBuilder.group({\n [ctrlQuery]: [null],\n [ctrlOptions]: [null],\n });\n }\n\n getRawValidators(formControl: FormControl) {\n return (formControl as any)._rawValidators;\n }\n\n onCancel(): void {\n this.spxCancel.emit();\n }\n \n onSubmit(): void {\n this.spxSubmit.emit(this.ctrlQuery.value);\n }\n\n private listenToQuery(): void {\n this.subQuery = this.ctrlQuery.valueChanges.pipe(debounceTime(500)).subscribe(valuePair => {\n this.spxSearch.emit(valuePair);\n });\n }\n\n private listenToSelection(): void {\n this.subSelection = this.ctrlOptions.valueChanges.subscribe(valuePair => {\n this.ctrlQuery.setValue(valuePair);\n });\n }\n}\n","<form class=\"bg-black fixed pt-16 z-50 top-0 left-0 right-0 bottom-0\" [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"h-full w-full px-3 flex flex-col gap-3\">\n <div class=\"grow flex flex-col gap-3 overflow-y-auto\">\n <spx-input [formControl]=\"ctrlQuery\" [spxLabel]=\"txtQuery\" [spxType]=\"inputTypeText\">\n </spx-input>\n <spx-input [formControl]=\"ctrlOptions\" [spxLabel]=\"txtOptions\" [spxSuggestions]=\"spxSuggestions\"\n [spxType]=\"inputTypeRadio\">\n </spx-input>\n </div>\n <div class=\"py-3 flex flex-col gap-3\">\n <spx-button [spxFullWidth]=\"true\" [spxSeverity]=\"severitySuccess\">\n Save\n </spx-button>\n <spx-button [spxFullWidth]=\"true\" [spxSeverity]=\"severityError\" [spxType]=\"'button'\" (spxClick)=\"onCancel()\">\n Cancel\n </spx-button>\n </div>\n </div>\n</form>","import { JsonPipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { SpxFormSectionI } from './spx-form-section.interface';\nimport { SpxFormSectionComponent } from '@softpak/components/spx-form-section';\nimport { SpxInputComponent, SpxInputTypeEnum, SpxValuePair } from '@softpak/components/spx-inputs';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { AbstractControl, FormBuilder, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxFormFieldI } from './spx-form-field.interface';\nimport { SpxAutocompleteSearchComponent } from './spx-autocomplete-search.component';\nimport { SpxValidateControlComponent } from '@softpak/components/spx-validation';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxFormI } from './spx-form.interface';\n\n@Component({\n selector: 'spx-form-view',\n standalone: true,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n JsonPipe,\n SpxAutocompleteSearchComponent,\n SpxButtonComponent,\n SpxCapitalizePipe,\n SpxFormSectionComponent,\n SpxInputComponent,\n SpxValidateControlComponent,\n TranslateModule\n],\n template: `@if (autocompleteField) {\n <spx-autocomplete-search\n [spxField]=\"autocompleteField\"\n [spxSuggestions]=\"this.spxSuggestions[autocompleteField.key]\"\n [spxValuePair]=\"$any(this.spxFormGroup.get(autocompleteField.key)).value\"\n [txtOptions]=\"'Options'\"\n [txtQuery]=\"'Query'\"\n [txtSubmit]=\"'Save'\"\n (spxCancel)=\"onAutocompleteCancel()\"\n (spxSearch)=\"onAutocompleteSearch($event)\"\n (spxSubmit)=\"onAutocompleteSave($event)\">\n </spx-autocomplete-search>\n}\n<div class=\"flex flex-col gap-3\">\n @for (spxSection of spxForm.sections; track spxSection; let spxSectionIndex = $index) {\n <spx-form-section\n [spxShowTitle]=\"!spxSection.showTitle || spxSection.showTitle()\"\n [spxIndex]=\"spxSectionIndex + 1\"\n [spxTitle]=\"spxSection.title ? (spxSection.title() | translate | capitalize) : undefined\">\n @for (spxField of spxSection.fields; track spxField; let spxFieldIndex = $index) {\n @if (spxField.show === undefined || spxField.show()) {\n @if (spxField.type() === typeButton) {\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"spxField.severity ? spxField.severity() : undefined\"\n [spxType]=\"'button'\"\n (spxClick)=\"onClick(spxField)\"\n >{{ (spxField.label ? spxField.label() : spxField.key) | translate | capitalize }}</spx-button>\n }\n @if (spxField.type() === typeOverlay || spxField.type() === typeOverlayNumber || spxField.type() === typeFloat || spxField.type() === typeNumber || spxField.type() === typeText || spxField.type() === typeAutocomplete || spxField.type() === typeNumericKeyboard) {\n <spx-input\n [formControl]=\"$any(this.spxFormGroup.get(spxField.key))\"\n [spxAutofocus]=\"spxField.autofocus ? spxField.autofocus() : false\"\n [spxCapitalize]=\"spxField.capitalize ? spxField.capitalize() : false\"\n [spxLabel]=\"(spxField.label ? spxField.label() : spxField.key) | translate | capitalize\"\n [spxName]=\"spxField.key\"\n [spxPattern]=\"spxField.type() === typeNumericKeyboard ? '\\\\d*' : undefined\"\n [spxReadonly]=\"spxField.readonly ? spxField.readonly() : false\"\n [spxRequired]=\"hasRequiredField(this.spxFormGroup.get(spxField.key)!)\"\n [spxShowSearch]=\"spxField.type() === typeAutocomplete\"\n [spxShowHelp]=\"false\"\n [spxShowValidationMessages]=\"this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched\"\n [spxStep]=\"spxField.step ? spxField.step() : undefined\"\n [spxType]=\"spxField.type()\"\n [spxValidators]=\"getRawValidators(this.spxFormGroup.get(spxField.key)!)\"\n [spxSuggestions]=\"spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]\"\n (spxBlur)=\"onBlur(spxField)\"\n (spxSearch)=\"onSearch(spxField)\">\n <spx-validate-control [control]=\"$any(this.spxFormGroup.get(spxField.key))\" [label]=\"(spxField.label ? spxField.label() : spxField.key)| translate | capitalize\"></spx-validate-control>\n </spx-input>\n }\n @if (spxField.type() === typeRadio) {\n <spx-input\n [formControl]=\"$any(this.spxFormGroup.get(spxField.key))\"\n [spxLabel]=\"(spxField.label ? spxField.label() : spxField.key) | translate | capitalize\"\n [spxName]=\"spxField.key\"\n [spxReadonly]=\"spxField.readonly ? spxField.readonly() : false\"\n [spxRequired]=\"hasRequiredField(this.spxFormGroup.get(spxField.key)!)\"\n [spxShowHelp]=\"false\"\n [spxShowValidationMessages]=\"this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched\"\n [spxSuggestions]=\"spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]\"\n [spxType]=\"typeRadio\"\n [spxValidators]=\"getRawValidators(this.spxFormGroup.get(spxField.key)!)\">\n <spx-validate-control [control]=\"$any(this.spxFormGroup.get(spxField.key))\" [label]=\"(spxField.label ? spxField.label() : spxField.key) | translate | capitalize\"></spx-validate-control>\n </spx-input>\n }\n }\n }\n </spx-form-section>\n }\n\n @for (spxButton of spxForm.buttons; track spxButton) {\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"spxButton.severity\"\n [spxType]=\"spxButton.type\"\n (spxClick)=\"spxButton.onClick ? spxButton.onClick() : undefined\">\n {{ ((spxButton && spxButton.label) ? spxButton.label() : '') | translate | capitalize }}\n </spx-button>\n }\n</div>\n`,\n})\nexport class SpxFormViewComponent {\n @Input() spxFormGroup!: FormGroup;\n @Input() spxForm!: SpxFormI;\n @Input() spxSuggestions!: any;\n @Output() spxBlur: EventEmitter<{ field: SpxFormFieldI, valuePair: SpxValuePair<any> }> = new EventEmitter<{ field: SpxFormFieldI, valuePair: SpxValuePair<any> }>();\n @Output() spxClick: EventEmitter<{ field: SpxFormFieldI }> = new EventEmitter<{ field: SpxFormFieldI }>();\n @Output() spxSearch: EventEmitter<{ field: SpxFormFieldI, valuePair: SpxValuePair<any> }> = new EventEmitter<{ field: SpxFormFieldI, valuePair: SpxValuePair<any> }>();\n @ViewChildren(SpxInputComponent) spxInputs!: QueryList<SpxInputComponent>;\n autocompleteField?: SpxFormFieldI;\n\n typeAutocomplete = SpxInputTypeEnum.autocomplete;\n typeButton = SpxInputTypeEnum.button;\n typeFloat = SpxInputTypeEnum.float;\n typeNumber = SpxInputTypeEnum.number;\n typeRadio = SpxInputTypeEnum.radio;\n typeText = SpxInputTypeEnum.text;\n typeNumericKeyboard = SpxInputTypeEnum.textNumericKeyboard;\n typeOverlay = SpxInputTypeEnum.overlay;\n typeOverlayNumber = SpxInputTypeEnum.overlayNumber;\n\n setAutofocus(key: string): void {\n const field = this.spxInputs.find(input => input.spxName === key);\n if (field) {\n field.setFocusIn();\n }\n }\n\n onBlur(field: SpxFormFieldI) {\n this.spxBlur.emit({\n field,\n valuePair: this.spxFormGroup.get(field.key)!.value,\n });\n }\n\n onClick(field: SpxFormFieldI) {\n this.spxClick.emit({\n field,\n });\n }\n\n onAutocompleteCancel(): void {\n this.autocompleteField = undefined;\n }\n\n onAutocompleteSearch(valuePair: SpxValuePair<any>): void {\n if (this.autocompleteField) {\n this.spxSearch.emit({\n field: this.autocompleteField,\n valuePair,\n });\n }\n }\n\n onAutocompleteSave(valuePair: SpxValuePair<any>) {\n this.spxFormGroup.get(this.autocompleteField!.key)?.setValue(valuePair);\n this.autocompleteField = undefined;\n }\n\n onSearch(field: SpxFormFieldI) {\n this.autocompleteField = field;\n }\n\n getRawValidators(formControl: AbstractControl) {\n // eslint-disable-next-line no-underscore-dangle\n return (formControl as any)._rawValidators;\n }\n\n hasRequiredField(abstractControl: AbstractControl): boolean {\n if (abstractControl.validator) {\n const validator = abstractControl.validator({} as AbstractControl);\n if (validator && validator['required']) {\n return true;\n }\n }\n if ((abstractControl as any)['controls']) {\n for (const controlName in (abstractControl as any)['controls']) {\n if ((abstractControl as any)['controls'][controlName]) {\n if (this.hasRequiredField((abstractControl as any)['controls'][controlName])) {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n static initialFormValue(sections: SpxFormSectionI[]) {\n const formObject: any = {};\n sections.forEach(section => {\n section.fields.forEach(field => {\n formObject[field.key] = [field.defaultValue ? field.defaultValue() : null, field.validators ? [...field.validators()] : []];\n });\n });\n return formObject;\n }\n\n static createForm(formBuilder: FormBuilder, sections: SpxFormSectionI[]): FormGroup {\n return formBuilder.group(this.initialFormValue(sections));\n }\n\n constructor(readonly formBuilder: FormBuilder) {\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-form-view.mjs","sources":["../../../../projects/softpak/components/spx-form-view/spx-form-button-type.enum.ts","../../../../projects/softpak/components/spx-form-view/spx-autocomplete-search.component.ts","../../../../projects/softpak/components/spx-form-view/spx-autocomplete-search.component.html","../../../../projects/softpak/components/spx-form-view/spx-form-view.component.ts","../../../../projects/softpak/components/spx-form-view/softpak-components-spx-form-view.ts"],"sourcesContent":["export enum SpxFormButtonTypeEnum {\n button = 'button',\n submit = 'submit',\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription, debounceTime } from 'rxjs';\n\nimport { SpxInputComponent, SpxInputTypeEnum, SpxValuePair } from '@softpak/components/spx-inputs';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxFormFieldI } from './spx-form-field.interface';\nimport { SpxFormSectionI } from './spx-form-section.interface';\nimport { SpxValidateControlComponent } from '@softpak/components/spx-validation';\n\nexport const sectionAutocompleteSearch = 'autocompleteSearch';\nexport const ctrlQuery = 'query';\nexport const ctrlOptions = 'options';\n\n@Component({\n selector: 'spx-autocomplete-search',\n templateUrl: './spx-autocomplete-search.component.html',\n standalone: true,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n SpxButtonComponent,\n SpxInputComponent,\n SpxValidateControlComponent\n]\n})\nexport class SpxAutocompleteSearchComponent implements OnInit, OnDestroy {\n formGroup!: FormGroup;\n @Input() spxSuggestions: SpxValuePair<any>[] = [];\n @Input() spxField!: SpxFormFieldI;\n @Input() txtOptions!: string;\n @Input() txtQuery!: string;\n @Input() txtSubmit!: string;\n @Input() spxValuePair!: SpxValuePair<any>;\n @Output() spxCancel: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxSearch: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>(); \n @Output() spxSubmit: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n inputTypeRadio = SpxInputTypeEnum.radio;\n inputTypeText = SpxInputTypeEnum.text;\n severityError = SpxSeverityEnum.error;\n severitySuccess = SpxSeverityEnum.success;\n \n sections: SpxFormSectionI[] = [\n {\n key: sectionAutocompleteSearch,\n showTitle: () => false,\n fields: [\n {\n key: ctrlQuery,\n type: () => SpxInputTypeEnum.text,\n label: () => this.txtQuery,\n capitalize: () => true,\n },\n {\n key: ctrlOptions,\n type: () => SpxInputTypeEnum.radio,\n label: () => this.txtOptions,\n },\n ]\n }\n ];\n\n get ctrlQuery(): FormControl { return this.formGroup.get(ctrlQuery) as FormControl; }\n get ctrlOptions(): FormControl { return this.formGroup.get(ctrlOptions) as FormControl; }\n\n private subSelection?: Subscription;\n private subQuery?: Subscription;\n\n constructor(readonly formBuilder: FormBuilder) {\n this.createForm();\n }\n\n ngOnInit(): void {\n this.listenToSelection();\n this.listenToQuery();\n this.ctrlQuery.setValue(this.spxValuePair, { emitEvent: false });\n this.spxSearch.emit(this.spxValuePair);\n }\n\n ngOnDestroy(): void {\n if (this.subSelection) {\n this.subSelection.unsubscribe();\n }\n if (this.subQuery) {\n this.subQuery.unsubscribe();\n }\n }\n\n private createForm(): void {\n this.formGroup = this.formBuilder.group({\n [ctrlQuery]: [null],\n [ctrlOptions]: [null],\n });\n }\n\n getRawValidators(formControl: FormControl) {\n return (formControl as any)._rawValidators;\n }\n\n onCancel(): void {\n this.spxCancel.emit();\n }\n \n onSubmit(): void {\n this.spxSubmit.emit(this.ctrlQuery.value);\n }\n\n private listenToQuery(): void {\n this.subQuery = this.ctrlQuery.valueChanges.pipe(debounceTime(500)).subscribe(valuePair => {\n this.spxSearch.emit(valuePair);\n });\n }\n\n private listenToSelection(): void {\n this.subSelection = this.ctrlOptions.valueChanges.subscribe(valuePair => {\n this.ctrlQuery.setValue(valuePair);\n });\n }\n}\n","<form class=\"bg-black fixed pt-16 z-50 top-0 left-0 right-0 bottom-0\" [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"h-full w-full px-3 flex flex-col gap-3\">\n <div class=\"grow flex flex-col gap-3 overflow-y-auto\">\n <spx-input [formControl]=\"ctrlQuery\" [spxLabel]=\"txtQuery\" [spxType]=\"inputTypeText\">\n </spx-input>\n <spx-input [formControl]=\"ctrlOptions\" [spxLabel]=\"txtOptions\" [spxSuggestions]=\"spxSuggestions\"\n [spxType]=\"inputTypeRadio\">\n </spx-input>\n </div>\n <div class=\"py-3 flex flex-col gap-3\">\n <spx-button [spxFullWidth]=\"true\" [spxSeverity]=\"severitySuccess\">\n Save\n </spx-button>\n <spx-button [spxFullWidth]=\"true\" [spxSeverity]=\"severityError\" [spxType]=\"'button'\" (spxClick)=\"onCancel()\">\n Cancel\n </spx-button>\n </div>\n </div>\n</form>","import { JsonPipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { SpxFormSectionI } from './spx-form-section.interface';\nimport { SpxFormSectionComponent } from '@softpak/components/spx-form-section';\nimport { SpxInputComponent, SpxInputTypeEnum, SpxValuePair } from '@softpak/components/spx-inputs';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { AbstractControl, FormBuilder, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxFormFieldI } from './spx-form-field.interface';\nimport { SpxAutocompleteSearchComponent } from './spx-autocomplete-search.component';\nimport { SpxValidateControlComponent } from '@softpak/components/spx-validation';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxFormI } from './spx-form.interface';\n\n@Component({\n selector: 'spx-form-view',\n standalone: true,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n SpxAutocompleteSearchComponent,\n SpxButtonComponent,\n SpxCapitalizePipe,\n SpxFormSectionComponent,\n SpxInputComponent,\n SpxValidateControlComponent,\n TranslateModule\n],\n template: `@if (autocompleteField) {\n <spx-autocomplete-search\n [spxField]=\"autocompleteField\"\n [spxSuggestions]=\"this.spxSuggestions[autocompleteField.key]\"\n [spxValuePair]=\"$any(this.spxFormGroup.get(autocompleteField.key)).value\"\n [txtOptions]=\"'Options'\"\n [txtQuery]=\"'Query'\"\n [txtSubmit]=\"'Save'\"\n (spxCancel)=\"onAutocompleteCancel()\"\n (spxSearch)=\"onAutocompleteSearch($event)\"\n (spxSubmit)=\"onAutocompleteSave($event)\">\n </spx-autocomplete-search>\n}\n<div class=\"flex flex-col gap-3\">\n @for (spxSection of spxForm.sections; track spxSection; let spxSectionIndex = $index) {\n <spx-form-section\n [spxShowTitle]=\"!spxSection.showTitle || spxSection.showTitle()\"\n [spxIndex]=\"spxSectionIndex + 1\"\n [spxTitle]=\"spxSection.title ? (spxSection.title() | translate | capitalize) : undefined\">\n @for (spxField of spxSection.fields; track spxField; let spxFieldIndex = $index) {\n @if (spxField.show === undefined || spxField.show()) {\n @if (spxField.type() === typeButton) {\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"spxField.severity ? spxField.severity() : undefined\"\n [spxType]=\"'button'\"\n (spxClick)=\"onClick(spxField)\"\n >{{ (spxField.label ? spxField.label() : spxField.key) | translate | capitalize }}</spx-button>\n }\n @if (spxField.type() === typeOverlay || spxField.type() === typeOverlayNumber || spxField.type() === typeFloat || spxField.type() === typeNumber || spxField.type() === typeText || spxField.type() === typeAutocomplete || spxField.type() === typeNumericKeyboard) {\n <spx-input\n [formControl]=\"$any(this.spxFormGroup.get(spxField.key))\"\n [spxAutofocus]=\"spxField.autofocus ? spxField.autofocus() : false\"\n [spxCapitalize]=\"spxField.capitalize ? spxField.capitalize() : false\"\n [spxLabel]=\"(spxField.label ? spxField.label() : spxField.key) | translate | capitalize\"\n [spxName]=\"spxField.key\"\n [spxPattern]=\"spxField.type() === typeNumericKeyboard ? '\\\\d*' : undefined\"\n [spxReadonly]=\"spxField.readonly ? spxField.readonly() : false\"\n [spxRequired]=\"hasRequiredField(this.spxFormGroup.get(spxField.key)!)\"\n [spxShowSearch]=\"spxField.type() === typeAutocomplete\"\n [spxShowHelp]=\"false\"\n [spxShowValidationMessages]=\"this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched\"\n [spxStep]=\"spxField.step ? spxField.step() : undefined\"\n [spxType]=\"spxField.type()\"\n [spxValidators]=\"getRawValidators(this.spxFormGroup.get(spxField.key)!)\"\n [spxSuggestions]=\"spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]\"\n (spxBlur)=\"onBlur(spxField)\"\n (spxSearch)=\"onSearch(spxField)\">\n <spx-validate-control [control]=\"$any(this.spxFormGroup.get(spxField.key))\" [label]=\"(spxField.label ? spxField.label() : spxField.key)| translate | capitalize\"></spx-validate-control>\n </spx-input>\n }\n @if (spxField.type() === typeRadio) {\n <spx-input\n [formControl]=\"$any(this.spxFormGroup.get(spxField.key))\"\n [spxLabel]=\"(spxField.label ? spxField.label() : spxField.key) | translate | capitalize\"\n [spxName]=\"spxField.key\"\n [spxReadonly]=\"spxField.readonly ? spxField.readonly() : false\"\n [spxRequired]=\"hasRequiredField(this.spxFormGroup.get(spxField.key)!)\"\n [spxShowHelp]=\"false\"\n [spxShowValidationMessages]=\"this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched\"\n [spxSuggestions]=\"spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]\"\n [spxType]=\"typeRadio\"\n [spxValidators]=\"getRawValidators(this.spxFormGroup.get(spxField.key)!)\">\n <spx-validate-control [control]=\"$any(this.spxFormGroup.get(spxField.key))\" [label]=\"(spxField.label ? spxField.label() : spxField.key) | translate | capitalize\"></spx-validate-control>\n </spx-input>\n }\n }\n }\n </spx-form-section>\n }\n\n @for (spxButton of spxForm.buttons; track spxButton) {\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"spxButton.severity\"\n [spxType]=\"spxButton.type\"\n (spxClick)=\"spxButton.onClick ? spxButton.onClick() : undefined\">\n {{ ((spxButton && spxButton.label) ? spxButton.label() : '') | translate | capitalize }}\n </spx-button>\n }\n</div>\n`,\n})\nexport class SpxFormViewComponent {\n @Input() spxFormGroup!: FormGroup;\n @Input() spxForm!: SpxFormI;\n @Input() spxSuggestions!: any;\n @Output() spxBlur: EventEmitter<{ field: SpxFormFieldI, valuePair: SpxValuePair<any> }> = new EventEmitter<{ field: SpxFormFieldI, valuePair: SpxValuePair<any> }>();\n @Output() spxClick: EventEmitter<{ field: SpxFormFieldI }> = new EventEmitter<{ field: SpxFormFieldI }>();\n @Output() spxSearch: EventEmitter<{ field: SpxFormFieldI, valuePair: SpxValuePair<any> }> = new EventEmitter<{ field: SpxFormFieldI, valuePair: SpxValuePair<any> }>();\n @ViewChildren(SpxInputComponent) spxInputs!: QueryList<SpxInputComponent>;\n autocompleteField?: SpxFormFieldI;\n\n typeAutocomplete = SpxInputTypeEnum.autocomplete;\n typeButton = SpxInputTypeEnum.button;\n typeFloat = SpxInputTypeEnum.float;\n typeNumber = SpxInputTypeEnum.number;\n typeRadio = SpxInputTypeEnum.radio;\n typeText = SpxInputTypeEnum.text;\n typeNumericKeyboard = SpxInputTypeEnum.textNumericKeyboard;\n typeOverlay = SpxInputTypeEnum.overlay;\n typeOverlayNumber = SpxInputTypeEnum.overlayNumber;\n\n setAutofocus(key: string): void {\n const field = this.spxInputs.find(input => input.spxName === key);\n if (field) {\n field.setFocusIn();\n }\n }\n\n onBlur(field: SpxFormFieldI) {\n this.spxBlur.emit({\n field,\n valuePair: this.spxFormGroup.get(field.key)!.value,\n });\n }\n\n onClick(field: SpxFormFieldI) {\n this.spxClick.emit({\n field,\n });\n }\n\n onAutocompleteCancel(): void {\n this.autocompleteField = undefined;\n }\n\n onAutocompleteSearch(valuePair: SpxValuePair<any>): void {\n if (this.autocompleteField) {\n this.spxSearch.emit({\n field: this.autocompleteField,\n valuePair,\n });\n }\n }\n\n onAutocompleteSave(valuePair: SpxValuePair<any>) {\n this.spxFormGroup.get(this.autocompleteField!.key)?.setValue(valuePair);\n this.autocompleteField = undefined;\n }\n\n onSearch(field: SpxFormFieldI) {\n this.autocompleteField = field;\n }\n\n getRawValidators(formControl: AbstractControl) {\n // eslint-disable-next-line no-underscore-dangle\n return (formControl as any)._rawValidators;\n }\n\n hasRequiredField(abstractControl: AbstractControl): boolean {\n if (abstractControl.validator) {\n const validator = abstractControl.validator({} as AbstractControl);\n if (validator && validator['required']) {\n return true;\n }\n }\n if ((abstractControl as any)['controls']) {\n for (const controlName in (abstractControl as any)['controls']) {\n if ((abstractControl as any)['controls'][controlName]) {\n if (this.hasRequiredField((abstractControl as any)['controls'][controlName])) {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n static initialFormValue(sections: SpxFormSectionI[]) {\n const formObject: any = {};\n sections.forEach(section => {\n section.fields.forEach(field => {\n formObject[field.key] = [field.defaultValue ? field.defaultValue() : null, field.validators ? [...field.validators()] : []];\n });\n });\n return formObject;\n }\n\n static createForm(formBuilder: FormBuilder, sections: SpxFormSectionI[]): FormGroup {\n return formBuilder.group(this.initialFormValue(sections));\n }\n\n constructor(readonly formBuilder: FormBuilder) {\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -612,7 +612,7 @@ class SpxInputDateComponent {
|
|
|
612
612
|
}
|
|
613
613
|
afterMonthChange() {
|
|
614
614
|
if (this.spxInternalValue.months.toString().length === 2 && this.spxSelectDay && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {
|
|
615
|
-
|
|
615
|
+
this.elDay?.focus();
|
|
616
616
|
}
|
|
617
617
|
this.updateValue();
|
|
618
618
|
}
|
|
@@ -622,7 +622,7 @@ class SpxInputDateComponent {
|
|
|
622
622
|
}
|
|
623
623
|
afterYearChange() {
|
|
624
624
|
if (this.spxInternalValue.years.toString().length === 4 && this.spxSelectMonth && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {
|
|
625
|
-
|
|
625
|
+
this.elMonth?.focus();
|
|
626
626
|
}
|
|
627
627
|
this.updateValue();
|
|
628
628
|
}
|
|
@@ -676,6 +676,7 @@ class SpxInputDateComponent {
|
|
|
676
676
|
this.spxWasInternalUpdate = true;
|
|
677
677
|
}
|
|
678
678
|
suggestYears() {
|
|
679
|
+
console.log('suggest years');
|
|
679
680
|
this.spxSuggestions.years = [];
|
|
680
681
|
for (let year = DateTime.fromISO(this.spxMin).year; year <= DateTime.fromISO(this.spxMax).year; year++) {
|
|
681
682
|
this.spxSuggestions.years.push({
|
|
@@ -683,6 +684,7 @@ class SpxInputDateComponent {
|
|
|
683
684
|
value: year,
|
|
684
685
|
});
|
|
685
686
|
}
|
|
687
|
+
console.log('suggest years', this.spxSuggestions);
|
|
686
688
|
}
|
|
687
689
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
688
690
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputDateComponent, isStandalone: true, selector: "spx-input-date", inputs: { spxMax: "spxMax", spxMin: "spxMin", spxName: "spxName", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxFocused: "spxFocused", spxSelectMonth: "spxSelectMonth", spxSelectDay: "spxSelectDay", value: "value", spxLastKeyPressed: "spxLastKeyPressed", spxSelectStep: "spxSelectStep", spxInternalValue: "spxInternalValue", spxSuggestions: "spxSuggestions", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxChange: "spxChange", spxFocus: "spxFocus" }, ngImport: i0, template: `<div class='spx-input-date__controls'>
|
|
@@ -722,8 +724,8 @@ class SpxInputDateComponent {
|
|
|
722
724
|
[attr.min]="1"
|
|
723
725
|
[attr.max]="31"
|
|
724
726
|
[attr.step]="1" />
|
|
727
|
+
<div class='spx-input-date__control-label'>Days</div>
|
|
725
728
|
}
|
|
726
|
-
<div class='spx-input-date__control-label'>Days</div>
|
|
727
729
|
</div>
|
|
728
730
|
<div class='spx-input-date__suggestions'>
|
|
729
731
|
@for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
|
|
@@ -735,7 +737,6 @@ class SpxInputDateComponent {
|
|
|
735
737
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputDateComponent, decorators: [{
|
|
736
738
|
type: Component,
|
|
737
739
|
args: [{ selector: 'spx-input-date', standalone: true, imports: [
|
|
738
|
-
SpxButtonComponent,
|
|
739
740
|
SpxSuggestionComponent
|
|
740
741
|
], template: `<div class='spx-input-date__controls'>
|
|
741
742
|
<input
|
|
@@ -774,8 +775,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
774
775
|
[attr.min]="1"
|
|
775
776
|
[attr.max]="31"
|
|
776
777
|
[attr.step]="1" />
|
|
778
|
+
<div class='spx-input-date__control-label'>Days</div>
|
|
777
779
|
}
|
|
778
|
-
<div class='spx-input-date__control-label'>Days</div>
|
|
779
780
|
</div>
|
|
780
781
|
<div class='spx-input-date__suggestions'>
|
|
781
782
|
@for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {
|
|
@@ -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-date.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.component.ts","../../../../projects/softpak/components/spx-inputs/softpak-components-spx-inputs.ts"],"sourcesContent":["\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxValuePair } from './spx-value-interface';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faEdit, faQuestion, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n selector: 'spx-input-box',\n standalone: true,\n imports: [\n SpxButtonComponent,\n FontAwesomeModule\n],\n template: `<div class=\"flex rounded w-full gap-3\"\n [class.rounded-none]=\"this.spxShowValidationMessages\"\n [class.rounded-t]=\"this.spxShowValidationMessages\"\n [class.outline-none]=\"this.spxFocused && !this.spxReadonly\"\n [class.ring-2]=\"this.spxFocused && !this.spxReadonly\"\n [class.ring-offset-2]=\"this.spxFocused && !this.spxReadonly\"\n [class.ring-blue-500]=\"this.spxFocused && !this.spxReadonly\"\n [class.bg-white]=\"!this.spxReadonly\"\n [class.bg-gray-300]=\"this.spxReadonly\"\n [class.cursor-not-allowed]=\"this.spxReadonly\">\n <div class=\"flex-auto p-3\"\n [class.p-0]=\"this.spxCompact\"\n [class.flex]=\"this.spxCompact\"\n [class.items-center]=\"this.spxCompact\">\n @if (this.spxShowLabel) {\n <div class=\"font-bold text-sm mb-1 text-gray-800\"\n [class.mb-0]=\"this.spxCompact\"\n [class.px-3]=\"this.spxCompact\">\n {{this.spxLabel}} @if (spxRequired) {\n <span class=\"text-red-800\">*</span>\n }\n </div>\n }\n <ng-content select=\"[controls]\"></ng-content>\n </div>\n <div class=\"flex flex-none gap-1 p-1\">\n @if (this.spxShowEdit) {\n <spx-button\n (spxClick)=\"onEdit()\"\n [spxFullHeight]=\"true\"\n [spxSize]=\"'xl'\"\n [spxType]=\"'button'\">\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowHelp) {\n <spx-button\n (spxClick)=\"onHelp()\"\n [spxFullHeight]=\"true\"\n [spxDisabled]=\"this.spxReadonly\"\n [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\"\n [spxType]=\"'button'\">\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowSearch) {\n <spx-button\n (spxClick)=\"onSearch()\"\n [spxFullHeight]=\"true\"\n [spxDisabled]=\"this.spxReadonly\"\n [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\"\n [spxType]=\"'button'\">\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowClear) {\n <spx-button\n (spxClick)=\"onClear()\"\n [spxDisabled]=\"this.spxReadonly || !this.spxValue?.value\"\n [spxFullHeight]=\"true\"\n [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\"\n [spxType]=\"'button'\">\n <fa-icon [icon]=\"faTimes\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n </div>\n </div>\n @if (this.spxShowValidationMessages) {\n <div class=\"bg-red-600 rounded-b text-white p-3\">\n <ng-content select=\"[validation-messages]\"></ng-content>\n </div>\n }`,\n})\nexport class SpxInputBoxComponent {\n faEdit = faEdit;\n faSearch = faSearch;\n faQuestion = faQuestion;\n faTimes = faTimes;\n @Input() spxCompact?: boolean;\n @Input() spxFocused = false;\n @Input() spxLabel?: string;\n @Input() spxReadonly = false;\n @Input() spxRequired?: boolean;\n @Input() spxShowClear = true;\n @Input() spxShowEdit?: boolean;\n @Input() spxShowHelp?: boolean;\n @Input() spxShowLabel = true;\n @Input() spxShowSearch?: boolean;\n @Input() spxShowValidationMessages?: boolean | null | undefined;\n @Input() spxValue?: SpxValuePair<any>;\n @Output() spxClear: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxSearch: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxFocusOut: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxEdit: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxHelp: EventEmitter<void> = new EventEmitter<void>();\n @HostListener('focusin', [\"$event\"]) handleFocusIn(ev: Event) {\n this.emitFocusIn();\n }\n @HostListener('focusout', [\"$event\"]) handleFocusOut(ev: FocusEvent) {\n const thisEl = this.elRef.nativeElement as HTMLElement;\n const relatedElement = ev.relatedTarget as HTMLElement;\n if (!relatedElement || !thisEl.contains(relatedElement)) {\n this.emitFocusOut();\n }\n }\n @HostListener('document:click', [\"$event\"]) handleWindowClick(ev: Event) {\n if (ev.composedPath().includes(this.elRef.nativeElement)) {\n this.emitFocusIn();\n } else {\n this.emitFocusOut();\n }\n }\n\n onClear() {\n this.spxClear.emit();\n }\n\n onSearch() {\n this.spxSearch.emit();\n }\n\n onEdit() {\n this.spxEdit.emit();\n }\n\n onHelp() {\n this.spxHelp.emit();\n }\n\n constructor(private elRef: ElementRef) {\n }\n\n private emitFocusIn(): void {\n if (!this.spxFocused) {\n this.spxFocus.emit();\n }\n }\n\n private emitFocusOut(): void {\n if (this.spxFocused) {\n this.spxFocusOut.emit();\n }\n }\n}\n","\nimport { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { Subscription, fromEvent } from 'rxjs';\n\n@Component({\n selector: 'spx-dropdown',\n standalone: true,\n imports: [\n SpxButtonComponent\n],\n template: `<div class=\"relative text-black\">\n <div\n class=\"absolute bg-gray-100 left-0 right-0 z-20\">\n @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {\n <button\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\"\n [class.bg-gray-100]=\"i === this.focusPosition\"\n [class.bg-white]=\"i !== this.focusPosition\"\n (click)=\"this.handleSuggestionClick(valuePair)\"\n [attr.tabindex]=\"-1\"\n [attr.type]=\"'button'\">\n <div class=\"flex-1 p-1 font-bold text-lg\">{{valuePair?.description}}</div>\n <spx-button (spxClick)=\"this.handleSuggestionClick(valuePair)\" [spxType]=\"'button'\" [spxTabIndex]=\"-1\">Select</spx-button>\n </button>\n }\n </div>\n </div>`,\n})\nexport class SpxDropdownComponent implements OnChanges, OnInit, OnDestroy {\n protected focusPosition = 0;\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\n @Output() spxSelect: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n subscriptionKeyUp?: Subscription;\n\n ngOnInit(): void {\n this.listenToKeyUp();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.focusPosition = 0;\n }\n\n ngOnDestroy(): void {\n this.subscriptionKeyUp?.unsubscribe();\n }\n\n handleSuggestionClick(valuePair: SpxValuePair<string | number | boolean>) {\n this.select(valuePair);\n }\n\n private listenToKeyUp(): void {\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\n if ((event as KeyboardEvent).key === 'ArrowUp' && this.focusPosition > 0) {\n this.focusPosition = this.focusPosition - 1;\n event.preventDefault();\n }\n if ((event as KeyboardEvent).key === 'ArrowDown' && this.focusPosition < this.spxSuggestions.length - 1) {\n this.focusPosition = this.focusPosition + 1;\n event.preventDefault();\n }\n if ((event as KeyboardEvent).key === 'Enter' && this.spxSuggestions.length > 0) {\n this.select(this.spxSuggestions.at(this.focusPosition)!);\n event.preventDefault();\n }\n });\n }\n\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\n this.focusPosition = 0;\n this.spxSelect.emit(valuePair);\n }\n}\n","\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\nimport { SpxDropdownComponent } from './spx-dropdown.component';\n\n@Component({\n selector: 'spx-input-text',\n standalone: true,\n imports: [\n SpxDropdownComponent\n],\n template: `<div class=\"relative text-black\">\n <input\n #input\n class=\"font-bold text-lg w-full outline-none\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [class.bg-white]=\"!this.spxReadonly\"\n [class.bg-gray-300]=\"this.spxReadonly\"\n [class.cursor-not-allowed]=\"this.spxReadonly\"\n [class.uppercase]=\"this.spxCapitalize\"\n [attr.autocomplete]=\"this.spxAutocomplete ? this.spxAutocomplete : undefined\"\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.inputMode]=\"this.spxInputMode ? this.spxInputMode : undefined\"\n [attr.pattern]=\"this.spxPattern ? this.spxPattern : undefined\"\n [attr.name]=\"this.spxName\"\n [attr.type]=\"this.spxType\"\n [value]=\"this.value?.description ? this.value?.description : this.value?.value\"\n (blur)=\"this.handleBlur()\"\n (keyUp)=\"this.handleKeyUp()\"\n (focus)=\"this.handleFocus()\"\n (input)=\"this.handleDescriptionInput($event)\"\n />\n @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {\n <span>{{this.value?.value}}</span>\n }\n @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {\n <spx-dropdown\n [spxSuggestions]=\"this.spxSuggestions\" (spxSelect)=\"this.handleSuggestionClick($event)\">\n </spx-dropdown>\n }\n </div>`,\n})\nexport class SpxInputTextComponent {\n // private elInput?: HTMLElement;\n // @Element() el!: HTMLElement;\n @Input() spxName?: string;\n @Input() spxAutofocus = false;\n @Input() spxAutocomplete?: string;\n @Input() spxInputMode?: string;\n @Input() spxPattern?: string;\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\n @Input() spxReadonly = false;\n @Input() spxValidators?: any[];\n @Input() spxCapitalize = false;\n @Input() spxFocused = true;\n @Input() spxType: 'autocomplete' | 'overlay' | 'overlaynumber' | 'text' | 'password' = 'text';\n @Input() value?: SpxValuePair<any>;\n @Output() spxBlurFromChild: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Input() spxWasInternalUpdate = false;\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\n \n \n spxSetFocus() {\n this.inputRef?.nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus) {\n this.spxFocus.emit();\n this.spxSetFocus();\n }\n }\n\n handleBlur() {\n this.spxBlurFromChild.emit();\n }\n\n handleFocus() {\n this.spxFocus.emit();\n }\n\n handleDescriptionInput(event: any) {\n this.value = {\n description: event.target ? event.target.value : null,\n value: event.target ? event.target.value : null,\n };\n this.spxChange.emit(this.value);\n }\n\n handleSuggestionClick(value: any) {\n if (!this.spxReadonly) {\n this.value = value;\n this.spxChange.emit(this.value);\n this.spxFocused = false;\n }\n }\n\n handleKeyUp() {\n this.spxFocused = true;\n }\n}\n","\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\nimport { DateTime } from 'luxon';\nimport { SpxValuePair } from './spx-value-interface';\n\n@Component({\n selector: 'spx-input-date',\n standalone: true,\n imports: [\n SpxButtonComponent,\n SpxSuggestionComponent\n],\n template: `<div class='spx-input-date__controls'>\n <input\n class='spx-input-date__input'\n [attr.value]=\"this.spxInternalValue.years\"\n (focus)=\"this.handleFocus('years')\"\n (input)=\"this.handleYearInput($event)\"\n (keyDown)=\"this.handleKeyDown($event)\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1900\"\n [attr.max]=\"2100\"\n [attr.step]=\"1\"\n />\n <div class='spx-input-date__control-label'>Year</div>\n @if (this.spxSelectMonth) {\n <input\n class='spx-input-date__input'\n [attr.value]=\"this.spxInternalValue.months\"\n (focus)=\"this.handleFocus('months')\"\n (input)=\"this.handleMonthInput($event)\"\n (keyDown)=\"this.handleKeyDown($event)\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"12\"\n [attr.step]=\"1\" />\n }\n <div class='spx-input-date__control-label'>Month</div>\n @if (this.spxSelectDay) {\n <input\n class='spx-input-date__input'\n [attr.value]=\"this.spxInternalValue.days\"\n (focus)=\"this.handleFocus('days')\"\n (input)=\"this.handleDayInput($event)\"\n (keyDown)=\"this.handleKeyDown($event)\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"31\"\n [attr.step]=\"1\" />\n }\n <div class='spx-input-date__control-label'>Days</div>\n </div>\n <div class='spx-input-date__suggestions'>\n @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {\n <spx-suggestion\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\n }\n </div>`,\nstyles: `\n:host {\n display: block;\n}\n\n.spx-input-date__input {\n background-color: transparent;\n border: 1px solid #979797;\n border-radius: 4px;\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\n box-sizing: border-box;\n font-size: 16px;\n margin-right: 10px;\n padding: 6px;\n text-align: center;\n width: 100%;\n}\n\n.spx-input-date__input:active {\n transform: scale(0.95);\n}\n\n.spx-input-date__input:focus {\n border: var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));\n border-radius: 4px;\n outline: none;\n}\n\n.spx-input-date__control-label {\n align-items: center;\n color: rgba(0, 0, 0, .7);\n display: inline-grid;\n font-size: 13px;\n letter-spacing: 1px;\n}\n\n.spx-input-date__input::-webkit-outer-spin-button,\n.spx-input-date__input::-webkit-inner-spin-button {\n /* display: none; <- Crashes Chrome on hover */\n -webkit-appearance: none;\n margin: 0; /* <-- Apparently some margin are still there even though it's hidden */\n}\n\n.spx-input-date__input[type=number] {\n -moz-appearance:textfield; /* Firefox */\n}\n\n.spx-input-date__suggestions,\n.spx-input-date__controls {\n display: grid;\n grid-gap: 8px;\n grid-template-columns: repeat(4, 1fr);\n margin-top: 8px;\n}\n`,\n})\nexport class SpxInputDateComponent {\n private elYear?: HTMLElement;\n private elMonth?: HTMLElement;\n private elDay?: HTMLElement;\n // @Element() el!: HTMLElement;\n @Input() spxMax?: string;\n @Input() spxMin?: string;\n @Input() spxName?: string;\n @Input() spxReadonly = false;\n @Input() spxValidators?: any[];\n @Input() spxFocused = true;\n @Input() spxSelectMonth = true;\n @Input() spxSelectDay = true;\n @Input() value?: SpxValuePair<string>;\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Input() spxLastKeyPressed!: null;\n @Input() spxSelectStep: 'years' | 'days' | 'months' = 'years';\n @Input() spxInternalValue: {\n years?: number;\n months?: number;\n days?: number;\n } = {};\n @Input() spxSuggestions: {\n years: SpxValuePair<number>[];\n months: SpxValuePair<number>[];\n days: SpxValuePair<number>[];\n } = {\n years: [],\n months: [{\n description: 'Jan',\n value: 1,\n }, {\n description: 'Feb',\n value: 2,\n }, {\n description: 'Mar',\n value: 3,\n }, {\n description: 'Apr',\n value: 4,\n }, {\n description: 'May',\n value: 5,\n }, {\n description: 'Jun',\n value: 6,\n }, {\n description: 'Jul',\n value: 7,\n }, {\n description: 'Aug',\n value: 8,\n }, {\n description: 'Sep',\n value: 9,\n }, {\n description: 'Oct',\n value: 10,\n }, {\n description: 'Nov',\n value: 11,\n }, {\n description: 'Dec',\n value: 12,\n }],\n days: [],\n };\n @Input() spxWasInternalUpdate = false;\n async spxSetFocus() {\n // this.elYear.focus();\n }\n // @Watch('spxValidators') watchSpxValidators(newValue) {\n // console.log('validators', newValue);\n // }\n // @Watch('value') watchValue(newValue) {\n // if (this.spxWasInternalUpdate) {\n // this.spxWasInternalUpdate = false;\n // } else {\n // const parsedValue = DateTime.fromISO(newValue?.value);\n // this.spxInternalValue.years = parsedValue.year;\n // this.spxInternalValue.months = parsedValue.month;\n // this.spxInternalValue.days = parsedValue.day;\n // this.spxSelectStep = 'years';\n // }\n // }\n\n constructor() {\n this.suggestYears();\n }\n\n componentWillLoad() {\n const parsedValue = this.value ? DateTime.fromISO(this.value!.value) : DateTime.now();\n this.spxInternalValue.years = parsedValue.year;\n this.spxInternalValue.months = parsedValue.month;\n this.spxInternalValue.days = parsedValue.day;\n }\n\n handleDayInput(event: any) {\n this.spxInternalValue.days = event.target ? event.target.value : null;\n this.updateValue();\n }\n\n handleMonthInput(event: any) {\n this.spxInternalValue.months = event.target ? event.target.value : null;\n this.afterMonthChange();\n }\n\n afterMonthChange() {\n if (this.spxInternalValue.months!.toString().length === 2 && this.spxSelectDay && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {\n // this.elDay!.focus();\n }\n this.updateValue();\n }\n\n handleYearInput(event: any) {\n this.spxInternalValue.years = event.target ? event.target.value : null;\n this.afterYearChange();\n }\n\n afterYearChange() {\n if (this.spxInternalValue.years!.toString().length === 4 && this.spxSelectMonth && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {\n // this.elMonth!.focus();\n }\n this.updateValue();\n }\n\n handleInput(event: any) {\n this.setValue(event.target ? event.target.value : null);\n }\n\n handleFocus(step: 'years' | 'months' | 'days') {\n this.spxSelectStep = step;\n this.spxFocus.emit();\n }\n\n handleKeyDown(event: any) {\n this.spxLastKeyPressed = event.which;\n }\n\n handleSuggestionClick(value: number) {\n this.spxLastKeyPressed = null;\n this.spxInternalValue[this.spxSelectStep] = value;\n this.updateValue();\n this.doneWithField();\n }\n\n updateValue() {\n const concatenatedValue = `${this.spxInternalValue.years ? this.spxInternalValue.years : ``}${this.spxInternalValue.months ? `-${this.spxInternalValue.months < 10 ? `0${this.spxInternalValue.months}` : this.spxInternalValue.months}` : ``}${this.spxInternalValue.days ? `-${this.spxInternalValue.days < 10 ? `0${this.spxInternalValue.days}` : this.spxInternalValue.days}` : ``}`\n const parsedValue = DateTime.fromISO(concatenatedValue);\n this.spxWasInternalUpdate = true;\n this.value = {\n description: parsedValue.toISO(),\n value: parsedValue.toISO()!,\n };\n this.spxChange.emit(this.value);\n }\n\n doneWithField() {\n if (this.spxSelectStep === 'days') {\n this.spxSelectStep = 'years';\n } else if (this.spxSelectStep === 'months') {\n this.spxSelectStep = this.spxSelectDay ? 'days' : 'years';\n this.afterMonthChange();\n } else if (this.spxSelectStep === 'years') {\n this.afterYearChange();\n this.spxSelectStep = this.spxSelectMonth ? 'months' : 'years';\n }\n }\n\n setValue(value: any) {\n this.spxInternalValue = value;\n const parsed = DateTime.fromISO(value);\n this.value = {\n description: parsed.toISO(),\n value: parsed.toISO()!,\n };\n this.spxChange.emit(this.value);\n this.spxWasInternalUpdate = true;\n }\n\n private suggestYears(): void {\n this.spxSuggestions.years = [];\n for (let year = DateTime.fromISO(this.spxMin!).year; year <= DateTime.fromISO(this.spxMax!).year; year++) {\n this.spxSuggestions.years.push({\n description: `'${year.toString().substring(2,4)}`,\n value: year,\n });\n }\n }\n}\n","\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\n\n@Component({\n selector: 'spx-input-float',\n standalone: true,\n imports: [\n SpxButtonComponent\n],\n template: `<div class=\"flex items-end\">\n <input\n #firstInputRef\n class=\"spx-input-float__input\"\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.pattern]=\"'[0-9]*'\"\n [attr.step]=\"1\"\n [attr.type]=\"'text'\"\n [attr.value]=\"this.internalValue?.first ? this.internalValue?.first : undefined\"\n [class.spx-input-float--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n (focus)=\"this.handleFocus()\"\n (input)=\"this.handleInput($event, 1)\" />\n <span class=\"text-black font-bold text-2xl mx-4\">,</span>\n <input\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\n class=\"spx-input-float__input\"\n [class.spx-input-float--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.value]=\"this.internalValue?.second ? this.internalValue?.second : undefined\"\n (focus)=\"this.handleFocus()\"\n (input)=\"this.handleInput($event, 2)\"\n [attr.step]=\"1\"\n [attr.type]=\"'text'\"\n [attr.pattern]=\"'[0-9]*'\" />\n</div>`,\n styles: `\n :host {\n display: block;\n}\n\n.spx-input-float__input {\n border: 1px solid #333333;\n border-radius: 8px;\n background-color: transparent;\n box-sizing: border-box;\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\n flex: 1;\n font-size: 20px;\n font-weight: bold;\n padding: 8px;\n width: 100%;\n}\n\n.spx-input-float__input:focus {\n outline: none;\n}\n `,\n})\nexport class SpxInputFloatComponent {\n // private elFirstInput?: HTMLElement;\n // private elSecondInput?: HTMLElement;\n protected internalValue: {\n first: number | null;\n second: number | null;\n } = {\n first: null,\n second: null,\n };\n // @Element() el!: HTMLStencilElement;\n @Input() spxName!: string;\n @Input() spxAutofocus = false;\n @Input() spxReadonly = false;\n @Input() spxValidators!: any[];\n @Input() spxFocused = true;\n @Input() spxStep?: number;\n @Input() value!: SpxValuePair<any>;\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Input() spxWasInternalUpdate = false;\n @Input() tick = {};\n @ViewChild('firstInputRef', { static: true }) firstInputRef?: ElementRef<HTMLInputElement>;\n \n spxSetFocus() {\n this.firstInputRef?.nativeElement?.focus();\n }\n\n // @Watch('value') onValueChanged(newValue: SpxValuePair<any>, _oldValue: SpxValuePair<any>) {\n // this.handleSetValue(newValue);\n // }\n\n componentDidLoad() {\n if (this.spxAutofocus) {\n this.spxFocus.emit();\n this.spxSetFocus();\n }\n this.handleSetValue(this.value);\n }\n\n handleFocus() {\n this.spxFocus.emit();\n }\n\n handleSetValue(newValue: SpxValuePair<any>) {\n if (this.isNumeric(newValue?.value)) {\n this.internalValue = {\n first: Math.floor(parseFloat(newValue?.value)),\n second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,\n };\n } else {\n this.internalValue = {\n first: null,\n second: null,\n };\n }\n this.tick = {};\n }\n\n handleInput(event: any, position: 1 | 2) {\n this.internalValue = {\n first: position === 1 ? (event.target ? event.target.value : null) : this.internalValue.first,\n second: position === 2 ? (event.target ? event.target.value : null) : this.internalValue.second,\n };\n let result;\n if (this.internalValue.first === null && this.internalValue.second === null) {\n result = null;\n } else {\n result = `${this.internalValue.first ? this.internalValue.first : 0}.${this.internalValue.second ? this.internalValue.second : 0}`;\n }\n this.value = {\n description: result,\n value: result,\n };\n this.spxChange.emit(this.value);\n }\n\n isNumeric(value: string) {\n return /^[+-]?\\d+(\\.\\d+)?$/.test(value);\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\n\n@Component({\n selector: 'spx-input-number',\n standalone: true,\n imports: [],\n template: `<div class=\"spx-input-number__controls\">\n <input\n #input\n class=\"spx-input-number__input\"\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\n [class.spx-input-number--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.inputMode]=\"this.spxInputMode ? this.spxInputMode : undefined\"\n [attr.value]=\"this.value?.value ? this.value?.value : undefined\"\n [attr.step]=\"this.spxStep ? this.spxStep : undefined\"\n [attr.type]=\"'number'\"\n (focus)=\"this.handleFocus()\"\n (input)=\"this.handleInput($event)\" />\n</div>`,\n styles: `\n:host {\n display: block;\n}\n\n.spx-input-number__input {\n border: 0;\n background-color: transparent;\n box-sizing: border-box;\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\n font-size: 20px;\n font-weight: bold;\n margin-right: 10px;\n padding: 0;\n width: 100%;\n}\n\n.spx-input-number__input:focus {\n outline: none;\n}\n\n.spx-input-number__value {\n color: rgba(0, 0, 0, .6);\n font-size: 14px;\n}\n `,\n})\nexport class SpxInputNumberComponent {\n // private elInput?: HTMLElement;\n // @Element() el!: HTMLElement;\n @Input() spxName!: string;\n @Input() spxAutofocus = false;\n @Input() spxInputMode?: string;\n @Input() spxReadonly = false;\n @Input() spxValidators!: any[];\n @Input() spxFocused = true;\n @Input() spxStep?: number;\n @Input() value?: SpxValuePair<any>;\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\n spxWasInternalUpdate = false;\n \n spxSetFocus() {\n this.inputRef?.nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus) {\n this.spxFocus.emit();\n this.spxSetFocus();\n }\n }\n\n handleFocus() {\n this.spxFocus.emit();\n }\n\n handleInput(event: any) {\n this.value = {\n description: event.target ? event.target.value : null,\n value: event.target ? event.target.value : null,\n };\n this.spxChange.emit(this.value);\n }\n}","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\n\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\n@Component({\n selector: 'spx-input-radio',\n standalone: true,\n imports: [\n SpxSuggestionComponent\n],\n template: `<div class=\"grid grid-cols-2 gap-2\" [class.mt-3]=\"this.spxShowLabel\">\n @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {\n <spx-suggestion\n [spxDisabled]=\"this.spxReadonly\"\n [spxFocused]=\"this.spxFocused && i === this.focusPosition\"\n [spxSelected]=\"this.value?.value === valuePair?.value\"\n [spxTabbable]=\"this.focusPosition === i\"\n (click)=\"this.handleSuggestionClick($event, valuePair)\">\n {{valuePair?.description}}\n </spx-suggestion>\n }\n </div>`,\n})\nexport class SpxInputRadioComponent {\n cachedSuggestions: SpxValuePair<any>[] = [];\n protected focusPosition = 0;\n // @Element() el!: HTMLElement;\n @Input() spxName?: string;\n @Input() spxValidators!: any[];\n @Input() spxFocused = false;\n @Input() spxShowLabel = true;\n @Input() spxReadonly = false;\n @Input() spxSuggestions: SpxValuePair<any>[] = [];\n @Input() value?: SpxValuePair<any>;\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n private subscriptionKeyUp?: Subscription;\n private subscriptionKeyDown?: Subscription;\n spxFocusIn() {\n this.listenToKeys();\n this.determineFocusPosition();\n }\n\n spxFocusOut() {\n this.subscriptionKeyDown?.unsubscribe();\n this.subscriptionKeyUp?.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n (changes['spxSuggestions'] && JSON.stringify(changes['spxSuggestions']?.previousValue) !== JSON.stringify(changes['spxSuggestions']?.currentValue))\n ) {\n this.cachedSuggestions = changes['spxSuggestions']?.currentValue ?? [];\n }\n }\n\n handleSuggestionClick(event: Event, valuePair: SpxValuePair<any>) {\n if (this.spxReadonly) {\n console.log('spxInputRadio: clicked, but readonly');\n } else {\n console.log('spxInputRadio: clicked');\n this.select(valuePair);\n }\n }\n\n private determineFocusPosition() {\n if (this.value && this.spxSuggestions?.length) {\n const index = this.spxSuggestions.findIndex(valuePair => valuePairToValue(valuePair) === valuePairToValue(this.value));\n this.focusPosition = index >= 0 ? index : 0;\n } else {\n this.focusPosition = 0;\n }\n }\n\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\n this.focusPosition = 0;\n this.value = valuePair;\n this.spxChange.emit(valuePair);\n }\n\n private listenToKeys(): void {\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\n if (((event as KeyboardEvent).key === 'ArrowUp' || (event as KeyboardEvent).key === 'ArrowLeft') && this.focusPosition > 0) {\n this.focusPosition = this.focusPosition - 1;\n this.select(this.spxSuggestions.at(this.focusPosition)!);\n event.preventDefault();\n }\n if (((event as KeyboardEvent).key === 'ArrowDown' || (event as KeyboardEvent).key === 'ArrowRight') && this.focusPosition < this.spxSuggestions.length - 1) {\n this.focusPosition = this.focusPosition + 1;\n this.select(this.spxSuggestions.at(this.focusPosition)!);\n event.preventDefault();\n }\n });\n this.subscriptionKeyDown = fromEvent(window, 'keydown').subscribe((event) => {\n if ((event as KeyboardEvent).key === 'ArrowDown' ||\n (event as KeyboardEvent).key === 'ArrowLeft' ||\n (event as KeyboardEvent).key === 'ArrowRight' ||\n (event as KeyboardEvent).key === 'ArrowUp') {\n event.preventDefault();\n }\n });\n }\n}","export enum SpxInputTypeEnum {\n autocomplete = 'autocomplete',\n button = 'button',\n date = 'date',\n float = 'float',\n hidden = 'hidden',\n overlay = 'overlay',\n overlayNumber = 'overlaynumber',\n radio = 'radio',\n number = 'number',\n password = 'password',\n text = 'text',\n textNumericKeyboard = 'textNumericKeyboard',\n time = 'time',\n}","\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxDropdownComponent } from './spx-dropdown.component';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { IonicModule, ModalController } from '@ionic/angular';\n\n@Component({\n selector: 'spx-input-time-modal',\n standalone: true,\n imports: [\n IonicModule,\n SpxButtonComponent,\n SpxDropdownComponent,\n FontAwesomeModule\n],\n template: `<ion-header>\n <ion-toolbar>\n <ion-title>Select {{view}}</ion-title>\n <ion-buttons slot=\"end\">\n <spx-button [spxSeverity]=\"typeError\" (spxClick)=\"closeDialog()\">\n <fa-icon [icon]=\"faXmark\"></fa-icon>\n </spx-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content class=\"ion-padding bg-white\">\n <!-- Uren -->\n <div class=\"custom-bg grid grid-cols-1 gap-3\">\n @if (view === 'hours') {\n <div class=\"flex-wrap gap-2\">\n <div class=\"grid grid-cols-3 md:grid-cols-4 gap-3\">\n @for (hour of hourOptions; track hour) {\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)\">\n {{ hour }}\n </div>\n }\n </div>\n </div>\n }\n <!-- Minuten -->\n @if (view === 'minutes') {\n <div class=\"grid grid-cols-1 gap-3\">\n <div class=\"grid grid-cols-4 md:grid-cols-5 gap-3\">\n @for (minute of minuteOptions; track minute) {\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)\">\n {{ minute }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n </ion-content>\n `,\n})\nexport class SpxInputTimeModalComponent {\n @Input() view!: 'hours' | 'minutes';\n @Input() value!: number;\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\n\n faXmark = faXmark\n hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23\n minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5\n typeError = SpxSeverityEnum.error;\n\n constructor(private modalController: ModalController){\n this.hourOptions.push(this.hourOptions.shift()!);\n this.minuteOptions.push(this.minuteOptions.shift()!);\n }\n\n closeDialog() {\n this.modalController.dismiss();\n }\n\n onChange(value: number) {\n this.change.emit(value);\n console.log(value);\n this.modalController.dismiss(value);\n }\n}\n","\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild, inject } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxDropdownComponent } from './spx-dropdown.component';\nimport { DateTime } from 'luxon';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxInputTimeModalComponent } from './spx-input-time-modal.component';\nimport { IonicModule, ModalController } from '@ionic/angular';\n\n@Component({\n selector: 'spx-input-time',\n standalone: true,\n imports: [\n SpxButtonComponent,\n SpxDropdownComponent,\n IonicModule\n],\n styles: `\n .custom-square.selected {\n background-color: #007bff;\n color: white;\n border-color: #007bff;\n }\n .custom-bg {\n --background: #FFFFFF;\n }\n `,\n template: `<div class=\"relative text-black\">\n <div class=\"flex items-center justify-around gap-3\">\n <div class=\"grow rounded bg-gray-100 p-3 text-xl text-center font-bold\" (click)=\"openDialog('hours')\">{{ formattedHour ?? '--' }}</div>\n <div class=\"text-gray text-xl\">:</div>\n <div class=\"grow rounded bg-gray-100 p-3 text-xl text-center font-bold\" (click)=\"openDialog('minutes')\">{{ formattedMinute ?? '--' }}</div>\n </div>\n</div>`,\n})\nexport class SpxInputTimeComponent {\n // private elInput?: HTMLElement;\n // @Element() el!: HTMLElement;\n @Input() spxName?: string;\n @Input() spxAutofocus = false;\n @Input() spxInputMode?: string;\n @Input() spxPattern?: string;\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\n @Input() spxReadonly = false;\n @Input() spxValidators?: any[];\n @Input() spxCapitalize = false;\n @Input() spxFocused = true;\n @Input() spxType!: any;\n @Input() value?: SpxValuePair<any>;\n @Output() spxBlurFromChild: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Input() spxWasInternalUpdate = false;\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\n\n severitySuccess = SpxSeverityEnum.success;\n hourOptions = Array.from({ length: 24 }, (_, i) => i).unshift(); // 0 to 23\n minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5).unshift(); // Minutes in incrementen van 5\n selectedHour: number | null = null;\n selectedMinute: number | null = null;\n\n get formattedHour() {\n return this.selectedHour !== null && this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;\n }\n\n get formattedMinute() {\n return this.selectedMinute !== null && this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;\n }\n\n\n get hour() { return this.value?.value ? DateTime.fromISO(this.value.value).hour : null; }\n get minute() { return this.value?.value ? DateTime.fromISO(this.value.value).minute : null; }\n\n constructor(private modalController: ModalController) {}\n\n spxSetFocus() {\n this.inputRef?.nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus) {\n this.spxFocus.emit();\n this.spxSetFocus();\n }\n }\n\n handleBlur() {\n this.spxBlurFromChild.emit();\n }\n\n handleFocus() {\n this.spxFocus.emit();\n }\n\n handleDescriptionInput(event: any) {\n this.value = {\n description: event.target ? event.target.value : null,\n value: event.target ? event.target.value : null,\n };\n this.spxChange.emit(this.value);\n }\n\n handleSuggestionClick(value: any) {\n if (!this.spxReadonly) {\n this.value = value;\n this.spxChange.emit(this.value);\n this.spxFocused = false;\n }\n }\n\n handleKeyUp() {\n this.spxFocused = true;\n }\n\n async openDialog(view: 'hours' | 'minutes') {\n const modal = await this.modalController.create({\n component: SpxInputTimeModalComponent,\n componentProps: {\n value: this.value?.value ?\n (view === 'hours' ? DateTime.fromISO(this.value.value).hour : DateTime.fromISO(this.value.value).minute) : undefined,\n view,\n },\n });\n\n modal.onDidDismiss().then((data) => {\n // this.appStore.dispatch(infArticleActions.reset({}));\n\n if (view === 'hours') {\n // console.log('hours');\n // console.log(data);\n this.selectedHour = data.data;\n this.openDialog('minutes');\n this.updateValue();\n\n } else if (view === 'minutes') {\n // console.log('minutes');\n // console.log(data);\n this.selectedMinute = data.data;\n this.updateValue();\n }\n });\n\n await modal.present();\n }\n\n updateValue() {\n if (this.selectedHour !== null && this.selectedMinute !== null) {\n const formattedHour = this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;\n const formattedMinute = this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;\n const newValue = `${formattedHour}:${formattedMinute}`;\n\n this.value = {\n description: newValue,\n value: newValue,\n };\n\n this.spxChange.emit(this.value);\n }\n }\n}\n","\nimport { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { SpxInputBoxComponent } from './spx-input-box.component';\nimport { SpxInputTextComponent } from './spx-input-text.component';\nimport { SpxValuePair } from './spx-value-interface';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SpxInputDateComponent } from './spx-input-date.component';\nimport { SpxInputFloatComponent } from './spx-input-float.component';\nimport { SpxInputNumberComponent } from './spx-input-number.component';\nimport { SpxInputRadioComponent } from './spx-input-radio.component';\nimport { SpxInputTypeEnum } from './spx-input-type.enum';\nimport { SpxInputTimeComponent } from './spx-input-time.component';\n\n@Component({\n selector: 'spx-input',\n standalone: true,\n host: {\n '(spxChange)': 'handleChangeEvent($event)'\n },\n imports: [\n SpxInputBoxComponent,\n SpxInputDateComponent,\n SpxInputFloatComponent,\n SpxInputNumberComponent,\n SpxInputRadioComponent,\n SpxInputTextComponent,\n SpxInputTimeComponent\n],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SpxInputComponent,\n multi: true\n }\n ],\n template: `<spx-input-box\n [spxFocused]=\"this.spxFocused\"\n [spxLabel]=\"this.spxLabel\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxRequired]=\"this.spxRequired\"\n [spxValue]=\"this.value\"\n [spxShowHelp]=\"this.spxShowHelp\"\n [spxCompact]=\"this.spxCompact\"\n [spxShowClear]=\"this.spxShowClear\"\n [spxShowEdit]=\"this.spxShowEdit\"\n [spxShowLabel]=\"this.spxShowLabel\"\n [spxShowSearch]=\"this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'\"\n [spxShowValidationMessages]=\"this.spxShowValidationMessages\"\n (spxClear)=\"this.handleClear()\"\n (spxEdit)=\"this.handleEdit()\"\n (spxHelp)=\"this.handleHelp()\"\n (spxFocus)=\"this.setFocusIn()\"\n (spxFocusOut)=\"this.setFocusOut()\"\n (spxSearch)=\"this.handleSearch()\">\n <div controls>\n @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {\n <spx-input-text\n (spxBlurFromChild)=\"this.handleBlur()\"\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxAutocomplete]=\"this.spxAutocomplete ? this.spxAutocomplete : undefined\"\n [spxAutofocus]=\"this.spxAutofocus\"\n [spxCapitalize]=\"this.spxCapitalize\"\n [spxFocused]=\"this.spxFocused\"\n [spxInputMode]=\"this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode\"\n [spxName]=\"this.spxName\"\n [spxPattern]=\"this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxSuggestions]=\"this.spxSuggestions\"\n [spxType]=\"this.spxType\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-text>\n }\n @if (this.spxType === 'date') {\n <spx-input-date\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxFocused]=\"this.spxFocused\"\n [spxMax]=\"this.spxMax\"\n [spxMin]=\"this.spxMin\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxSelectDay]=\"this.spxSelectDay\"\n [spxSelectMonth]=\"this.spxSelectMonth\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-date>\n }\n @if (this.spxType === 'float') {\n <spx-input-float\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxAutofocus]=\"this.spxAutofocus\"\n [spxFocused]=\"this.spxFocused\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxStep]=\"this.spxStep\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-float>\n }\n @if (this.spxType === 'number') {\n <spx-input-number\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxAutofocus]=\"this.spxAutofocus\"\n [spxFocused]=\"this.spxFocused\"\n [spxInputMode]=\"this.spxInputMode\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxStep]=\"this.spxStep\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-number>\n }\n @if (this.spxType === 'radio') {\n <spx-input-radio\n #radioInput\n (spxChange)=\"this.handleChange($event)\"\n [spxFocused]=\"this.spxFocused\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxShowLabel]=\"this.spxShowLabel\"\n [spxSuggestions]=\"this.spxSuggestions\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-radio>\n }\n @if (this.spxType === 'time') {\n <spx-input-time\n #timeInput\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxFocused]=\"this.spxFocused\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-time>\n }\n </div>\n <div validation-messages>\n <ng-content></ng-content>\n </div>\n </spx-input-box>`,\n})\nexport class SpxInputComponent {\n @Input() spxLabel: string = 'label';\n @Input() spxMax?: string;\n @Input() spxMin?: string;\n @Input() spxName!: string;\n @Input() spxReadonly = false;\n @Input() spxAutocomplete?: string;\n @Input() spxAutofocus = false;\n @Input() spxInputMode?: string;\n @Input() spxPattern?: string;\n @Input() spxRequired = false;\n @Input() spxSelectMonth = true;\n @Input() spxSelectDay = true;\n @Input() spxShowEdit = false;\n @Input() spxShowHelp = false;\n @Input() spxShowLabel = true;\n @Input() spxCompact = false;\n @Input() spxShowClear = true;\n @Input() spxShowSearch = false;\n @Input() spxShowValidationMessages?: boolean | null | undefined = false;\n @Input() spxStep?: number;\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\n @Input() spxType: SpxInputTypeEnum = SpxInputTypeEnum.text;\n @Input() spxValidators!: any[];\n @Input() value!: SpxValuePair<any>;\n @Input() spxCapitalize = false;\n @Output() spxBlur: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxClear: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxEdit: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxHelp: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxSearch: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild(SpxInputFloatComponent) floatInput?: SpxInputFloatComponent;\n @ViewChild(SpxInputNumberComponent) numberInput?: SpxInputNumberComponent;\n @ViewChild(SpxInputTextComponent) textInput?: SpxInputTextComponent;\n @ViewChild(SpxInputTimeComponent) timeInput?: SpxInputTimeComponent;\n @ViewChild(SpxInputRadioComponent) radioInput?: SpxInputRadioComponent;\n @Input() spxFocused = false;\n handleBlur() {\n this.spxBlur.emit();\n }\n\n handleChange(event: any) {\n this.value = event;\n this.spxChange.emit(this.value);\n }\n\n handleClear() {\n this.spxClear.emit();\n this.spxFocused = true;\n this.passFocusToControl();\n this.value = {\n description: null,\n value: null,\n };\n this.spxChange.emit(this.value);\n }\n\n handleFocus() {\n this.spxFocus.emit();\n this.spxFocused = true;\n }\n\n handleSearch() {\n this.spxSearch.emit();\n }\n\n setFocusIn() {\n this.spxFocused = true;\n this.passFocusToControl();\n }\n\n setFocusOut() {\n this.spxFocused = false;\n if (this.spxType === SpxInputTypeEnum.radio) {\n this.radioInput?.spxFocusOut();\n }\n }\n\n handleEdit() {\n this.spxEdit.emit();\n this.spxFocused = true;\n }\n \n handleHelp() {\n this.spxHelp.emit();\n this.spxFocused = true;\n }\n\n private passFocusToControl() {\n switch (this.spxType) {\n case SpxInputTypeEnum.autocomplete:\n case SpxInputTypeEnum.text:\n case SpxInputTypeEnum.overlayNumber:\n this.textInput?.spxSetFocus();\n break;\n case SpxInputTypeEnum.number:\n this.numberInput?.spxSetFocus();\n break;\n case SpxInputTypeEnum.radio:\n this.radioInput?.spxFocusIn();\n break;\n case SpxInputTypeEnum.time:\n this.timeInput?.spxSetFocus();\n break;\n }\n }\n\n private onChange: (value: any) => void = () => {/**/};\n private onTouched: () => void = () => {/**/};\n protected lastValue: any;\n\n writeValue(value: any) {\n this.value = this.lastValue = value;\n }\n\n handleChangeEvent(value: any) {\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.onChange(value);\n }\n }\n\n @HostListener('focusout')\n _handleBlurEvent() {\n this.onTouched();\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;MA0Fa,oBAAoB,CAAA;AAuBM,IAAA,aAAa,CAAC,EAAS,EAAA;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AACqC,IAAA,cAAc,CAAC,EAAc,EAAA;AACjE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAA4B,CAAC;AACvD,QAAA,MAAM,cAAc,GAAG,EAAE,CAAC,aAA4B,CAAC;QACvD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACvD,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;AAC2C,IAAA,iBAAiB,CAAC,EAAS,EAAA;AACrE,QAAA,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YACxD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,WAAA,CAAoB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAxDrC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;QACxB,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;QAET,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEnB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QAGpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAInB,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACzD,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAC3D,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;KAoChE;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;KACF;+GAtEU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EA5ErB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA0EN,EA7EF,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,oOAClB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA8ER,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAnFhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,kBAAkB;wBAClB,iBAAiB;AACpB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EN,KAAA,CAAA;AACL,iBAAA,CAAA;+EAMU,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAC8B,aAAa,EAAA,CAAA;sBAAjD,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAGG,cAAc,EAAA,CAAA;sBAAnD,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAOQ,iBAAiB,EAAA,CAAA;sBAA5D,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC7F/B,oBAAoB,CAAA;AAxBjC,IAAA,WAAA,GAAA;QAyBY,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QACnB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;AAC9D,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AAwC9F,KAAA;IArCC,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;KACxB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACvC;AAED,IAAA,qBAAqB,CAAC,SAAkD,EAAA;AACtE,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACxB;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACtE,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;gBACxE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACD,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACD,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9E,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,MAAM,CAAC,SAAkD,EAAA;AAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;+GA1CU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAlBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;AAgBH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBL,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAoBT,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAxBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,kBAAkB;AACrB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBH,QAAA,CAAA;AACR,iBAAA,CAAA;8BAGU,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCWI,qBAAqB,CAAA;AAvClC,IAAA,WAAA,GAAA;QA2CW,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAIrB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;QAC/D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAO,CAAA,OAAA,GAAuE,MAAM,CAAC;AAEpF,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAChE,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AA0CvC,KAAA;IAtCC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;+GA3DU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAjCtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjCL,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAmCX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvCjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACvB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BH,QAAA,CAAA;AACR,iBAAA,CAAA;8BAIU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACgC,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCqDzB,qBAAqB,CAAA;AAqEhC,IAAA,MAAM,WAAW,GAAA;;KAEhB;;;;;;;;;;;;;;;AAgBD,IAAA,WAAA,GAAA;QA/ES,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAEzD,IAAa,CAAA,aAAA,GAAgC,OAAO,CAAC;QACrD,IAAgB,CAAA,gBAAA,GAIrB,EAAE,CAAC;AACE,QAAA,IAAA,CAAA,cAAc,GAInB;AACA,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,CAAC;AACP,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,CAAC;AACF,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;QACK,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAoBpC,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,iBAAiB,GAAA;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QACtF,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;KAC9C;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACtE,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxE,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE;;SAEjJ;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACvE,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE;;SAElJ;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;KACzD;AAED,IAAA,WAAW,CAAC,IAAiC,EAAA;AAC3C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC;KACtC;AAED,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,WAAW,GAAA;QACT,MAAM,iBAAiB,GAAG,CAAG,EAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAA,CAAE,CAAG,EAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAE,CAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAA,CAAE,GAAG,CAAE,CAAA,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA,CAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA,CAAE,GAAG,CAAE,CAAA,CAAA,CAAE,CAAA;QACzX,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE;AAChC,YAAA,KAAK,EAAE,WAAW,CAAC,KAAK,EAAG;SAC5B,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;SAC9B;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;YAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;YACzC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;SAC/D;KACF;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE;AAC3B,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,EAAG;SACvB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClC;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC;AAC/B,QAAA,KAAK,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;AACxG,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,gBAAA,WAAW,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAAE,CAAA;AACjD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA,CAAC,CAAC;SACJ;KACF;+GA7LU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAtGtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA/CL,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAwGb,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA7GjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,kBAAkB;wBAClB,sBAAsB;qBACzB,EACW,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CH,QAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+3BAAA,CAAA,EAAA,CAAA;wDA8DE,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAKG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBA6CG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;;;MC5HK,sBAAsB,CAAA;AAvDnC,IAAA,WAAA,GAAA;;;AA0DY,QAAA,IAAA,CAAA,aAAa,GAGnB;AACF,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,MAAM,EAAE,IAAI;SACb,CAAC;QAGO,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AA2DpB,KAAA;IAxDC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KAC5C;;;;IAMD,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,cAAc,CAAC,QAA2B,EAAA;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;YACnC,IAAI,CAAC,aAAa,GAAG;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aACnE,CAAC;SACH;aAAM;YACL,IAAI,CAAC,aAAa,GAAG;AACnB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,MAAM,EAAE,IAAI;aACb,CAAC;SACH;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;KAChB;IAED,WAAW,CAAC,KAAU,EAAE,QAAe,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA,KAAK,EAAE,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK;AAC7F,YAAA,MAAM,EAAE,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;SAChG,CAAC;AACF,QAAA,IAAI,MAAM,CAAC;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,EAAE;YAC3E,MAAM,GAAG,IAAI,CAAC;SACf;aAAM;AACL,YAAA,MAAM,GAAG,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;SACpI;QACD,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,KAAK,EAAE,MAAM;SACd,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;+GA/EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAjDvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBL,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uSAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAwBM,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAvDlC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA;wBACP,kBAAkB;qBACrB,EACW,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBL,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uSAAA,CAAA,EAAA,CAAA;8BAmCI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACwC,aAAa,EAAA,CAAA;sBAA1D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MClCjC,uBAAuB,CAAA;AA7CpC,IAAA,WAAA,GAAA;QAiDW,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAElE,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAwB9B,KAAA;IAtBC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;+GArCU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAzCxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaL,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA4BM,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA7CnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaL,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA,CAAA;8BA+BI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAC+B,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCnCzB,sBAAsB,CAAA;AAnBnC,IAAA,WAAA,GAAA;QAoBE,IAAiB,CAAA,iBAAA,GAAwB,EAAE,CAAC;QAClC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAInB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAwB,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAmEnE,KAAA;IAhEC,UAAU,GAAA;QACR,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACvC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,KACG,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,GAClJ;YACA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;SACxE;KACF;IAED,qBAAqB,CAAC,KAAY,EAAE,SAA4B,EAAA;AAC9D,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;KACF;IAEO,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvH,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;SAC7C;aAAM;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SACxB;KACF;AAEO,IAAA,MAAM,CAAC,SAAkD,EAAA;AAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YACtE,IAAI,CAAE,KAAuB,CAAC,GAAG,KAAK,SAAS,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW,KAAK,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;gBAC1H,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;YACD,IAAI,CAAE,KAAuB,CAAC,GAAG,KAAK,WAAW,IAAK,KAAuB,CAAC,GAAG,KAAK,YAAY,KAAK,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1J,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC1E,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW;gBAC7C,KAAuB,CAAC,GAAG,KAAK,WAAW;gBAC3C,KAAuB,CAAC,GAAG,KAAK,YAAY;AAC5C,gBAAA,KAAuB,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACJ;+GA9EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAbvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWC,YAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAbT,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAeb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,sBAAsB;AACzB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWC,YAAA,CAAA;AACZ,iBAAA,CAAA;8BAKU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;ICtCG,iBAcX;AAdD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAAgC,CAAA;AAChC,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,gBAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAdW,gBAAgB,KAAhB,gBAAgB,GAc3B,EAAA,CAAA,CAAA;;MC4CY,0BAA0B,CAAA;AAUrC,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAP1C,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,YAAY,EAAU,CAAC;QAEpE,IAAO,CAAA,OAAA,GAAG,OAAO,CAAA;QACjB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;AAGhC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAG,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAG,CAAC,CAAC;KACtD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;KAChC;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrC;+GAvBU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAxC3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA3CC,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAElB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA0CR,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAjDtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,kBAAkB;wBAClB,oBAAoB;wBACpB,iBAAiB;AACpB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA;AACF,iBAAA,CAAA;sFAEU,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MCzBI,qBAAqB,CAAA;AA0BhC,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,CAAA,CAAE,GAAG,IAAI,CAAC,YAAY,CAAC;KAC3G;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,cAAc,CAAA,CAAE,GAAG,IAAI,CAAC,cAAc,CAAC;KACnH;AAGD,IAAA,IAAI,IAAI,GAAA,EAAK,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;AACzF,IAAA,IAAI,MAAM,GAAA,EAAK,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;AAE7F,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAlC3C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAGrB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;QAC/D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAChE,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAGtC,QAAA,IAAA,CAAA,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC;QAC1C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChE,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACtE,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;QACnC,IAAc,CAAA,cAAA,GAAkB,IAAI,CAAC;KAcmB;IAExD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,MAAM,UAAU,CAAC,IAAyB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AAC9C,YAAA,SAAS,EAAE,0BAA0B;AACrC,YAAA,cAAc,EAAE;AACd,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK;AACtB,qBAAC,IAAI,KAAK,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,SAAS;gBACtH,IAAI;AACL,aAAA;AACF,SAAA,CAAC,CAAC;QAEH,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;;AAGjC,YAAA,IAAI,IAAI,KAAK,OAAO,EAAE;;;AAGpB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9B,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;aAEpB;AAAM,iBAAA,IAAI,IAAI,KAAK,SAAS,EAAE;;;AAG7B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;KACvB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAE,CAAA,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3F,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,cAAc,CAAE,CAAA,GAAG,IAAI,CAAC,cAAc,CAAC;AACnG,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,aAAa,CAAI,CAAA,EAAA,eAAe,EAAE,CAAC;YAEvD,IAAI,CAAC,KAAK,GAAG;AACX,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,KAAK,EAAE,QAAQ;aAChB,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;KACF;+GA3HU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EARtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAML,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAlBH,WAAW,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAoBF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA1BjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,kBAAkB;wBAClB,oBAAoB;wBACpB,WAAW;qBACd,EAWW,QAAA,EAAA,CAAA;;;;;;AAML,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,CAAA;sFAKI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACgC,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MC6FzB,iBAAiB,CAAA;AAtI9B,IAAA,WAAA,GAAA;QAuIW,IAAQ,CAAA,QAAA,GAAW,OAAO,CAAC;QAI3B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAGrB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAyB,CAAA,yBAAA,GAAgC,KAAK,CAAC;QAE/D,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,OAAO,GAAqB,gBAAgB,CAAC,IAAI,CAAC;QAGlD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAM1D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAuEpB,QAAA,IAAA,CAAA,QAAQ,GAAyB,MAAK,GAAO,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAO,CAAC;AAyB9C,KAAA;IAhGC,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,KAAK,EAAE;AAC3C,YAAA,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;SAChC;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAEO,kBAAkB,GAAA;AACxB,QAAA,QAAQ,IAAI,CAAC,OAAO;YAClB,KAAK,gBAAgB,CAAC,YAAY,CAAC;YACnC,KAAK,gBAAgB,CAAC,IAAI,CAAC;YAC3B,KAAK,gBAAgB,CAAC,aAAa;AACjC,gBAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,gBAAgB,CAAC,MAAM;AAC1B,gBAAA,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,gBAAgB,CAAC,KAAK;AACzB,gBAAA,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,gBAAgB,CAAC,IAAI;AACxB,gBAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;gBAC9B,MAAM;SACP;KACJ;AAMD,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACrC;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;KACF;IAGD,gBAAgB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AACD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;+GAtIU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAvHjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,iBAAiB;AAC9B,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAkJU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,8EACtB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACvB,qBAAqB,EACrB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qBAAqB,EACrB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,EArJvB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GO,kBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA7Hf,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAyHZ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAtI7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,aAAa,EAAE,2BAA2B;AAC3C,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,qBAAqB;wBACrB,sBAAsB;wBACtB,uBAAuB;wBACvB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;AACxB,qBAAA;AACC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAmB,iBAAA;AAC9B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GO,kBAAA,CAAA;AAClB,iBAAA,CAAA;8BAEU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAC4B,UAAU,EAAA,CAAA;sBAA5C,SAAS;uBAAC,sBAAsB,CAAA;gBACG,WAAW,EAAA,CAAA;sBAA9C,SAAS;uBAAC,uBAAuB,CAAA;gBACA,SAAS,EAAA,CAAA;sBAA1C,SAAS;uBAAC,qBAAqB,CAAA;gBACE,SAAS,EAAA,CAAA;sBAA1C,SAAS;uBAAC,qBAAqB,CAAA;gBACG,UAAU,EAAA,CAAA;sBAA5C,SAAS;uBAAC,sBAAsB,CAAA;gBACxB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAuFN,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,UAAU,CAAA;;;AC/Q1B;;AAEG;;;;"}
|
|
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-date.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.component.ts","../../../../projects/softpak/components/spx-inputs/softpak-components-spx-inputs.ts"],"sourcesContent":["\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxValuePair } from './spx-value-interface';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faEdit, faQuestion, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n selector: 'spx-input-box',\n standalone: true,\n imports: [\n SpxButtonComponent,\n FontAwesomeModule\n],\n template: `<div class=\"flex rounded w-full gap-3\"\n [class.rounded-none]=\"this.spxShowValidationMessages\"\n [class.rounded-t]=\"this.spxShowValidationMessages\"\n [class.outline-none]=\"this.spxFocused && !this.spxReadonly\"\n [class.ring-2]=\"this.spxFocused && !this.spxReadonly\"\n [class.ring-offset-2]=\"this.spxFocused && !this.spxReadonly\"\n [class.ring-blue-500]=\"this.spxFocused && !this.spxReadonly\"\n [class.bg-white]=\"!this.spxReadonly\"\n [class.bg-gray-300]=\"this.spxReadonly\"\n [class.cursor-not-allowed]=\"this.spxReadonly\">\n <div class=\"flex-auto p-3\"\n [class.p-0]=\"this.spxCompact\"\n [class.flex]=\"this.spxCompact\"\n [class.items-center]=\"this.spxCompact\">\n @if (this.spxShowLabel) {\n <div class=\"font-bold text-sm mb-1 text-gray-800\"\n [class.mb-0]=\"this.spxCompact\"\n [class.px-3]=\"this.spxCompact\">\n {{this.spxLabel}} @if (spxRequired) {\n <span class=\"text-red-800\">*</span>\n }\n </div>\n }\n <ng-content select=\"[controls]\"></ng-content>\n </div>\n <div class=\"flex flex-none gap-1 p-1\">\n @if (this.spxShowEdit) {\n <spx-button\n (spxClick)=\"onEdit()\"\n [spxFullHeight]=\"true\"\n [spxSize]=\"'xl'\"\n [spxType]=\"'button'\">\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowHelp) {\n <spx-button\n (spxClick)=\"onHelp()\"\n [spxFullHeight]=\"true\"\n [spxDisabled]=\"this.spxReadonly\"\n [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\"\n [spxType]=\"'button'\">\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowSearch) {\n <spx-button\n (spxClick)=\"onSearch()\"\n [spxFullHeight]=\"true\"\n [spxDisabled]=\"this.spxReadonly\"\n [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\"\n [spxType]=\"'button'\">\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowClear) {\n <spx-button\n (spxClick)=\"onClear()\"\n [spxDisabled]=\"this.spxReadonly || !this.spxValue?.value\"\n [spxFullHeight]=\"true\"\n [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\"\n [spxType]=\"'button'\">\n <fa-icon [icon]=\"faTimes\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n </div>\n </div>\n @if (this.spxShowValidationMessages) {\n <div class=\"bg-red-600 rounded-b text-white p-3\">\n <ng-content select=\"[validation-messages]\"></ng-content>\n </div>\n }`,\n})\nexport class SpxInputBoxComponent {\n faEdit = faEdit;\n faSearch = faSearch;\n faQuestion = faQuestion;\n faTimes = faTimes;\n @Input() spxCompact?: boolean;\n @Input() spxFocused = false;\n @Input() spxLabel?: string;\n @Input() spxReadonly = false;\n @Input() spxRequired?: boolean;\n @Input() spxShowClear = true;\n @Input() spxShowEdit?: boolean;\n @Input() spxShowHelp?: boolean;\n @Input() spxShowLabel = true;\n @Input() spxShowSearch?: boolean;\n @Input() spxShowValidationMessages?: boolean | null | undefined;\n @Input() spxValue?: SpxValuePair<any>;\n @Output() spxClear: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxSearch: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxFocusOut: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxEdit: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxHelp: EventEmitter<void> = new EventEmitter<void>();\n @HostListener('focusin', [\"$event\"]) handleFocusIn(ev: Event) {\n this.emitFocusIn();\n }\n @HostListener('focusout', [\"$event\"]) handleFocusOut(ev: FocusEvent) {\n const thisEl = this.elRef.nativeElement as HTMLElement;\n const relatedElement = ev.relatedTarget as HTMLElement;\n if (!relatedElement || !thisEl.contains(relatedElement)) {\n this.emitFocusOut();\n }\n }\n @HostListener('document:click', [\"$event\"]) handleWindowClick(ev: Event) {\n if (ev.composedPath().includes(this.elRef.nativeElement)) {\n this.emitFocusIn();\n } else {\n this.emitFocusOut();\n }\n }\n\n onClear() {\n this.spxClear.emit();\n }\n\n onSearch() {\n this.spxSearch.emit();\n }\n\n onEdit() {\n this.spxEdit.emit();\n }\n\n onHelp() {\n this.spxHelp.emit();\n }\n\n constructor(private elRef: ElementRef) {\n }\n\n private emitFocusIn(): void {\n if (!this.spxFocused) {\n this.spxFocus.emit();\n }\n }\n\n private emitFocusOut(): void {\n if (this.spxFocused) {\n this.spxFocusOut.emit();\n }\n }\n}\n","\nimport { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { Subscription, fromEvent } from 'rxjs';\n\n@Component({\n selector: 'spx-dropdown',\n standalone: true,\n imports: [\n SpxButtonComponent\n],\n template: `<div class=\"relative text-black\">\n <div\n class=\"absolute bg-gray-100 left-0 right-0 z-20\">\n @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {\n <button\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\"\n [class.bg-gray-100]=\"i === this.focusPosition\"\n [class.bg-white]=\"i !== this.focusPosition\"\n (click)=\"this.handleSuggestionClick(valuePair)\"\n [attr.tabindex]=\"-1\"\n [attr.type]=\"'button'\">\n <div class=\"flex-1 p-1 font-bold text-lg\">{{valuePair?.description}}</div>\n <spx-button (spxClick)=\"this.handleSuggestionClick(valuePair)\" [spxType]=\"'button'\" [spxTabIndex]=\"-1\">Select</spx-button>\n </button>\n }\n </div>\n </div>`,\n})\nexport class SpxDropdownComponent implements OnChanges, OnInit, OnDestroy {\n protected focusPosition = 0;\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\n @Output() spxSelect: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n subscriptionKeyUp?: Subscription;\n\n ngOnInit(): void {\n this.listenToKeyUp();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.focusPosition = 0;\n }\n\n ngOnDestroy(): void {\n this.subscriptionKeyUp?.unsubscribe();\n }\n\n handleSuggestionClick(valuePair: SpxValuePair<string | number | boolean>) {\n this.select(valuePair);\n }\n\n private listenToKeyUp(): void {\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\n if ((event as KeyboardEvent).key === 'ArrowUp' && this.focusPosition > 0) {\n this.focusPosition = this.focusPosition - 1;\n event.preventDefault();\n }\n if ((event as KeyboardEvent).key === 'ArrowDown' && this.focusPosition < this.spxSuggestions.length - 1) {\n this.focusPosition = this.focusPosition + 1;\n event.preventDefault();\n }\n if ((event as KeyboardEvent).key === 'Enter' && this.spxSuggestions.length > 0) {\n this.select(this.spxSuggestions.at(this.focusPosition)!);\n event.preventDefault();\n }\n });\n }\n\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\n this.focusPosition = 0;\n this.spxSelect.emit(valuePair);\n }\n}\n","\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\nimport { SpxDropdownComponent } from './spx-dropdown.component';\n\n@Component({\n selector: 'spx-input-text',\n standalone: true,\n imports: [\n SpxDropdownComponent\n],\n template: `<div class=\"relative text-black\">\n <input\n #input\n class=\"font-bold text-lg w-full outline-none\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [class.bg-white]=\"!this.spxReadonly\"\n [class.bg-gray-300]=\"this.spxReadonly\"\n [class.cursor-not-allowed]=\"this.spxReadonly\"\n [class.uppercase]=\"this.spxCapitalize\"\n [attr.autocomplete]=\"this.spxAutocomplete ? this.spxAutocomplete : undefined\"\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.inputMode]=\"this.spxInputMode ? this.spxInputMode : undefined\"\n [attr.pattern]=\"this.spxPattern ? this.spxPattern : undefined\"\n [attr.name]=\"this.spxName\"\n [attr.type]=\"this.spxType\"\n [value]=\"this.value?.description ? this.value?.description : this.value?.value\"\n (blur)=\"this.handleBlur()\"\n (keyUp)=\"this.handleKeyUp()\"\n (focus)=\"this.handleFocus()\"\n (input)=\"this.handleDescriptionInput($event)\"\n />\n @if (this.value?.description && this.value?.value && this.value?.description?.valueOf() !== this.value?.value?.valueOf()) {\n <span>{{this.value?.value}}</span>\n }\n @if (this.spxFocused && (this.spxType === 'overlay' || this.spxType === 'overlaynumber')) {\n <spx-dropdown\n [spxSuggestions]=\"this.spxSuggestions\" (spxSelect)=\"this.handleSuggestionClick($event)\">\n </spx-dropdown>\n }\n </div>`,\n})\nexport class SpxInputTextComponent {\n // private elInput?: HTMLElement;\n // @Element() el!: HTMLElement;\n @Input() spxName?: string;\n @Input() spxAutofocus = false;\n @Input() spxAutocomplete?: string;\n @Input() spxInputMode?: string;\n @Input() spxPattern?: string;\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\n @Input() spxReadonly = false;\n @Input() spxValidators?: any[];\n @Input() spxCapitalize = false;\n @Input() spxFocused = true;\n @Input() spxType: 'autocomplete' | 'overlay' | 'overlaynumber' | 'text' | 'password' = 'text';\n @Input() value?: SpxValuePair<any>;\n @Output() spxBlurFromChild: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Input() spxWasInternalUpdate = false;\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\n \n \n spxSetFocus() {\n this.inputRef?.nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus) {\n this.spxFocus.emit();\n this.spxSetFocus();\n }\n }\n\n handleBlur() {\n this.spxBlurFromChild.emit();\n }\n\n handleFocus() {\n this.spxFocus.emit();\n }\n\n handleDescriptionInput(event: any) {\n this.value = {\n description: event.target ? event.target.value : null,\n value: event.target ? event.target.value : null,\n };\n this.spxChange.emit(this.value);\n }\n\n handleSuggestionClick(value: any) {\n if (!this.spxReadonly) {\n this.value = value;\n this.spxChange.emit(this.value);\n this.spxFocused = false;\n }\n }\n\n handleKeyUp() {\n this.spxFocused = true;\n }\n}\n","\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\nimport { DateTime } from 'luxon';\nimport { SpxValuePair } from './spx-value-interface';\n\n@Component({\n selector: 'spx-input-date',\n standalone: true,\n imports: [\n SpxSuggestionComponent\n ],\n template: `<div class='spx-input-date__controls'>\n <input\n class='spx-input-date__input'\n [attr.value]=\"this.spxInternalValue.years\"\n (focus)=\"this.handleFocus('years')\"\n (input)=\"this.handleYearInput($event)\"\n (keyDown)=\"this.handleKeyDown($event)\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1900\"\n [attr.max]=\"2100\"\n [attr.step]=\"1\"\n />\n <div class='spx-input-date__control-label'>Year</div>\n @if (this.spxSelectMonth) {\n <input\n class='spx-input-date__input'\n [attr.value]=\"this.spxInternalValue.months\"\n (focus)=\"this.handleFocus('months')\"\n (input)=\"this.handleMonthInput($event)\"\n (keyDown)=\"this.handleKeyDown($event)\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"12\"\n [attr.step]=\"1\" />\n }\n <div class='spx-input-date__control-label'>Month</div>\n @if (this.spxSelectDay) {\n <input\n class='spx-input-date__input'\n [attr.value]=\"this.spxInternalValue.days\"\n (focus)=\"this.handleFocus('days')\"\n (input)=\"this.handleDayInput($event)\"\n (keyDown)=\"this.handleKeyDown($event)\"\n [attr.type]=\"'number'\"\n [attr.min]=\"1\"\n [attr.max]=\"31\"\n [attr.step]=\"1\" />\n <div class='spx-input-date__control-label'>Days</div>\n }\n </div>\n <div class='spx-input-date__suggestions'>\n @for (valuePair of spxSuggestions[spxSelectStep]; track valuePair) {\n <spx-suggestion\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\n }\n </div>`,\n styles: `\n :host {\n display: block;\n }\n\n .spx-input-date__input {\n background-color: transparent;\n border: 1px solid #979797;\n border-radius: 4px;\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\n box-sizing: border-box;\n font-size: 16px;\n margin-right: 10px;\n padding: 6px;\n text-align: center;\n width: 100%;\n }\n\n .spx-input-date__input:active {\n transform: scale(0.95);\n }\n\n .spx-input-date__input:focus {\n border: var(--spx-input-box--focus--border, 1px solid rgb(115, 168, 210));\n border-radius: 4px;\n outline: none;\n }\n\n .spx-input-date__control-label {\n align-items: center;\n color: rgba(0, 0, 0, .7);\n display: inline-grid;\n font-size: 13px;\n letter-spacing: 1px;\n }\n\n .spx-input-date__input::-webkit-outer-spin-button,\n .spx-input-date__input::-webkit-inner-spin-button {\n /* display: none; <- Crashes Chrome on hover */\n -webkit-appearance: none;\n margin: 0; /* <-- Apparently some margin are still there even though it's hidden */\n }\n\n .spx-input-date__input[type=number] {\n -moz-appearance:textfield; /* Firefox */\n }\n\n .spx-input-date__suggestions,\n .spx-input-date__controls {\n display: grid;\n grid-gap: 8px;\n grid-template-columns: repeat(4, 1fr);\n margin-top: 8px;\n }\n`,\n})\nexport class SpxInputDateComponent {\n private elYear?: HTMLElement;\n private elMonth?: HTMLElement;\n private elDay?: HTMLElement;\n // @Element() el!: HTMLElement;\n @Input() spxMax?: string;\n @Input() spxMin?: string;\n @Input() spxName?: string;\n @Input() spxReadonly = false;\n @Input() spxValidators?: any[];\n @Input() spxFocused = true;\n @Input() spxSelectMonth = true;\n @Input() spxSelectDay = true;\n @Input() value?: SpxValuePair<string>;\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Input() spxLastKeyPressed!: null;\n @Input() spxSelectStep: 'years' | 'days' | 'months' = 'years';\n @Input() spxInternalValue: {\n years?: number;\n months?: number;\n days?: number;\n } = {};\n @Input() spxSuggestions: {\n years: SpxValuePair<number>[];\n months: SpxValuePair<number>[];\n days: SpxValuePair<number>[];\n } = {\n years: [],\n months: [{\n description: 'Jan',\n value: 1,\n }, {\n description: 'Feb',\n value: 2,\n }, {\n description: 'Mar',\n value: 3,\n }, {\n description: 'Apr',\n value: 4,\n }, {\n description: 'May',\n value: 5,\n }, {\n description: 'Jun',\n value: 6,\n }, {\n description: 'Jul',\n value: 7,\n }, {\n description: 'Aug',\n value: 8,\n }, {\n description: 'Sep',\n value: 9,\n }, {\n description: 'Oct',\n value: 10,\n }, {\n description: 'Nov',\n value: 11,\n }, {\n description: 'Dec',\n value: 12,\n }],\n days: [],\n };\n @Input() spxWasInternalUpdate = false;\n async spxSetFocus() {\n // this.elYear.focus();\n }\n // @Watch('spxValidators') watchSpxValidators(newValue) {\n // console.log('validators', newValue);\n // }\n // @Watch('value') watchValue(newValue) {\n // if (this.spxWasInternalUpdate) {\n // this.spxWasInternalUpdate = false;\n // } else {\n // const parsedValue = DateTime.fromISO(newValue?.value);\n // this.spxInternalValue.years = parsedValue.year;\n // this.spxInternalValue.months = parsedValue.month;\n // this.spxInternalValue.days = parsedValue.day;\n // this.spxSelectStep = 'years';\n // }\n // }\n\n constructor() {\n this.suggestYears();\n }\n\n componentWillLoad() {\n const parsedValue = this.value ? DateTime.fromISO(this.value!.value) : DateTime.now();\n this.spxInternalValue.years = parsedValue.year;\n this.spxInternalValue.months = parsedValue.month;\n this.spxInternalValue.days = parsedValue.day;\n }\n\n handleDayInput(event: any) {\n this.spxInternalValue.days = event.target ? event.target.value : null;\n this.updateValue();\n }\n\n handleMonthInput(event: any) {\n this.spxInternalValue.months = event.target ? event.target.value : null;\n this.afterMonthChange();\n }\n\n afterMonthChange() {\n if (this.spxInternalValue.months!.toString().length === 2 && this.spxSelectDay && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {\n this.elDay?.focus();\n }\n this.updateValue();\n }\n\n handleYearInput(event: any) {\n this.spxInternalValue.years = event.target ? event.target.value : null;\n this.afterYearChange();\n }\n\n afterYearChange() {\n if (this.spxInternalValue.years!.toString().length === 4 && this.spxSelectMonth && this.spxLastKeyPressed !== 38 && this.spxLastKeyPressed !== 40) {\n this.elMonth?.focus();\n }\n this.updateValue();\n }\n\n handleInput(event: any) {\n this.setValue(event.target ? event.target.value : null);\n }\n\n handleFocus(step: 'years' | 'months' | 'days') {\n this.spxSelectStep = step;\n this.spxFocus.emit();\n }\n\n handleKeyDown(event: any) {\n this.spxLastKeyPressed = event.which;\n }\n\n handleSuggestionClick(value: number) {\n this.spxLastKeyPressed = null;\n this.spxInternalValue[this.spxSelectStep] = value;\n this.updateValue();\n this.doneWithField();\n }\n\n updateValue() {\n const concatenatedValue = `${this.spxInternalValue.years ? this.spxInternalValue.years : ``}${this.spxInternalValue.months ? `-${this.spxInternalValue.months < 10 ? `0${this.spxInternalValue.months}` : this.spxInternalValue.months}` : ``}${this.spxInternalValue.days ? `-${this.spxInternalValue.days < 10 ? `0${this.spxInternalValue.days}` : this.spxInternalValue.days}` : ``}`\n const parsedValue = DateTime.fromISO(concatenatedValue);\n this.spxWasInternalUpdate = true;\n this.value = {\n description: parsedValue.toISO(),\n value: parsedValue.toISO()!,\n };\n this.spxChange.emit(this.value);\n }\n\n doneWithField() {\n if (this.spxSelectStep === 'days') {\n this.spxSelectStep = 'years';\n } else if (this.spxSelectStep === 'months') {\n this.spxSelectStep = this.spxSelectDay ? 'days' : 'years';\n this.afterMonthChange();\n } else if (this.spxSelectStep === 'years') {\n this.afterYearChange();\n this.spxSelectStep = this.spxSelectMonth ? 'months' : 'years';\n }\n }\n\n setValue(value: any) {\n this.spxInternalValue = value;\n const parsed = DateTime.fromISO(value);\n this.value = {\n description: parsed.toISO(),\n value: parsed.toISO()!,\n };\n this.spxChange.emit(this.value);\n this.spxWasInternalUpdate = true;\n }\n\n private suggestYears(): void {\n console.log('suggest years');\n this.spxSuggestions.years = [];\n for (let year = DateTime.fromISO(this.spxMin!).year; year <= DateTime.fromISO(this.spxMax!).year; year++) {\n this.spxSuggestions.years.push({\n description: `'${year.toString().substring(2, 4)}`,\n value: year,\n });\n }\n console.log('suggest years', this.spxSuggestions);\n }\n}\n","\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\n\n@Component({\n selector: 'spx-input-float',\n standalone: true,\n imports: [\n SpxButtonComponent\n],\n template: `<div class=\"flex items-end\">\n <input\n #firstInputRef\n class=\"spx-input-float__input\"\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.pattern]=\"'[0-9]*'\"\n [attr.step]=\"1\"\n [attr.type]=\"'text'\"\n [attr.value]=\"this.internalValue?.first ? this.internalValue?.first : undefined\"\n [class.spx-input-float--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n (focus)=\"this.handleFocus()\"\n (input)=\"this.handleInput($event, 1)\" />\n <span class=\"text-black font-bold text-2xl mx-4\">,</span>\n <input\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\n class=\"spx-input-float__input\"\n [class.spx-input-float--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.value]=\"this.internalValue?.second ? this.internalValue?.second : undefined\"\n (focus)=\"this.handleFocus()\"\n (input)=\"this.handleInput($event, 2)\"\n [attr.step]=\"1\"\n [attr.type]=\"'text'\"\n [attr.pattern]=\"'[0-9]*'\" />\n</div>`,\n styles: `\n :host {\n display: block;\n}\n\n.spx-input-float__input {\n border: 1px solid #333333;\n border-radius: 8px;\n background-color: transparent;\n box-sizing: border-box;\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\n flex: 1;\n font-size: 20px;\n font-weight: bold;\n padding: 8px;\n width: 100%;\n}\n\n.spx-input-float__input:focus {\n outline: none;\n}\n `,\n})\nexport class SpxInputFloatComponent {\n // private elFirstInput?: HTMLElement;\n // private elSecondInput?: HTMLElement;\n protected internalValue: {\n first: number | null;\n second: number | null;\n } = {\n first: null,\n second: null,\n };\n // @Element() el!: HTMLStencilElement;\n @Input() spxName!: string;\n @Input() spxAutofocus = false;\n @Input() spxReadonly = false;\n @Input() spxValidators!: any[];\n @Input() spxFocused = true;\n @Input() spxStep?: number;\n @Input() value!: SpxValuePair<any>;\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Input() spxWasInternalUpdate = false;\n @Input() tick = {};\n @ViewChild('firstInputRef', { static: true }) firstInputRef?: ElementRef<HTMLInputElement>;\n \n spxSetFocus() {\n this.firstInputRef?.nativeElement?.focus();\n }\n\n // @Watch('value') onValueChanged(newValue: SpxValuePair<any>, _oldValue: SpxValuePair<any>) {\n // this.handleSetValue(newValue);\n // }\n\n componentDidLoad() {\n if (this.spxAutofocus) {\n this.spxFocus.emit();\n this.spxSetFocus();\n }\n this.handleSetValue(this.value);\n }\n\n handleFocus() {\n this.spxFocus.emit();\n }\n\n handleSetValue(newValue: SpxValuePair<any>) {\n if (this.isNumeric(newValue?.value)) {\n this.internalValue = {\n first: Math.floor(parseFloat(newValue?.value)),\n second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,\n };\n } else {\n this.internalValue = {\n first: null,\n second: null,\n };\n }\n this.tick = {};\n }\n\n handleInput(event: any, position: 1 | 2) {\n this.internalValue = {\n first: position === 1 ? (event.target ? event.target.value : null) : this.internalValue.first,\n second: position === 2 ? (event.target ? event.target.value : null) : this.internalValue.second,\n };\n let result;\n if (this.internalValue.first === null && this.internalValue.second === null) {\n result = null;\n } else {\n result = `${this.internalValue.first ? this.internalValue.first : 0}.${this.internalValue.second ? this.internalValue.second : 0}`;\n }\n this.value = {\n description: result,\n value: result,\n };\n this.spxChange.emit(this.value);\n }\n\n isNumeric(value: string) {\n return /^[+-]?\\d+(\\.\\d+)?$/.test(value);\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\n\n@Component({\n selector: 'spx-input-number',\n standalone: true,\n imports: [],\n template: `<div class=\"spx-input-number__controls\">\n <input\n #input\n class=\"spx-input-number__input\"\n [attr.autofocus]=\"this.spxAutofocus ? this.spxAutofocus : undefined\"\n [class.spx-input-number--readonly]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.disabled]=\"this.spxReadonly ? this.spxReadonly : undefined\"\n [attr.inputMode]=\"this.spxInputMode ? this.spxInputMode : undefined\"\n [attr.value]=\"this.value?.value ? this.value?.value : undefined\"\n [attr.step]=\"this.spxStep ? this.spxStep : undefined\"\n [attr.type]=\"'number'\"\n (focus)=\"this.handleFocus()\"\n (input)=\"this.handleInput($event)\" />\n</div>`,\n styles: `\n:host {\n display: block;\n}\n\n.spx-input-number__input {\n border: 0;\n background-color: transparent;\n box-sizing: border-box;\n color: var(--spx-input--color, rgba(0, 0, 0, .9));\n font-size: 20px;\n font-weight: bold;\n margin-right: 10px;\n padding: 0;\n width: 100%;\n}\n\n.spx-input-number__input:focus {\n outline: none;\n}\n\n.spx-input-number__value {\n color: rgba(0, 0, 0, .6);\n font-size: 14px;\n}\n `,\n})\nexport class SpxInputNumberComponent {\n // private elInput?: HTMLElement;\n // @Element() el!: HTMLElement;\n @Input() spxName!: string;\n @Input() spxAutofocus = false;\n @Input() spxInputMode?: string;\n @Input() spxReadonly = false;\n @Input() spxValidators!: any[];\n @Input() spxFocused = true;\n @Input() spxStep?: number;\n @Input() value?: SpxValuePair<any>;\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\n spxWasInternalUpdate = false;\n \n spxSetFocus() {\n this.inputRef?.nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus) {\n this.spxFocus.emit();\n this.spxSetFocus();\n }\n }\n\n handleFocus() {\n this.spxFocus.emit();\n }\n\n handleInput(event: any) {\n this.value = {\n description: event.target ? event.target.value : null,\n value: event.target ? event.target.value : null,\n };\n this.spxChange.emit(this.value);\n }\n}","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\n\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\n@Component({\n selector: 'spx-input-radio',\n standalone: true,\n imports: [\n SpxSuggestionComponent\n],\n template: `<div class=\"grid grid-cols-2 gap-2\" [class.mt-3]=\"this.spxShowLabel\">\n @for (valuePair of this.cachedSuggestions; track valuePair; let i = $index) {\n <spx-suggestion\n [spxDisabled]=\"this.spxReadonly\"\n [spxFocused]=\"this.spxFocused && i === this.focusPosition\"\n [spxSelected]=\"this.value?.value === valuePair?.value\"\n [spxTabbable]=\"this.focusPosition === i\"\n (click)=\"this.handleSuggestionClick($event, valuePair)\">\n {{valuePair?.description}}\n </spx-suggestion>\n }\n </div>`,\n})\nexport class SpxInputRadioComponent {\n cachedSuggestions: SpxValuePair<any>[] = [];\n protected focusPosition = 0;\n // @Element() el!: HTMLElement;\n @Input() spxName?: string;\n @Input() spxValidators!: any[];\n @Input() spxFocused = false;\n @Input() spxShowLabel = true;\n @Input() spxReadonly = false;\n @Input() spxSuggestions: SpxValuePair<any>[] = [];\n @Input() value?: SpxValuePair<any>;\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n private subscriptionKeyUp?: Subscription;\n private subscriptionKeyDown?: Subscription;\n spxFocusIn() {\n this.listenToKeys();\n this.determineFocusPosition();\n }\n\n spxFocusOut() {\n this.subscriptionKeyDown?.unsubscribe();\n this.subscriptionKeyUp?.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n (changes['spxSuggestions'] && JSON.stringify(changes['spxSuggestions']?.previousValue) !== JSON.stringify(changes['spxSuggestions']?.currentValue))\n ) {\n this.cachedSuggestions = changes['spxSuggestions']?.currentValue ?? [];\n }\n }\n\n handleSuggestionClick(event: Event, valuePair: SpxValuePair<any>) {\n if (this.spxReadonly) {\n console.log('spxInputRadio: clicked, but readonly');\n } else {\n console.log('spxInputRadio: clicked');\n this.select(valuePair);\n }\n }\n\n private determineFocusPosition() {\n if (this.value && this.spxSuggestions?.length) {\n const index = this.spxSuggestions.findIndex(valuePair => valuePairToValue(valuePair) === valuePairToValue(this.value));\n this.focusPosition = index >= 0 ? index : 0;\n } else {\n this.focusPosition = 0;\n }\n }\n\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\n this.focusPosition = 0;\n this.value = valuePair;\n this.spxChange.emit(valuePair);\n }\n\n private listenToKeys(): void {\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\n if (((event as KeyboardEvent).key === 'ArrowUp' || (event as KeyboardEvent).key === 'ArrowLeft') && this.focusPosition > 0) {\n this.focusPosition = this.focusPosition - 1;\n this.select(this.spxSuggestions.at(this.focusPosition)!);\n event.preventDefault();\n }\n if (((event as KeyboardEvent).key === 'ArrowDown' || (event as KeyboardEvent).key === 'ArrowRight') && this.focusPosition < this.spxSuggestions.length - 1) {\n this.focusPosition = this.focusPosition + 1;\n this.select(this.spxSuggestions.at(this.focusPosition)!);\n event.preventDefault();\n }\n });\n this.subscriptionKeyDown = fromEvent(window, 'keydown').subscribe((event) => {\n if ((event as KeyboardEvent).key === 'ArrowDown' ||\n (event as KeyboardEvent).key === 'ArrowLeft' ||\n (event as KeyboardEvent).key === 'ArrowRight' ||\n (event as KeyboardEvent).key === 'ArrowUp') {\n event.preventDefault();\n }\n });\n }\n}","export enum SpxInputTypeEnum {\n autocomplete = 'autocomplete',\n button = 'button',\n date = 'date',\n float = 'float',\n hidden = 'hidden',\n overlay = 'overlay',\n overlayNumber = 'overlaynumber',\n radio = 'radio',\n number = 'number',\n password = 'password',\n text = 'text',\n textNumericKeyboard = 'textNumericKeyboard',\n time = 'time',\n}","\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxDropdownComponent } from './spx-dropdown.component';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { IonicModule, ModalController } from '@ionic/angular';\n\n@Component({\n selector: 'spx-input-time-modal',\n standalone: true,\n imports: [\n IonicModule,\n SpxButtonComponent,\n SpxDropdownComponent,\n FontAwesomeModule\n],\n template: `<ion-header>\n <ion-toolbar>\n <ion-title>Select {{view}}</ion-title>\n <ion-buttons slot=\"end\">\n <spx-button [spxSeverity]=\"typeError\" (spxClick)=\"closeDialog()\">\n <fa-icon [icon]=\"faXmark\"></fa-icon>\n </spx-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content class=\"ion-padding bg-white\">\n <!-- Uren -->\n <div class=\"custom-bg grid grid-cols-1 gap-3\">\n @if (view === 'hours') {\n <div class=\"flex-wrap gap-2\">\n <div class=\"grid grid-cols-3 md:grid-cols-4 gap-3\">\n @for (hour of hourOptions; track hour) {\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)\">\n {{ hour }}\n </div>\n }\n </div>\n </div>\n }\n <!-- Minuten -->\n @if (view === 'minutes') {\n <div class=\"grid grid-cols-1 gap-3\">\n <div class=\"grid grid-cols-4 md:grid-cols-5 gap-3\">\n @for (minute of minuteOptions; track minute) {\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)\">\n {{ minute }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n </ion-content>\n `,\n})\nexport class SpxInputTimeModalComponent {\n @Input() view!: 'hours' | 'minutes';\n @Input() value!: number;\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\n\n faXmark = faXmark\n hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23\n minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5\n typeError = SpxSeverityEnum.error;\n\n constructor(private modalController: ModalController){\n this.hourOptions.push(this.hourOptions.shift()!);\n this.minuteOptions.push(this.minuteOptions.shift()!);\n }\n\n closeDialog() {\n this.modalController.dismiss();\n }\n\n onChange(value: number) {\n this.change.emit(value);\n console.log(value);\n this.modalController.dismiss(value);\n }\n}\n","\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild, inject } from '@angular/core';\nimport { SpxValuePair } from './spx-value-interface';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxDropdownComponent } from './spx-dropdown.component';\nimport { DateTime } from 'luxon';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxInputTimeModalComponent } from './spx-input-time-modal.component';\nimport { IonicModule, ModalController } from '@ionic/angular';\n\n@Component({\n selector: 'spx-input-time',\n standalone: true,\n imports: [\n SpxButtonComponent,\n SpxDropdownComponent,\n IonicModule\n],\n styles: `\n .custom-square.selected {\n background-color: #007bff;\n color: white;\n border-color: #007bff;\n }\n .custom-bg {\n --background: #FFFFFF;\n }\n `,\n template: `<div class=\"relative text-black\">\n <div class=\"flex items-center justify-around gap-3\">\n <div class=\"grow rounded bg-gray-100 p-3 text-xl text-center font-bold\" (click)=\"openDialog('hours')\">{{ formattedHour ?? '--' }}</div>\n <div class=\"text-gray text-xl\">:</div>\n <div class=\"grow rounded bg-gray-100 p-3 text-xl text-center font-bold\" (click)=\"openDialog('minutes')\">{{ formattedMinute ?? '--' }}</div>\n </div>\n</div>`,\n})\nexport class SpxInputTimeComponent {\n // private elInput?: HTMLElement;\n // @Element() el!: HTMLElement;\n @Input() spxName?: string;\n @Input() spxAutofocus = false;\n @Input() spxInputMode?: string;\n @Input() spxPattern?: string;\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\n @Input() spxReadonly = false;\n @Input() spxValidators?: any[];\n @Input() spxCapitalize = false;\n @Input() spxFocused = true;\n @Input() spxType!: any;\n @Input() value?: SpxValuePair<any>;\n @Output() spxBlurFromChild: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Input() spxWasInternalUpdate = false;\n @ViewChild('input', { static: true }) inputRef?: ElementRef<HTMLInputElement>;\n\n severitySuccess = SpxSeverityEnum.success;\n hourOptions = Array.from({ length: 24 }, (_, i) => i).unshift(); // 0 to 23\n minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5).unshift(); // Minutes in incrementen van 5\n selectedHour: number | null = null;\n selectedMinute: number | null = null;\n\n get formattedHour() {\n return this.selectedHour !== null && this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;\n }\n\n get formattedMinute() {\n return this.selectedMinute !== null && this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;\n }\n\n\n get hour() { return this.value?.value ? DateTime.fromISO(this.value.value).hour : null; }\n get minute() { return this.value?.value ? DateTime.fromISO(this.value.value).minute : null; }\n\n constructor(private modalController: ModalController) {}\n\n spxSetFocus() {\n this.inputRef?.nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus) {\n this.spxFocus.emit();\n this.spxSetFocus();\n }\n }\n\n handleBlur() {\n this.spxBlurFromChild.emit();\n }\n\n handleFocus() {\n this.spxFocus.emit();\n }\n\n handleDescriptionInput(event: any) {\n this.value = {\n description: event.target ? event.target.value : null,\n value: event.target ? event.target.value : null,\n };\n this.spxChange.emit(this.value);\n }\n\n handleSuggestionClick(value: any) {\n if (!this.spxReadonly) {\n this.value = value;\n this.spxChange.emit(this.value);\n this.spxFocused = false;\n }\n }\n\n handleKeyUp() {\n this.spxFocused = true;\n }\n\n async openDialog(view: 'hours' | 'minutes') {\n const modal = await this.modalController.create({\n component: SpxInputTimeModalComponent,\n componentProps: {\n value: this.value?.value ?\n (view === 'hours' ? DateTime.fromISO(this.value.value).hour : DateTime.fromISO(this.value.value).minute) : undefined,\n view,\n },\n });\n\n modal.onDidDismiss().then((data) => {\n // this.appStore.dispatch(infArticleActions.reset({}));\n\n if (view === 'hours') {\n // console.log('hours');\n // console.log(data);\n this.selectedHour = data.data;\n this.openDialog('minutes');\n this.updateValue();\n\n } else if (view === 'minutes') {\n // console.log('minutes');\n // console.log(data);\n this.selectedMinute = data.data;\n this.updateValue();\n }\n });\n\n await modal.present();\n }\n\n updateValue() {\n if (this.selectedHour !== null && this.selectedMinute !== null) {\n const formattedHour = this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;\n const formattedMinute = this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;\n const newValue = `${formattedHour}:${formattedMinute}`;\n\n this.value = {\n description: newValue,\n value: newValue,\n };\n\n this.spxChange.emit(this.value);\n }\n }\n}\n","\nimport { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { SpxInputBoxComponent } from './spx-input-box.component';\nimport { SpxInputTextComponent } from './spx-input-text.component';\nimport { SpxValuePair } from './spx-value-interface';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SpxInputDateComponent } from './spx-input-date.component';\nimport { SpxInputFloatComponent } from './spx-input-float.component';\nimport { SpxInputNumberComponent } from './spx-input-number.component';\nimport { SpxInputRadioComponent } from './spx-input-radio.component';\nimport { SpxInputTypeEnum } from './spx-input-type.enum';\nimport { SpxInputTimeComponent } from './spx-input-time.component';\n\n@Component({\n selector: 'spx-input',\n standalone: true,\n host: {\n '(spxChange)': 'handleChangeEvent($event)'\n },\n imports: [\n SpxInputBoxComponent,\n SpxInputDateComponent,\n SpxInputFloatComponent,\n SpxInputNumberComponent,\n SpxInputRadioComponent,\n SpxInputTextComponent,\n SpxInputTimeComponent\n],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SpxInputComponent,\n multi: true\n }\n ],\n template: `<spx-input-box\n [spxFocused]=\"this.spxFocused\"\n [spxLabel]=\"this.spxLabel\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxRequired]=\"this.spxRequired\"\n [spxValue]=\"this.value\"\n [spxShowHelp]=\"this.spxShowHelp\"\n [spxCompact]=\"this.spxCompact\"\n [spxShowClear]=\"this.spxShowClear\"\n [spxShowEdit]=\"this.spxShowEdit\"\n [spxShowLabel]=\"this.spxShowLabel\"\n [spxShowSearch]=\"this.spxShowSearch ? this.spxShowSearch : this.spxType === 'autocomplete'\"\n [spxShowValidationMessages]=\"this.spxShowValidationMessages\"\n (spxClear)=\"this.handleClear()\"\n (spxEdit)=\"this.handleEdit()\"\n (spxHelp)=\"this.handleHelp()\"\n (spxFocus)=\"this.setFocusIn()\"\n (spxFocusOut)=\"this.setFocusOut()\"\n (spxSearch)=\"this.handleSearch()\">\n <div controls>\n @if (this.spxType === 'autocomplete' || this.spxType === 'overlay' || this.spxType === 'overlaynumber' || this.spxType === 'text' || this.spxType === 'password') {\n <spx-input-text\n (spxBlurFromChild)=\"this.handleBlur()\"\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxAutocomplete]=\"this.spxAutocomplete ? this.spxAutocomplete : undefined\"\n [spxAutofocus]=\"this.spxAutofocus\"\n [spxCapitalize]=\"this.spxCapitalize\"\n [spxFocused]=\"this.spxFocused\"\n [spxInputMode]=\"this.spxType === 'overlaynumber' ? 'numeric' : this.spxInputMode\"\n [spxName]=\"this.spxName\"\n [spxPattern]=\"this.spxType === 'overlaynumber' ? '[0-9]*' : this.spxPattern\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxSuggestions]=\"this.spxSuggestions\"\n [spxType]=\"this.spxType\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-text>\n }\n @if (this.spxType === 'date') {\n <spx-input-date\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxFocused]=\"this.spxFocused\"\n [spxMax]=\"this.spxMax\"\n [spxMin]=\"this.spxMin\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxSelectDay]=\"this.spxSelectDay\"\n [spxSelectMonth]=\"this.spxSelectMonth\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-date>\n }\n @if (this.spxType === 'float') {\n <spx-input-float\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxAutofocus]=\"this.spxAutofocus\"\n [spxFocused]=\"this.spxFocused\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxStep]=\"this.spxStep\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-float>\n }\n @if (this.spxType === 'number') {\n <spx-input-number\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxAutofocus]=\"this.spxAutofocus\"\n [spxFocused]=\"this.spxFocused\"\n [spxInputMode]=\"this.spxInputMode\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxStep]=\"this.spxStep\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-number>\n }\n @if (this.spxType === 'radio') {\n <spx-input-radio\n #radioInput\n (spxChange)=\"this.handleChange($event)\"\n [spxFocused]=\"this.spxFocused\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxShowLabel]=\"this.spxShowLabel\"\n [spxSuggestions]=\"this.spxSuggestions\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-radio>\n }\n @if (this.spxType === 'time') {\n <spx-input-time\n #timeInput\n (spxChange)=\"this.handleChange($event)\"\n (spxFocus)=\"this.handleFocus()\"\n [spxFocused]=\"this.spxFocused\"\n [spxName]=\"this.spxName\"\n [spxReadonly]=\"this.spxReadonly\"\n [spxValidators]=\"this.spxValidators\"\n [value]=\"this.value\"\n ></spx-input-time>\n }\n </div>\n <div validation-messages>\n <ng-content></ng-content>\n </div>\n </spx-input-box>`,\n})\nexport class SpxInputComponent {\n @Input() spxLabel: string = 'label';\n @Input() spxMax?: string;\n @Input() spxMin?: string;\n @Input() spxName!: string;\n @Input() spxReadonly = false;\n @Input() spxAutocomplete?: string;\n @Input() spxAutofocus = false;\n @Input() spxInputMode?: string;\n @Input() spxPattern?: string;\n @Input() spxRequired = false;\n @Input() spxSelectMonth = true;\n @Input() spxSelectDay = true;\n @Input() spxShowEdit = false;\n @Input() spxShowHelp = false;\n @Input() spxShowLabel = true;\n @Input() spxCompact = false;\n @Input() spxShowClear = true;\n @Input() spxShowSearch = false;\n @Input() spxShowValidationMessages?: boolean | null | undefined = false;\n @Input() spxStep?: number;\n @Input() spxSuggestions: SpxValuePair<boolean | number | string>[] = [];\n @Input() spxType: SpxInputTypeEnum = SpxInputTypeEnum.text;\n @Input() spxValidators!: any[];\n @Input() value!: SpxValuePair<any>;\n @Input() spxCapitalize = false;\n @Output() spxBlur: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxClear: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxChange: EventEmitter<SpxValuePair<any>> = new EventEmitter<SpxValuePair<any>>();\n @Output() spxFocus: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxEdit: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxHelp: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxSearch: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild(SpxInputFloatComponent) floatInput?: SpxInputFloatComponent;\n @ViewChild(SpxInputNumberComponent) numberInput?: SpxInputNumberComponent;\n @ViewChild(SpxInputTextComponent) textInput?: SpxInputTextComponent;\n @ViewChild(SpxInputTimeComponent) timeInput?: SpxInputTimeComponent;\n @ViewChild(SpxInputRadioComponent) radioInput?: SpxInputRadioComponent;\n @Input() spxFocused = false;\n handleBlur() {\n this.spxBlur.emit();\n }\n\n handleChange(event: any) {\n this.value = event;\n this.spxChange.emit(this.value);\n }\n\n handleClear() {\n this.spxClear.emit();\n this.spxFocused = true;\n this.passFocusToControl();\n this.value = {\n description: null,\n value: null,\n };\n this.spxChange.emit(this.value);\n }\n\n handleFocus() {\n this.spxFocus.emit();\n this.spxFocused = true;\n }\n\n handleSearch() {\n this.spxSearch.emit();\n }\n\n setFocusIn() {\n this.spxFocused = true;\n this.passFocusToControl();\n }\n\n setFocusOut() {\n this.spxFocused = false;\n if (this.spxType === SpxInputTypeEnum.radio) {\n this.radioInput?.spxFocusOut();\n }\n }\n\n handleEdit() {\n this.spxEdit.emit();\n this.spxFocused = true;\n }\n \n handleHelp() {\n this.spxHelp.emit();\n this.spxFocused = true;\n }\n\n private passFocusToControl() {\n switch (this.spxType) {\n case SpxInputTypeEnum.autocomplete:\n case SpxInputTypeEnum.text:\n case SpxInputTypeEnum.overlayNumber:\n this.textInput?.spxSetFocus();\n break;\n case SpxInputTypeEnum.number:\n this.numberInput?.spxSetFocus();\n break;\n case SpxInputTypeEnum.radio:\n this.radioInput?.spxFocusIn();\n break;\n case SpxInputTypeEnum.time:\n this.timeInput?.spxSetFocus();\n break;\n }\n }\n\n private onChange: (value: any) => void = () => {/**/};\n private onTouched: () => void = () => {/**/};\n protected lastValue: any;\n\n writeValue(value: any) {\n this.value = this.lastValue = value;\n }\n\n handleChangeEvent(value: any) {\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.onChange(value);\n }\n }\n\n @HostListener('focusout')\n _handleBlurEvent() {\n this.onTouched();\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;MA0Fa,oBAAoB,CAAA;AAuBM,IAAA,aAAa,CAAC,EAAS,EAAA;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AACqC,IAAA,cAAc,CAAC,EAAc,EAAA;AACjE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAA4B,CAAC;AACvD,QAAA,MAAM,cAAc,GAAG,EAAE,CAAC,aAA4B,CAAC;QACvD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACvD,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;AAC2C,IAAA,iBAAiB,CAAC,EAAS,EAAA;AACrE,QAAA,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YACxD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,WAAA,CAAoB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAxDrC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;QACxB,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;QAET,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEnB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QAGpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAInB,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACzD,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAC3D,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;KAoChE;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;KACF;+GAtEU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EA5ErB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA0EN,EA7EF,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,oOAClB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA8ER,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAnFhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,kBAAkB;wBAClB,iBAAiB;AACpB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EN,KAAA,CAAA;AACL,iBAAA,CAAA;+EAMU,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAC8B,aAAa,EAAA,CAAA;sBAAjD,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAGG,cAAc,EAAA,CAAA;sBAAnD,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAOQ,iBAAiB,EAAA,CAAA;sBAA5D,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC7F/B,oBAAoB,CAAA;AAxBjC,IAAA,WAAA,GAAA;QAyBY,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QACnB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;AAC9D,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AAwC9F,KAAA;IArCC,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;KACxB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACvC;AAED,IAAA,qBAAqB,CAAC,SAAkD,EAAA;AACtE,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACxB;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACtE,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;gBACxE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACD,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACD,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9E,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,MAAM,CAAC,SAAkD,EAAA;AAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;+GA1CU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAlBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;AAgBH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBL,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAoBT,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAxBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,kBAAkB;AACrB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBH,QAAA,CAAA;AACR,iBAAA,CAAA;8BAGU,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCWI,qBAAqB,CAAA;AAvClC,IAAA,WAAA,GAAA;QA2CW,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAIrB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;QAC/D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAO,CAAA,OAAA,GAAuE,MAAM,CAAC;AAEpF,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAChE,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AA0CvC,KAAA;IAtCC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;+GA3DU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAjCtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjCL,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAmCX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvCjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACvB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BH,QAAA,CAAA;AACR,iBAAA,CAAA;8BAIU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACgC,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCoDzB,qBAAqB,CAAA;AAqEhC,IAAA,MAAM,WAAW,GAAA;;KAEhB;;;;;;;;;;;;;;;AAgBD,IAAA,WAAA,GAAA;QA/ES,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAEzD,IAAa,CAAA,aAAA,GAAgC,OAAO,CAAC;QACrD,IAAgB,CAAA,gBAAA,GAIrB,EAAE,CAAC;AACE,QAAA,IAAA,CAAA,cAAc,GAInB;AACA,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,CAAC;AACP,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,CAAC;iBACT,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,EAAE;AACD,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,KAAK,EAAE,EAAE;iBACV,CAAC;AACF,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;QACK,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAoBpC,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,iBAAiB,GAAA;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QACtF,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;KAC9C;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACtE,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxE,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE;AAChJ,YAAA,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACvE,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE;AACjJ,YAAA,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;KACzD;AAED,IAAA,WAAW,CAAC,IAAiC,EAAA;AAC3C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC;KACtC;AAED,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,WAAW,GAAA;QACT,MAAM,iBAAiB,GAAG,CAAG,EAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAA,CAAE,CAAG,EAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAE,CAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAA,CAAE,GAAG,CAAE,CAAA,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA,CAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA,CAAE,GAAG,CAAE,CAAA,CAAA,CAAE,CAAA;QACzX,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE;AAChC,YAAA,KAAK,EAAE,WAAW,CAAC,KAAK,EAAG;SAC5B,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;SAC9B;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;YAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;YACzC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;SAC/D;KACF;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE;AAC3B,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,EAAG;SACvB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClC;IAEO,YAAY,GAAA;AAClB,QAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC;AAC/B,QAAA,KAAK,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;AACxG,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,gBAAA,WAAW,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA,CAAC,CAAC;SACJ;QACD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KACnD;+GA/LU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAtGtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA/CL,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAwGb,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA5GjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,sBAAsB;qBACvB,EACS,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CH,QAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+3BAAA,CAAA,EAAA,CAAA;wDA8DE,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAKG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBA6CG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;;;MC3HK,sBAAsB,CAAA;AAvDnC,IAAA,WAAA,GAAA;;;AA0DY,QAAA,IAAA,CAAA,aAAa,GAGnB;AACF,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,MAAM,EAAE,IAAI;SACb,CAAC;QAGO,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AA2DpB,KAAA;IAxDC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KAC5C;;;;IAMD,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,cAAc,CAAC,QAA2B,EAAA;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;YACnC,IAAI,CAAC,aAAa,GAAG;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aACnE,CAAC;SACH;aAAM;YACL,IAAI,CAAC,aAAa,GAAG;AACnB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,MAAM,EAAE,IAAI;aACb,CAAC;SACH;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;KAChB;IAED,WAAW,CAAC,KAAU,EAAE,QAAe,EAAA;QACrC,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA,KAAK,EAAE,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK;AAC7F,YAAA,MAAM,EAAE,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;SAChG,CAAC;AACF,QAAA,IAAI,MAAM,CAAC;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,EAAE;YAC3E,MAAM,GAAG,IAAI,CAAC;SACf;aAAM;AACL,YAAA,MAAM,GAAG,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;SACpI;QACD,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,KAAK,EAAE,MAAM;SACd,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;+GA/EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAjDvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBL,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uSAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAwBM,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAvDlC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA;wBACP,kBAAkB;qBACrB,EACW,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBL,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uSAAA,CAAA,EAAA,CAAA;8BAmCI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACwC,aAAa,EAAA,CAAA;sBAA1D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MClCjC,uBAAuB,CAAA;AA7CpC,IAAA,WAAA,GAAA;QAiDW,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAElE,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAwB9B,KAAA;IAtBC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;+GArCU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAzCxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaL,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA4BM,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA7CnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaL,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA,CAAA;8BA+BI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAC+B,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCnCzB,sBAAsB,CAAA;AAnBnC,IAAA,WAAA,GAAA;QAoBE,IAAiB,CAAA,iBAAA,GAAwB,EAAE,CAAC;QAClC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAInB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAwB,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAmEnE,KAAA;IAhEC,UAAU,GAAA;QACR,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACvC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,KACG,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,GAClJ;YACA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;SACxE;KACF;IAED,qBAAqB,CAAC,KAAY,EAAE,SAA4B,EAAA;AAC9D,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;KACF;IAEO,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvH,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;SAC7C;aAAM;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SACxB;KACF;AAEO,IAAA,MAAM,CAAC,SAAkD,EAAA;AAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YACtE,IAAI,CAAE,KAAuB,CAAC,GAAG,KAAK,SAAS,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW,KAAK,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;gBAC1H,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;YACD,IAAI,CAAE,KAAuB,CAAC,GAAG,KAAK,WAAW,IAAK,KAAuB,CAAC,GAAG,KAAK,YAAY,KAAK,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1J,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC1E,YAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,WAAW;gBAC7C,KAAuB,CAAC,GAAG,KAAK,WAAW;gBAC3C,KAAuB,CAAC,GAAG,KAAK,YAAY;AAC5C,gBAAA,KAAuB,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACJ;+GA9EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAbvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWC,YAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAbT,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAeb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,sBAAsB;AACzB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWC,YAAA,CAAA;AACZ,iBAAA,CAAA;8BAKU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;ICtCG,iBAcX;AAdD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAAgC,CAAA;AAChC,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,gBAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAdW,gBAAgB,KAAhB,gBAAgB,GAc3B,EAAA,CAAA,CAAA;;MC4CY,0BAA0B,CAAA;AAUrC,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAP1C,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,YAAY,EAAU,CAAC;QAEpE,IAAO,CAAA,OAAA,GAAG,OAAO,CAAA;QACjB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;AAGhC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAG,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAG,CAAC,CAAC;KACtD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;KAChC;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrC;+GAvBU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAxC3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA3CC,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAElB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA0CR,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAjDtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,kBAAkB;wBAClB,oBAAoB;wBACpB,iBAAiB;AACpB,qBAAA;AACC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA;AACF,iBAAA,CAAA;sFAEU,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MCzBI,qBAAqB,CAAA;AA0BhC,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,CAAA,CAAE,GAAG,IAAI,CAAC,YAAY,CAAC;KAC3G;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,cAAc,CAAA,CAAE,GAAG,IAAI,CAAC,cAAc,CAAC;KACnH;AAGD,IAAA,IAAI,IAAI,GAAA,EAAK,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;AACzF,IAAA,IAAI,MAAM,GAAA,EAAK,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;AAE7F,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAlC3C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAGrB,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;QAC/D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAGjB,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAChE,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;QACzD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAGtC,QAAA,IAAA,CAAA,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC;QAC1C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChE,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACtE,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;QACnC,IAAc,CAAA,cAAA,GAAkB,IAAI,CAAC;KAcmB;IAExD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACrD,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;SAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,MAAM,UAAU,CAAC,IAAyB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AAC9C,YAAA,SAAS,EAAE,0BAA0B;AACrC,YAAA,cAAc,EAAE;AACd,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK;AACtB,qBAAC,IAAI,KAAK,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,SAAS;gBACtH,IAAI;AACL,aAAA;AACF,SAAA,CAAC,CAAC;QAEH,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;;AAGjC,YAAA,IAAI,IAAI,KAAK,OAAO,EAAE;;;AAGpB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9B,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;aAEpB;AAAM,iBAAA,IAAI,IAAI,KAAK,SAAS,EAAE;;;AAG7B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;KACvB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAE,CAAA,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3F,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,cAAc,CAAE,CAAA,GAAG,IAAI,CAAC,cAAc,CAAC;AACnG,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,aAAa,CAAI,CAAA,EAAA,eAAe,EAAE,CAAC;YAEvD,IAAI,CAAC,KAAK,GAAG;AACX,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,KAAK,EAAE,QAAQ;aAChB,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;KACF;+GA3HU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EARtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAML,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAlBH,WAAW,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAoBF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA1BjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,kBAAkB;wBAClB,oBAAoB;wBACpB,WAAW;qBACd,EAWW,QAAA,EAAA,CAAA;;;;;;AAML,MAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,CAAA;sFAKI,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACgC,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MC6FzB,iBAAiB,CAAA;AAtI9B,IAAA,WAAA,GAAA;QAuIW,IAAQ,CAAA,QAAA,GAAW,OAAO,CAAC;QAI3B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAGrB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAyB,CAAA,yBAAA,GAAgC,KAAK,CAAC;QAE/D,IAAc,CAAA,cAAA,GAA8C,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,OAAO,GAAqB,gBAAgB,CAAC,IAAI,CAAC;QAGlD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAoC,IAAI,YAAY,EAAqB,CAAC;AACnF,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACxD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAM1D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAuEpB,QAAA,IAAA,CAAA,QAAQ,GAAyB,MAAK,GAAO,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAO,CAAC;AAyB9C,KAAA;IAhGC,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,KAAK,EAAE;AAC3C,YAAA,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;SAChC;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAEO,kBAAkB,GAAA;AACxB,QAAA,QAAQ,IAAI,CAAC,OAAO;YAClB,KAAK,gBAAgB,CAAC,YAAY,CAAC;YACnC,KAAK,gBAAgB,CAAC,IAAI,CAAC;YAC3B,KAAK,gBAAgB,CAAC,aAAa;AACjC,gBAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,gBAAgB,CAAC,MAAM;AAC1B,gBAAA,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,gBAAgB,CAAC,KAAK;AACzB,gBAAA,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,gBAAgB,CAAC,IAAI;AACxB,gBAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;gBAC9B,MAAM;SACP;KACJ;AAMD,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACrC;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;KACF;IAGD,gBAAgB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AACD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;+GAtIU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAvHjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,iBAAiB;AAC9B,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAkJU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,8EACtB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACvB,qBAAqB,EACrB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qBAAqB,EACrB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,EArJvB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GO,kBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA7Hf,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAyHZ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAtI7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,aAAa,EAAE,2BAA2B;AAC3C,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,qBAAqB;wBACrB,sBAAsB;wBACtB,uBAAuB;wBACvB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;AACxB,qBAAA;AACC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAmB,iBAAA;AAC9B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GO,kBAAA,CAAA;AAClB,iBAAA,CAAA;8BAEU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAC4B,UAAU,EAAA,CAAA;sBAA5C,SAAS;uBAAC,sBAAsB,CAAA;gBACG,WAAW,EAAA,CAAA;sBAA9C,SAAS;uBAAC,uBAAuB,CAAA;gBACA,SAAS,EAAA,CAAA;sBAA1C,SAAS;uBAAC,qBAAqB,CAAA;gBACE,SAAS,EAAA,CAAA;sBAA1C,SAAS;uBAAC,qBAAqB,CAAA;gBACG,UAAU,EAAA,CAAA;sBAA5C,SAAS;uBAAC,sBAAsB,CAAA;gBACxB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAuFN,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,UAAU,CAAA;;;AC/Q1B;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softpak/components",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.2.0-beta.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "18.x.x || 19.x.x",
|
|
@@ -34,6 +34,12 @@
|
|
|
34
34
|
"esm": "./esm2022/spx-alert/softpak-components-spx-alert.mjs",
|
|
35
35
|
"default": "./fesm2022/softpak-components-spx-alert.mjs"
|
|
36
36
|
},
|
|
37
|
+
"./spx-app-expiry": {
|
|
38
|
+
"types": "./spx-app-expiry/index.d.ts",
|
|
39
|
+
"esm2022": "./esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs",
|
|
40
|
+
"esm": "./esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs",
|
|
41
|
+
"default": "./fesm2022/softpak-components-spx-app-expiry.mjs"
|
|
42
|
+
},
|
|
37
43
|
"./spx-app-configuration": {
|
|
38
44
|
"types": "./spx-app-configuration/index.d.ts",
|
|
39
45
|
"esm2022": "./esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs",
|
|
@@ -46,30 +52,24 @@
|
|
|
46
52
|
"esm": "./esm2022/spx-app-update/softpak-components-spx-app-update.mjs",
|
|
47
53
|
"default": "./fesm2022/softpak-components-spx-app-update.mjs"
|
|
48
54
|
},
|
|
49
|
-
"./spx-app-expiry": {
|
|
50
|
-
"types": "./spx-app-expiry/index.d.ts",
|
|
51
|
-
"esm2022": "./esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs",
|
|
52
|
-
"esm": "./esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs",
|
|
53
|
-
"default": "./fesm2022/softpak-components-spx-app-expiry.mjs"
|
|
54
|
-
},
|
|
55
55
|
"./spx-capitalize": {
|
|
56
56
|
"types": "./spx-capitalize/index.d.ts",
|
|
57
57
|
"esm2022": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
|
|
58
58
|
"esm": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
|
|
59
59
|
"default": "./fesm2022/softpak-components-spx-capitalize.mjs"
|
|
60
60
|
},
|
|
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
61
|
"./spx-card": {
|
|
68
62
|
"types": "./spx-card/index.d.ts",
|
|
69
63
|
"esm2022": "./esm2022/spx-card/softpak-components-spx-card.mjs",
|
|
70
64
|
"esm": "./esm2022/spx-card/softpak-components-spx-card.mjs",
|
|
71
65
|
"default": "./fesm2022/softpak-components-spx-card.mjs"
|
|
72
66
|
},
|
|
67
|
+
"./spx-button": {
|
|
68
|
+
"types": "./spx-button/index.d.ts",
|
|
69
|
+
"esm2022": "./esm2022/spx-button/softpak-components-spx-button.mjs",
|
|
70
|
+
"esm": "./esm2022/spx-button/softpak-components-spx-button.mjs",
|
|
71
|
+
"default": "./fesm2022/softpak-components-spx-button.mjs"
|
|
72
|
+
},
|
|
73
73
|
"./spx-change-details": {
|
|
74
74
|
"types": "./spx-change-details/index.d.ts",
|
|
75
75
|
"esm2022": "./esm2022/spx-change-details/softpak-components-spx-change-details.mjs",
|
|
@@ -148,18 +148,18 @@
|
|
|
148
148
|
"esm": "./esm2022/spx-spinner/softpak-components-spx-spinner.mjs",
|
|
149
149
|
"default": "./fesm2022/softpak-components-spx-spinner.mjs"
|
|
150
150
|
},
|
|
151
|
-
"./spx-stock-info": {
|
|
152
|
-
"types": "./spx-stock-info/index.d.ts",
|
|
153
|
-
"esm2022": "./esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs",
|
|
154
|
-
"esm": "./esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs",
|
|
155
|
-
"default": "./fesm2022/softpak-components-spx-stock-info.mjs"
|
|
156
|
-
},
|
|
157
151
|
"./spx-storage": {
|
|
158
152
|
"types": "./spx-storage/index.d.ts",
|
|
159
153
|
"esm2022": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
|
|
160
154
|
"esm": "./esm2022/spx-storage/softpak-components-spx-storage.mjs",
|
|
161
155
|
"default": "./fesm2022/softpak-components-spx-storage.mjs"
|
|
162
156
|
},
|
|
157
|
+
"./spx-stock-info": {
|
|
158
|
+
"types": "./spx-stock-info/index.d.ts",
|
|
159
|
+
"esm2022": "./esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs",
|
|
160
|
+
"esm": "./esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs",
|
|
161
|
+
"default": "./fesm2022/softpak-components-spx-stock-info.mjs"
|
|
162
|
+
},
|
|
163
163
|
"./spx-suggestion": {
|
|
164
164
|
"types": "./spx-suggestion/index.d.ts",
|
|
165
165
|
"esm2022": "./esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs",
|