@softpak/components 21.3.10 → 21.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -153,7 +153,7 @@ class SpxInputBoxComponent {
153
153
  this.spxHelp.emit();
154
154
  }
155
155
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxInputBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
156
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxCompact: { classPropertyName: "spxCompact", publicName: "spxCompact", isSignal: true, isRequired: false, transformFunction: null }, spxLabel: { classPropertyName: "spxLabel", publicName: "spxLabel", isSignal: true, isRequired: false, transformFunction: null }, spxLeftIcon: { classPropertyName: "spxLeftIcon", publicName: "spxLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, spxMatchButtonXlHeight: { classPropertyName: "spxMatchButtonXlHeight", publicName: "spxMatchButtonXlHeight", isSignal: true, isRequired: false, transformFunction: null }, spxName: { classPropertyName: "spxName", publicName: "spxName", isSignal: true, isRequired: false, transformFunction: null }, spxReadonly: { classPropertyName: "spxReadonly", publicName: "spxReadonly", isSignal: true, isRequired: false, transformFunction: null }, spxRequired: { classPropertyName: "spxRequired", publicName: "spxRequired", isSignal: true, isRequired: false, transformFunction: null }, spxShowClear: { classPropertyName: "spxShowClear", publicName: "spxShowClear", isSignal: true, isRequired: false, transformFunction: null }, spxShowEdit: { classPropertyName: "spxShowEdit", publicName: "spxShowEdit", isSignal: true, isRequired: false, transformFunction: null }, spxShowHelp: { classPropertyName: "spxShowHelp", publicName: "spxShowHelp", isSignal: true, isRequired: false, transformFunction: null }, spxShowLabel: { classPropertyName: "spxShowLabel", publicName: "spxShowLabel", isSignal: true, isRequired: false, transformFunction: null }, spxShowSearch: { classPropertyName: "spxShowSearch", publicName: "spxShowSearch", isSignal: true, isRequired: false, transformFunction: null }, spxShowValidationMessages: { classPropertyName: "spxShowValidationMessages", publicName: "spxShowValidationMessages", isSignal: true, isRequired: false, transformFunction: null }, spxAlert: { classPropertyName: "spxAlert", publicName: "spxAlert", isSignal: true, isRequired: false, transformFunction: null }, spxValue: { classPropertyName: "spxValue", publicName: "spxValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { spxValue: "spxValueChange", spxClear: "spxClear", spxSearch: "spxSearch", spxEdit: "spxEdit", spxHelp: "spxHelp", spxSetIdInParent: "spxSetIdInParent" }, host: { listeners: { "click": "handleFocusIn($event)", "focusin": "handleFocusIn($event)", "focusout": "handleFocusOut($event)" } }, queries: [{ propertyName: "projectedLeftIcon", first: true, predicate: SpxInputLeftIconDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"flex rounded w-full gap-1\" [class.rounded-none]=\"this.spxShowValidationMessages()\"\n [class.rounded-t]=\"this.spxShowValidationMessages()\" [class.outline-none]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-offset-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-blue-500]=\"this.spxIsFocused() && !this.spxReadonly()\" [class.bg-white]=\"!this.spxReadonly()\"\n [class.bg-gray-300]=\"this.spxReadonly()\" [class.cursor-not-allowed]=\"this.spxReadonly()\">\n <div class=\"flex-auto\" [class.p-3]=\"!this.spxCompact() && !this.spxMatchButtonXlHeight()\"\n [class.p-0]=\"this.spxCompact()\" [class.px-4]=\"this.spxMatchButtonXlHeight()\"\n [class.py-2]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowLabel()) {\n <div class=\"font-bold text-sm mb-1 text-gray-800\" [class.mb-0]=\"this.spxCompact()\" [class.px-3]=\"this.spxCompact()\">\n {{this.spxLabel()}} @if (spxRequired()) {\n <span class=\"text-red-800\">*</span>\n }\n </div>\n }\n\n <div class=\"flex items-center\" [class.gap-3]=\"this.hasLeftIcon()\">\n <ng-content select=\"[spxInputLeftIcon]\"></ng-content>\n\n @if (this.leftIcon(); as leftIcon) {\n <fa-icon [icon]=\"leftIcon\" class=\"text-gray-500\" [class.text-lg]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\" [class.pl-3]=\"this.spxCompact()\"></fa-icon>\n }\n\n <div class=\"flex-auto\">\n <ng-content select=\"[controls]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"flex flex-none gap-1 p-1\">\n @if (this.spxShowEdit()) {\n <spx-button (spxClick)=\"onEdit()\" [spxFullHeight]=\"true\" [spxSize]=\"'xl'\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowHelp()) {\n <spx-button (spxClick)=\"onHelp()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\" [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowSearch()) {\n <spx-button (spxClick)=\"onSearch()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\"\n [spxName]=\"searchButtonName()\" [spxSize]=\"'xl'\" [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowClear()) {\n <spx-button (spxClick)=\"onClear()\"\n [spxDisabled]=\"this.spxReadonly() || (this.spxValue()?.description !== 'No' && !this.spxValue()?.value)\"\n [spxFullHeight]=\"clearButtonFullHeight()\" [spxName]=\"clearButtonName()\" [spxSize]=\"clearButtonSize()\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faTimes\" class=\"block\" [class.text-base]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\"></fa-icon>\n </spx-button>\n }\n </div>\n</div>\n@if (this.spxShowValidationMessages()) {\n<ng-content select=\"[validation-messages]\"></ng-content>\n}\n@else if (this.spxAlert()) {\n<div [class.bg-red-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.error\"\n [class.bg-green-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.success\"\n [class.bg-blue-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.info\"\n [class.bg-gray-400]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.unknown\"\n [class.bg-amber-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.warning\" class=\"rounded-b text-white p-3\">\n <div>\n {{this.spxAlert()?.text}}\n </div>\n</div>\n}\n", dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType", "spxName"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "pipe", type: IsSeverityPipe, name: "isSeverity" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
156
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxCompact: { classPropertyName: "spxCompact", publicName: "spxCompact", isSignal: true, isRequired: false, transformFunction: null }, spxLabel: { classPropertyName: "spxLabel", publicName: "spxLabel", isSignal: true, isRequired: false, transformFunction: null }, spxLeftIcon: { classPropertyName: "spxLeftIcon", publicName: "spxLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, spxMatchButtonXlHeight: { classPropertyName: "spxMatchButtonXlHeight", publicName: "spxMatchButtonXlHeight", isSignal: true, isRequired: false, transformFunction: null }, spxName: { classPropertyName: "spxName", publicName: "spxName", isSignal: true, isRequired: false, transformFunction: null }, spxReadonly: { classPropertyName: "spxReadonly", publicName: "spxReadonly", isSignal: true, isRequired: false, transformFunction: null }, spxRequired: { classPropertyName: "spxRequired", publicName: "spxRequired", isSignal: true, isRequired: false, transformFunction: null }, spxShowClear: { classPropertyName: "spxShowClear", publicName: "spxShowClear", isSignal: true, isRequired: false, transformFunction: null }, spxShowEdit: { classPropertyName: "spxShowEdit", publicName: "spxShowEdit", isSignal: true, isRequired: false, transformFunction: null }, spxShowHelp: { classPropertyName: "spxShowHelp", publicName: "spxShowHelp", isSignal: true, isRequired: false, transformFunction: null }, spxShowLabel: { classPropertyName: "spxShowLabel", publicName: "spxShowLabel", isSignal: true, isRequired: false, transformFunction: null }, spxShowSearch: { classPropertyName: "spxShowSearch", publicName: "spxShowSearch", isSignal: true, isRequired: false, transformFunction: null }, spxShowValidationMessages: { classPropertyName: "spxShowValidationMessages", publicName: "spxShowValidationMessages", isSignal: true, isRequired: false, transformFunction: null }, spxAlert: { classPropertyName: "spxAlert", publicName: "spxAlert", isSignal: true, isRequired: false, transformFunction: null }, spxValue: { classPropertyName: "spxValue", publicName: "spxValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { spxValue: "spxValueChange", spxClear: "spxClear", spxSearch: "spxSearch", spxEdit: "spxEdit", spxHelp: "spxHelp", spxSetIdInParent: "spxSetIdInParent" }, host: { listeners: { "click": "handleFocusIn($event)", "focusin": "handleFocusIn($event)", "focusout": "handleFocusOut($event)" } }, queries: [{ propertyName: "projectedLeftIcon", first: true, predicate: SpxInputLeftIconDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"flex rounded gap-1\" [class.w-full]=\"!this.spxMatchButtonXlHeight()\"\n [class.w-[24rem]]=\"this.spxMatchButtonXlHeight()\" [class.max-w-full]=\"this.spxMatchButtonXlHeight()\"\n [class.rounded-none]=\"this.spxShowValidationMessages()\"\n [class.rounded-t]=\"this.spxShowValidationMessages()\" [class.outline-none]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-offset-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-blue-500]=\"this.spxIsFocused() && !this.spxReadonly()\" [class.bg-white]=\"!this.spxReadonly()\"\n [class.bg-gray-300]=\"this.spxReadonly()\" [class.cursor-not-allowed]=\"this.spxReadonly()\">\n <div class=\"flex-auto\" [class.p-3]=\"!this.spxCompact() && !this.spxMatchButtonXlHeight()\"\n [class.p-0]=\"this.spxCompact()\" [class.px-4]=\"this.spxMatchButtonXlHeight()\"\n [class.py-2]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowLabel()) {\n <div class=\"font-bold text-sm mb-1 text-gray-800\" [class.mb-0]=\"this.spxCompact()\" [class.px-3]=\"this.spxCompact()\">\n {{this.spxLabel()}} @if (spxRequired()) {\n <span class=\"text-red-800\">*</span>\n }\n </div>\n }\n\n <div class=\"flex items-center\" [class.gap-3]=\"this.hasLeftIcon()\">\n <ng-content select=\"[spxInputLeftIcon]\"></ng-content>\n\n @if (this.leftIcon(); as leftIcon) {\n <fa-icon [icon]=\"leftIcon\" class=\"text-gray-500\" [class.text-lg]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\" [class.pl-3]=\"this.spxCompact()\"></fa-icon>\n }\n\n <div class=\"flex-auto\">\n <ng-content select=\"[controls]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"flex flex-none gap-1 p-1\" [class.items-center]=\"this.spxMatchButtonXlHeight()\"\n [class.py-0]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowEdit()) {\n <spx-button (spxClick)=\"onEdit()\" [spxFullHeight]=\"true\" [spxSize]=\"'xl'\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowHelp()) {\n <spx-button (spxClick)=\"onHelp()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\" [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowSearch()) {\n <spx-button (spxClick)=\"onSearch()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\"\n [spxName]=\"searchButtonName()\" [spxSize]=\"'xl'\" [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowClear()) {\n <spx-button (spxClick)=\"onClear()\"\n [spxDisabled]=\"this.spxReadonly() || (this.spxValue()?.description !== 'No' && !this.spxValue()?.value)\"\n [spxFullHeight]=\"clearButtonFullHeight()\" [spxName]=\"clearButtonName()\" [spxSize]=\"clearButtonSize()\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faTimes\" class=\"block\" [class.text-base]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\"></fa-icon>\n </spx-button>\n }\n </div>\n</div>\n@if (this.spxShowValidationMessages()) {\n<ng-content select=\"[validation-messages]\"></ng-content>\n}\n@else if (this.spxAlert()) {\n<div [class.bg-red-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.error\"\n [class.bg-green-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.success\"\n [class.bg-blue-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.info\"\n [class.bg-gray-400]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.unknown\"\n [class.bg-amber-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.warning\" class=\"rounded-b text-white p-3\">\n <div>\n {{this.spxAlert()?.text}}\n </div>\n</div>\n}\n", dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType", "spxName"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "pipe", type: IsSeverityPipe, name: "isSeverity" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
157
157
  }
158
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SpxInputBoxComponent, decorators: [{
159
159
  type: Component,
@@ -163,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
163
163
  IsSeverityPipe
164
164
  ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
165
165
  "(click)": "handleFocusIn($event)"
166
- }, template: "<div class=\"flex rounded w-full gap-1\" [class.rounded-none]=\"this.spxShowValidationMessages()\"\n [class.rounded-t]=\"this.spxShowValidationMessages()\" [class.outline-none]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-offset-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-blue-500]=\"this.spxIsFocused() && !this.spxReadonly()\" [class.bg-white]=\"!this.spxReadonly()\"\n [class.bg-gray-300]=\"this.spxReadonly()\" [class.cursor-not-allowed]=\"this.spxReadonly()\">\n <div class=\"flex-auto\" [class.p-3]=\"!this.spxCompact() && !this.spxMatchButtonXlHeight()\"\n [class.p-0]=\"this.spxCompact()\" [class.px-4]=\"this.spxMatchButtonXlHeight()\"\n [class.py-2]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowLabel()) {\n <div class=\"font-bold text-sm mb-1 text-gray-800\" [class.mb-0]=\"this.spxCompact()\" [class.px-3]=\"this.spxCompact()\">\n {{this.spxLabel()}} @if (spxRequired()) {\n <span class=\"text-red-800\">*</span>\n }\n </div>\n }\n\n <div class=\"flex items-center\" [class.gap-3]=\"this.hasLeftIcon()\">\n <ng-content select=\"[spxInputLeftIcon]\"></ng-content>\n\n @if (this.leftIcon(); as leftIcon) {\n <fa-icon [icon]=\"leftIcon\" class=\"text-gray-500\" [class.text-lg]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\" [class.pl-3]=\"this.spxCompact()\"></fa-icon>\n }\n\n <div class=\"flex-auto\">\n <ng-content select=\"[controls]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"flex flex-none gap-1 p-1\">\n @if (this.spxShowEdit()) {\n <spx-button (spxClick)=\"onEdit()\" [spxFullHeight]=\"true\" [spxSize]=\"'xl'\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowHelp()) {\n <spx-button (spxClick)=\"onHelp()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\" [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowSearch()) {\n <spx-button (spxClick)=\"onSearch()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\"\n [spxName]=\"searchButtonName()\" [spxSize]=\"'xl'\" [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowClear()) {\n <spx-button (spxClick)=\"onClear()\"\n [spxDisabled]=\"this.spxReadonly() || (this.spxValue()?.description !== 'No' && !this.spxValue()?.value)\"\n [spxFullHeight]=\"clearButtonFullHeight()\" [spxName]=\"clearButtonName()\" [spxSize]=\"clearButtonSize()\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faTimes\" class=\"block\" [class.text-base]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\"></fa-icon>\n </spx-button>\n }\n </div>\n</div>\n@if (this.spxShowValidationMessages()) {\n<ng-content select=\"[validation-messages]\"></ng-content>\n}\n@else if (this.spxAlert()) {\n<div [class.bg-red-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.error\"\n [class.bg-green-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.success\"\n [class.bg-blue-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.info\"\n [class.bg-gray-400]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.unknown\"\n [class.bg-amber-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.warning\" class=\"rounded-b text-white p-3\">\n <div>\n {{this.spxAlert()?.text}}\n </div>\n</div>\n}\n" }]
166
+ }, template: "<div class=\"flex rounded gap-1\" [class.w-full]=\"!this.spxMatchButtonXlHeight()\"\n [class.w-[24rem]]=\"this.spxMatchButtonXlHeight()\" [class.max-w-full]=\"this.spxMatchButtonXlHeight()\"\n [class.rounded-none]=\"this.spxShowValidationMessages()\"\n [class.rounded-t]=\"this.spxShowValidationMessages()\" [class.outline-none]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-offset-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-blue-500]=\"this.spxIsFocused() && !this.spxReadonly()\" [class.bg-white]=\"!this.spxReadonly()\"\n [class.bg-gray-300]=\"this.spxReadonly()\" [class.cursor-not-allowed]=\"this.spxReadonly()\">\n <div class=\"flex-auto\" [class.p-3]=\"!this.spxCompact() && !this.spxMatchButtonXlHeight()\"\n [class.p-0]=\"this.spxCompact()\" [class.px-4]=\"this.spxMatchButtonXlHeight()\"\n [class.py-2]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowLabel()) {\n <div class=\"font-bold text-sm mb-1 text-gray-800\" [class.mb-0]=\"this.spxCompact()\" [class.px-3]=\"this.spxCompact()\">\n {{this.spxLabel()}} @if (spxRequired()) {\n <span class=\"text-red-800\">*</span>\n }\n </div>\n }\n\n <div class=\"flex items-center\" [class.gap-3]=\"this.hasLeftIcon()\">\n <ng-content select=\"[spxInputLeftIcon]\"></ng-content>\n\n @if (this.leftIcon(); as leftIcon) {\n <fa-icon [icon]=\"leftIcon\" class=\"text-gray-500\" [class.text-lg]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\" [class.pl-3]=\"this.spxCompact()\"></fa-icon>\n }\n\n <div class=\"flex-auto\">\n <ng-content select=\"[controls]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"flex flex-none gap-1 p-1\" [class.items-center]=\"this.spxMatchButtonXlHeight()\"\n [class.py-0]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowEdit()) {\n <spx-button (spxClick)=\"onEdit()\" [spxFullHeight]=\"true\" [spxSize]=\"'xl'\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowHelp()) {\n <spx-button (spxClick)=\"onHelp()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\" [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowSearch()) {\n <spx-button (spxClick)=\"onSearch()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\"\n [spxName]=\"searchButtonName()\" [spxSize]=\"'xl'\" [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowClear()) {\n <spx-button (spxClick)=\"onClear()\"\n [spxDisabled]=\"this.spxReadonly() || (this.spxValue()?.description !== 'No' && !this.spxValue()?.value)\"\n [spxFullHeight]=\"clearButtonFullHeight()\" [spxName]=\"clearButtonName()\" [spxSize]=\"clearButtonSize()\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faTimes\" class=\"block\" [class.text-base]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\"></fa-icon>\n </spx-button>\n }\n </div>\n</div>\n@if (this.spxShowValidationMessages()) {\n<ng-content select=\"[validation-messages]\"></ng-content>\n}\n@else if (this.spxAlert()) {\n<div [class.bg-red-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.error\"\n [class.bg-green-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.success\"\n [class.bg-blue-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.info\"\n [class.bg-gray-400]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.unknown\"\n [class.bg-amber-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.warning\" class=\"rounded-b text-white p-3\">\n <div>\n {{this.spxAlert()?.text}}\n </div>\n</div>\n}\n" }]
167
167
  }], propDecorators: { projectedLeftIcon: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SpxInputLeftIconDirective), { isSignal: true }] }], spxCompact: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxCompact", required: false }] }], spxLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxLabel", required: false }] }], spxLeftIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxLeftIcon", required: false }] }], spxMatchButtonXlHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxMatchButtonXlHeight", required: false }] }], spxName: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxName", required: false }] }], spxReadonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxReadonly", required: false }] }], spxRequired: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxRequired", required: false }] }], spxShowClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxShowClear", required: false }] }], spxShowEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxShowEdit", required: false }] }], spxShowHelp: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxShowHelp", required: false }] }], spxShowLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxShowLabel", required: false }] }], spxShowSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxShowSearch", required: false }] }], spxShowValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxShowValidationMessages", required: false }] }], spxAlert: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxAlert", required: false }] }], spxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "spxValue", required: false }] }, { type: i0.Output, args: ["spxValueChange"] }], spxClear: [{ type: i0.Output, args: ["spxClear"] }], spxSearch: [{ type: i0.Output, args: ["spxSearch"] }], spxEdit: [{ type: i0.Output, args: ["spxEdit"] }], spxHelp: [{ type: i0.Output, args: ["spxHelp"] }], spxSetIdInParent: [{ type: i0.Output, args: ["spxSetIdInParent"] }], handleFocusIn: [{
168
168
  type: HostListener,
169
169
  args: ['focusin', ["$event"]]
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-inputs.mjs","sources":["../../../../projects/softpak/components/spx-inputs/input.service.ts","../../../../projects/softpak/components/spx-inputs/spx-input-left-icon.directive.ts","../../../../projects/softpak/components/spx-inputs/spx-input-box/spx-input-box.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-box/spx-input-box.component.html","../../../../projects/softpak/components/spx-inputs/spx-dropdown/spx-dropdown.component.ts","../../../../projects/softpak/components/spx-inputs/spx-dropdown/spx-dropdown.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-type.enum.ts","../../../../projects/softpak/components/spx-inputs/spx-input-text/spx-input-text.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-text/spx-input-text.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-cycle/spx-input-cycle.config.ts","../../../../projects/softpak/components/spx-inputs/spx-input-cycle/spx-input-cycle.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-cycle/spx-input-cycle.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-date/spx-input-date.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-date/spx-input-date.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-float/spx-input-float.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-float/spx-input-float.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-number/spx-input-number.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-number/spx-input-number.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-radio/spx-input-radio.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-radio/spx-input-radio.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-time-modal/spx-input-time-modal.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-time-modal/spx-input-time-modal.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-time/spx-input-time.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-time/spx-input-time.component.html","../../../../projects/softpak/components/spx-inputs/spx-input.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input.component.html","../../../../projects/softpak/components/spx-inputs/softpak-components-spx-inputs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, filter, map, Observable, pairwise } from 'rxjs';\n\n@Injectable({\n providedIn: 'root', // Ensure the service is available globally\n})\nexport class SelectedInputService {\n private focusedElement = new BehaviorSubject<number | null>(0); // Signal to store the selected input's ID\n focusedElement$ = this.focusedElement.asObservable(); // Observable for the comparison result\n isFocused$(id: number): Observable<boolean> {\n return this.focusedElement$.pipe(\n map((focusedId) => {\n return focusedId === id;\n }) // Emit true/false if the element is focused\n );\n }\n\n isBlurred$(id: number): Observable<boolean> {\n return this.focusedElement$.pipe(\n pairwise(), // Emit both the previous and current value as a tuple\n filter(([previous]) => {\n return previous === id;\n }), // Only proceed if the previous value matches the ID\n map(([, current]) => {\n return current === null;\n }), // Return true if current is null\n );\n }\n\n getSelectedElementId(): number | null {\n return this.focusedElement.value; // Access the value directly from BehaviorSubject\n }\n\n // Method to update the selected ID\n setSelectedElementId(id: number | null): void {\n this.focusedElement.next(id);\n }\n}","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[spxInputLeftIcon]',\n standalone: true,\n})\nexport class SpxInputLeftIconDirective {}\n","import { ChangeDetectionStrategy, Component, HostListener, computed, contentChild, inject, input, model, output, signal } from '@angular/core';\nimport { faEdit, faQuestion, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport { FontAwesomeModule, IconDefinition } from '@fortawesome/angular-fontawesome';\nimport { IsSeverityPipe } from '@softpak/components/spx-pipes';\nimport { SelectedInputService } from '../input.service';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxInputAlertI } from '../spx-input-alert-interface';\nimport { SpxInputLeftIconDirective } from '../spx-input-left-icon.directive';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxValuePair } from '../spx-value-interface';\n\nexport type SpxInputLeftIcon = IconDefinition | 'clear' | 'edit' | 'help' | 'search';\n\n@Component({\n selector: 'spx-input-box',\n imports: [\n SpxButtonComponent,\n FontAwesomeModule,\n IsSeverityPipe\n ],\n standalone: true,\n templateUrl: './spx-input-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"(click)\" :\"handleFocusIn($event)\"\n}\n})\nexport class SpxInputBoxComponent {\n selectedInputService = inject(SelectedInputService);\n projectedLeftIcon = contentChild(SpxInputLeftIconDirective);\n faEdit = faEdit;\n faSearch = faSearch;\n faQuestion = faQuestion;\n faTimes = faTimes;\n SpxSeverity = SpxSeverityEnum;\n clearButtonName = computed(() => this.spxName() ? `${this.spxName()}__clear_button` : undefined);\n clearButtonFullHeight = computed(() => !this.spxMatchButtonXlHeight());\n searchButtonName = computed(() => this.spxName() ? `${this.spxName()}__search_button` : undefined);\n clearButtonSize = computed<'sm' | 'xl'>(() => this.spxMatchButtonXlHeight() ? 'sm' : 'xl');\n leftIcon = computed(() => {\n if (this.projectedLeftIcon()) {\n return undefined;\n }\n\n const leftIcon = this.spxLeftIcon();\n\n if (!leftIcon) {\n return undefined;\n }\n\n if (typeof leftIcon !== 'string') {\n return leftIcon;\n }\n\n switch (leftIcon) {\n case 'clear':\n return this.faTimes;\n case 'edit':\n return this.faEdit;\n case 'help':\n return this.faQuestion;\n case 'search':\n return this.faSearch;\n default:\n return undefined;\n }\n });\n hasLeftIcon = computed(() => !!this.projectedLeftIcon() || !!this.leftIcon());\n readonly spxCompact = input<boolean>();\n readonly spxLabel = input<string>();\n readonly spxLeftIcon = input<SpxInputLeftIcon>();\n readonly spxMatchButtonXlHeight = input(false);\n readonly spxName = input<string>();\n readonly spxReadonly = input(false);\n readonly spxRequired = input<boolean>();\n readonly spxShowClear = input(true);\n readonly spxShowEdit = input<boolean>();\n readonly spxShowHelp = input<boolean>();\n readonly spxShowLabel = input(true);\n readonly spxShowSearch = input<boolean>();\n readonly spxShowValidationMessages = input<boolean | null>();\n readonly spxAlert = input<SpxInputAlertI>();\n spxValue = model<SpxValuePair<any>>();\n spxClear = output();\n spxSearch = output();\n spxEdit = output();\n spxHelp = output();\n id = signal<number>(0);\n spxIsFocused = signal<boolean>(false);\n spxSetIdInParent = output<number>();\n ngOnInit() {\n this.id.set(Math.random());\n this.spxSetIdInParent.emit(this.id());\n\n this.selectedInputService.isFocused$(this.id()).subscribe((isFocused) => {\n this.spxIsFocused.set(isFocused);\n });\n }\n\n @HostListener('focusin', [\"$event\"]) handleFocusIn(ev: Event) {\n if(this.selectedInputService.getSelectedElementId() != this.id()) {\n this.selectedInputService.setSelectedElementId(this.id());\n }\n }\n\n @HostListener('focusout', [\"$event\"]) handleFocusOut(ev: Event) {\n this.selectedInputService.setSelectedElementId(null);\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 // 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","<div class=\"flex rounded w-full gap-1\" [class.rounded-none]=\"this.spxShowValidationMessages()\"\n [class.rounded-t]=\"this.spxShowValidationMessages()\" [class.outline-none]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-offset-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-blue-500]=\"this.spxIsFocused() && !this.spxReadonly()\" [class.bg-white]=\"!this.spxReadonly()\"\n [class.bg-gray-300]=\"this.spxReadonly()\" [class.cursor-not-allowed]=\"this.spxReadonly()\">\n <div class=\"flex-auto\" [class.p-3]=\"!this.spxCompact() && !this.spxMatchButtonXlHeight()\"\n [class.p-0]=\"this.spxCompact()\" [class.px-4]=\"this.spxMatchButtonXlHeight()\"\n [class.py-2]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowLabel()) {\n <div class=\"font-bold text-sm mb-1 text-gray-800\" [class.mb-0]=\"this.spxCompact()\" [class.px-3]=\"this.spxCompact()\">\n {{this.spxLabel()}} @if (spxRequired()) {\n <span class=\"text-red-800\">*</span>\n }\n </div>\n }\n\n <div class=\"flex items-center\" [class.gap-3]=\"this.hasLeftIcon()\">\n <ng-content select=\"[spxInputLeftIcon]\"></ng-content>\n\n @if (this.leftIcon(); as leftIcon) {\n <fa-icon [icon]=\"leftIcon\" class=\"text-gray-500\" [class.text-lg]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\" [class.pl-3]=\"this.spxCompact()\"></fa-icon>\n }\n\n <div class=\"flex-auto\">\n <ng-content select=\"[controls]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"flex flex-none gap-1 p-1\">\n @if (this.spxShowEdit()) {\n <spx-button (spxClick)=\"onEdit()\" [spxFullHeight]=\"true\" [spxSize]=\"'xl'\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowHelp()) {\n <spx-button (spxClick)=\"onHelp()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\" [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowSearch()) {\n <spx-button (spxClick)=\"onSearch()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\"\n [spxName]=\"searchButtonName()\" [spxSize]=\"'xl'\" [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowClear()) {\n <spx-button (spxClick)=\"onClear()\"\n [spxDisabled]=\"this.spxReadonly() || (this.spxValue()?.description !== 'No' && !this.spxValue()?.value)\"\n [spxFullHeight]=\"clearButtonFullHeight()\" [spxName]=\"clearButtonName()\" [spxSize]=\"clearButtonSize()\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faTimes\" class=\"block\" [class.text-base]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\"></fa-icon>\n </spx-button>\n }\n </div>\n</div>\n@if (this.spxShowValidationMessages()) {\n<ng-content select=\"[validation-messages]\"></ng-content>\n}\n@else if (this.spxAlert()) {\n<div [class.bg-red-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.error\"\n [class.bg-green-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.success\"\n [class.bg-blue-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.info\"\n [class.bg-gray-400]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.unknown\"\n [class.bg-amber-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.warning\" class=\"rounded-b text-white p-3\">\n <div>\n {{this.spxAlert()?.text}}\n </div>\n</div>\n}\n","\nimport { ChangeDetectionStrategy, Component, OnChanges, OnDestroy, OnInit, SimpleChanges, input, output, signal } 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 changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SpxButtonComponent\n ],\n templateUrl: './spx-dropdown.component.html'\n})\nexport class SpxDropdownComponent implements OnChanges, OnInit, OnDestroy {\n focusPosition = signal<number>(0);\n readonly spxSuggestions = input<SpxValuePair<boolean | number | string>[]>([]);\n spxSelect = output<SpxValuePair<any>>();\n subscriptionKeyUp?: Subscription;\n\n private getSuggestions(): SpxValuePair<boolean | number | string>[] {\n return this.spxSuggestions() ?? [];\n }\n\n ngOnInit(): void {\n this.listenToKeyUp();\n }\n\n ngOnChanges(_changes: SimpleChanges): void {\n this.focusPosition.set(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 const suggestions = this.getSuggestions();\n\n if ((event as KeyboardEvent).key === 'ArrowUp' && this.focusPosition() > 0) {\n this.focusPosition.update((oldValue) => oldValue - 1);\n event.preventDefault();\n }\n if ((event as KeyboardEvent).key === 'ArrowDown' && this.focusPosition() < suggestions.length - 1) {\n this.focusPosition.update((oldValue) => oldValue + 1);\n event.preventDefault();\n }\n if ((event as KeyboardEvent).key === 'Enter' && suggestions.length > 0) {\n this.select(suggestions.at(this.focusPosition())!);\n event.preventDefault();\n }\n });\n }\n\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\n this.focusPosition.set(0);\n this.spxSelect.emit(valuePair);\n }\n}\n","<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>","export enum SpxInputTypeEnum {\n autocomplete = 'autocomplete',\n button = 'button',\n cycle = 'cycle',\n cycleNumeric = 'cycleNumeric',\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 dropdown = 'dropdown'\n}","\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, ElementRef, inject, input, model, signal, viewChild } from '@angular/core';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { SpxDropdownComponent } from '../spx-dropdown/spx-dropdown.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxInputTypeEnum } from '../spx-input-type.enum';\nimport { SelectedInputService } from '../input.service';\nimport { filter } from 'rxjs';\nimport { SpxSpeedDial } from '../spx-speed-dial-interface';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'spx-input-text',\n imports: [\n SpxDropdownComponent,\n ReactiveFormsModule,\n FormsModule,\n NgClass,\n ],\n standalone: true,\n templateUrl: './spx-input-text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputTextComponent {\n mappedReadonly = computed(() => this.spxReadonly() ? true : false);\n readonly spxSpeedDial = input<SpxSpeedDial<string | number>[]>([]);\n readonly spxName = input<string>();\n readonly spxMatchButtonXlHeight = input(false);\n readonly spxAutofocus = input(false);\n readonly spxAutocomplete = input<string>();\n readonly spxInputMode = input<string>();\n readonly spxPattern = input<string>();\n readonly spxSuggestions = input<SpxValuePair<boolean | number | string>[]>([]);\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxCapitalize = input(false);\n readonly spxType = input<SpxInputTypeEnum>(SpxInputTypeEnum.text);\n readonly spxWasInternalUpdate = input(false);\n readonly value = model<SpxValuePair<any>>();\n spxElementId = input<number>();\n selectedInputService = inject(SelectedInputService);\n spxIsFocused = signal<boolean>(false);\n inputRef = viewChild.required<ElementRef>('input'); \n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n\n }\n \n ngOnInit(): void {\n this.componentDidLoad();\n \n // Filter updates based on focus state\n this.selectedInputService.focusedElement$\n .pipe(filter((focusedId) => focusedId === this.spxElementId()))\n .subscribe(() => {\n this.spxIsFocused.set(true); // Update only if focused\n this.spxSetFocus();\n });\n }\n\n triggerChangeDetection(): void { \n this.changeDetectorRef.detectChanges();\n }\n\n spxSetFocus() {\n this.inputRef().nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus()) {\n this.spxSetFocus();\n }\n }\n\n doSelect(speedDial: SpxSpeedDial<string | number>): void {\n this.value.set(speedDial.valuePair);\n }\n\n handleChange(event: any) {\n this.value.set({\n description: event,\n value: event,\n });\n }\n \n handleSuggestionClick(value: any) {\n if (!this.spxReadonly()) {\n this.value.set(value);\n this.spxIsFocused.set(false); // Update only if focused\n this.spxSetFocus();\n }\n }\n\n}\n","<div class=\"relative text-black\">\n <input #input class=\"font-bold text-lg w-full outline-none\" autocomplete=\"off\" spellcheck=\"false\"\n [attr.autocomplete]=\"this.spxAutocomplete()\" [attr.autofocus]=\"this.spxAutofocus()\"\n [attr.inputMode]=\"this.spxInputMode()\" [attr.pattern]=\"this.spxPattern()\" [attr.name]=\"this.spxName()\"\n [attr.type]=\"this.spxType()\" [class.bg-white]=\"!this.spxReadonly()\" [class.bg-gray-300]=\"this.spxReadonly()\"\n [class.cursor-not-allowed]=\"this.spxReadonly()\" [class.uppercase]=\"this.spxCapitalize()\"\n [disabled]=\"this.mappedReadonly()\" [ngModel]=\"\n this.value()?.description\n ? this.value()?.description\n : this.value()?.value\n \" (ngModelChange)=\"this.handleChange($event)\" />\n @if (this.value()?.description && this.value()?.value &&\n this.value()?.description?.valueOf() !== this.value()?.value?.valueOf()) {\n <span>{{ this.value()?.value }}</span>\n } @if (this.spxIsFocused() && (this.spxType() === 'overlay' || this.spxType()\n === 'overlaynumber')) {\n <spx-dropdown [spxSuggestions]=\"this.spxSuggestions()\" (spxSelect)=\"this.handleSuggestionClick($event)\">\n </spx-dropdown>\n } @if (this.spxSpeedDial()) {\n <div class=\"flex flex-wrap gap-3\">\n @for (speedDial of this.spxSpeedDial(); track $index) {\n <button class=\"px-3 px-1\" [ngClass]=\"'bg-' + speedDial.backgroundColor\" (click)=\"doSelect(speedDial)\">\n {{ speedDial.valuePair.description }}\n </button>\n }\n </div>\n }\n</div>\n","export interface SpxCycleConfig {\n fieldPattern: string;\n focusOrder: number[]; // bijv. 3, 4, 5, 6, 0, 1, 2\n defaultFocusPosition: number; // bijv. 4\n length: number; // bijv. 7\n requiredPositions: boolean[]; // bijv. false, false, false, true, true, true, true\n}\n\n// {\n// defaultFocusPosition: 3,\n// fieldPattern: '[0-9]*',\n// focusOrder: [3, 4, 5, 6, 0, 1, 2],\n// length: 7,\n// requiredPositions: [false, false, false, true, true, true, true]\n// }","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Output, QueryList, ViewChildren, computed, effect, inject, input, model, signal, untracked, viewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxSeverityEnum, valuePairToValue } from '@softpak/components/spx-helpers';\n\nimport { SelectedInputService } from '../input.service';\nimport { SpxCycleConfig } from './spx-input-cycle.config';\nimport { SpxInputTypeEnum } from '../spx-input-type.enum';\nimport { SpxSpeedDial } from '../spx-speed-dial-interface';\nimport { SpxValuePair } from '../spx-value-interface';\n\n@Component({\n selector: 'spx-input-cycle',\n imports: [\n ReactiveFormsModule,\n FormsModule,\n ],\n standalone: true,\n templateUrl: './spx-input-cycle.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputCycleComponent {\n protected readonly cancelReason = signal(0);\n\n // ===== Inputs/signals (unchanged) =====\n mappedReadonly = computed(() => (this.spxReadonly() ? true : false));\n readonly spxSpeedDial = input<SpxSpeedDial<string | number>[]>([]);\n readonly spxName = input<string>();\n readonly spxAutofocus = input(false);\n readonly spxAutocomplete = input<string>();\n readonly spxCycleConfig = input.required<SpxCycleConfig>();\n readonly spxInputMode = input<string>();\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxCapitalize = input(false);\n readonly spxSeverity = computed(() => this.value()?.description as SpxSeverityEnum);\n readonly spxType = input<SpxInputTypeEnum>(SpxInputTypeEnum.text);\n readonly spxWasInternalUpdate = input(false);\n\n // Externe waarde via Angular signals API\n readonly value = model<SpxValuePair<string> | null>();\n\n spxElementId = input<number>();\n selectedInputService = inject(SelectedInputService);\n spxIsFocused = signal<boolean>(false);\n inputRef = viewChild.required<ElementRef>('input');\n\n severityError = SpxSeverityEnum.error;\n severitySuccess = SpxSeverityEnum.success;\n severityWarning = SpxSeverityEnum.warning;\n\n private isInternalUpdate = false;\n private cancelNextMouseUp = false;\n\n // auto-advance/IME guards\n private composing = false;\n private advancing = false;\n private lastAdvanceAt = 0;\n\n // voorkomt dubbel null-emitten waardoor de eerste key “verdwijnt”\n private lastEmitted: SpxValuePair<string> | null = null;\n\n private internalIncompleteVer = signal(0);\n private lastSkippedVer = -1;\n\n // interne state per POSITIE\n values?: string[] | null[];\n\n @Output() completeInput = new EventEmitter<string[]>();\n @ViewChildren('inputBox') inputBoxes!: QueryList<ElementRef>;\n\n // ===== NEW: Focus suppression + safe timers =====\n protected suppressRefocus = false;\n private pendingTimers = new Set<number>();\n\n private setT(fn: () => void, ms = 0) {\n const id = window.setTimeout(() => {\n this.pendingTimers.delete(id);\n fn();\n }, ms);\n this.pendingTimers.add(id);\n return id;\n }\n\n private clearPendingTimers() {\n this.pendingTimers.forEach((id) => clearTimeout(id));\n this.pendingTimers.clear();\n }\n\n constructor(private cdr: ChangeDetectorRef, private hostRef: ElementRef<HTMLElement>) { }\n\n /** Externe wijzigingen via model() → sync naar interne state + DOM */\n private _reactToValueChanges = effect(() => {\n const incoming = this.value(); // dependency blijft\n const ver = this.internalIncompleteVer(); // ook dependency\n\n // Sla alleen de run over die direct volgt op een interne-incomplete emit\n if (ver !== this.lastSkippedVer) {\n // we hebben zojuist een interne-incomplete emit gezien -> skip precies één keer\n this.lastSkippedVer = ver;\n return;\n }\n\n // Normale synchronisatie (pakt óók externe null's mee)\n this.updateIntervalValue(incoming ?? null);\n });\n\n ngOnInit(): void {\n const length = this.spxCycleConfig().length;\n this.values = Array(length).fill('');\n const current = this.value() ?? null;\n this.lastEmitted = current; // sync init om dubbele null-emits te vermijden\n this.updateIntervalValue(current);\n }\n\n ngAfterViewInit(): void {\n if (this.spxAutofocus()) this.spxSetFocus();\n this.applyValuesToDom();\n }\n\n ngOnDestroy(): void {\n this.clearPendingTimers();\n }\n\n // ===== Document-level pointer guards (NEW) =====\n @HostListener('document:pointerdown', ['$event'])\n onDocPointerDown(ev: PointerEvent) {\n const inside = this.hostRef.nativeElement.contains(ev.target as Node);\n if (!inside) {\n this.suppressRefocus = true; // block queued focus/selection during outside click\n this.clearPendingTimers(); // cancel already queued focus/selection\n }\n }\n\n @HostListener('document:pointerup')\n onDocPointerUp() {\n // re-enable refocus on the next frame after click completes\n requestAnimationFrame(() => {\n this.suppressRefocus = false;\n });\n }\n\n // =========================\n // Extern -> Intern & DOM\n // =========================\n private updateIntervalValue(valuePair: SpxValuePair<string> | null) {\n const len = this.spxCycleConfig().length;\n if (!this.values || this.values.length !== len) {\n this.values = Array(len).fill('');\n }\n\n if (valuePair === null) {\n // Externe reset → interne reset + DOM leegmaken\n for (let i = 0; i < len; i++) this.values[i] = '';\n this.applyValuesToDom();\n return;\n }\n\n const raw = valuePairToValue(valuePair);\n const s = (raw ?? '').toString();\n\n for (let i = 0; i < len; i++) {\n const ch = s[i];\n this.values[i] = ch ? (ch === '_' ? '' : ch) : '';\n }\n this.applyValuesToDom();\n }\n\n private applyValuesToDom() {\n queueMicrotask(() => {\n const boxes = this.inputBoxes?.toArray() ?? [];\n for (let pos = 0; pos < boxes.length; pos++) {\n const el = boxes[pos]?.nativeElement as HTMLInputElement | undefined;\n if (!el) continue;\n const v = (this.values?.[pos] ?? '') as string;\n if (el.value !== v) el.value = v;\n }\n });\n }\n\n // =========================\n // Intern -> Extern (emit)\n // =========================\n private handleChange(event: SpxValuePair<string> | null, opts?: { internalIncomplete?: boolean }) {\n if (event === null && this.lastEmitted === null && !opts?.internalIncomplete) return;\n\n untracked(() => {\n if (opts?.internalIncomplete) {\n this.internalIncompleteVer.update((v) => v + 1); // markeer alleen interne-incomplete\n }\n this.value.set(event);\n });\n this.lastEmitted = event;\n }\n\n private checkEmitCondition(): void {\n const required = this.spxCycleConfig().requiredPositions;\n\n const completed = this.values!\n .filter((_, i) => required[i] === true)\n .every((val) => val !== '' && val !== null);\n\n if (completed) {\n const out = this.values!\n .map((c) => (c == null || c === '' ? '_' : c))\n .join('')\n .toUpperCase();\n this.handleChange({ description: SpxSeverityEnum.warning, value: out } as SpxValuePair<string>);\n } else {\n this.handleChange(null, { internalIncomplete: true }); // markeer als intern-incompleet\n }\n }\n\n private isAllFilled(): boolean {\n return this.values!.every((v) => v !== '' && v !== null);\n }\n\n // =========================\n // Focus/select gedrag\n // =========================\n spxSetFocus() {\n const pos = this.spxCycleConfig().defaultFocusPosition;\n this.setT(() => this.focusPos(pos));\n }\n\n onFocus(pos: number, _ev: FocusEvent): void {\n const input = this.inputBoxes.toArray()[pos]?.nativeElement as HTMLInputElement | undefined;\n if (!input) return;\n this.setT(() => input.select(), 0); // selecteer altijd alles bij focus (guarded)\n this.cancelNextMouseUp = true;\n }\n\n onMouseUp(ev: MouseEvent): void {\n if (this.cancelNextMouseUp) {\n ev.preventDefault(); // behoud selectie na muisklik\n this.cancelNextMouseUp = false;\n }\n }\n\n // =========================\n // IME/compositie\n // =========================\n onCompositionStart() {\n this.composing = true;\n }\n onCompositionEnd() {\n this.composing = false;\n }\n\n // =========================\n // Invoer\n // =========================\n onInput(pos: number, event: Event): void {\n this.cancelReason.set(0);\n\n if (!this.values) {\n this.cancelReason.set(1);\n return;\n }\n\n const inputEl = event.target as HTMLInputElement;\n let v = inputEl.value ?? '';\n\n if (v.length > 1) {\n v = v.charAt(0);\n if (inputEl.value !== v) inputEl.value = v;\n }\n\n this.values[pos] = v;\n this.checkEmitCondition();\n\n if (this.composing) {\n this.cancelReason.set(2);\n return;\n }; // niet tijdens IME\n if (document.activeElement !== inputEl) {\n this.cancelReason.set(3);\n return;\n }; // race guard\n if (v.length !== 1) {\n this.cancelReason.set(4);\n return;\n }; // alleen als er precies 1 teken staat\n\n const order = this.spxCycleConfig().focusOrder;\n const isLastPos = pos === order.length - 1;\n\n if (isLastPos && this.isAllFilled()) {\n this.cancelReason.set(5);\n return;\n }\n\n const now = Date.now();\n if (this.advancing || now - this.lastAdvanceAt < 40) {\n this.cancelReason.set(6);\n return;\n }\n\n this.advancing = true;\n this.setT(() => {\n try {\n // Als een outside click bezig is, skip alleen de focuswissel,\n // maar laat advancing wél resetten via finally.\n if (this.suppressRefocus) {\n this.cancelReason.set(7);\n return;\n }\n\n if (inputEl.value.length === 1 && document.activeElement === inputEl) {\n const next = this.nextPos(pos);\n this.focusPos(next);\n this.lastAdvanceAt = Date.now();\n } else {\n this.cancelReason.set(7);\n }\n } finally {\n this.advancing = false; // ← ALTIJD resetten\n }\n }, 50); // ← echt 50ms doen\n }\n\n private clearAllAndEmit() {\n const len = this.spxCycleConfig().length;\n if (!this.values || this.values.length !== len) {\n this.values = Array(len).fill('');\n } else {\n for (let i = 0; i < len; i++) this.values[i] = '';\n }\n this.applyValuesToDom();\n this.handleChange(null);\n const start = this.spxCycleConfig().defaultFocusPosition ?? 0;\n this.focusPos(start);\n }\n\n private getNextTabStop(fromEl: HTMLElement, backwards = false): HTMLElement | null {\n const selector = [\n 'a[href]',\n 'area[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n '[contenteditable=\"true\"]',\n ].join(',');\n\n const all = Array.from(document.querySelectorAll<HTMLElement>(selector)).filter(\n (el) => !el.hasAttribute('disabled') && el.tabIndex !== -1 && el.offsetParent !== null && !el.hasAttribute('inert')\n );\n\n const i = all.indexOf(fromEl);\n if (i === -1) return null;\n\n const next = backwards ? all[i - 1] : all[i + 1];\n return next ?? null;\n }\n\n onKeydown(pos: number, event: KeyboardEvent): void {\n const el = this.inputBoxes.toArray()[pos]?.nativeElement as HTMLInputElement | undefined;\n if (!el) return;\n\n const isPrintable = event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;\n if (isPrintable && el.value.length >= 1 && el.selectionStart === el.selectionEnd) {\n el.select();\n }\n\n if (event.key === 'Tab') {\n const order = this.spxCycleConfig().focusOrder;\n const isLastPos = pos === order.length - 1;\n\n if (isLastPos && this.isAllFilled()) {\n const next = this.getNextTabStop(el, event.shiftKey);\n if (next) {\n event.preventDefault();\n next.focus();\n }\n return;\n }\n }\n\n if (event.key === 'Backspace' || event.key === 'Delete') {\n event.preventDefault();\n this.clearAllAndEmit();\n return;\n }\n }\n\n // =========================\n // Navigatie (posities)\n // =========================\n private nextPos(pos: number): number {\n const order = this.spxCycleConfig().focusOrder;\n return (pos + 1) % order.length;\n }\n\n private prevPos(pos: number): number {\n const order = this.spxCycleConfig().focusOrder;\n return (pos - 1 + order.length) % order.length;\n }\n\n private focusPos(pos: number): void {\n if (this.suppressRefocus) return; // NEW: don't steal focus during outside clicks\n const el = this.inputBoxes.toArray()[pos]?.nativeElement as HTMLInputElement | undefined;\n if (!el) return;\n if (document.activeElement === el) return; // al gefocust\n el.focus({ preventScroll: true });\n if (el.value) this.setT(() => el.select()); // selection guarded\n }\n}\n","<div class=\"relative text-black flex gap-1 w-full\">\n @for (val of values; track $index) {\n <input #inputBox type=\"text\" maxlength=\"1\" pattern=\"\\d*\" [value]=\"val\" (focus)=\"onFocus($index, $event)\"\n (compositionstart)=\"onCompositionStart()\" (compositionend)=\"onCompositionEnd()\" (input)=\"onInput($index, $event)\"\n (keydown)=\"onKeydown($index, $event)\" (mouseup)=\"onMouseUp($event)\"\n [attr.inputMode]=\"this.spxInputMode()\" [attr.pattern]=\"spxCycleConfig().fieldPattern\"\n [class.opacity-50]=\"spxCycleConfig().requiredPositions[$index] === false\"\n [class.bg-sky-100]=\"!this.spxReadonly() && !this.spxSeverity()\"\n [class.bg-red-100]=\"!this.spxReadonly() && this.spxSeverity() === severityError\"\n [class.bg-amber-100]=\"!this.spxReadonly() && this.spxSeverity() === severityWarning\"\n [class.bg-teal-100]=\"!this.spxReadonly() && this.spxSeverity() === severitySuccess\"\n [class.bg-gray-400]=\"this.spxReadonly()\" [class.cursor-not-allowed]=\"this.spxReadonly()\"\n [class.uppercase]=\"this.spxCapitalize()\" [disabled]=\"this.mappedReadonly()\"\n class=\"rounded text-center px-1 py-3 font-bold text-lg w-full\" />\n }\n</div>\n","\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, HostListener, inject, input, model, OnInit, signal, viewChild } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\nimport { FormsModule } from '@angular/forms';\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\nimport { SelectedInputService } from '../input.service';\nimport { filter } from 'rxjs';\n\nenum stepType {\n years = \"years\",\n months = \"months\",\n days = \"days\"\n}\n\n@Component({\n selector: 'spx-input-date',\n standalone: true,\n imports: [\n SpxSuggestionComponent,\n FormsModule\n ],\n templateUrl: \"./spx-input-date.component.html\",\n styleUrl: \"./spx-input-date.component.css\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputDateComponent implements OnInit {\n spxMax = input.required<string>();\n spxMin = input.required<string>();\n spxReadonly = input<boolean>();\n spxValidators = input<any[]>();\n spxAutoFocus = input(false);\n value = model<SpxValuePair<string>>({\n description: \"\",\n value: \"\",\n });\n\n spxSelectedStep = signal<stepType>(stepType.years);\n spxSelectDay = input<boolean>(false);\n spxSelectMonth = input<boolean>(true);\n selectedYear = signal<number | null>(null);\n selectedMonth = signal<number | null>(null);\n selectedDay = signal<number | null>(null);\n\n yearInputComponent = viewChild.required<ElementRef>(stepType.years);\n monthInputComponent = viewChild.required<ElementRef>(stepType.months);\n dayInputComponent = viewChild.required<ElementRef>(stepType.days);\n spxElementId = input<number>();\n selectedInputService = inject(SelectedInputService);\n spxIsFocused = signal<boolean>(false);\n private isInternalUpdate = signal<boolean>(false);\n\n spxSuggestionC = computed<SpxValuePair<number>[]>(() => {\n switch (this.spxSelectedStep()) {\n case stepType.years:\n return this.spxSuggestions().years;\n case stepType.months:\n return [...this.spxSuggestions().months]\n case stepType.days:\n return [...this.spxSuggestions().days]\n }\n });\n\n\n handleFocus(selectedStep: string) {\n switch (selectedStep) {\n case stepType.years:\n this.spxSelectedStep.set(stepType.years);\n this.yearInputComponent().nativeElement.focus();\n break;\n case stepType.months:\n this.spxSelectedStep.set(stepType.months);\n this.monthInputComponent().nativeElement.focus();\n break;\n case stepType.days:\n this.spxSelectedStep.set(stepType.days);\n this.dayInputComponent().nativeElement.focus();\n break;\n }\n }\n\n onModelChange(newValue: string, selectedStep: string) {\n this.isInternalUpdate.set(true);\n\n const parsedValue = +newValue; // Convert to number\n if (parsedValue == 0) return;\n switch (selectedStep) {\n case stepType.years:\n this.selectedYear.set(parsedValue);\n if (parsedValue > 999) {\n this.spxSelectedStep.set(stepType.months);\n this.monthInputComponent().nativeElement.focus();\n }\n break;\n case stepType.months:\n this.selectedMonth.set(parsedValue);\n break;\n case stepType.days:\n this.selectedDay.set(parsedValue);\n break;\n }\n\n this.updateValueAndEmit();\n this.isInternalUpdate.set(false);\n }\n\n spxSuggestions = input<{\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\n ngOnInit() {\n this.suggestYears();\n this.setValue();\n\n if (this.spxAutoFocus()) {\n this.handleFocus(\"years\");\n }\n\n // Filter updates based on focus state\n this.selectedInputService.focusedElement$\n .pipe(filter((focusedId) => focusedId === this.spxElementId()))\n .subscribe(() => {\n this.spxIsFocused.set(true); // Update only if focused\n this.handleFocus(this.spxSelectedStep());\n });\n }\n\n ngOnChanges() {\n if (!this.isInternalUpdate()) {\n this.setValue();\n }\n }\n\n private setValue() {\n if (valuePairToValue(this.value())) {\n const parsedValue = DateTime.fromISO(valuePairToValue(this.value()) as string);\n if (this.selectedYear() && this.selectedYear()! < 999) {\n return;\n }\n this.selectedYear.set(parsedValue.year);\n this.selectedMonth.set(parsedValue.month);\n this.selectedDay.set(parsedValue.day);\n }\n }\n\n handleSuggestionClick(value: number) {\n\n switch (this.spxSelectedStep()) {\n case stepType.years:\n this.selectedYear.set(value);\n break;\n case stepType.months:\n this.selectedMonth.set(value);\n break;\n case stepType.days:\n this.selectedDay.set(value);\n break;\n }\n\n this.updateValueAndEmit();\n this.changeSelectedStep();\n }\n\n // Handle keyboard navigation (Tab and Shift + Tab)\n @HostListener('keydown', ['$event'])\n handleTabKey(event: KeyboardEvent): void {\n if (event.key === 'Tab') {\n\n this.changeSelectedStep();\n\n event.preventDefault(); // Prevent default tab behavior\n }\n }\n\n updateValueAndEmit() {\n if (this.selectedYear() && this.selectedMonth()) {\n const concatenatedValue = `${this.selectedYear() ? this.selectedYear() : ``}${this.selectedMonth() ? `${this.selectedMonth()! < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}${this.selectedDay() ? `-${this.selectedDay()! < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`\n const parsedValue = DateTime.fromISO(concatenatedValue);\n this.value.set({ value: parsedValue.toISO()!, description: parsedValue.toISO() });\n }\n }\n\n changeSelectedStep() {\n switch (this.spxSelectedStep()) {\n case stepType.years:\n if (this.spxSelectMonth()) {\n this.spxSelectedStep.set(stepType.months);\n this.monthInputComponent().nativeElement.focus();\n }\n else {\n this.spxSelectedStep.set(stepType.years);\n this.yearInputComponent().nativeElement.focus();\n }\n break;\n case stepType.months:\n if (this.spxSelectDay()) {\n this.spxSelectedStep.set(stepType.days);\n this.dayInputComponent().nativeElement.focus();\n }\n else {\n this.spxSelectedStep.set(stepType.years);\n this.yearInputComponent().nativeElement.focus();\n }\n break;\n case stepType.days:\n this.spxSelectedStep.set(stepType.years);\n this.yearInputComponent().nativeElement.focus();\n break;\n }\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 handleClear() {\n this.spxSelectedStep.set(stepType.years);\n this.selectedYear.set(null);\n this.selectedMonth.set(null);\n this.selectedDay.set(null);\n }\n}\n","<div class='spx-input-date__controls'>\n <input #years\n class='spx-input-date__input'\n [ngModel]=\"selectedYear()\"\n (ngModelChange)=\"onModelChange($event, 'years')\"\n [attr.type]=\"'number'\"\n (click)=\"this.handleFocus('years')\"\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 #months\n class='spx-input-date__input'\n [ngModel]=\"selectedMonth()\"\n (ngModelChange)=\"onModelChange($event, 'months')\"\n (click)=\"this.handleFocus('months')\"\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 #days\n class='spx-input-date__input'\n [ngModel]=\"selectedDay()\"\n (ngModelChange)=\"onModelChange($event, 'days')\"\n (click)=\"this.handleFocus('days')\"\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 spxSuggestionC(); track valuePair.value) {\n <spx-suggestion [spxSelected]=\"\n (selectedYear() === valuePair.value && this.spxSelectedStep() === 'years') ||\n (selectedMonth() === valuePair.value && this.spxSelectedStep() === 'months') || \n (selectedDay() === valuePair.value && this.spxSelectedStep() === 'days')\"\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\n }\n</div>","\nimport { ChangeDetectionStrategy, Component, ElementRef, OnInit, SimpleChanges, computed, inject, input, model, signal, viewChild } from '@angular/core';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { FormsModule } from '@angular/forms';\nimport { SelectedInputService } from '../input.service';\n\n@Component({\n selector: 'spx-input-float',\n imports: [\n FormsModule,\n ],\n standalone: true,\n templateUrl: './spx-input-float.component.html',\n styleUrl: './spx-input-float.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n})\nexport class SpxInputFloatComponent implements OnInit {\n protected internalValue = signal<{\n first: number | null;\n second: number | null;\n }>({\n first: null,\n second: null,\n });\n\n mappedReadonly = computed(() => this.spxReadonly() ? true : false);\n readonly spxName = input<string>();\n readonly spxAutofocus = input(false);\n readonly spxElementId = input<number>();\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxStep = input<number>();\n readonly value = model.required<SpxValuePair<any>>();\n readonly spxWasInternalUpdate = input(false);\n readonly selectedInputService = inject(SelectedInputService);\n readonly spxIsFocused = signal<boolean>(false);\n readonly firstInputRef = viewChild<ElementRef<HTMLInputElement>>('firstInputRef');\n readonly secondInputRef = viewChild<ElementRef<HTMLInputElement>>('secondInputRef');\n private isInternalUpdate = signal<boolean>(false);\n\n spxSetFocus() {\n this.firstInputRef()?.nativeElement?.focus();\n }\n\n ngOnInit() {\n if (this.spxAutofocus()) {\n this.spxSetFocus();\n }\n\n this.selectedInputService.focusedElement$\n .subscribe((focusedId) => {\n if(focusedId === this.spxElementId() && this.spxIsFocused() == false) {\n this.spxIsFocused.set(true); // Update only if focused\n this.spxSetFocus();\n }\n else if(focusedId !== this.spxElementId() && focusedId != null) {\n this.spxIsFocused.set(false);\n }\n });\n\n this.handleSetValue(this.value());\n }\n\n ngOnChanges() {\n if(!this.isInternalUpdate()) {\n this.handleSetValue(this.value());\n }\n }\n\n handleSetValue(newValue: SpxValuePair<any>) {\n if (this.isNumeric(newValue?.value)) {\n this.internalValue.set({\n first: newValue?.value >= 0 ? Math.floor(parseFloat(newValue?.value)) : Math.ceil(parseFloat(newValue?.value)),\n second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,\n });\n } else {\n this.internalValue.set({\n first: null,\n second: null,\n });\n }\n }\n\n handleInput(value: any, position: 1 | 2) {\n this.isInternalUpdate.set(true);\n this.internalValue.set({\n first: position === 1 ? value : this.internalValue().first,\n second: position === 2 ? value : 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.set({\n description: result,\n value: result,\n });\n this.isInternalUpdate.set(false);\n }\n\n handleClear() {\n this.internalValue().first = null;\n this.internalValue().second = null;\n }\n\n isNumeric(value: string) {\n return /^[+-]?\\d+(\\.\\d+)?$/.test(value);\n }\n}\n","<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()\"\n [attr.pattern]=\"'-?[0-9]*'\"\n [attr.step]=\"1\"\n [attr.type]=\"'text'\"\n [class.spx-input-float--readonly]=\"this.spxReadonly() ? this.spxReadonly() : undefined\"\n [disabled]=\"this.mappedReadonly()\"\n [ngModel]=\"this.internalValue().first ? this.internalValue().first : undefined\"\n (ngModelChange)=\"this.handleInput($event, 1)\" />\n <span class=\"text-black font-bold text-2xl mx-4\">,</span>\n <input #secondInputRef\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()\"\n [ngModel]=\"this.internalValue().second ? this.internalValue().second : undefined\"\n (ngModelChange)=\"this.handleInput($event, 2)\"\n [attr.step]=\"1\"\n [attr.type]=\"'text'\"\n [attr.pattern]=\"'[0-9]*'\"\n [disabled]=\"this.mappedReadonly()\" />\n</div>","import { Component, viewChild, input, ChangeDetectionStrategy, ElementRef, model, inject, computed } from '@angular/core';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { FormsModule } from '@angular/forms';\nimport { SelectedInputService } from '../input.service';\nimport { filter } from 'rxjs';\n\n@Component({\n selector: 'spx-input-number',\n standalone: true,\n templateUrl: './spx-input-number.component.html',\n styleUrl: './spx-input-number.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule]\n})\n\nexport class SpxInputNumberComponent {\n mappedReadonly = computed(() => this.spxReadonly() ? true : false);\n readonly spxName = input<string>();\n readonly spxAutofocus = input<boolean>(false);\n readonly spxInputMode = input<string>();\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxFocused = input(true);\n readonly spxStep = input<number>();\n readonly value = model.required<SpxValuePair<any>>();\n readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('input');\n readonly spxElementId = input<number>();\n readonly selectedInputService = inject(SelectedInputService);\n \n ngOnInit() {\n // Filter updates based on focus state\n this.selectedInputService.focusedElement$\n .pipe(filter((focusedId) => focusedId === this.spxElementId()))\n .subscribe(() => {\n this.spxSetFocus();\n });\n }\n \n spxSetFocus() {\n this.inputRef().nativeElement?.focus();\n }\n\n handleChange($event: any) {\n this.value.set({...this.value(), value: $event});\n }\n\n componentDidLoad() {\n if (this.spxAutofocus()) {\n this.spxSetFocus();\n }\n }\n}","<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()\"\n [attr.inputMode]=\"this.spxInputMode() ? this.spxInputMode() : undefined\"\n [attr.step]=\"this.spxStep() ? this.spxStep() : undefined\"\n [attr.type]=\"'number'\"\n [disabled]=\"this.mappedReadonly()\"\n [ngModel]=\"this.value() ? this.value().value : undefined\"\n (ngModelChange)=\"this.handleChange($event)\" />\n</div> ","import { ChangeDetectionStrategy, Component, SimpleChanges, inject, input, model, signal } from '@angular/core';\nimport { Subscription, fromEvent } from 'rxjs';\n\nimport { SelectedInputService } from '../input.service';\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\n@Component({\n selector: 'spx-input-radio',\n standalone: true,\n imports: [\n SpxSuggestionComponent\n ],\n templateUrl: './spx-input-radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputRadioComponent {\n readonly cachedSuggestions = signal<SpxValuePair<any>[]>([]);\n readonly focusPosition = signal<number>(0);\n readonly spxName = input<string>();\n readonly spxValidators = input<any[]>();\n readonly spxShowLabel = input(true);\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxSuggestions = input<SpxValuePair<any>[]>([]);\n readonly value = model<SpxValuePair<any>>();\n readonly selectedInputService = inject(SelectedInputService);\n readonly spxElementId = input<number>();\n readonly spxIsFocused = signal<boolean>(false);\n private subscriptionKeyUp?: Subscription;\n private subscriptionKeyDown?: Subscription;\n\n private getSuggestions(): SpxValuePair<any>[] {\n return this.spxSuggestions() ?? [];\n }\n\n ngOnInit() {\n this.selectedInputService.focusedElement$\n .subscribe((focusedId) => {\n if(focusedId === this.spxElementId() && this.spxIsFocused() == false) {\n this.spxIsFocused.set(true); // Update only if focused\n this.listenToKeys();\n }\n else if(focusedId !== this.spxElementId() && this.spxIsFocused() == true) {\n this.spxIsFocused.set(false);\n this.subscriptionKeyDown?.unsubscribe();\n this.subscriptionKeyUp?.unsubscribe();\n }\n\n this.determineFocusPosition();\n });\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.set(changes['spxSuggestions']?.currentValue ?? []);\n }\n }\n\n handleSuggestionClick(valuePair: SpxValuePair<any>) {\n\n if (this.spxReadonly()) {\n } else {\n this.select(valuePair);\n }\n\n this.determineFocusPosition();\n }\n\n private determineFocusPosition() {\n const spxSuggestions = this.getSuggestions();\n if (this.value() && spxSuggestions?.length) {\n const index = spxSuggestions.findIndex(valuePair => valuePairToValue(valuePair) === valuePairToValue(this.value()));\n this.focusPosition.set(index >= 0 ? index : 0);\n } else {\n this.focusPosition.set(0);\n }\n }\n\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\n this.value.set(valuePair);\n }\n\n private listenToKeys(): void {\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\n const suggestions = this.getSuggestions();\n\n if (((event as KeyboardEvent).key === 'ArrowUp' || (event as KeyboardEvent).key === 'ArrowLeft') && this.focusPosition() > 0) {\n this.focusPosition.update((position) => position - 1);\n this.select(suggestions.at(this.focusPosition())!);\n event.preventDefault();\n }\n if (((event as KeyboardEvent).key === 'ArrowDown' || (event as KeyboardEvent).key === 'ArrowRight') && this.focusPosition() < suggestions.length - 1) {\n this.focusPosition.update((position) => position + 1);\n this.select(suggestions.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}\n","<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 [spxSelected]=\"this.value()?.value === valuePair?.value\"\n [spxTabbable]=\"this.focusPosition() === i\"\n [spxFocused]=\"(this.focusPosition() === i && this.spxIsFocused())\"\n (click)=\"this.handleSuggestionClick(valuePair)\">\n {{valuePair?.description}}\n </spx-suggestion>\n }\n</div>","\nimport { ChangeDetectionStrategy, Component, input, output, signal } from '@angular/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { IonButtons, IonContent, IonHeader, IonTitle, IonToolbar, ModalController } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'spx-input-time-modal',\n imports: [\n FontAwesomeModule,\n IonButtons,\n IonContent,\n IonHeader,\n IonTitle,\n IonToolbar,\n SpxButtonComponent,\n ],\n templateUrl: './spx-input-time-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpxInputTimeModalComponent {\n readonly view = input.required<'hours' | 'minutes'>();\n readonly value = input.required<number>();\n change = output<number>();\n faXmark = faXmark;\n hourOptions = signal<number[]>(Array.from({ length: 24 }, (_, i) => i)); // 0 to 23\n minuteOptions = signal<number[]>(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 this.modalController.dismiss(value);\n }\n}\n","<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>","\nimport { ChangeDetectionStrategy, Component, ElementRef, computed, input, model, signal, viewChild } from '@angular/core';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { DateTime } from 'luxon';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxInputTimeModalComponent } from '../spx-input-time-modal/spx-input-time-modal.component';\nimport { ModalController } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'spx-input-time',\n standalone: true,\n styleUrl: './spx-input-time.component.css',\n templateUrl: './spx-input-time.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputTimeComponent {\n readonly spxName = input<string>();\n readonly spxAutofocus = input(false);\n readonly spxInputMode = input<string>();\n readonly spxPattern = input<string>();\n readonly spxSuggestions = input<SpxValuePair<boolean | number | string>[]>([]);\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxCapitalize = input(false);\n readonly value = model.required<SpxValuePair<any>>();\n readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('input');\n readonly severitySuccess = SpxSeverityEnum.success;\n selectedHour = signal<number | null>(null);\n selectedMinute = signal<number | null>(null);\n readonly formattedHour = computed(() => this.selectedHour() !== null && this.selectedHour()! < 10 ? `0${this.selectedHour()}` : this.selectedHour());\n readonly formattedMinute = computed(() => this.selectedMinute() !== null && this.selectedMinute()! < 10 ? `0${this.selectedMinute()}` : this.selectedMinute());\n readonly hour = computed(() => this.value()?.value ? DateTime.fromISO(this.value()!.value).hour : null);\n readonly minute = computed(() => this.value()?.value ? DateTime.fromISO(this.value()!.value).minute : null);\n\n constructor(private modalController: ModalController) {}\n\n ngOnInit() {\n this.componentDidLoad();\n }\n\n spxSetFocus() {\n this.inputRef().nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus()) {\n this.spxSetFocus();\n }\n }\n\n handleDescriptionInput(event: any) {\n this.value.set({\n description: event.target ? event.target.value : null,\n value: event.target ? event.target.value : null,\n });\n }\n\n handleSuggestionClick(value: any) {\n if (!this.spxReadonly()) {\n this.value.set(value);\n }\n }\n\n async openDialog(view: 'hours' | 'minutes') {\n const value = this.value();\n const modal = await this.modalController.create({\n component: SpxInputTimeModalComponent,\n componentProps: {\n value: value?.value ?\n (view === 'hours' ? DateTime.fromISO(value.value).hour : DateTime.fromISO(value.value).minute) : undefined,\n view,\n },\n });\n\n modal.onDidDismiss().then((data) => {\n\n if (view === 'hours') {\n this.selectedHour.set(data.data);\n this.openDialog('minutes');\n this.updateValue();\n\n } else if (view === 'minutes') {\n this.selectedMinute.set(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.set({\n description: newValue,\n value: newValue,\n });\n }\n }\n}\n","<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>","import { ChangeDetectionStrategy, Component, HostListener, computed, inject, input, output, signal, viewChild } from '@angular/core';\n\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectedInputService } from './input.service';\nimport { SpxCycleConfig } from './public-api';\nimport { SpxInputAlertI } from '@softpak/components/spx-helpers';\nimport { SpxInputBoxComponent } from './spx-input-box/spx-input-box.component';\nimport { SpxInputLeftIcon } from './spx-input-box/spx-input-box.component';\nimport { SpxInputCycleComponent } from './spx-input-cycle/spx-input-cycle.component';\nimport { SpxInputLeftIconDirective } from './spx-input-left-icon.directive';\nimport { SpxInputDateComponent } from './spx-input-date/spx-input-date.component';\nimport { SpxInputFloatComponent } from './spx-input-float/spx-input-float.component';\nimport { SpxInputNumberComponent } from './spx-input-number/spx-input-number.component';\nimport { SpxInputRadioComponent } from './spx-input-radio/spx-input-radio.component';\nimport { SpxInputTextComponent } from './spx-input-text/spx-input-text.component';\nimport { SpxInputTimeComponent } from './spx-input-time/spx-input-time.component';\nimport { SpxInputTypeEnum } from './spx-input-type.enum';\nimport { SpxSpeedDial } from './spx-speed-dial-interface';\nimport { SpxValuePair } from './spx-value-interface';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'spx-input',\n host: {\n '(spxChange)': 'handleChangeEvent($event)'\n },\n imports: [\n SpxInputBoxComponent,\n SpxInputCycleComponent,\n SpxInputDateComponent,\n SpxInputFloatComponent,\n SpxInputLeftIconDirective,\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 standalone: true,\n templateUrl: './spx-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputComponent {\n protected mappedName = computed(() => this.spxName() ?? undefined);\n protected mappedReadonly = computed(() => this.spxReadonly() === true ? true : undefined);\n protected matchButtonXlHeight = computed(() =>\n this.spxType() === this.typeText &&\n !this.spxShowLabel() &&\n !!this.spxLeftIcon()\n );\n readonly spxSpeedDial = input<SpxSpeedDial<string | number>[]>([]);\n readonly spxLabel = input<string>('label');\n readonly spxMax = input<string>();\n readonly spxMin = input<string>();\n readonly spxName = input<string>();\n readonly spxReadonly = input(false);\n readonly spxAutocomplete = input<string>();\n readonly spxAutofocus = input(false);\n readonly spxInputMode = input<string>();\n readonly spxPattern = input<string>();\n readonly spxRequired = input(false);\n readonly spxSelectMonth = input(true);\n readonly spxSelectDay = input(true);\n readonly spxShowEdit = input(false);\n readonly spxShowHelp = input(false);\n readonly spxLeftIcon = input<SpxInputLeftIcon>();\n readonly spxShowLabel = input(true);\n readonly spxCompact = input(false);\n readonly spxShowClear = input(true);\n readonly spxShowSearch = input(false);\n readonly spxAlert = input<SpxInputAlertI>();\n readonly spxShowValidationMessages = input<boolean | null | undefined>(false);\n readonly spxStep = input<number>();\n readonly spxSuggestions = input<SpxValuePair<boolean | number | string>[]>([]);\n readonly spxType = input<SpxInputTypeEnum>(SpxInputTypeEnum.text);\n readonly spxValidators = input<any[]>();\n readonly spxCapitalize = input(false);\n readonly spxCycleConfig = input<SpxCycleConfig>();\n value = signal<SpxValuePair<any>>({ value: null, description: null });\n spxClear = output();\n spxEdit = output();\n spxHelp = output();\n spxSearch = output();\n spxBlur = output();\n floatInput = viewChild<SpxInputFloatComponent>(\"spxInputFloat\");\n numberInput = viewChild<SpxInputNumberComponent>(\"spxInputNumber\");\n textInput = viewChild<SpxInputTextComponent>(\"spxInputText\");\n timeInput = viewChild<SpxInputTimeComponent>(\"spxInputTime\");\n radioInput = viewChild<SpxInputRadioComponent>(\"spxInputRadio\");\n dateInput = viewChild<SpxInputDateComponent>(\"spxInputDate\");\n cycleInput = viewChild<SpxInputCycleComponent>(\"spxInputCycle\");\n spxElementId = signal<number>(0);\n selectedInputService = inject(SelectedInputService);\n private selectedInputServiceSubscription: Subscription | undefined;\n\n protected readonly showInputText = computed(() =>\n this.spxType() === this.typeAutoComplete || this.spxType() === this.typeOverlay ||\n this.spxType() === this.typeOverlayNumber || this.spxType() === this.typeText || this.spxType() === this.typeTextNumericKeyboard ||\n this.spxType() === this.typePassword\n );\n protected readonly showInputCycle = computed(() =>\n this.spxType() === this.typeCycle || this.spxType() === this.typeCycleNumeric\n );\n protected readonly showInputDate = computed(() =>\n this.spxType() === this.typeDate\n );\n protected readonly showInputFloat = computed(() =>\n this.spxType() === this.typeFloat\n );\n protected readonly showInputNumber = computed(() =>\n this.spxType() === this.typeNumber\n );\n protected readonly showInputRadio = computed(() =>\n this.spxType() === this.typeRadio\n );\n protected readonly showInputTime = computed(() =>\n this.spxType() === this.typeTime\n );\n\n protected readonly typeAutoComplete = SpxInputTypeEnum.autocomplete;\n protected readonly typeOverlay = SpxInputTypeEnum.overlay;\n protected readonly typeOverlayNumber = SpxInputTypeEnum.overlayNumber;\n protected readonly typeText = SpxInputTypeEnum.text;\n protected readonly typeTextNumericKeyboard = SpxInputTypeEnum.textNumericKeyboard;\n protected readonly typePassword = SpxInputTypeEnum.password;\n protected readonly typeCycle = SpxInputTypeEnum.cycle;\n protected readonly typeCycleNumeric = SpxInputTypeEnum.cycleNumeric;\n protected readonly typeDate = SpxInputTypeEnum.date;\n protected readonly typeFloat = SpxInputTypeEnum.float;\n protected readonly typeNumber = SpxInputTypeEnum.number;\n protected readonly typeRadio = SpxInputTypeEnum.radio;\n protected readonly typeTime = SpxInputTypeEnum.time;\n\n handleSpxElementIdSet(id: number) {\n this.spxElementId.set(id);\n\n this.selectedInputServiceSubscription = this.selectedInputService.isBlurred$(id).subscribe((isBlurred) => {\n if (isBlurred) {\n this.spxBlur.emit();\n }\n });\n }\n\n ngOnDestroy() {\n if (this.selectedInputServiceSubscription) {\n this.selectedInputServiceSubscription.unsubscribe();\n }\n }\n\n handleChange(event: any) {\n this.value.set(event);\n }\n\n triggerChangeDetection(): void {\n this.textInput()?.triggerChangeDetection();\n }\n\n handleClear() {\n this.spxClear.emit();\n this.passFocusToControl();\n this.handleChangeEvent({\n value: null,\n });\n\n this.dateInput()?.handleClear();\n this.floatInput()?.handleClear();\n }\n\n handleSearch() {\n this.spxSearch.emit();\n }\n\n handleEdit() {\n this.spxEdit.emit();\n }\n\n handleHelp() {\n this.spxHelp.emit();\n }\n\n setFocusIn() {\n setTimeout(() => {\n this.passFocusToControl();\n }, 0);\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.cycle:\n case SpxInputTypeEnum.cycleNumeric:\n this.cycleInput()?.spxSetFocus();\n break;\n case SpxInputTypeEnum.number:\n this.numberInput()?.spxSetFocus();\n break;\n case SpxInputTypeEnum.radio:\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 = null;\n\n writeValue(value: any) {\n if (value === null && this.lastValue === null) { return; }\n this.value.set(value); // hier komt initiele waarde van formcontrol binnen\n this.lastValue = value;\n }\n\n handleChangeEvent(value: any) {\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.onChange(value);\n }\n this.writeValue(value);\n }\n\n @HostListener('focusout')\n _handleBlurEvent() {\n this.onTouched();\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.onChange = fn; // emit verandering aan formcontrol\n }\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n}\n","<spx-input-box\n (spxClear)=\"this.handleClear()\"\n (spxEdit)=\"this.handleEdit()\"\n (spxHelp)=\"this.handleHelp()\"\n (spxSearch)=\"this.handleSearch()\"\n (spxSetIdInParent)=\"handleSpxElementIdSet($event)\"\n [spxAlert]=\"this.spxAlert()\"\n [spxCompact]=\"this.spxCompact()\"\n [spxLabel]=\"this.spxLabel()\"\n [spxLeftIcon]=\"this.spxLeftIcon()\"\n [spxMatchButtonXlHeight]=\"this.matchButtonXlHeight()\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.spxReadonly()\"\n [spxRequired]=\"this.spxRequired()\"\n [spxShowClear]=\"this.spxShowClear()\"\n [spxShowEdit]=\"this.spxShowEdit()\"\n [spxShowHelp]=\"this.spxShowHelp()\"\n [spxShowLabel]=\"this.spxShowLabel()\"\n [spxShowSearch]=\"this.spxShowSearch() ? this.spxShowSearch() : this.spxType() === 'autocomplete'\"\n [spxShowValidationMessages]=\"this.spxShowValidationMessages()\"\n [spxValue]=\"this.value()\"\n>\n <ng-content select=\"[spxInputLeftIcon]\"></ng-content>\n <div controls>\n @if (this.showInputText()) {\n <spx-input-text\n (valueChange)=\"handleChangeEvent($event)\"\n [spxAutocomplete]=\"this.spxAutocomplete() ? this.spxAutocomplete() : undefined\"\n [spxSpeedDial]=\"this.spxSpeedDial()\"\n [spxAutofocus]=\"this.spxAutofocus()\"\n [spxCapitalize]=\"this.spxCapitalize()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxInputMode]=\"this.spxType() === 'overlaynumber' ? 'numeric' : this.spxInputMode()\"\n [spxName]=\"this.mappedName()\"\n [spxMatchButtonXlHeight]=\"this.matchButtonXlHeight()\"\n [spxPattern]=\"this.spxType() === 'overlaynumber' ? '[0-9]*' : this.spxPattern()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxSuggestions]=\"this.spxSuggestions()\"\n [spxType]=\"this.spxType()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputText\n ></spx-input-text>\n } @if (this.showInputCycle()) {\n <spx-input-cycle\n (valueChange)=\"handleChangeEvent($event)\"\n [spxCycleConfig]=\"this.spxCycleConfig()!\"\n [spxSpeedDial]=\"this.spxSpeedDial()\"\n [spxAutofocus]=\"this.spxAutofocus()\"\n [spxCapitalize]=\"this.spxCapitalize()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxInputMode]=\"this.spxType() === 'cycleNumeric' ? 'numeric' : 'text'\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxType]=\"this.spxType()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputText\n ></spx-input-cycle>\n } @if (this.showInputDate()) {\n <spx-input-date\n (valueChange)=\"handleChangeEvent($event)\"\n [spxAutoFocus]=\"this.spxAutofocus()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxMax]=\"this.spxMax()!\"\n [spxMin]=\"this.spxMin()!\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxSelectDay]=\"this.spxSelectDay()\"\n [spxSelectMonth]=\"this.spxSelectMonth()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputDate\n ></spx-input-date>\n } @if (this.showInputFloat()) {\n <spx-input-float\n (valueChange)=\"handleChangeEvent($event)\"\n [spxAutofocus]=\"this.spxAutofocus()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxStep]=\"this.spxStep()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputFloat\n ></spx-input-float>\n } @if (this.showInputNumber()) {\n <spx-input-number\n (valueChange)=\"handleChangeEvent($event)\"\n [spxAutofocus]=\"this.spxAutofocus()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxInputMode]=\"this.spxInputMode()\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxStep]=\"this.spxStep()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputNumber\n ></spx-input-number>\n } @if (this.showInputRadio()) {\n <spx-input-radio\n (valueChange)=\"handleChangeEvent($event)\"\n [spxElementId]=\"this.spxElementId()\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxShowLabel]=\"this.spxShowLabel()\"\n [spxSuggestions]=\"this.spxSuggestions()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputRadio\n ></spx-input-radio>\n } @if (this.showInputTime()) {\n <spx-input-time\n (valueChange)=\"handleChangeEvent($event)\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputTime\n ></spx-input-time>\n }\n </div>\n <div validation-messages>\n <ng-content></ng-content>\n </div>\n</spx-input-box>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"softpak-components-spx-inputs.mjs","sources":["../../../../projects/softpak/components/spx-inputs/input.service.ts","../../../../projects/softpak/components/spx-inputs/spx-input-left-icon.directive.ts","../../../../projects/softpak/components/spx-inputs/spx-input-box/spx-input-box.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-box/spx-input-box.component.html","../../../../projects/softpak/components/spx-inputs/spx-dropdown/spx-dropdown.component.ts","../../../../projects/softpak/components/spx-inputs/spx-dropdown/spx-dropdown.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-type.enum.ts","../../../../projects/softpak/components/spx-inputs/spx-input-text/spx-input-text.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-text/spx-input-text.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-cycle/spx-input-cycle.config.ts","../../../../projects/softpak/components/spx-inputs/spx-input-cycle/spx-input-cycle.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-cycle/spx-input-cycle.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-date/spx-input-date.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-date/spx-input-date.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-float/spx-input-float.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-float/spx-input-float.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-number/spx-input-number.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-number/spx-input-number.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-radio/spx-input-radio.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-radio/spx-input-radio.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-time-modal/spx-input-time-modal.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-time-modal/spx-input-time-modal.component.html","../../../../projects/softpak/components/spx-inputs/spx-input-time/spx-input-time.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input-time/spx-input-time.component.html","../../../../projects/softpak/components/spx-inputs/spx-input.component.ts","../../../../projects/softpak/components/spx-inputs/spx-input.component.html","../../../../projects/softpak/components/spx-inputs/softpak-components-spx-inputs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, filter, map, Observable, pairwise } from 'rxjs';\n\n@Injectable({\n providedIn: 'root', // Ensure the service is available globally\n})\nexport class SelectedInputService {\n private focusedElement = new BehaviorSubject<number | null>(0); // Signal to store the selected input's ID\n focusedElement$ = this.focusedElement.asObservable(); // Observable for the comparison result\n isFocused$(id: number): Observable<boolean> {\n return this.focusedElement$.pipe(\n map((focusedId) => {\n return focusedId === id;\n }) // Emit true/false if the element is focused\n );\n }\n\n isBlurred$(id: number): Observable<boolean> {\n return this.focusedElement$.pipe(\n pairwise(), // Emit both the previous and current value as a tuple\n filter(([previous]) => {\n return previous === id;\n }), // Only proceed if the previous value matches the ID\n map(([, current]) => {\n return current === null;\n }), // Return true if current is null\n );\n }\n\n getSelectedElementId(): number | null {\n return this.focusedElement.value; // Access the value directly from BehaviorSubject\n }\n\n // Method to update the selected ID\n setSelectedElementId(id: number | null): void {\n this.focusedElement.next(id);\n }\n}","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[spxInputLeftIcon]',\n standalone: true,\n})\nexport class SpxInputLeftIconDirective {}\n","import { ChangeDetectionStrategy, Component, HostListener, computed, contentChild, inject, input, model, output, signal } from '@angular/core';\nimport { faEdit, faQuestion, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport { FontAwesomeModule, IconDefinition } from '@fortawesome/angular-fontawesome';\nimport { IsSeverityPipe } from '@softpak/components/spx-pipes';\nimport { SelectedInputService } from '../input.service';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxInputAlertI } from '../spx-input-alert-interface';\nimport { SpxInputLeftIconDirective } from '../spx-input-left-icon.directive';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxValuePair } from '../spx-value-interface';\n\nexport type SpxInputLeftIcon = IconDefinition | 'clear' | 'edit' | 'help' | 'search';\n\n@Component({\n selector: 'spx-input-box',\n imports: [\n SpxButtonComponent,\n FontAwesomeModule,\n IsSeverityPipe\n ],\n standalone: true,\n templateUrl: './spx-input-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"(click)\" :\"handleFocusIn($event)\"\n}\n})\nexport class SpxInputBoxComponent {\n selectedInputService = inject(SelectedInputService);\n projectedLeftIcon = contentChild(SpxInputLeftIconDirective);\n faEdit = faEdit;\n faSearch = faSearch;\n faQuestion = faQuestion;\n faTimes = faTimes;\n SpxSeverity = SpxSeverityEnum;\n clearButtonName = computed(() => this.spxName() ? `${this.spxName()}__clear_button` : undefined);\n clearButtonFullHeight = computed(() => !this.spxMatchButtonXlHeight());\n searchButtonName = computed(() => this.spxName() ? `${this.spxName()}__search_button` : undefined);\n clearButtonSize = computed<'sm' | 'xl'>(() => this.spxMatchButtonXlHeight() ? 'sm' : 'xl');\n leftIcon = computed(() => {\n if (this.projectedLeftIcon()) {\n return undefined;\n }\n\n const leftIcon = this.spxLeftIcon();\n\n if (!leftIcon) {\n return undefined;\n }\n\n if (typeof leftIcon !== 'string') {\n return leftIcon;\n }\n\n switch (leftIcon) {\n case 'clear':\n return this.faTimes;\n case 'edit':\n return this.faEdit;\n case 'help':\n return this.faQuestion;\n case 'search':\n return this.faSearch;\n default:\n return undefined;\n }\n });\n hasLeftIcon = computed(() => !!this.projectedLeftIcon() || !!this.leftIcon());\n readonly spxCompact = input<boolean>();\n readonly spxLabel = input<string>();\n readonly spxLeftIcon = input<SpxInputLeftIcon>();\n readonly spxMatchButtonXlHeight = input(false);\n readonly spxName = input<string>();\n readonly spxReadonly = input(false);\n readonly spxRequired = input<boolean>();\n readonly spxShowClear = input(true);\n readonly spxShowEdit = input<boolean>();\n readonly spxShowHelp = input<boolean>();\n readonly spxShowLabel = input(true);\n readonly spxShowSearch = input<boolean>();\n readonly spxShowValidationMessages = input<boolean | null>();\n readonly spxAlert = input<SpxInputAlertI>();\n spxValue = model<SpxValuePair<any>>();\n spxClear = output();\n spxSearch = output();\n spxEdit = output();\n spxHelp = output();\n id = signal<number>(0);\n spxIsFocused = signal<boolean>(false);\n spxSetIdInParent = output<number>();\n ngOnInit() {\n this.id.set(Math.random());\n this.spxSetIdInParent.emit(this.id());\n\n this.selectedInputService.isFocused$(this.id()).subscribe((isFocused) => {\n this.spxIsFocused.set(isFocused);\n });\n }\n\n @HostListener('focusin', [\"$event\"]) handleFocusIn(ev: Event) {\n if(this.selectedInputService.getSelectedElementId() != this.id()) {\n this.selectedInputService.setSelectedElementId(this.id());\n }\n }\n\n @HostListener('focusout', [\"$event\"]) handleFocusOut(ev: Event) {\n this.selectedInputService.setSelectedElementId(null);\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 // 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","<div class=\"flex rounded gap-1\" [class.w-full]=\"!this.spxMatchButtonXlHeight()\"\n [class.w-[24rem]]=\"this.spxMatchButtonXlHeight()\" [class.max-w-full]=\"this.spxMatchButtonXlHeight()\"\n [class.rounded-none]=\"this.spxShowValidationMessages()\"\n [class.rounded-t]=\"this.spxShowValidationMessages()\" [class.outline-none]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-offset-2]=\"this.spxIsFocused() && !this.spxReadonly()\"\n [class.ring-blue-500]=\"this.spxIsFocused() && !this.spxReadonly()\" [class.bg-white]=\"!this.spxReadonly()\"\n [class.bg-gray-300]=\"this.spxReadonly()\" [class.cursor-not-allowed]=\"this.spxReadonly()\">\n <div class=\"flex-auto\" [class.p-3]=\"!this.spxCompact() && !this.spxMatchButtonXlHeight()\"\n [class.p-0]=\"this.spxCompact()\" [class.px-4]=\"this.spxMatchButtonXlHeight()\"\n [class.py-2]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowLabel()) {\n <div class=\"font-bold text-sm mb-1 text-gray-800\" [class.mb-0]=\"this.spxCompact()\" [class.px-3]=\"this.spxCompact()\">\n {{this.spxLabel()}} @if (spxRequired()) {\n <span class=\"text-red-800\">*</span>\n }\n </div>\n }\n\n <div class=\"flex items-center\" [class.gap-3]=\"this.hasLeftIcon()\">\n <ng-content select=\"[spxInputLeftIcon]\"></ng-content>\n\n @if (this.leftIcon(); as leftIcon) {\n <fa-icon [icon]=\"leftIcon\" class=\"text-gray-500\" [class.text-lg]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\" [class.pl-3]=\"this.spxCompact()\"></fa-icon>\n }\n\n <div class=\"flex-auto\">\n <ng-content select=\"[controls]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"flex flex-none gap-1 p-1\" [class.items-center]=\"this.spxMatchButtonXlHeight()\"\n [class.py-0]=\"this.spxMatchButtonXlHeight()\">\n @if (this.spxShowEdit()) {\n <spx-button (spxClick)=\"onEdit()\" [spxFullHeight]=\"true\" [spxSize]=\"'xl'\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faEdit\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowHelp()) {\n <spx-button (spxClick)=\"onHelp()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\" [spxSize]=\"'xl'\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faQuestion\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowSearch()) {\n <spx-button (spxClick)=\"onSearch()\" [spxFullHeight]=\"true\" [spxDisabled]=\"this.spxReadonly()\"\n [spxName]=\"searchButtonName()\" [spxSize]=\"'xl'\" [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faSearch\" class=\"block text-xl\"></fa-icon>\n </spx-button>\n }\n @if (this.spxShowClear()) {\n <spx-button (spxClick)=\"onClear()\"\n [spxDisabled]=\"this.spxReadonly() || (this.spxValue()?.description !== 'No' && !this.spxValue()?.value)\"\n [spxFullHeight]=\"clearButtonFullHeight()\" [spxName]=\"clearButtonName()\" [spxSize]=\"clearButtonSize()\"\n [spxTabIndex]=\"-1\" [spxType]=\"'button'\">\n <fa-icon [icon]=\"faTimes\" class=\"block\" [class.text-base]=\"this.spxMatchButtonXlHeight()\"\n [class.text-xl]=\"!this.spxMatchButtonXlHeight()\"></fa-icon>\n </spx-button>\n }\n </div>\n</div>\n@if (this.spxShowValidationMessages()) {\n<ng-content select=\"[validation-messages]\"></ng-content>\n}\n@else if (this.spxAlert()) {\n<div [class.bg-red-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.error\"\n [class.bg-green-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.success\"\n [class.bg-blue-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.info\"\n [class.bg-gray-400]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.unknown\"\n [class.bg-amber-700]=\"this.spxAlert()?.severity | isSeverity: SpxSeverity.warning\" class=\"rounded-b text-white p-3\">\n <div>\n {{this.spxAlert()?.text}}\n </div>\n</div>\n}\n","\nimport { ChangeDetectionStrategy, Component, OnChanges, OnDestroy, OnInit, SimpleChanges, input, output, signal } 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 changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SpxButtonComponent\n ],\n templateUrl: './spx-dropdown.component.html'\n})\nexport class SpxDropdownComponent implements OnChanges, OnInit, OnDestroy {\n focusPosition = signal<number>(0);\n readonly spxSuggestions = input<SpxValuePair<boolean | number | string>[]>([]);\n spxSelect = output<SpxValuePair<any>>();\n subscriptionKeyUp?: Subscription;\n\n private getSuggestions(): SpxValuePair<boolean | number | string>[] {\n return this.spxSuggestions() ?? [];\n }\n\n ngOnInit(): void {\n this.listenToKeyUp();\n }\n\n ngOnChanges(_changes: SimpleChanges): void {\n this.focusPosition.set(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 const suggestions = this.getSuggestions();\n\n if ((event as KeyboardEvent).key === 'ArrowUp' && this.focusPosition() > 0) {\n this.focusPosition.update((oldValue) => oldValue - 1);\n event.preventDefault();\n }\n if ((event as KeyboardEvent).key === 'ArrowDown' && this.focusPosition() < suggestions.length - 1) {\n this.focusPosition.update((oldValue) => oldValue + 1);\n event.preventDefault();\n }\n if ((event as KeyboardEvent).key === 'Enter' && suggestions.length > 0) {\n this.select(suggestions.at(this.focusPosition())!);\n event.preventDefault();\n }\n });\n }\n\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\n this.focusPosition.set(0);\n this.spxSelect.emit(valuePair);\n }\n}\n","<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>","export enum SpxInputTypeEnum {\n autocomplete = 'autocomplete',\n button = 'button',\n cycle = 'cycle',\n cycleNumeric = 'cycleNumeric',\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 dropdown = 'dropdown'\n}","\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, ElementRef, inject, input, model, signal, viewChild } from '@angular/core';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { SpxDropdownComponent } from '../spx-dropdown/spx-dropdown.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxInputTypeEnum } from '../spx-input-type.enum';\nimport { SelectedInputService } from '../input.service';\nimport { filter } from 'rxjs';\nimport { SpxSpeedDial } from '../spx-speed-dial-interface';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'spx-input-text',\n imports: [\n SpxDropdownComponent,\n ReactiveFormsModule,\n FormsModule,\n NgClass,\n ],\n standalone: true,\n templateUrl: './spx-input-text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputTextComponent {\n mappedReadonly = computed(() => this.spxReadonly() ? true : false);\n readonly spxSpeedDial = input<SpxSpeedDial<string | number>[]>([]);\n readonly spxName = input<string>();\n readonly spxMatchButtonXlHeight = input(false);\n readonly spxAutofocus = input(false);\n readonly spxAutocomplete = input<string>();\n readonly spxInputMode = input<string>();\n readonly spxPattern = input<string>();\n readonly spxSuggestions = input<SpxValuePair<boolean | number | string>[]>([]);\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxCapitalize = input(false);\n readonly spxType = input<SpxInputTypeEnum>(SpxInputTypeEnum.text);\n readonly spxWasInternalUpdate = input(false);\n readonly value = model<SpxValuePair<any>>();\n spxElementId = input<number>();\n selectedInputService = inject(SelectedInputService);\n spxIsFocused = signal<boolean>(false);\n inputRef = viewChild.required<ElementRef>('input'); \n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n\n }\n \n ngOnInit(): void {\n this.componentDidLoad();\n \n // Filter updates based on focus state\n this.selectedInputService.focusedElement$\n .pipe(filter((focusedId) => focusedId === this.spxElementId()))\n .subscribe(() => {\n this.spxIsFocused.set(true); // Update only if focused\n this.spxSetFocus();\n });\n }\n\n triggerChangeDetection(): void { \n this.changeDetectorRef.detectChanges();\n }\n\n spxSetFocus() {\n this.inputRef().nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus()) {\n this.spxSetFocus();\n }\n }\n\n doSelect(speedDial: SpxSpeedDial<string | number>): void {\n this.value.set(speedDial.valuePair);\n }\n\n handleChange(event: any) {\n this.value.set({\n description: event,\n value: event,\n });\n }\n \n handleSuggestionClick(value: any) {\n if (!this.spxReadonly()) {\n this.value.set(value);\n this.spxIsFocused.set(false); // Update only if focused\n this.spxSetFocus();\n }\n }\n\n}\n","<div class=\"relative text-black\">\n <input #input class=\"font-bold text-lg w-full outline-none\" autocomplete=\"off\" spellcheck=\"false\"\n [attr.autocomplete]=\"this.spxAutocomplete()\" [attr.autofocus]=\"this.spxAutofocus()\"\n [attr.inputMode]=\"this.spxInputMode()\" [attr.pattern]=\"this.spxPattern()\" [attr.name]=\"this.spxName()\"\n [attr.type]=\"this.spxType()\" [class.bg-white]=\"!this.spxReadonly()\" [class.bg-gray-300]=\"this.spxReadonly()\"\n [class.cursor-not-allowed]=\"this.spxReadonly()\" [class.uppercase]=\"this.spxCapitalize()\"\n [disabled]=\"this.mappedReadonly()\" [ngModel]=\"\n this.value()?.description\n ? this.value()?.description\n : this.value()?.value\n \" (ngModelChange)=\"this.handleChange($event)\" />\n @if (this.value()?.description && this.value()?.value &&\n this.value()?.description?.valueOf() !== this.value()?.value?.valueOf()) {\n <span>{{ this.value()?.value }}</span>\n } @if (this.spxIsFocused() && (this.spxType() === 'overlay' || this.spxType()\n === 'overlaynumber')) {\n <spx-dropdown [spxSuggestions]=\"this.spxSuggestions()\" (spxSelect)=\"this.handleSuggestionClick($event)\">\n </spx-dropdown>\n } @if (this.spxSpeedDial()) {\n <div class=\"flex flex-wrap gap-3\">\n @for (speedDial of this.spxSpeedDial(); track $index) {\n <button class=\"px-3 px-1\" [ngClass]=\"'bg-' + speedDial.backgroundColor\" (click)=\"doSelect(speedDial)\">\n {{ speedDial.valuePair.description }}\n </button>\n }\n </div>\n }\n</div>\n","export interface SpxCycleConfig {\n fieldPattern: string;\n focusOrder: number[]; // bijv. 3, 4, 5, 6, 0, 1, 2\n defaultFocusPosition: number; // bijv. 4\n length: number; // bijv. 7\n requiredPositions: boolean[]; // bijv. false, false, false, true, true, true, true\n}\n\n// {\n// defaultFocusPosition: 3,\n// fieldPattern: '[0-9]*',\n// focusOrder: [3, 4, 5, 6, 0, 1, 2],\n// length: 7,\n// requiredPositions: [false, false, false, true, true, true, true]\n// }","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Output, QueryList, ViewChildren, computed, effect, inject, input, model, signal, untracked, viewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxSeverityEnum, valuePairToValue } from '@softpak/components/spx-helpers';\n\nimport { SelectedInputService } from '../input.service';\nimport { SpxCycleConfig } from './spx-input-cycle.config';\nimport { SpxInputTypeEnum } from '../spx-input-type.enum';\nimport { SpxSpeedDial } from '../spx-speed-dial-interface';\nimport { SpxValuePair } from '../spx-value-interface';\n\n@Component({\n selector: 'spx-input-cycle',\n imports: [\n ReactiveFormsModule,\n FormsModule,\n ],\n standalone: true,\n templateUrl: './spx-input-cycle.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputCycleComponent {\n protected readonly cancelReason = signal(0);\n\n // ===== Inputs/signals (unchanged) =====\n mappedReadonly = computed(() => (this.spxReadonly() ? true : false));\n readonly spxSpeedDial = input<SpxSpeedDial<string | number>[]>([]);\n readonly spxName = input<string>();\n readonly spxAutofocus = input(false);\n readonly spxAutocomplete = input<string>();\n readonly spxCycleConfig = input.required<SpxCycleConfig>();\n readonly spxInputMode = input<string>();\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxCapitalize = input(false);\n readonly spxSeverity = computed(() => this.value()?.description as SpxSeverityEnum);\n readonly spxType = input<SpxInputTypeEnum>(SpxInputTypeEnum.text);\n readonly spxWasInternalUpdate = input(false);\n\n // Externe waarde via Angular signals API\n readonly value = model<SpxValuePair<string> | null>();\n\n spxElementId = input<number>();\n selectedInputService = inject(SelectedInputService);\n spxIsFocused = signal<boolean>(false);\n inputRef = viewChild.required<ElementRef>('input');\n\n severityError = SpxSeverityEnum.error;\n severitySuccess = SpxSeverityEnum.success;\n severityWarning = SpxSeverityEnum.warning;\n\n private isInternalUpdate = false;\n private cancelNextMouseUp = false;\n\n // auto-advance/IME guards\n private composing = false;\n private advancing = false;\n private lastAdvanceAt = 0;\n\n // voorkomt dubbel null-emitten waardoor de eerste key “verdwijnt”\n private lastEmitted: SpxValuePair<string> | null = null;\n\n private internalIncompleteVer = signal(0);\n private lastSkippedVer = -1;\n\n // interne state per POSITIE\n values?: string[] | null[];\n\n @Output() completeInput = new EventEmitter<string[]>();\n @ViewChildren('inputBox') inputBoxes!: QueryList<ElementRef>;\n\n // ===== NEW: Focus suppression + safe timers =====\n protected suppressRefocus = false;\n private pendingTimers = new Set<number>();\n\n private setT(fn: () => void, ms = 0) {\n const id = window.setTimeout(() => {\n this.pendingTimers.delete(id);\n fn();\n }, ms);\n this.pendingTimers.add(id);\n return id;\n }\n\n private clearPendingTimers() {\n this.pendingTimers.forEach((id) => clearTimeout(id));\n this.pendingTimers.clear();\n }\n\n constructor(private cdr: ChangeDetectorRef, private hostRef: ElementRef<HTMLElement>) { }\n\n /** Externe wijzigingen via model() → sync naar interne state + DOM */\n private _reactToValueChanges = effect(() => {\n const incoming = this.value(); // dependency blijft\n const ver = this.internalIncompleteVer(); // ook dependency\n\n // Sla alleen de run over die direct volgt op een interne-incomplete emit\n if (ver !== this.lastSkippedVer) {\n // we hebben zojuist een interne-incomplete emit gezien -> skip precies één keer\n this.lastSkippedVer = ver;\n return;\n }\n\n // Normale synchronisatie (pakt óók externe null's mee)\n this.updateIntervalValue(incoming ?? null);\n });\n\n ngOnInit(): void {\n const length = this.spxCycleConfig().length;\n this.values = Array(length).fill('');\n const current = this.value() ?? null;\n this.lastEmitted = current; // sync init om dubbele null-emits te vermijden\n this.updateIntervalValue(current);\n }\n\n ngAfterViewInit(): void {\n if (this.spxAutofocus()) this.spxSetFocus();\n this.applyValuesToDom();\n }\n\n ngOnDestroy(): void {\n this.clearPendingTimers();\n }\n\n // ===== Document-level pointer guards (NEW) =====\n @HostListener('document:pointerdown', ['$event'])\n onDocPointerDown(ev: PointerEvent) {\n const inside = this.hostRef.nativeElement.contains(ev.target as Node);\n if (!inside) {\n this.suppressRefocus = true; // block queued focus/selection during outside click\n this.clearPendingTimers(); // cancel already queued focus/selection\n }\n }\n\n @HostListener('document:pointerup')\n onDocPointerUp() {\n // re-enable refocus on the next frame after click completes\n requestAnimationFrame(() => {\n this.suppressRefocus = false;\n });\n }\n\n // =========================\n // Extern -> Intern & DOM\n // =========================\n private updateIntervalValue(valuePair: SpxValuePair<string> | null) {\n const len = this.spxCycleConfig().length;\n if (!this.values || this.values.length !== len) {\n this.values = Array(len).fill('');\n }\n\n if (valuePair === null) {\n // Externe reset → interne reset + DOM leegmaken\n for (let i = 0; i < len; i++) this.values[i] = '';\n this.applyValuesToDom();\n return;\n }\n\n const raw = valuePairToValue(valuePair);\n const s = (raw ?? '').toString();\n\n for (let i = 0; i < len; i++) {\n const ch = s[i];\n this.values[i] = ch ? (ch === '_' ? '' : ch) : '';\n }\n this.applyValuesToDom();\n }\n\n private applyValuesToDom() {\n queueMicrotask(() => {\n const boxes = this.inputBoxes?.toArray() ?? [];\n for (let pos = 0; pos < boxes.length; pos++) {\n const el = boxes[pos]?.nativeElement as HTMLInputElement | undefined;\n if (!el) continue;\n const v = (this.values?.[pos] ?? '') as string;\n if (el.value !== v) el.value = v;\n }\n });\n }\n\n // =========================\n // Intern -> Extern (emit)\n // =========================\n private handleChange(event: SpxValuePair<string> | null, opts?: { internalIncomplete?: boolean }) {\n if (event === null && this.lastEmitted === null && !opts?.internalIncomplete) return;\n\n untracked(() => {\n if (opts?.internalIncomplete) {\n this.internalIncompleteVer.update((v) => v + 1); // markeer alleen interne-incomplete\n }\n this.value.set(event);\n });\n this.lastEmitted = event;\n }\n\n private checkEmitCondition(): void {\n const required = this.spxCycleConfig().requiredPositions;\n\n const completed = this.values!\n .filter((_, i) => required[i] === true)\n .every((val) => val !== '' && val !== null);\n\n if (completed) {\n const out = this.values!\n .map((c) => (c == null || c === '' ? '_' : c))\n .join('')\n .toUpperCase();\n this.handleChange({ description: SpxSeverityEnum.warning, value: out } as SpxValuePair<string>);\n } else {\n this.handleChange(null, { internalIncomplete: true }); // markeer als intern-incompleet\n }\n }\n\n private isAllFilled(): boolean {\n return this.values!.every((v) => v !== '' && v !== null);\n }\n\n // =========================\n // Focus/select gedrag\n // =========================\n spxSetFocus() {\n const pos = this.spxCycleConfig().defaultFocusPosition;\n this.setT(() => this.focusPos(pos));\n }\n\n onFocus(pos: number, _ev: FocusEvent): void {\n const input = this.inputBoxes.toArray()[pos]?.nativeElement as HTMLInputElement | undefined;\n if (!input) return;\n this.setT(() => input.select(), 0); // selecteer altijd alles bij focus (guarded)\n this.cancelNextMouseUp = true;\n }\n\n onMouseUp(ev: MouseEvent): void {\n if (this.cancelNextMouseUp) {\n ev.preventDefault(); // behoud selectie na muisklik\n this.cancelNextMouseUp = false;\n }\n }\n\n // =========================\n // IME/compositie\n // =========================\n onCompositionStart() {\n this.composing = true;\n }\n onCompositionEnd() {\n this.composing = false;\n }\n\n // =========================\n // Invoer\n // =========================\n onInput(pos: number, event: Event): void {\n this.cancelReason.set(0);\n\n if (!this.values) {\n this.cancelReason.set(1);\n return;\n }\n\n const inputEl = event.target as HTMLInputElement;\n let v = inputEl.value ?? '';\n\n if (v.length > 1) {\n v = v.charAt(0);\n if (inputEl.value !== v) inputEl.value = v;\n }\n\n this.values[pos] = v;\n this.checkEmitCondition();\n\n if (this.composing) {\n this.cancelReason.set(2);\n return;\n }; // niet tijdens IME\n if (document.activeElement !== inputEl) {\n this.cancelReason.set(3);\n return;\n }; // race guard\n if (v.length !== 1) {\n this.cancelReason.set(4);\n return;\n }; // alleen als er precies 1 teken staat\n\n const order = this.spxCycleConfig().focusOrder;\n const isLastPos = pos === order.length - 1;\n\n if (isLastPos && this.isAllFilled()) {\n this.cancelReason.set(5);\n return;\n }\n\n const now = Date.now();\n if (this.advancing || now - this.lastAdvanceAt < 40) {\n this.cancelReason.set(6);\n return;\n }\n\n this.advancing = true;\n this.setT(() => {\n try {\n // Als een outside click bezig is, skip alleen de focuswissel,\n // maar laat advancing wél resetten via finally.\n if (this.suppressRefocus) {\n this.cancelReason.set(7);\n return;\n }\n\n if (inputEl.value.length === 1 && document.activeElement === inputEl) {\n const next = this.nextPos(pos);\n this.focusPos(next);\n this.lastAdvanceAt = Date.now();\n } else {\n this.cancelReason.set(7);\n }\n } finally {\n this.advancing = false; // ← ALTIJD resetten\n }\n }, 50); // ← echt 50ms doen\n }\n\n private clearAllAndEmit() {\n const len = this.spxCycleConfig().length;\n if (!this.values || this.values.length !== len) {\n this.values = Array(len).fill('');\n } else {\n for (let i = 0; i < len; i++) this.values[i] = '';\n }\n this.applyValuesToDom();\n this.handleChange(null);\n const start = this.spxCycleConfig().defaultFocusPosition ?? 0;\n this.focusPos(start);\n }\n\n private getNextTabStop(fromEl: HTMLElement, backwards = false): HTMLElement | null {\n const selector = [\n 'a[href]',\n 'area[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n '[contenteditable=\"true\"]',\n ].join(',');\n\n const all = Array.from(document.querySelectorAll<HTMLElement>(selector)).filter(\n (el) => !el.hasAttribute('disabled') && el.tabIndex !== -1 && el.offsetParent !== null && !el.hasAttribute('inert')\n );\n\n const i = all.indexOf(fromEl);\n if (i === -1) return null;\n\n const next = backwards ? all[i - 1] : all[i + 1];\n return next ?? null;\n }\n\n onKeydown(pos: number, event: KeyboardEvent): void {\n const el = this.inputBoxes.toArray()[pos]?.nativeElement as HTMLInputElement | undefined;\n if (!el) return;\n\n const isPrintable = event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;\n if (isPrintable && el.value.length >= 1 && el.selectionStart === el.selectionEnd) {\n el.select();\n }\n\n if (event.key === 'Tab') {\n const order = this.spxCycleConfig().focusOrder;\n const isLastPos = pos === order.length - 1;\n\n if (isLastPos && this.isAllFilled()) {\n const next = this.getNextTabStop(el, event.shiftKey);\n if (next) {\n event.preventDefault();\n next.focus();\n }\n return;\n }\n }\n\n if (event.key === 'Backspace' || event.key === 'Delete') {\n event.preventDefault();\n this.clearAllAndEmit();\n return;\n }\n }\n\n // =========================\n // Navigatie (posities)\n // =========================\n private nextPos(pos: number): number {\n const order = this.spxCycleConfig().focusOrder;\n return (pos + 1) % order.length;\n }\n\n private prevPos(pos: number): number {\n const order = this.spxCycleConfig().focusOrder;\n return (pos - 1 + order.length) % order.length;\n }\n\n private focusPos(pos: number): void {\n if (this.suppressRefocus) return; // NEW: don't steal focus during outside clicks\n const el = this.inputBoxes.toArray()[pos]?.nativeElement as HTMLInputElement | undefined;\n if (!el) return;\n if (document.activeElement === el) return; // al gefocust\n el.focus({ preventScroll: true });\n if (el.value) this.setT(() => el.select()); // selection guarded\n }\n}\n","<div class=\"relative text-black flex gap-1 w-full\">\n @for (val of values; track $index) {\n <input #inputBox type=\"text\" maxlength=\"1\" pattern=\"\\d*\" [value]=\"val\" (focus)=\"onFocus($index, $event)\"\n (compositionstart)=\"onCompositionStart()\" (compositionend)=\"onCompositionEnd()\" (input)=\"onInput($index, $event)\"\n (keydown)=\"onKeydown($index, $event)\" (mouseup)=\"onMouseUp($event)\"\n [attr.inputMode]=\"this.spxInputMode()\" [attr.pattern]=\"spxCycleConfig().fieldPattern\"\n [class.opacity-50]=\"spxCycleConfig().requiredPositions[$index] === false\"\n [class.bg-sky-100]=\"!this.spxReadonly() && !this.spxSeverity()\"\n [class.bg-red-100]=\"!this.spxReadonly() && this.spxSeverity() === severityError\"\n [class.bg-amber-100]=\"!this.spxReadonly() && this.spxSeverity() === severityWarning\"\n [class.bg-teal-100]=\"!this.spxReadonly() && this.spxSeverity() === severitySuccess\"\n [class.bg-gray-400]=\"this.spxReadonly()\" [class.cursor-not-allowed]=\"this.spxReadonly()\"\n [class.uppercase]=\"this.spxCapitalize()\" [disabled]=\"this.mappedReadonly()\"\n class=\"rounded text-center px-1 py-3 font-bold text-lg w-full\" />\n }\n</div>\n","\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, HostListener, inject, input, model, OnInit, signal, viewChild } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\nimport { FormsModule } from '@angular/forms';\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\nimport { SelectedInputService } from '../input.service';\nimport { filter } from 'rxjs';\n\nenum stepType {\n years = \"years\",\n months = \"months\",\n days = \"days\"\n}\n\n@Component({\n selector: 'spx-input-date',\n standalone: true,\n imports: [\n SpxSuggestionComponent,\n FormsModule\n ],\n templateUrl: \"./spx-input-date.component.html\",\n styleUrl: \"./spx-input-date.component.css\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputDateComponent implements OnInit {\n spxMax = input.required<string>();\n spxMin = input.required<string>();\n spxReadonly = input<boolean>();\n spxValidators = input<any[]>();\n spxAutoFocus = input(false);\n value = model<SpxValuePair<string>>({\n description: \"\",\n value: \"\",\n });\n\n spxSelectedStep = signal<stepType>(stepType.years);\n spxSelectDay = input<boolean>(false);\n spxSelectMonth = input<boolean>(true);\n selectedYear = signal<number | null>(null);\n selectedMonth = signal<number | null>(null);\n selectedDay = signal<number | null>(null);\n\n yearInputComponent = viewChild.required<ElementRef>(stepType.years);\n monthInputComponent = viewChild.required<ElementRef>(stepType.months);\n dayInputComponent = viewChild.required<ElementRef>(stepType.days);\n spxElementId = input<number>();\n selectedInputService = inject(SelectedInputService);\n spxIsFocused = signal<boolean>(false);\n private isInternalUpdate = signal<boolean>(false);\n\n spxSuggestionC = computed<SpxValuePair<number>[]>(() => {\n switch (this.spxSelectedStep()) {\n case stepType.years:\n return this.spxSuggestions().years;\n case stepType.months:\n return [...this.spxSuggestions().months]\n case stepType.days:\n return [...this.spxSuggestions().days]\n }\n });\n\n\n handleFocus(selectedStep: string) {\n switch (selectedStep) {\n case stepType.years:\n this.spxSelectedStep.set(stepType.years);\n this.yearInputComponent().nativeElement.focus();\n break;\n case stepType.months:\n this.spxSelectedStep.set(stepType.months);\n this.monthInputComponent().nativeElement.focus();\n break;\n case stepType.days:\n this.spxSelectedStep.set(stepType.days);\n this.dayInputComponent().nativeElement.focus();\n break;\n }\n }\n\n onModelChange(newValue: string, selectedStep: string) {\n this.isInternalUpdate.set(true);\n\n const parsedValue = +newValue; // Convert to number\n if (parsedValue == 0) return;\n switch (selectedStep) {\n case stepType.years:\n this.selectedYear.set(parsedValue);\n if (parsedValue > 999) {\n this.spxSelectedStep.set(stepType.months);\n this.monthInputComponent().nativeElement.focus();\n }\n break;\n case stepType.months:\n this.selectedMonth.set(parsedValue);\n break;\n case stepType.days:\n this.selectedDay.set(parsedValue);\n break;\n }\n\n this.updateValueAndEmit();\n this.isInternalUpdate.set(false);\n }\n\n spxSuggestions = input<{\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\n ngOnInit() {\n this.suggestYears();\n this.setValue();\n\n if (this.spxAutoFocus()) {\n this.handleFocus(\"years\");\n }\n\n // Filter updates based on focus state\n this.selectedInputService.focusedElement$\n .pipe(filter((focusedId) => focusedId === this.spxElementId()))\n .subscribe(() => {\n this.spxIsFocused.set(true); // Update only if focused\n this.handleFocus(this.spxSelectedStep());\n });\n }\n\n ngOnChanges() {\n if (!this.isInternalUpdate()) {\n this.setValue();\n }\n }\n\n private setValue() {\n if (valuePairToValue(this.value())) {\n const parsedValue = DateTime.fromISO(valuePairToValue(this.value()) as string);\n if (this.selectedYear() && this.selectedYear()! < 999) {\n return;\n }\n this.selectedYear.set(parsedValue.year);\n this.selectedMonth.set(parsedValue.month);\n this.selectedDay.set(parsedValue.day);\n }\n }\n\n handleSuggestionClick(value: number) {\n\n switch (this.spxSelectedStep()) {\n case stepType.years:\n this.selectedYear.set(value);\n break;\n case stepType.months:\n this.selectedMonth.set(value);\n break;\n case stepType.days:\n this.selectedDay.set(value);\n break;\n }\n\n this.updateValueAndEmit();\n this.changeSelectedStep();\n }\n\n // Handle keyboard navigation (Tab and Shift + Tab)\n @HostListener('keydown', ['$event'])\n handleTabKey(event: KeyboardEvent): void {\n if (event.key === 'Tab') {\n\n this.changeSelectedStep();\n\n event.preventDefault(); // Prevent default tab behavior\n }\n }\n\n updateValueAndEmit() {\n if (this.selectedYear() && this.selectedMonth()) {\n const concatenatedValue = `${this.selectedYear() ? this.selectedYear() : ``}${this.selectedMonth() ? `${this.selectedMonth()! < 10 ? `0${this.selectedMonth()}` : this.selectedMonth()}` : ``}${this.selectedDay() ? `-${this.selectedDay()! < 10 ? `0${this.selectedDay()}` : this.selectedDay()}` : ``}`\n const parsedValue = DateTime.fromISO(concatenatedValue);\n this.value.set({ value: parsedValue.toISO()!, description: parsedValue.toISO() });\n }\n }\n\n changeSelectedStep() {\n switch (this.spxSelectedStep()) {\n case stepType.years:\n if (this.spxSelectMonth()) {\n this.spxSelectedStep.set(stepType.months);\n this.monthInputComponent().nativeElement.focus();\n }\n else {\n this.spxSelectedStep.set(stepType.years);\n this.yearInputComponent().nativeElement.focus();\n }\n break;\n case stepType.months:\n if (this.spxSelectDay()) {\n this.spxSelectedStep.set(stepType.days);\n this.dayInputComponent().nativeElement.focus();\n }\n else {\n this.spxSelectedStep.set(stepType.years);\n this.yearInputComponent().nativeElement.focus();\n }\n break;\n case stepType.days:\n this.spxSelectedStep.set(stepType.years);\n this.yearInputComponent().nativeElement.focus();\n break;\n }\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 handleClear() {\n this.spxSelectedStep.set(stepType.years);\n this.selectedYear.set(null);\n this.selectedMonth.set(null);\n this.selectedDay.set(null);\n }\n}\n","<div class='spx-input-date__controls'>\n <input #years\n class='spx-input-date__input'\n [ngModel]=\"selectedYear()\"\n (ngModelChange)=\"onModelChange($event, 'years')\"\n [attr.type]=\"'number'\"\n (click)=\"this.handleFocus('years')\"\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 #months\n class='spx-input-date__input'\n [ngModel]=\"selectedMonth()\"\n (ngModelChange)=\"onModelChange($event, 'months')\"\n (click)=\"this.handleFocus('months')\"\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 #days\n class='spx-input-date__input'\n [ngModel]=\"selectedDay()\"\n (ngModelChange)=\"onModelChange($event, 'days')\"\n (click)=\"this.handleFocus('days')\"\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 spxSuggestionC(); track valuePair.value) {\n <spx-suggestion [spxSelected]=\"\n (selectedYear() === valuePair.value && this.spxSelectedStep() === 'years') ||\n (selectedMonth() === valuePair.value && this.spxSelectedStep() === 'months') || \n (selectedDay() === valuePair.value && this.spxSelectedStep() === 'days')\"\n (click)=\"this.handleSuggestionClick(valuePair.value)\">{{valuePair?.description}}</spx-suggestion>\n }\n</div>","\nimport { ChangeDetectionStrategy, Component, ElementRef, OnInit, SimpleChanges, computed, inject, input, model, signal, viewChild } from '@angular/core';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { FormsModule } from '@angular/forms';\nimport { SelectedInputService } from '../input.service';\n\n@Component({\n selector: 'spx-input-float',\n imports: [\n FormsModule,\n ],\n standalone: true,\n templateUrl: './spx-input-float.component.html',\n styleUrl: './spx-input-float.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n})\nexport class SpxInputFloatComponent implements OnInit {\n protected internalValue = signal<{\n first: number | null;\n second: number | null;\n }>({\n first: null,\n second: null,\n });\n\n mappedReadonly = computed(() => this.spxReadonly() ? true : false);\n readonly spxName = input<string>();\n readonly spxAutofocus = input(false);\n readonly spxElementId = input<number>();\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxStep = input<number>();\n readonly value = model.required<SpxValuePair<any>>();\n readonly spxWasInternalUpdate = input(false);\n readonly selectedInputService = inject(SelectedInputService);\n readonly spxIsFocused = signal<boolean>(false);\n readonly firstInputRef = viewChild<ElementRef<HTMLInputElement>>('firstInputRef');\n readonly secondInputRef = viewChild<ElementRef<HTMLInputElement>>('secondInputRef');\n private isInternalUpdate = signal<boolean>(false);\n\n spxSetFocus() {\n this.firstInputRef()?.nativeElement?.focus();\n }\n\n ngOnInit() {\n if (this.spxAutofocus()) {\n this.spxSetFocus();\n }\n\n this.selectedInputService.focusedElement$\n .subscribe((focusedId) => {\n if(focusedId === this.spxElementId() && this.spxIsFocused() == false) {\n this.spxIsFocused.set(true); // Update only if focused\n this.spxSetFocus();\n }\n else if(focusedId !== this.spxElementId() && focusedId != null) {\n this.spxIsFocused.set(false);\n }\n });\n\n this.handleSetValue(this.value());\n }\n\n ngOnChanges() {\n if(!this.isInternalUpdate()) {\n this.handleSetValue(this.value());\n }\n }\n\n handleSetValue(newValue: SpxValuePair<any>) {\n if (this.isNumeric(newValue?.value)) {\n this.internalValue.set({\n first: newValue?.value >= 0 ? Math.floor(parseFloat(newValue?.value)) : Math.ceil(parseFloat(newValue?.value)),\n second: newValue?.value?.split ? newValue?.value.split('.')[1] : 0,\n });\n } else {\n this.internalValue.set({\n first: null,\n second: null,\n });\n }\n }\n\n handleInput(value: any, position: 1 | 2) {\n this.isInternalUpdate.set(true);\n this.internalValue.set({\n first: position === 1 ? value : this.internalValue().first,\n second: position === 2 ? value : 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.set({\n description: result,\n value: result,\n });\n this.isInternalUpdate.set(false);\n }\n\n handleClear() {\n this.internalValue().first = null;\n this.internalValue().second = null;\n }\n\n isNumeric(value: string) {\n return /^[+-]?\\d+(\\.\\d+)?$/.test(value);\n }\n}\n","<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()\"\n [attr.pattern]=\"'-?[0-9]*'\"\n [attr.step]=\"1\"\n [attr.type]=\"'text'\"\n [class.spx-input-float--readonly]=\"this.spxReadonly() ? this.spxReadonly() : undefined\"\n [disabled]=\"this.mappedReadonly()\"\n [ngModel]=\"this.internalValue().first ? this.internalValue().first : undefined\"\n (ngModelChange)=\"this.handleInput($event, 1)\" />\n <span class=\"text-black font-bold text-2xl mx-4\">,</span>\n <input #secondInputRef\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()\"\n [ngModel]=\"this.internalValue().second ? this.internalValue().second : undefined\"\n (ngModelChange)=\"this.handleInput($event, 2)\"\n [attr.step]=\"1\"\n [attr.type]=\"'text'\"\n [attr.pattern]=\"'[0-9]*'\"\n [disabled]=\"this.mappedReadonly()\" />\n</div>","import { Component, viewChild, input, ChangeDetectionStrategy, ElementRef, model, inject, computed } from '@angular/core';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { FormsModule } from '@angular/forms';\nimport { SelectedInputService } from '../input.service';\nimport { filter } from 'rxjs';\n\n@Component({\n selector: 'spx-input-number',\n standalone: true,\n templateUrl: './spx-input-number.component.html',\n styleUrl: './spx-input-number.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule]\n})\n\nexport class SpxInputNumberComponent {\n mappedReadonly = computed(() => this.spxReadonly() ? true : false);\n readonly spxName = input<string>();\n readonly spxAutofocus = input<boolean>(false);\n readonly spxInputMode = input<string>();\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxFocused = input(true);\n readonly spxStep = input<number>();\n readonly value = model.required<SpxValuePair<any>>();\n readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('input');\n readonly spxElementId = input<number>();\n readonly selectedInputService = inject(SelectedInputService);\n \n ngOnInit() {\n // Filter updates based on focus state\n this.selectedInputService.focusedElement$\n .pipe(filter((focusedId) => focusedId === this.spxElementId()))\n .subscribe(() => {\n this.spxSetFocus();\n });\n }\n \n spxSetFocus() {\n this.inputRef().nativeElement?.focus();\n }\n\n handleChange($event: any) {\n this.value.set({...this.value(), value: $event});\n }\n\n componentDidLoad() {\n if (this.spxAutofocus()) {\n this.spxSetFocus();\n }\n }\n}","<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()\"\n [attr.inputMode]=\"this.spxInputMode() ? this.spxInputMode() : undefined\"\n [attr.step]=\"this.spxStep() ? this.spxStep() : undefined\"\n [attr.type]=\"'number'\"\n [disabled]=\"this.mappedReadonly()\"\n [ngModel]=\"this.value() ? this.value().value : undefined\"\n (ngModelChange)=\"this.handleChange($event)\" />\n</div> ","import { ChangeDetectionStrategy, Component, SimpleChanges, inject, input, model, signal } from '@angular/core';\nimport { Subscription, fromEvent } from 'rxjs';\n\nimport { SelectedInputService } from '../input.service';\nimport { SpxSuggestionComponent } from '@softpak/components/spx-suggestion';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { valuePairToValue } from '@softpak/components/spx-helpers';\n\n@Component({\n selector: 'spx-input-radio',\n standalone: true,\n imports: [\n SpxSuggestionComponent\n ],\n templateUrl: './spx-input-radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputRadioComponent {\n readonly cachedSuggestions = signal<SpxValuePair<any>[]>([]);\n readonly focusPosition = signal<number>(0);\n readonly spxName = input<string>();\n readonly spxValidators = input<any[]>();\n readonly spxShowLabel = input(true);\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxSuggestions = input<SpxValuePair<any>[]>([]);\n readonly value = model<SpxValuePair<any>>();\n readonly selectedInputService = inject(SelectedInputService);\n readonly spxElementId = input<number>();\n readonly spxIsFocused = signal<boolean>(false);\n private subscriptionKeyUp?: Subscription;\n private subscriptionKeyDown?: Subscription;\n\n private getSuggestions(): SpxValuePair<any>[] {\n return this.spxSuggestions() ?? [];\n }\n\n ngOnInit() {\n this.selectedInputService.focusedElement$\n .subscribe((focusedId) => {\n if(focusedId === this.spxElementId() && this.spxIsFocused() == false) {\n this.spxIsFocused.set(true); // Update only if focused\n this.listenToKeys();\n }\n else if(focusedId !== this.spxElementId() && this.spxIsFocused() == true) {\n this.spxIsFocused.set(false);\n this.subscriptionKeyDown?.unsubscribe();\n this.subscriptionKeyUp?.unsubscribe();\n }\n\n this.determineFocusPosition();\n });\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.set(changes['spxSuggestions']?.currentValue ?? []);\n }\n }\n\n handleSuggestionClick(valuePair: SpxValuePair<any>) {\n\n if (this.spxReadonly()) {\n } else {\n this.select(valuePair);\n }\n\n this.determineFocusPosition();\n }\n\n private determineFocusPosition() {\n const spxSuggestions = this.getSuggestions();\n if (this.value() && spxSuggestions?.length) {\n const index = spxSuggestions.findIndex(valuePair => valuePairToValue(valuePair) === valuePairToValue(this.value()));\n this.focusPosition.set(index >= 0 ? index : 0);\n } else {\n this.focusPosition.set(0);\n }\n }\n\n private select(valuePair: SpxValuePair<string | number | boolean>): void {\n this.value.set(valuePair);\n }\n\n private listenToKeys(): void {\n this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {\n const suggestions = this.getSuggestions();\n\n if (((event as KeyboardEvent).key === 'ArrowUp' || (event as KeyboardEvent).key === 'ArrowLeft') && this.focusPosition() > 0) {\n this.focusPosition.update((position) => position - 1);\n this.select(suggestions.at(this.focusPosition())!);\n event.preventDefault();\n }\n if (((event as KeyboardEvent).key === 'ArrowDown' || (event as KeyboardEvent).key === 'ArrowRight') && this.focusPosition() < suggestions.length - 1) {\n this.focusPosition.update((position) => position + 1);\n this.select(suggestions.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}\n","<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 [spxSelected]=\"this.value()?.value === valuePair?.value\"\n [spxTabbable]=\"this.focusPosition() === i\"\n [spxFocused]=\"(this.focusPosition() === i && this.spxIsFocused())\"\n (click)=\"this.handleSuggestionClick(valuePair)\">\n {{valuePair?.description}}\n </spx-suggestion>\n }\n</div>","\nimport { ChangeDetectionStrategy, Component, input, output, signal } from '@angular/core';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { IonButtons, IonContent, IonHeader, IonTitle, IonToolbar, ModalController } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'spx-input-time-modal',\n imports: [\n FontAwesomeModule,\n IonButtons,\n IonContent,\n IonHeader,\n IonTitle,\n IonToolbar,\n SpxButtonComponent,\n ],\n templateUrl: './spx-input-time-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpxInputTimeModalComponent {\n readonly view = input.required<'hours' | 'minutes'>();\n readonly value = input.required<number>();\n change = output<number>();\n faXmark = faXmark;\n hourOptions = signal<number[]>(Array.from({ length: 24 }, (_, i) => i)); // 0 to 23\n minuteOptions = signal<number[]>(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 this.modalController.dismiss(value);\n }\n}\n","<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>","\nimport { ChangeDetectionStrategy, Component, ElementRef, computed, input, model, signal, viewChild } from '@angular/core';\nimport { SpxValuePair } from '../spx-value-interface';\nimport { DateTime } from 'luxon';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { SpxInputTimeModalComponent } from '../spx-input-time-modal/spx-input-time-modal.component';\nimport { ModalController } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'spx-input-time',\n standalone: true,\n styleUrl: './spx-input-time.component.css',\n templateUrl: './spx-input-time.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputTimeComponent {\n readonly spxName = input<string>();\n readonly spxAutofocus = input(false);\n readonly spxInputMode = input<string>();\n readonly spxPattern = input<string>();\n readonly spxSuggestions = input<SpxValuePair<boolean | number | string>[]>([]);\n readonly spxReadonly = input<true | undefined>(undefined);\n readonly spxValidators = input<any[]>();\n readonly spxCapitalize = input(false);\n readonly value = model.required<SpxValuePair<any>>();\n readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('input');\n readonly severitySuccess = SpxSeverityEnum.success;\n selectedHour = signal<number | null>(null);\n selectedMinute = signal<number | null>(null);\n readonly formattedHour = computed(() => this.selectedHour() !== null && this.selectedHour()! < 10 ? `0${this.selectedHour()}` : this.selectedHour());\n readonly formattedMinute = computed(() => this.selectedMinute() !== null && this.selectedMinute()! < 10 ? `0${this.selectedMinute()}` : this.selectedMinute());\n readonly hour = computed(() => this.value()?.value ? DateTime.fromISO(this.value()!.value).hour : null);\n readonly minute = computed(() => this.value()?.value ? DateTime.fromISO(this.value()!.value).minute : null);\n\n constructor(private modalController: ModalController) {}\n\n ngOnInit() {\n this.componentDidLoad();\n }\n\n spxSetFocus() {\n this.inputRef().nativeElement?.focus();\n }\n\n componentDidLoad() {\n if (this.spxAutofocus()) {\n this.spxSetFocus();\n }\n }\n\n handleDescriptionInput(event: any) {\n this.value.set({\n description: event.target ? event.target.value : null,\n value: event.target ? event.target.value : null,\n });\n }\n\n handleSuggestionClick(value: any) {\n if (!this.spxReadonly()) {\n this.value.set(value);\n }\n }\n\n async openDialog(view: 'hours' | 'minutes') {\n const value = this.value();\n const modal = await this.modalController.create({\n component: SpxInputTimeModalComponent,\n componentProps: {\n value: value?.value ?\n (view === 'hours' ? DateTime.fromISO(value.value).hour : DateTime.fromISO(value.value).minute) : undefined,\n view,\n },\n });\n\n modal.onDidDismiss().then((data) => {\n\n if (view === 'hours') {\n this.selectedHour.set(data.data);\n this.openDialog('minutes');\n this.updateValue();\n\n } else if (view === 'minutes') {\n this.selectedMinute.set(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.set({\n description: newValue,\n value: newValue,\n });\n }\n }\n}\n","<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>","import { ChangeDetectionStrategy, Component, HostListener, computed, inject, input, output, signal, viewChild } from '@angular/core';\n\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectedInputService } from './input.service';\nimport { SpxCycleConfig } from './public-api';\nimport { SpxInputAlertI } from '@softpak/components/spx-helpers';\nimport { SpxInputBoxComponent } from './spx-input-box/spx-input-box.component';\nimport { SpxInputLeftIcon } from './spx-input-box/spx-input-box.component';\nimport { SpxInputCycleComponent } from './spx-input-cycle/spx-input-cycle.component';\nimport { SpxInputLeftIconDirective } from './spx-input-left-icon.directive';\nimport { SpxInputDateComponent } from './spx-input-date/spx-input-date.component';\nimport { SpxInputFloatComponent } from './spx-input-float/spx-input-float.component';\nimport { SpxInputNumberComponent } from './spx-input-number/spx-input-number.component';\nimport { SpxInputRadioComponent } from './spx-input-radio/spx-input-radio.component';\nimport { SpxInputTextComponent } from './spx-input-text/spx-input-text.component';\nimport { SpxInputTimeComponent } from './spx-input-time/spx-input-time.component';\nimport { SpxInputTypeEnum } from './spx-input-type.enum';\nimport { SpxSpeedDial } from './spx-speed-dial-interface';\nimport { SpxValuePair } from './spx-value-interface';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'spx-input',\n host: {\n '(spxChange)': 'handleChangeEvent($event)'\n },\n imports: [\n SpxInputBoxComponent,\n SpxInputCycleComponent,\n SpxInputDateComponent,\n SpxInputFloatComponent,\n SpxInputLeftIconDirective,\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 standalone: true,\n templateUrl: './spx-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxInputComponent {\n protected mappedName = computed(() => this.spxName() ?? undefined);\n protected mappedReadonly = computed(() => this.spxReadonly() === true ? true : undefined);\n protected matchButtonXlHeight = computed(() =>\n this.spxType() === this.typeText &&\n !this.spxShowLabel() &&\n !!this.spxLeftIcon()\n );\n readonly spxSpeedDial = input<SpxSpeedDial<string | number>[]>([]);\n readonly spxLabel = input<string>('label');\n readonly spxMax = input<string>();\n readonly spxMin = input<string>();\n readonly spxName = input<string>();\n readonly spxReadonly = input(false);\n readonly spxAutocomplete = input<string>();\n readonly spxAutofocus = input(false);\n readonly spxInputMode = input<string>();\n readonly spxPattern = input<string>();\n readonly spxRequired = input(false);\n readonly spxSelectMonth = input(true);\n readonly spxSelectDay = input(true);\n readonly spxShowEdit = input(false);\n readonly spxShowHelp = input(false);\n readonly spxLeftIcon = input<SpxInputLeftIcon>();\n readonly spxShowLabel = input(true);\n readonly spxCompact = input(false);\n readonly spxShowClear = input(true);\n readonly spxShowSearch = input(false);\n readonly spxAlert = input<SpxInputAlertI>();\n readonly spxShowValidationMessages = input<boolean | null | undefined>(false);\n readonly spxStep = input<number>();\n readonly spxSuggestions = input<SpxValuePair<boolean | number | string>[]>([]);\n readonly spxType = input<SpxInputTypeEnum>(SpxInputTypeEnum.text);\n readonly spxValidators = input<any[]>();\n readonly spxCapitalize = input(false);\n readonly spxCycleConfig = input<SpxCycleConfig>();\n value = signal<SpxValuePair<any>>({ value: null, description: null });\n spxClear = output();\n spxEdit = output();\n spxHelp = output();\n spxSearch = output();\n spxBlur = output();\n floatInput = viewChild<SpxInputFloatComponent>(\"spxInputFloat\");\n numberInput = viewChild<SpxInputNumberComponent>(\"spxInputNumber\");\n textInput = viewChild<SpxInputTextComponent>(\"spxInputText\");\n timeInput = viewChild<SpxInputTimeComponent>(\"spxInputTime\");\n radioInput = viewChild<SpxInputRadioComponent>(\"spxInputRadio\");\n dateInput = viewChild<SpxInputDateComponent>(\"spxInputDate\");\n cycleInput = viewChild<SpxInputCycleComponent>(\"spxInputCycle\");\n spxElementId = signal<number>(0);\n selectedInputService = inject(SelectedInputService);\n private selectedInputServiceSubscription: Subscription | undefined;\n\n protected readonly showInputText = computed(() =>\n this.spxType() === this.typeAutoComplete || this.spxType() === this.typeOverlay ||\n this.spxType() === this.typeOverlayNumber || this.spxType() === this.typeText || this.spxType() === this.typeTextNumericKeyboard ||\n this.spxType() === this.typePassword\n );\n protected readonly showInputCycle = computed(() =>\n this.spxType() === this.typeCycle || this.spxType() === this.typeCycleNumeric\n );\n protected readonly showInputDate = computed(() =>\n this.spxType() === this.typeDate\n );\n protected readonly showInputFloat = computed(() =>\n this.spxType() === this.typeFloat\n );\n protected readonly showInputNumber = computed(() =>\n this.spxType() === this.typeNumber\n );\n protected readonly showInputRadio = computed(() =>\n this.spxType() === this.typeRadio\n );\n protected readonly showInputTime = computed(() =>\n this.spxType() === this.typeTime\n );\n\n protected readonly typeAutoComplete = SpxInputTypeEnum.autocomplete;\n protected readonly typeOverlay = SpxInputTypeEnum.overlay;\n protected readonly typeOverlayNumber = SpxInputTypeEnum.overlayNumber;\n protected readonly typeText = SpxInputTypeEnum.text;\n protected readonly typeTextNumericKeyboard = SpxInputTypeEnum.textNumericKeyboard;\n protected readonly typePassword = SpxInputTypeEnum.password;\n protected readonly typeCycle = SpxInputTypeEnum.cycle;\n protected readonly typeCycleNumeric = SpxInputTypeEnum.cycleNumeric;\n protected readonly typeDate = SpxInputTypeEnum.date;\n protected readonly typeFloat = SpxInputTypeEnum.float;\n protected readonly typeNumber = SpxInputTypeEnum.number;\n protected readonly typeRadio = SpxInputTypeEnum.radio;\n protected readonly typeTime = SpxInputTypeEnum.time;\n\n handleSpxElementIdSet(id: number) {\n this.spxElementId.set(id);\n\n this.selectedInputServiceSubscription = this.selectedInputService.isBlurred$(id).subscribe((isBlurred) => {\n if (isBlurred) {\n this.spxBlur.emit();\n }\n });\n }\n\n ngOnDestroy() {\n if (this.selectedInputServiceSubscription) {\n this.selectedInputServiceSubscription.unsubscribe();\n }\n }\n\n handleChange(event: any) {\n this.value.set(event);\n }\n\n triggerChangeDetection(): void {\n this.textInput()?.triggerChangeDetection();\n }\n\n handleClear() {\n this.spxClear.emit();\n this.passFocusToControl();\n this.handleChangeEvent({\n value: null,\n });\n\n this.dateInput()?.handleClear();\n this.floatInput()?.handleClear();\n }\n\n handleSearch() {\n this.spxSearch.emit();\n }\n\n handleEdit() {\n this.spxEdit.emit();\n }\n\n handleHelp() {\n this.spxHelp.emit();\n }\n\n setFocusIn() {\n setTimeout(() => {\n this.passFocusToControl();\n }, 0);\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.cycle:\n case SpxInputTypeEnum.cycleNumeric:\n this.cycleInput()?.spxSetFocus();\n break;\n case SpxInputTypeEnum.number:\n this.numberInput()?.spxSetFocus();\n break;\n case SpxInputTypeEnum.radio:\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 = null;\n\n writeValue(value: any) {\n if (value === null && this.lastValue === null) { return; }\n this.value.set(value); // hier komt initiele waarde van formcontrol binnen\n this.lastValue = value;\n }\n\n handleChangeEvent(value: any) {\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.onChange(value);\n }\n this.writeValue(value);\n }\n\n @HostListener('focusout')\n _handleBlurEvent() {\n this.onTouched();\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.onChange = fn; // emit verandering aan formcontrol\n }\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n}\n","<spx-input-box\n (spxClear)=\"this.handleClear()\"\n (spxEdit)=\"this.handleEdit()\"\n (spxHelp)=\"this.handleHelp()\"\n (spxSearch)=\"this.handleSearch()\"\n (spxSetIdInParent)=\"handleSpxElementIdSet($event)\"\n [spxAlert]=\"this.spxAlert()\"\n [spxCompact]=\"this.spxCompact()\"\n [spxLabel]=\"this.spxLabel()\"\n [spxLeftIcon]=\"this.spxLeftIcon()\"\n [spxMatchButtonXlHeight]=\"this.matchButtonXlHeight()\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.spxReadonly()\"\n [spxRequired]=\"this.spxRequired()\"\n [spxShowClear]=\"this.spxShowClear()\"\n [spxShowEdit]=\"this.spxShowEdit()\"\n [spxShowHelp]=\"this.spxShowHelp()\"\n [spxShowLabel]=\"this.spxShowLabel()\"\n [spxShowSearch]=\"this.spxShowSearch() ? this.spxShowSearch() : this.spxType() === 'autocomplete'\"\n [spxShowValidationMessages]=\"this.spxShowValidationMessages()\"\n [spxValue]=\"this.value()\"\n>\n <ng-content select=\"[spxInputLeftIcon]\"></ng-content>\n <div controls>\n @if (this.showInputText()) {\n <spx-input-text\n (valueChange)=\"handleChangeEvent($event)\"\n [spxAutocomplete]=\"this.spxAutocomplete() ? this.spxAutocomplete() : undefined\"\n [spxSpeedDial]=\"this.spxSpeedDial()\"\n [spxAutofocus]=\"this.spxAutofocus()\"\n [spxCapitalize]=\"this.spxCapitalize()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxInputMode]=\"this.spxType() === 'overlaynumber' ? 'numeric' : this.spxInputMode()\"\n [spxName]=\"this.mappedName()\"\n [spxMatchButtonXlHeight]=\"this.matchButtonXlHeight()\"\n [spxPattern]=\"this.spxType() === 'overlaynumber' ? '[0-9]*' : this.spxPattern()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxSuggestions]=\"this.spxSuggestions()\"\n [spxType]=\"this.spxType()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputText\n ></spx-input-text>\n } @if (this.showInputCycle()) {\n <spx-input-cycle\n (valueChange)=\"handleChangeEvent($event)\"\n [spxCycleConfig]=\"this.spxCycleConfig()!\"\n [spxSpeedDial]=\"this.spxSpeedDial()\"\n [spxAutofocus]=\"this.spxAutofocus()\"\n [spxCapitalize]=\"this.spxCapitalize()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxInputMode]=\"this.spxType() === 'cycleNumeric' ? 'numeric' : 'text'\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxType]=\"this.spxType()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputText\n ></spx-input-cycle>\n } @if (this.showInputDate()) {\n <spx-input-date\n (valueChange)=\"handleChangeEvent($event)\"\n [spxAutoFocus]=\"this.spxAutofocus()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxMax]=\"this.spxMax()!\"\n [spxMin]=\"this.spxMin()!\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxSelectDay]=\"this.spxSelectDay()\"\n [spxSelectMonth]=\"this.spxSelectMonth()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputDate\n ></spx-input-date>\n } @if (this.showInputFloat()) {\n <spx-input-float\n (valueChange)=\"handleChangeEvent($event)\"\n [spxAutofocus]=\"this.spxAutofocus()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxStep]=\"this.spxStep()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputFloat\n ></spx-input-float>\n } @if (this.showInputNumber()) {\n <spx-input-number\n (valueChange)=\"handleChangeEvent($event)\"\n [spxAutofocus]=\"this.spxAutofocus()\"\n [spxElementId]=\"this.spxElementId()\"\n [spxInputMode]=\"this.spxInputMode()\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxStep]=\"this.spxStep()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputNumber\n ></spx-input-number>\n } @if (this.showInputRadio()) {\n <spx-input-radio\n (valueChange)=\"handleChangeEvent($event)\"\n [spxElementId]=\"this.spxElementId()\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxShowLabel]=\"this.spxShowLabel()\"\n [spxSuggestions]=\"this.spxSuggestions()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputRadio\n ></spx-input-radio>\n } @if (this.showInputTime()) {\n <spx-input-time\n (valueChange)=\"handleChangeEvent($event)\"\n [spxName]=\"this.mappedName()\"\n [spxReadonly]=\"this.mappedReadonly()\"\n [spxValidators]=\"this.spxValidators()\"\n [value]=\"value()\"\n #spxInputTime\n ></spx-input-time>\n }\n </div>\n <div validation-messages>\n <ng-content></ng-content>\n </div>\n</spx-input-box>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softpak/components",
3
- "version": "21.3.10",
3
+ "version": "21.3.11",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "21.x.x",
package/tailwind.css CHANGED
@@ -1 +1 @@
1
- *,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.m-3{margin:.75rem}.m-\[0\.35rem_0_0\]{margin:.35rem 0 0}.m-auto{margin:auto}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.ms-3{margin-inline-start:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-\[0\.85rem\]{margin-top:.85rem}.mt-\[0\.9rem\]{margin-top:.9rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-\[150px\]{height:150px}.h-\[30px\]{height:30px}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-14{width:3.5rem}.w-16{width:4rem}.w-24{width:6rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-96{width:24rem}.w-\[150px\]{width:150px}.w-\[30px\]{width:30px}.w-full{width:100%}.min-w-12{min-width:3rem}.min-w-\[36px\]{min-width:36px}.max-w-12{max-width:3rem}.max-w-96{max-width:24rem}.max-w-\[40rem\]{max-width:40rem}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-10{flex-basis:2.5rem}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-flow-row{grid-auto-flow:row}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-\[0\.2rem\]{gap:.2rem}.gap-\[0\.65rem\]{gap:.65rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-left-radius:.5rem}.rounded-b-lg,.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-r-lg{border-top-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-dashed{border-style:dashed}.border-\[color\:var\(--spx-update-border-color\)\]{border-color:var(--spx-update-border-color)}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-cyan-500{--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-lime-500{--tw-border-opacity:1;border-color:rgb(132 204 22/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.bg-\[var\(--spx-update-surface-color\)\]{background-color:var(--spx-update-surface-color)}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-amber-700{--tw-bg-opacity:1;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/75{background-color:#000000bf}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.bg-lime-100{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity,1))}.bg-lime-600{--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity,1))}.bg-neutral-700{--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.bg-sky-200{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity,1))}.bg-sky-400{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity,1))}.bg-sky-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-teal-700{--tw-bg-opacity:1;background-color:rgb(15 118 110/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity,1))}.bg-zinc-700{--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}.bg-\[linear-gradient\(to_right\2c theme\(colors\.green\.300\)\2c theme\(colors\.green\.100\)\2c theme\(colors\.sky\.400\)\2c theme\(colors\.yellow\.200\)\2c theme\(colors\.sky\.400\)\2c theme\(colors\.green\.100\)\2c theme\(colors\.green\.300\)\)\]{background-image:linear-gradient(90deg,#86efac,#dcfce7,#38bdf8,#fef08a,#38bdf8,#dcfce7,#86efac)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-400{--tw-gradient-from:#fbbf24 var(--tw-gradient-from-position);--tw-gradient-to:#fbbf2400 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-lime-400{--tw-gradient-from:#a3e635 var(--tw-gradient-from-position);--tw-gradient-to:#a3e63500 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-400{--tw-gradient-from:#f87171 var(--tw-gradient-from-position);--tw-gradient-to:#f8717100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-teal-400{--tw-gradient-from:#2dd4bf var(--tw-gradient-from-position);--tw-gradient-to:#2dd4bf00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-amber-600{--tw-gradient-to:#d97706 var(--tw-gradient-to-position)}.to-lime-600{--tw-gradient-to:#65a30d var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to:#0d9488 var(--tw-gradient-to-position)}.bg-\[length\:200\%_auto\]{background-size:200% auto}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-\[0\.45rem\]{padding-bottom:.45rem}.pl-3{padding-left:.75rem}.pt-1{padding-top:.25rem}.pt-16{padding-top:4rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-7xl{font-size:4.5rem;line-height:1}.text-\[0\.76rem\]{font-size:.76rem}.text-\[0\.86rem\]{font-size:.86rem}.text-\[0\.95rem\]{font-size:.95rem}.text-\[1\.15rem\]{font-size:1.15rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.leading-\[1\.35\]{line-height:1.35}.leading-normal{line-height:1.5}.tracking-\[0\.08em\]{letter-spacing:.08em}.text-\[color\:var\(--ion-color-danger\2c \#eb445a\)\]{color:var(--ion-color-danger,#eb445a)}.text-\[color\:var\(--spx-update-muted-color\)\]{color:var(--spx-update-muted-color)}.text-\[color\:var\(--spx-update-text-color\)\]{color:var(--spx-update-text-color)}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-cyan-900{--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity,1))}.text-lime-900{--tw-text-opacity:1;color:rgb(54 83 20/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-\[4px\]:after{content:var(--tw-content);inset-inline-start:4px}.after\:top-0\.5:after{content:var(--tw-content);top:.125rem}.after\:h-6:after{content:var(--tw-content);height:1.5rem}.after\:w-6:after{content:var(--tw-content);width:1.5rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.last\:border-b-0:last-child{border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:0}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity,1))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.hover\:bg-cyan-200:hover{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-lime-200:hover{--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity,1))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\:bg-sky-300:hover{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-amber-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(217 119 6/var(--tw-ring-opacity,1))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}.focus\:ring-cyan-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(8 145 178/var(--tw-ring-opacity,1))}.focus\:ring-lime-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(101 163 13/var(--tw-ring-opacity,1))}.focus\:ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity,1))}.focus\:ring-sky-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(125 211 252/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:bg-sky-300:active{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\:outline-none{outline:2px solid #0000;outline-offset:2px}.peer:focus~.peer-focus\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\:ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}@media (min-width:481px){.min-\[481px\]\:flex-row{flex-direction:row}.min-\[481px\]\:items-baseline{align-items:baseline}.min-\[481px\]\:justify-between{justify-content:space-between}.min-\[481px\]\:gap-4{gap:1rem}.min-\[481px\]\:text-right{text-align:right}}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.peer:checked~.rtl\:peer-checked\:after\:-translate-x-full:where([dir=rtl],[dir=rtl] *):after{content:var(--tw-content);--tw-translate-x:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-color-scheme:dark){.dark\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.peer:checked~.dark\:peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:focus~.dark\:peer-focus\:ring-blue-800{--tw-ring-opacity:1;--tw-ring-color:rgb(30 64 175/var(--tw-ring-opacity,1))}}
1
+ *,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.m-3{margin:.75rem}.m-\[0\.35rem_0_0\]{margin:.35rem 0 0}.m-auto{margin:auto}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.ms-3{margin-inline-start:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-\[0\.85rem\]{margin-top:.85rem}.mt-\[0\.9rem\]{margin-top:.9rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-\[150px\]{height:150px}.h-\[30px\]{height:30px}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-14{width:3.5rem}.w-16{width:4rem}.w-24{width:6rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-96{width:24rem}.w-\[150px\]{width:150px}.w-\[24rem\]{width:24rem}.w-\[30px\]{width:30px}.w-full{width:100%}.min-w-12{min-width:3rem}.min-w-\[36px\]{min-width:36px}.max-w-12{max-width:3rem}.max-w-96{max-width:24rem}.max-w-\[40rem\]{max-width:40rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-10{flex-basis:2.5rem}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-flow-row{grid-auto-flow:row}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-\[0\.2rem\]{gap:.2rem}.gap-\[0\.65rem\]{gap:.65rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-left-radius:.5rem}.rounded-b-lg,.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-r-lg{border-top-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-dashed{border-style:dashed}.border-\[color\:var\(--spx-update-border-color\)\]{border-color:var(--spx-update-border-color)}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-cyan-500{--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-lime-500{--tw-border-opacity:1;border-color:rgb(132 204 22/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.bg-\[var\(--spx-update-surface-color\)\]{background-color:var(--spx-update-surface-color)}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-amber-700{--tw-bg-opacity:1;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/75{background-color:#000000bf}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.bg-lime-100{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity,1))}.bg-lime-600{--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity,1))}.bg-neutral-700{--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.bg-sky-200{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity,1))}.bg-sky-400{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity,1))}.bg-sky-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-teal-700{--tw-bg-opacity:1;background-color:rgb(15 118 110/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity,1))}.bg-zinc-700{--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}.bg-\[linear-gradient\(to_right\2c theme\(colors\.green\.300\)\2c theme\(colors\.green\.100\)\2c theme\(colors\.sky\.400\)\2c theme\(colors\.yellow\.200\)\2c theme\(colors\.sky\.400\)\2c theme\(colors\.green\.100\)\2c theme\(colors\.green\.300\)\)\]{background-image:linear-gradient(90deg,#86efac,#dcfce7,#38bdf8,#fef08a,#38bdf8,#dcfce7,#86efac)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-400{--tw-gradient-from:#fbbf24 var(--tw-gradient-from-position);--tw-gradient-to:#fbbf2400 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-lime-400{--tw-gradient-from:#a3e635 var(--tw-gradient-from-position);--tw-gradient-to:#a3e63500 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-400{--tw-gradient-from:#f87171 var(--tw-gradient-from-position);--tw-gradient-to:#f8717100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-teal-400{--tw-gradient-from:#2dd4bf var(--tw-gradient-from-position);--tw-gradient-to:#2dd4bf00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-amber-600{--tw-gradient-to:#d97706 var(--tw-gradient-to-position)}.to-lime-600{--tw-gradient-to:#65a30d var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to:#0d9488 var(--tw-gradient-to-position)}.bg-\[length\:200\%_auto\]{background-size:200% auto}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-\[0\.45rem\]{padding-bottom:.45rem}.pl-3{padding-left:.75rem}.pt-1{padding-top:.25rem}.pt-16{padding-top:4rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-7xl{font-size:4.5rem;line-height:1}.text-\[0\.76rem\]{font-size:.76rem}.text-\[0\.86rem\]{font-size:.86rem}.text-\[0\.95rem\]{font-size:.95rem}.text-\[1\.15rem\]{font-size:1.15rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.leading-\[1\.35\]{line-height:1.35}.leading-normal{line-height:1.5}.tracking-\[0\.08em\]{letter-spacing:.08em}.text-\[color\:var\(--ion-color-danger\2c \#eb445a\)\]{color:var(--ion-color-danger,#eb445a)}.text-\[color\:var\(--spx-update-muted-color\)\]{color:var(--spx-update-muted-color)}.text-\[color\:var\(--spx-update-text-color\)\]{color:var(--spx-update-text-color)}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-cyan-900{--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity,1))}.text-lime-900{--tw-text-opacity:1;color:rgb(54 83 20/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-\[4px\]:after{content:var(--tw-content);inset-inline-start:4px}.after\:top-0\.5:after{content:var(--tw-content);top:.125rem}.after\:h-6:after{content:var(--tw-content);height:1.5rem}.after\:w-6:after{content:var(--tw-content);width:1.5rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.last\:border-b-0:last-child{border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:0}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity,1))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.hover\:bg-cyan-200:hover{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-lime-200:hover{--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity,1))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\:bg-sky-300:hover{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-amber-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(217 119 6/var(--tw-ring-opacity,1))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}.focus\:ring-cyan-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(8 145 178/var(--tw-ring-opacity,1))}.focus\:ring-lime-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(101 163 13/var(--tw-ring-opacity,1))}.focus\:ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity,1))}.focus\:ring-sky-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(125 211 252/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:bg-sky-300:active{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\:outline-none{outline:2px solid #0000;outline-offset:2px}.peer:focus~.peer-focus\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\:ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}@media (min-width:481px){.min-\[481px\]\:flex-row{flex-direction:row}.min-\[481px\]\:items-baseline{align-items:baseline}.min-\[481px\]\:justify-between{justify-content:space-between}.min-\[481px\]\:gap-4{gap:1rem}.min-\[481px\]\:text-right{text-align:right}}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.peer:checked~.rtl\:peer-checked\:after\:-translate-x-full:where([dir=rtl],[dir=rtl] *):after{content:var(--tw-content);--tw-translate-x:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-color-scheme:dark){.dark\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.peer:checked~.dark\:peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:focus~.dark\:peer-focus\:ring-blue-800{--tw-ring-opacity:1;--tw-ring-color:rgb(30 64 175/var(--tw-ring-opacity,1))}}