@acorex/components 22.0.0-next.24 → 22.0.0-next.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/fesm2022/acorex-components-calendar.mjs +2 -2
  2. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  3. package/fesm2022/acorex-components-color-palette.mjs +2 -2
  4. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  5. package/fesm2022/acorex-components-cron-job.mjs +12 -12
  6. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  7. package/fesm2022/acorex-components-datetime-box.mjs +2 -2
  8. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  9. package/fesm2022/acorex-components-form.mjs +3 -4
  10. package/fesm2022/acorex-components-form.mjs.map +1 -1
  11. package/fesm2022/acorex-components-list.mjs +19 -265
  12. package/fesm2022/acorex-components-list.mjs.map +1 -1
  13. package/fesm2022/acorex-components-number-box.mjs +30 -29
  14. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  15. package/fesm2022/acorex-components-phone-box.mjs +6 -6
  16. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  17. package/fesm2022/acorex-components-query-builder.mjs +2 -6
  18. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  19. package/fesm2022/acorex-components-rest-api-generator.mjs +2 -2
  20. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  21. package/fesm2022/acorex-components-rrule.mjs +2 -2
  22. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  23. package/fesm2022/acorex-components-scheduler-picker.mjs +16 -16
  24. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  25. package/fesm2022/acorex-components-scheduler.mjs +2 -2
  26. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  27. package/fesm2022/acorex-components-select-box.mjs +451 -176
  28. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  29. package/fesm2022/acorex-components-selection-list.mjs +4 -0
  30. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  31. package/package.json +3 -7
  32. package/select-box/README.md +0 -2
  33. package/types/acorex-components-list.d.ts +3 -65
  34. package/types/acorex-components-number-box.d.ts +3 -1
  35. package/types/acorex-components-phone-box.d.ts +2 -2
  36. package/types/acorex-components-query-builder.d.ts +9 -10
  37. package/types/acorex-components-select-box.d.ts +147 -36
  38. package/types/acorex-components-selection-list.d.ts +2 -1
  39. package/combo-box/README.md +0 -3
  40. package/fesm2022/acorex-components-combo-box.mjs +0 -669
  41. package/fesm2022/acorex-components-combo-box.mjs.map +0 -1
  42. package/types/acorex-components-combo-box.d.ts +0 -202
@@ -1,6 +1,6 @@
1
1
  import { AXInputMaskDirective } from '@acorex/cdk/input-mask';
2
2
  import * as i0 from '@angular/core';
3
- import { input, model, signal, viewChild, inject, afterNextRender, effect, forwardRef, HostBinding, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
+ import { input, model, signal, computed, viewChild, inject, afterNextRender, effect, forwardRef, HostBinding, ViewEncapsulation, Component, NgModule } from '@angular/core';
4
4
  import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXClearableComponent, AXValuableComponent } from '@acorex/cdk/common';
5
5
  import { AXButtonModule } from '@acorex/components/button';
6
6
  import { AXDecoratorModule } from '@acorex/components/decorators';
@@ -35,6 +35,8 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
35
35
  ...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
36
36
  this.mode = signal('digits', /* @ts-ignore */
37
37
  ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
38
+ this.decimalPlaces = computed(() => Math.max(this.decimals(), this.getFractionDigits(this.step())), /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "decimalPlaces" }] : /* istanbul ignore next */ []));
38
40
  this.input = viewChild('input', /* @ts-ignore */
39
41
  ...(ngDevMode ? [{ debugName: "input" }] : /* istanbul ignore next */ []));
40
42
  this.stringValue = signal('', /* @ts-ignore */
@@ -69,26 +71,24 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
69
71
  });
70
72
  });
71
73
  this.#eff = effect(() => {
72
- if (this.thousandsSeparator() && this.decimals()) {
73
- this.mode.set('digits');
74
- return;
75
- }
76
- else if (this.thousandsSeparator()) {
74
+ if (this.thousandsSeparator()) {
77
75
  this.mode.set('thousandsSeparator');
78
- return;
79
76
  }
80
- else if (this.decimals()) {
77
+ else if (this.decimalPlaces() > 0) {
81
78
  this.mode.set('decimal');
82
79
  }
80
+ else {
81
+ this.mode.set('digits');
82
+ }
83
83
  }, /* @ts-ignore */
84
84
  ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
85
85
  }
86
86
  internalValueChanged(value) {
87
- if (value === undefined) {
87
+ if (value === undefined || value === null) {
88
88
  this.stringValue.set('');
89
89
  }
90
90
  else {
91
- this.stringValue.set(String(value));
91
+ this.stringValue.set(this.formatDisplayValue(value));
92
92
  }
93
93
  setTimeout(() => {
94
94
  const inputElement = this.input()?.nativeElement;
@@ -106,13 +106,6 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
106
106
  const currentValue = this.getNumericValue();
107
107
  const nextValue = this.clampToRange(this.getSteppedValue(currentValue, 1));
108
108
  this.commitValue(nextValue, true);
109
- if (this.mode() === 'thousandsSeparator') {
110
- const addSeparator = nextValue.toLocaleString();
111
- const replaceSeparator = addSeparator.split(',').join(this.thousandsSeparator());
112
- this.stringValue.set(replaceSeparator);
113
- return;
114
- }
115
- this.stringValue.set(nextValue.toString());
116
109
  }
117
110
  minusValue() {
118
111
  if (this.disabled || this.readonly) {
@@ -121,13 +114,6 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
121
114
  const currentValue = this.getNumericValue();
122
115
  const nextValue = this.clampToRange(this.getSteppedValue(currentValue, -1));
123
116
  this.commitValue(nextValue, true);
124
- if (this.mode() === 'thousandsSeparator') {
125
- const addSeparator = nextValue.toLocaleString();
126
- const replaceSeparator = addSeparator.split(',').join(this.thousandsSeparator());
127
- this.stringValue.set(replaceSeparator);
128
- return;
129
- }
130
- this.stringValue.set(nextValue.toString());
131
117
  }
132
118
  getNumericValue() {
133
119
  if (this.mode() === 'thousandsSeparator') {
@@ -137,12 +123,25 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
137
123
  }
138
124
  getSteppedValue(currentValue, direction) {
139
125
  const step = this.step();
140
- const precision = Math.max(this.decimals(), this.getFractionDigits(step), this.getFractionDigits(currentValue));
126
+ const precision = Math.max(this.decimalPlaces(), this.getFractionDigits(currentValue));
141
127
  const scale = 10 ** precision;
142
128
  const currentUnits = Math.round(currentValue * scale);
143
129
  const stepUnits = Math.round(step * scale) * direction;
144
130
  return (currentUnits + stepUnits) / scale;
145
131
  }
132
+ formatDisplayValue(value) {
133
+ if (this.mode() === 'thousandsSeparator') {
134
+ const formatted = value.toLocaleString(undefined, {
135
+ minimumFractionDigits: 0,
136
+ maximumFractionDigits: this.decimalPlaces(),
137
+ });
138
+ return formatted.split(',').join(this.thousandsSeparator());
139
+ }
140
+ if (this.decimalPlaces() > 0) {
141
+ return value.toFixed(this.decimalPlaces());
142
+ }
143
+ return value.toString();
144
+ }
146
145
  clampToRange(value) {
147
146
  const min = this.minValue();
148
147
  const max = this.maxValue();
@@ -183,14 +182,16 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
183
182
  this.plusValue();
184
183
  }
185
184
  handleDownClick() {
185
+ if (this.disabled || this.readonly)
186
+ return;
186
187
  this.minusValue();
187
188
  }
188
189
  handleOnMaskChanged(e) {
189
- if (!e.unmasked || isNaN(+e.unmasked)) {
190
+ if (!e.unmasked || e.unmasked === '-' || isNaN(+e.unmasked)) {
190
191
  this.commitValue(null, true);
191
192
  return;
192
193
  }
193
- this.commitValue(+e.unmasked, true);
194
+ this.commitValue(this.clampToRange(+e.unmasked), true);
194
195
  }
195
196
  onWheel(event) {
196
197
  if (this.changeOnScroll()) {
@@ -224,7 +225,7 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
224
225
  useExisting: forwardRef(() => AXNumberBoxComponent),
225
226
  multi: true,
226
227
  },
227
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container ax-default ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer components{ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:calc(var(--spacing, .25rem) * 0)}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-general-button-control{display:flex;width:fit-content;flex-direction:column}ax-number-box .ax-general-button-control .ax-general-button-icon{height:calc(var(--spacing, .25rem) * 1)!important;padding:calc(var(--spacing, .25rem) * 1.5)!important;font-size:var(--text-xs, .75rem)!important;line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))!important}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXInputMaskDirective, selector: "[axInputMask]", inputs: ["maskMode", "separator", "eager", "minValue", "maxValue", "decimal", "maskPattern", "customTokens"], outputs: ["onMaskChanged"], exportAs: ["axInputMask"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], encapsulation: i0.ViewEncapsulation.None }); }
228
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container ax-default ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer components{ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:calc(var(--spacing, .25rem) * 0)}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-general-button-control{display:flex;width:fit-content;flex-direction:column}ax-number-box .ax-general-button-control .ax-general-button-icon{height:calc(var(--spacing, .25rem) * 1)!important;padding:calc(var(--spacing, .25rem) * 1.5)!important;font-size:var(--text-xs, .75rem)!important;line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))!important}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXInputMaskDirective, selector: "[axInputMask]", inputs: ["maskMode", "separator", "eager", "minValue", "maxValue", "decimal", "maskPattern", "customTokens"], outputs: ["onMaskChanged"], exportAs: ["axInputMask"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], encapsulation: i0.ViewEncapsulation.None }); }
228
229
  }
229
230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
230
231
  type: Component,
@@ -249,7 +250,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
249
250
  useExisting: forwardRef(() => AXNumberBoxComponent),
250
251
  multi: true,
251
252
  },
252
- ], imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule], template: "<div\n class=\"ax-editor-container ax-default ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer components{ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:calc(var(--spacing, .25rem) * 0)}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-general-button-control{display:flex;width:fit-content;flex-direction:column}ax-number-box .ax-general-button-control .ax-general-button-icon{height:calc(var(--spacing, .25rem) * 1)!important;padding:calc(var(--spacing, .25rem) * 1.5)!important;font-size:var(--text-xs, .75rem)!important;line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))!important}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
253
+ ], imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule], template: "<div\n class=\"ax-editor-container ax-default ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer components{ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:calc(var(--spacing, .25rem) * 0)}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-general-button-control{display:flex;width:fit-content;flex-direction:column}ax-number-box .ax-general-button-control .ax-general-button-icon{height:calc(var(--spacing, .25rem) * 1)!important;padding:calc(var(--spacing, .25rem) * 1.5)!important;font-size:var(--text-xs, .75rem)!important;line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))!important}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
253
254
  }], propDecorators: { minValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "minValue", required: false }] }], maxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxValue", required: false }] }], showSpinButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSpinButtons", required: false }] }], thousandsSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "thousandsSeparator", required: false }] }, { type: i0.Output, args: ["thousandsSeparatorChange"] }], decimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "decimals", required: false }] }], changeOnScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "changeOnScroll", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], input: [{ type: i0.ViewChild, args: ['input', { isSignal: true }] }], __hostName: [{
254
255
  type: HostBinding,
255
256
  args: ['attr.name']
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-number-box.mjs","sources":["../../../../packages/components/number-box/src/lib/number-box.component.ts","../../../../packages/components/number-box/src/lib/number-box.component.html","../../../../packages/components/number-box/src/lib/number-box.module.ts","../../../../packages/components/number-box/src/acorex-components-number-box.ts"],"sourcesContent":["import { AXInputMaskDirective, type AXInputMaskEvent } from '@acorex/cdk/input-mask';\nimport {\n Component,\n ElementRef,\n HostBinding,\n ViewEncapsulation,\n afterNextRender,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The NumberBox is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-number-box',\n templateUrl: './number-box.component.html',\n styleUrls: ['./number-box.component.css'],\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXNumberBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXValuableComponent, useExisting: AXNumberBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXNumberBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule],\n})\nexport class AXNumberBoxComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n minValue = input<number>(null);\n maxValue = input<number>(null);\n showSpinButtons = input(true);\n thousandsSeparator = model<string>(null);\n decimals = input(0);\n changeOnScroll = input(false);\n step = input(1);\n protected mode = signal<'digits' | 'thousandsSeparator' | 'decimal'>('digits');\n private input = viewChild<ElementRef<HTMLInputElement>>('input');\n protected stringValue = signal('');\n private translationService = inject(AXTranslationService);\n\n protected validateFn = async (val: number) => {\n const min = this.minValue();\n if (min != null && val != null && val < min) {\n const message = await this.translationService.translateAsync('@acorex:validation.messages.min', {\n params: { value: min },\n });\n\n return {\n result: false,\n message,\n };\n }\n\n const max = this.maxValue();\n if (max != null && val != null && val > max) {\n const message = await this.translationService.translateAsync('@acorex:validation.messages.max', {\n params: { value: max },\n });\n\n return {\n result: false,\n message,\n };\n }\n\n return { result: true };\n };\n\n protected override internalValueChanged(value: number | undefined): void {\n if (value === undefined) {\n this.stringValue.set('');\n } else {\n this.stringValue.set(String(value));\n }\n\n setTimeout(() => {\n const inputElement = this.input()?.nativeElement;\n if (inputElement) {\n inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }, 0);\n }\n\n #init = afterNextRender(() => {\n this.onFocus.subscribe(() => {\n this.input().nativeElement.select();\n });\n });\n\n #eff = effect(() => {\n if (this.thousandsSeparator() && this.decimals()) {\n this.mode.set('digits');\n return;\n } else if (this.thousandsSeparator()) {\n this.mode.set('thousandsSeparator');\n return;\n } else if (this.decimals()) {\n this.mode.set('decimal');\n }\n });\n\n private plusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const currentValue = this.getNumericValue();\n const nextValue = this.clampToRange(this.getSteppedValue(currentValue, 1));\n this.commitValue(nextValue, true);\n\n if (this.mode() === 'thousandsSeparator') {\n const addSeparator = nextValue.toLocaleString();\n const replaceSeparator = addSeparator.split(',').join(this.thousandsSeparator());\n this.stringValue.set(replaceSeparator);\n return;\n }\n\n this.stringValue.set(nextValue.toString());\n }\n\n private minusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n const currentValue = this.getNumericValue();\n const nextValue = this.clampToRange(this.getSteppedValue(currentValue, -1));\n this.commitValue(nextValue, true);\n\n if (this.mode() === 'thousandsSeparator') {\n const addSeparator = nextValue.toLocaleString();\n const replaceSeparator = addSeparator.split(',').join(this.thousandsSeparator());\n this.stringValue.set(replaceSeparator);\n return;\n }\n\n this.stringValue.set(nextValue.toString());\n }\n\n private getNumericValue(): number {\n if (this.mode() === 'thousandsSeparator') {\n return +(this.stringValue().split(this.thousandsSeparator()).join('') || '0');\n }\n\n return +(this.stringValue() || '0');\n }\n\n private getSteppedValue(currentValue: number, direction: 1 | -1): number {\n const step = this.step();\n const precision = Math.max(this.decimals(), this.getFractionDigits(step), this.getFractionDigits(currentValue));\n const scale = 10 ** precision;\n const currentUnits = Math.round(currentValue * scale);\n const stepUnits = Math.round(step * scale) * direction;\n\n return (currentUnits + stepUnits) / scale;\n }\n\n private clampToRange(value: number): number {\n const min = this.minValue();\n const max = this.maxValue();\n\n if (min != null && value < min) {\n return min;\n }\n\n if (max != null && value > max) {\n return max;\n }\n\n return value;\n }\n\n private getFractionDigits(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n const normalizedValue = value.toString().toLowerCase();\n if (!normalizedValue.includes('e-')) {\n return normalizedValue.split('.')[1]?.length ?? 0;\n }\n\n const [, exponent] = normalizedValue.split('e-');\n return Number(exponent);\n }\n\n protected handleOnKeydownEvent(e: KeyboardEvent) {\n if (e.key !== 'ArrowUp' && e.key !== 'ArrowDown') return;\n if (this.disabled || this.readonly) return;\n if (e.key === 'ArrowUp') {\n this.plusValue();\n } else if (e.key === 'ArrowDown') {\n this.minusValue();\n }\n }\n\n protected handleUpClick() {\n if (this.disabled || this.readonly) return;\n this.plusValue();\n }\n protected handleDownClick() {\n this.minusValue();\n }\n\n protected handleOnMaskChanged(e: AXInputMaskEvent) {\n if (!e.unmasked || isNaN(+e.unmasked)) {\n this.commitValue(null, true);\n return;\n }\n this.commitValue(+e.unmasked, true);\n }\n\n protected onWheel(event: WheelEvent) {\n if (this.changeOnScroll()) {\n event.preventDefault();\n if (!this.disabled && !this.readonly) {\n if (event.deltaY > 0) {\n this.minusValue();\n } else {\n this.plusValue();\n }\n }\n }\n }\n\n override reset(): void {\n this.stringValue.set('0');\n this.commitValue(0);\n super.reset(true);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div\n class=\"ax-editor-container ax-default ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n","import { AXInputMaskDirective } from '@acorex/cdk/input-mask';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxComponent } from './number-box.component';\n\nconst COMPONENT = [AXNumberBoxComponent];\nconst MODULES = [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXNumberBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-number-box.mjs","sources":["../../../../packages/components/number-box/src/lib/number-box.component.ts","../../../../packages/components/number-box/src/lib/number-box.component.html","../../../../packages/components/number-box/src/lib/number-box.module.ts","../../../../packages/components/number-box/src/acorex-components-number-box.ts"],"sourcesContent":["import { AXInputMaskDirective, type AXInputMaskEvent } from '@acorex/cdk/input-mask';\nimport {\n Component,\n ElementRef,\n HostBinding,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The NumberBox is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-number-box',\n templateUrl: './number-box.component.html',\n styleUrls: ['./number-box.component.css'],\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXNumberBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXValuableComponent, useExisting: AXNumberBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXNumberBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule],\n})\nexport class AXNumberBoxComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n minValue = input<number>(null);\n maxValue = input<number>(null);\n showSpinButtons = input(true);\n thousandsSeparator = model<string>(null);\n decimals = input(0);\n changeOnScroll = input(false);\n step = input(1);\n protected mode = signal<'digits' | 'thousandsSeparator' | 'decimal'>('digits');\n protected decimalPlaces = computed(() => Math.max(this.decimals(), this.getFractionDigits(this.step())));\n private input = viewChild<ElementRef<HTMLInputElement>>('input');\n protected stringValue = signal('');\n private translationService = inject(AXTranslationService);\n\n protected validateFn = async (val: number) => {\n const min = this.minValue();\n if (min != null && val != null && val < min) {\n const message = await this.translationService.translateAsync('@acorex:validation.messages.min', {\n params: { value: min },\n });\n\n return {\n result: false,\n message,\n };\n }\n\n const max = this.maxValue();\n if (max != null && val != null && val > max) {\n const message = await this.translationService.translateAsync('@acorex:validation.messages.max', {\n params: { value: max },\n });\n\n return {\n result: false,\n message,\n };\n }\n\n return { result: true };\n };\n\n protected override internalValueChanged(value: number | undefined | null): void {\n if (value === undefined || value === null) {\n this.stringValue.set('');\n } else {\n this.stringValue.set(this.formatDisplayValue(value));\n }\n\n setTimeout(() => {\n const inputElement = this.input()?.nativeElement;\n if (inputElement) {\n inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }, 0);\n }\n\n #init = afterNextRender(() => {\n this.onFocus.subscribe(() => {\n this.input().nativeElement.select();\n });\n });\n\n #eff = effect(() => {\n if (this.thousandsSeparator()) {\n this.mode.set('thousandsSeparator');\n } else if (this.decimalPlaces() > 0) {\n this.mode.set('decimal');\n } else {\n this.mode.set('digits');\n }\n });\n\n private plusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const currentValue = this.getNumericValue();\n const nextValue = this.clampToRange(this.getSteppedValue(currentValue, 1));\n this.commitValue(nextValue, true);\n }\n\n private minusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const currentValue = this.getNumericValue();\n const nextValue = this.clampToRange(this.getSteppedValue(currentValue, -1));\n this.commitValue(nextValue, true);\n }\n\n private getNumericValue(): number {\n if (this.mode() === 'thousandsSeparator') {\n return +(this.stringValue().split(this.thousandsSeparator()).join('') || '0');\n }\n\n return +(this.stringValue() || '0');\n }\n\n private getSteppedValue(currentValue: number, direction: 1 | -1): number {\n const step = this.step();\n const precision = Math.max(this.decimalPlaces(), this.getFractionDigits(currentValue));\n const scale = 10 ** precision;\n const currentUnits = Math.round(currentValue * scale);\n const stepUnits = Math.round(step * scale) * direction;\n\n return (currentUnits + stepUnits) / scale;\n }\n\n private formatDisplayValue(value: number): string {\n if (this.mode() === 'thousandsSeparator') {\n const formatted = value.toLocaleString(undefined, {\n minimumFractionDigits: 0,\n maximumFractionDigits: this.decimalPlaces(),\n });\n return formatted.split(',').join(this.thousandsSeparator());\n }\n\n if (this.decimalPlaces() > 0) {\n return value.toFixed(this.decimalPlaces());\n }\n\n return value.toString();\n }\n\n private clampToRange(value: number): number {\n const min = this.minValue();\n const max = this.maxValue();\n\n if (min != null && value < min) {\n return min;\n }\n\n if (max != null && value > max) {\n return max;\n }\n\n return value;\n }\n\n private getFractionDigits(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n const normalizedValue = value.toString().toLowerCase();\n if (!normalizedValue.includes('e-')) {\n return normalizedValue.split('.')[1]?.length ?? 0;\n }\n\n const [, exponent] = normalizedValue.split('e-');\n return Number(exponent);\n }\n\n protected handleOnKeydownEvent(e: KeyboardEvent) {\n if (e.key !== 'ArrowUp' && e.key !== 'ArrowDown') return;\n if (this.disabled || this.readonly) return;\n if (e.key === 'ArrowUp') {\n this.plusValue();\n } else if (e.key === 'ArrowDown') {\n this.minusValue();\n }\n }\n\n protected handleUpClick() {\n if (this.disabled || this.readonly) return;\n this.plusValue();\n }\n protected handleDownClick() {\n if (this.disabled || this.readonly) return;\n this.minusValue();\n }\n\n protected handleOnMaskChanged(e: AXInputMaskEvent) {\n if (!e.unmasked || e.unmasked === '-' || isNaN(+e.unmasked)) {\n this.commitValue(null, true);\n return;\n }\n\n this.commitValue(this.clampToRange(+e.unmasked), true);\n }\n\n protected onWheel(event: WheelEvent) {\n if (this.changeOnScroll()) {\n event.preventDefault();\n if (!this.disabled && !this.readonly) {\n if (event.deltaY > 0) {\n this.minusValue();\n } else {\n this.plusValue();\n }\n }\n }\n }\n\n override reset(): void {\n this.stringValue.set('0');\n this.commitValue(0);\n super.reset(true);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div\n class=\"ax-editor-container ax-default ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n","import { AXInputMaskDirective } from '@acorex/cdk/input-mask';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxComponent } from './number-box.component';\n\nconst COMPONENT = [AXNumberBoxComponent];\nconst MODULES = [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXNumberBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAgCA;;;;AAIG;AAiCG,MAAO,oBAAqB,SAAQ,OAAO,EAAC,yBAAiC,GAAE,eAAe,CAAC,CAAA;AAhCrG,IAAA,WAAA,GAAA;;QAiCE,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,IAAI;qFAAC;QAC9B,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,IAAI;qFAAC;QAC9B,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,IAAI;4FAAC;QAC7B,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAS,IAAI;+FAAC;QACxC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,CAAC;qFAAC;QACnB,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,KAAK;2FAAC;QAC7B,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,CAAC;iFAAC;QACL,IAAA,CAAA,IAAI,GAAG,MAAM,CAA8C,QAAQ;iFAAC;QACpE,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;0FAAC;QAChG,IAAA,CAAA,KAAK,GAAG,SAAS,CAA+B,OAAO;kFAAC;QACtD,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,EAAE;wFAAC;AAC1B,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAE/C,QAAA,IAAA,CAAA,UAAU,GAAG,OAAO,GAAW,KAAI;AAC3C,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAA,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE;gBAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,iCAAiC,EAAE;AAC9F,oBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AACvB,iBAAA,CAAC;gBAEF,OAAO;AACL,oBAAA,MAAM,EAAE,KAAK;oBACb,OAAO;iBACR;YACH;AAEA,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAA,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE;gBAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,iCAAiC,EAAE;AAC9F,oBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AACvB,iBAAA,CAAC;gBAEF,OAAO;AACL,oBAAA,MAAM,EAAE,KAAK;oBACb,OAAO;iBACR;YACH;AAEA,YAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AACzB,QAAA,CAAC;AAiBD,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;gBAC1B,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE;AACrC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAK;AACjB,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC7B,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACrC;AAAO,iBAAA,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE;AACnC,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAC1B;iBAAO;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB;QACF,CAAC;iFAAC;AAwIH,IAAA;AArKoB,IAAA,oBAAoB,CAAC,KAAgC,EAAA;QACtE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzC,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B;aAAO;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACtD;QAEA,UAAU,CAAC,MAAK;YACd,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,aAAa;YAChD,IAAI,YAAY,EAAE;AAChB,gBAAA,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE;QACF,CAAC,EAAE,CAAC,CAAC;IACP;AAEA,IAAA,KAAK;AAML,IAAA,IAAI;IAUI,SAAS,GAAA;QACf,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC;QACF;AAEA,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE;AAC3C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;IACnC;IAEQ,UAAU,GAAA;QAChB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC;QACF;AAEA,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE;AAC3C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;IACnC;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,oBAAoB,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;QAC/E;QAEA,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC;IACrC;IAEQ,eAAe,CAAC,YAAoB,EAAE,SAAiB,EAAA;AAC7D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACtF,QAAA,MAAM,KAAK,GAAG,EAAE,IAAI,SAAS;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;AACrD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,SAAS;AAEtD,QAAA,OAAO,CAAC,YAAY,GAAG,SAAS,IAAI,KAAK;IAC3C;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,oBAAoB,EAAE;AACxC,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE;AAChD,gBAAA,qBAAqB,EAAE,CAAC;AACxB,gBAAA,qBAAqB,EAAE,IAAI,CAAC,aAAa,EAAE;AAC5C,aAAA,CAAC;AACF,YAAA,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7D;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5C;AAEA,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;IACzB;AAEQ,IAAA,YAAY,CAAC,KAAa,EAAA;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC3B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;QAE3B,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE;AAC9B,YAAA,OAAO,GAAG;QACZ;QAEA,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE;AAC9B,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC3B,YAAA,OAAO,CAAC;QACV;QAEA,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;QACtD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACnC,YAAA,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC;QACnD;QAEA,MAAM,GAAG,QAAQ,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;AAChD,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB;AAEU,IAAA,oBAAoB,CAAC,CAAgB,EAAA;QAC7C,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW;YAAE;AAClD,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;YAAE;AACpC,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE;QAClB;AAAO,aAAA,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YAChC,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEU,aAAa,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;YAAE;QACpC,IAAI,CAAC,SAAS,EAAE;IAClB;IACU,eAAe,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;YAAE;QACpC,IAAI,CAAC,UAAU,EAAE;IACnB;AAEU,IAAA,mBAAmB,CAAC,CAAmB,EAAA;AAC/C,QAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;AAC3D,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;YAC5B;QACF;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACxD;AAEU,IAAA,OAAO,CAAC,KAAiB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpC,gBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,IAAI,CAAC,UAAU,EAAE;gBACnB;qBAAO;oBACL,IAAI,CAAC,SAAS,EAAE;gBAClB;YACF;QACF;IACF;IAES,KAAK,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACnB,QAAA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IACnB;AAEA,IAAA,IACY,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI;IAClB;8GA9MW,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAbpB;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;AAC3D,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE;AACpE,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE;AACpE,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE;AACnE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClEH,wuEAqEA,EAAA,MAAA,EAAA,CAAA,yrBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wSAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,8NAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEjF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhChC,SAAS;+BACE,eAAe,EAAA,MAAA,EAGjB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAA,OAAA,EAC1F;wBACP,aAAa;wBACb,aAAa;wBACb,gBAAgB;wBAChB,QAAQ;wBACR,SAAS;wBACT,gBAAgB;wBAChB,gBAAgB;wBAChB,WAAW;wBACX,SAAS;wBACT,YAAY;qBACb,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,sBAAsB,EAAE;AAC3D,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,sBAAsB,EAAE;AACpE,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,sBAAsB,EAAE;AACpE,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,sBAAsB,EAAE;AACnE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,OAAA,EACQ,CAAC,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,wuEAAA,EAAA,MAAA,EAAA,CAAA,yrBAAA,CAAA,EAAA;k0BAYrC,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA;sBAiM9D,WAAW;uBAAC,WAAW;;;AEzQ1B,MAAM,SAAS,GAAG,CAAC,oBAAoB,CAAC;AACxC,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,CAAC;MAOzE,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAjB,iBAAiB,EAAA,OAAA,EAAA,CAPb,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EADlE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAApB,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAQ1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAPb,WAAW,EAAwB,cAAc,EAAE,iBAAiB,EAG1D,SAAS,CAAA,EAAA,CAAA,CAAA;;2FAIvB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACdD;;AAEG;;;;"}
@@ -2,7 +2,7 @@ import { MXInputBaseValueComponent, MXLookComponent, AXDataSource, AXComponent,
2
2
  import { AXDecoratorGenericComponent, AXDecoratorClearButtonComponent, AXDecoratorModule } from '@acorex/components/decorators';
3
3
  import { AXFormModule } from '@acorex/components/form';
4
4
  import { AXSearchBoxComponent, AXSearchBoxModule } from '@acorex/components/search-box';
5
- import { AXComboBoxComponent, AXComboBoxModule } from '@acorex/components/combo-box';
5
+ import { AXSelectBoxComponent, AXSelectBoxModule } from '@acorex/components/select-box';
6
6
  import { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/text-box';
7
7
  import { COUNTRIES_FLAG_BASE64, COUNTRIES } from '@acorex/core/constants';
8
8
  import { AXTranslationService } from '@acorex/core/translation';
@@ -287,7 +287,7 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
287
287
  useExisting: forwardRef(() => AXPhoneBoxComponent),
288
288
  multi: true,
289
289
  },
290
- ], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["s"], descendants: true, isSignal: true }, { propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"$safeNavigationMigration(selectedCountry()?.mask)\"\n [placeholder]=\"$safeNavigationMigration(selectedCountry()?.format)\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-combo-box\n #s\n [name]=\"name\"\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': $safeNavigationMigration(item.data.bkPosition?.x) + ' ' + $safeNavigationMigration(item.data.bkPosition?.y),\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-combo-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer properties;@layer components{ax-phone-box ax-combo-box ax-dropdown-box .ax-content{padding-top:calc(var(--spacing, .25rem) * 0)!important}.ax-country-item{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 3)}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-country-item .ax-country-name{margin-inline-end:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.ax-country-item .ax-iso2code{opacity:70%}.ax-country-flag{height:calc(var(--spacing, .25rem) * 5)!important;width:calc(var(--spacing, .25rem) * 6)!important;background-repeat:no-repeat}.ax-selected-country{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline-end:calc(var(--spacing, .25rem) * 2)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXComboBoxComponent, selector: "ax-combo-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AXFormModule }], encapsulation: i0.ViewEncapsulation.None }); }
290
+ ], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["s"], descendants: true, isSignal: true }, { propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"$safeNavigationMigration(selectedCountry()?.mask)\"\n [placeholder]=\"$safeNavigationMigration(selectedCountry()?.format)\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n [name]=\"name\"\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': $safeNavigationMigration(item.data.bkPosition?.x) + ' ' + $safeNavigationMigration(item.data.bkPosition?.y),\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer properties;@layer components{ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:calc(var(--spacing, .25rem) * 0)!important}.ax-country-item{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 3)}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-country-item .ax-country-name{margin-inline-end:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.ax-country-item .ax-iso2code{opacity:70%}.ax-country-flag{height:calc(var(--spacing, .25rem) * 5)!important;width:calc(var(--spacing, .25rem) * 6)!important;background-repeat:no-repeat}.ax-selected-country{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline-end:calc(var(--spacing, .25rem) * 2)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AXFormModule }], encapsulation: i0.ViewEncapsulation.None }); }
291
291
  }
292
292
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPhoneBoxComponent, decorators: [{
293
293
  type: Component,
@@ -332,12 +332,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
332
332
  AXTextBoxComponent,
333
333
  FormsModule,
334
334
  AXDecoratorGenericComponent,
335
- AXComboBoxComponent,
335
+ AXSelectBoxComponent,
336
336
  AXSearchBoxComponent,
337
337
  AXDecoratorClearButtonComponent,
338
338
  NgStyle,
339
339
  AXFormModule,
340
- ], template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"$safeNavigationMigration(selectedCountry()?.mask)\"\n [placeholder]=\"$safeNavigationMigration(selectedCountry()?.format)\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-combo-box\n #s\n [name]=\"name\"\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': $safeNavigationMigration(item.data.bkPosition?.x) + ' ' + $safeNavigationMigration(item.data.bkPosition?.y),\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-combo-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer properties;@layer components{ax-phone-box ax-combo-box ax-dropdown-box .ax-content{padding-top:calc(var(--spacing, .25rem) * 0)!important}.ax-country-item{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 3)}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-country-item .ax-country-name{margin-inline-end:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.ax-country-item .ax-iso2code{opacity:70%}.ax-country-flag{height:calc(var(--spacing, .25rem) * 5)!important;width:calc(var(--spacing, .25rem) * 6)!important;background-repeat:no-repeat}.ax-selected-country{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline-end:calc(var(--spacing, .25rem) * 2)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
340
+ ], template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"$safeNavigationMigration(selectedCountry()?.mask)\"\n [placeholder]=\"$safeNavigationMigration(selectedCountry()?.format)\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n [name]=\"name\"\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': $safeNavigationMigration(item.data.bkPosition?.x) + ' ' + $safeNavigationMigration(item.data.bkPosition?.y),\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer properties;@layer components{ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:calc(var(--spacing, .25rem) * 0)!important}.ax-country-item{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 3)}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-country-item .ax-country-name{margin-inline-end:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.ax-country-item .ax-iso2code{opacity:70%}.ax-country-flag{height:calc(var(--spacing, .25rem) * 5)!important;width:calc(var(--spacing, .25rem) * 6)!important;background-repeat:no-repeat}.ax-selected-country{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline-end:calc(var(--spacing, .25rem) * 2)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
341
341
  }], propDecorators: { textbox: [{
342
342
  type: ViewChild,
343
343
  args: [AXTextBoxComponent, { static: true }]
@@ -354,7 +354,7 @@ const MODULES = [
354
354
  CommonModule,
355
355
  FormsModule,
356
356
  IMaskModule,
357
- AXComboBoxModule,
357
+ AXSelectBoxModule,
358
358
  AXSearchBoxModule,
359
359
  AXDecoratorModule,
360
360
  AXButtonModule,
@@ -365,7 +365,7 @@ class AXPhoneBoxModule {
365
365
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPhoneBoxModule, imports: [CommonModule,
366
366
  FormsModule,
367
367
  IMaskModule,
368
- AXComboBoxModule,
368
+ AXSelectBoxModule,
369
369
  AXSearchBoxModule,
370
370
  AXDecoratorModule,
371
371
  AXButtonModule,
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-phone-box.mjs","sources":["../../../../packages/components/phone-box/src/lib/phone-box.component.ts","../../../../packages/components/phone-box/src/lib/phone-box.component.html","../../../../packages/components/phone-box/src/lib/phone-box.module.ts","../../../../packages/components/phone-box/src/acorex-components-phone-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXDataSource,\n AXFocusableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorClearButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXComboBoxComponent } from '@acorex/components/combo-box';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { COUNTRIES, COUNTRIES_FLAG_BASE64, CountryItem } from '@acorex/core/constants';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { NgStyle } from '@angular/common';\nimport {\n Component,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { filter } from 'lodash-es';\nimport { classes } from 'polytype';\n\n/**\n * @category\n * A component that handles phone number input with various configurations.\n */\n@Component({\n selector: 'ax-phone-box',\n templateUrl: './phone-box.component.html',\n styleUrls: ['./phone-box.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'disabled',\n 'tabIndex',\n 'readonly',\n 'value',\n 'state',\n 'name',\n 'id',\n 'placeholder',\n 'maxLength',\n 'allowNull',\n 'type',\n 'autoComplete',\n 'look',\n ],\n outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ],\n host: {\n ngSkipHydration: 'true',\n },\n imports: [\n AXTextBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXComboBoxComponent,\n AXSearchBoxComponent,\n AXDecoratorClearButtonComponent,\n NgStyle,\n AXFormModule,\n ],\n})\nexport class AXPhoneBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n protected _updateOn: 'change' | 'blur' | 'submit' = 'change';\n\n /** @ignore */\n @ViewChild(AXTextBoxComponent, { static: true })\n private textbox: AXTextBoxComponent;\n\n protected flags = signal(COUNTRIES_FLAG_BASE64);\n\n private translationService: AXTranslationService = inject(AXTranslationService);\n\n protected messageError = this.callTranslate();\n\n async callTranslate() {\n return await this.translationService.translateAsync('@acorex:validation.messages.phone');\n }\n\n /**\n * CSS classes to apply to the component.\n */\n @Input('class')\n classNames: string;\n\n /**\n * static precode.\n */\n precode = input();\n\n /**\n * The default country value for the component.\n */\n country = model<string>('');\n\n /**\n * List of included values for the component.\n */\n included = input<string[]>([]);\n\n /**\n * List of excluded values for the component.\n */\n excluded = input<string[]>([]);\n\n private selectBox = viewChild<AXComboBoxComponent>('s');\n\n /** @ignore */\n protected countries = signal<CountryItem[]>([]);\n\n /** @ignore */\n protected selectedCountry = signal<CountryItem>(null);\n\n #countriesChanged = effect(() => {\n this.included();\n this.excluded();\n this.setCountries();\n this.cdr.detectChanges();\n this.selectBox().refresh();\n });\n\n #init = afterNextRender(() => {\n setTimeout(() => {\n if (this.country() && !this.value) {\n this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));\n } else if (!this.country() && !this.value) {\n this.selectedCountry.set(this.countries()[0]);\n }\n });\n\n this.setCountries();\n });\n\n #eff = effect(async () => {\n if (this.selectedCountry()?.regex) {\n this.removeValidation();\n const message = await this.messageError;\n this.addValidationRule({\n rule: 'regex',\n options: {\n message,\n pattern: this.selectedCountry()?.regex,\n },\n disabled: false,\n });\n }\n });\n\n /** @ignore */\n protected _handleModelChange(e: AXValueChangedEvent<any>) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n if (e.isUserInteraction && e.value) this.commitValue(e.value, true);\n }\n\n protected override internalValueChanged(value: any): void {\n if (!value) return;\n const result = this.parsePhoneNumber(value);\n if (result.country) {\n this.selectedCountry.set(result.country);\n this.commitValue(result.nationalNumber);\n }\n }\n\n /** @ignore */\n protected dataSource = new AXDataSource<CountryItem>({\n pageSize: 10,\n load: (e) => {\n return new Promise((resolve) => {\n const list = this.countries();\n const result = e.filter\n ? filter(\n list,\n (c) =>\n c.name.toUpperCase().includes((e.filter.value as string).toUpperCase()) ||\n c.iso2code.toUpperCase().includes((e.filter.value as string).toUpperCase()) ||\n c.code.toUpperCase().includes((e.filter.value as string).toUpperCase()),\n )\n : list;\n resolve({\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n });\n });\n },\n });\n\n /** @ignore */\n protected handleCountryOnClosed() {\n setTimeout(() => {\n this.textbox?.focus();\n }, 300);\n }\n\n /**\n * Determines if the keyboard event is a valid action based on allowed keys and key codes.\n *\n * @param event - The keyboard event to validate\n * @returns boolean - True if the key action is valid, false otherwise\n */\n isValidKeyboardAction = (event: KeyboardEvent) => {\n const _code = parseInt(event.key);\n\n const ALLOWED_KEY = ['Backspace', 'ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Tab'];\n\n const IS_CTRL_A = () => (event.ctrlKey && event.key === 'a') || (event.ctrlKey && event.key === 'A');\n // eslint-disable-next-line no-constant-condition\n if ((_code >= 0 && _code <= 9) || ALLOWED_KEY.includes(event.key) || IS_CTRL_A()) {\n return true;\n } else {\n return false;\n }\n };\n\n /**\n * Updates the list of countries based on included or excluded codes.\n *\n * @returns void - No return value. Updates the internal countries list.\n */\n setCountries() {\n if (this.included().length) {\n this.countries.set(COUNTRIES.filter((c) => this.included().includes(c.code)));\n } else if (this.excluded().length) {\n this.countries.set(COUNTRIES.filter((c) => !this.excluded().includes(c.code)));\n } else {\n this.countries.set(COUNTRIES);\n }\n this.flags.set(COUNTRIES_FLAG_BASE64);\n }\n\n protected handleKeyDown(e: KeyboardEvent) {\n // Prevent all keyboard actions if component is disabled\n if (this.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n\n // In readonly state, only allow copy operations (Ctrl+C, Ctrl+A)\n if (this.readonly) {\n const isCopyOperation =\n (e.ctrlKey && (e.key === 'c' || e.key === 'C')) || (e.ctrlKey && (e.key === 'a' || e.key === 'A'));\n\n if (!isCopyOperation) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n }\n\n if (this.isValidKeyboardAction(e)) {\n this.emitOnKeydownEvent(e);\n } else {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n\n private parsePhoneNumber(fullNumber: string): {\n country: CountryItem | null;\n countryCode: string | null;\n nationalNumber: string;\n } {\n // 1) Normalize input\n let normalized = fullNumber.replace(/[^0-9+]/g, '');\n\n // convert 00... → +...\n if (normalized.startsWith('00')) {\n normalized = '+' + normalized.slice(2);\n }\n\n // 2) Sort countries by longest prefix first\n const sorted = [...COUNTRIES].sort((a, b) => b.iso2code.length - a.iso2code.length);\n\n // 3) Match the country code\n for (const country of sorted) {\n if (normalized.startsWith(country.iso2code)) {\n const countryCode = country.iso2code;\n const rawNationalNumber = normalized.slice(countryCode.length);\n const nationalNumber = this.formatNationalNumber(rawNationalNumber, country.format);\n\n return {\n country,\n countryCode,\n nationalNumber,\n };\n }\n }\n\n // 4) No match found\n return {\n country: null,\n countryCode: null,\n nationalNumber: normalized,\n };\n }\n\n /**\n * Formats a national phone number according to the country's format pattern.\n * The format pattern uses '0' as digit placeholders and preserves other characters (like spaces).\n *\n * @param number - The raw national number (digits only)\n * @param format - The country's phone number format pattern (e.g., '000 000 0000')\n * @returns The formatted national number with spaces according to the format\n */\n private formatNationalNumber(number: string, format: string): string {\n if (!format || !number) {\n return number;\n }\n\n let result = '';\n let numberIndex = 0;\n\n for (let i = 0; i < format.length && numberIndex < number.length; i++) {\n if (format[i] === '0') {\n result += number[numberIndex];\n numberIndex++;\n } else {\n result += format[i];\n }\n }\n\n // Append any remaining digits that exceed the format length\n if (numberIndex < number.length) {\n result += number.slice(numberIndex);\n }\n\n return result;\n }\n\n /** @ignore */\n _handleCountryValueChanged(event: AXValueChangedEvent) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n\n //remove validation rule before add new one\n if (event.isUserInteraction) {\n this.selectedCountry.set(event.component.selectedItems[0]);\n }\n }\n\n private removeValidation() {\n this.removeValidationRuleByType('regex');\n this.textbox.reset();\n this.textbox.resetErrors();\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"$safeNavigationMigration(selectedCountry()?.mask)\"\n [placeholder]=\"$safeNavigationMigration(selectedCountry()?.format)\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-combo-box\n #s\n [name]=\"name\"\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': $safeNavigationMigration(item.data.bkPosition?.x) + ' ' + $safeNavigationMigration(item.data.bkPosition?.y),\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-combo-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXComboBoxModule } from '@acorex/components/combo-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IMaskModule } from 'angular-imask';\nimport { AXPhoneBoxComponent } from './phone-box.component';\n\nconst COMPONENT = [AXPhoneBoxComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n IMaskModule,\n AXComboBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPhoneBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-phone-box.mjs","sources":["../../../../packages/components/phone-box/src/lib/phone-box.component.ts","../../../../packages/components/phone-box/src/lib/phone-box.component.html","../../../../packages/components/phone-box/src/lib/phone-box.module.ts","../../../../packages/components/phone-box/src/acorex-components-phone-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXDataSource,\n AXFocusableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorClearButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { COUNTRIES, COUNTRIES_FLAG_BASE64, CountryItem } from '@acorex/core/constants';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { NgStyle } from '@angular/common';\nimport {\n Component,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { filter } from 'lodash-es';\nimport { classes } from 'polytype';\n\n/**\n * @category\n * A component that handles phone number input with various configurations.\n */\n@Component({\n selector: 'ax-phone-box',\n templateUrl: './phone-box.component.html',\n styleUrls: ['./phone-box.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'disabled',\n 'tabIndex',\n 'readonly',\n 'value',\n 'state',\n 'name',\n 'id',\n 'placeholder',\n 'maxLength',\n 'allowNull',\n 'type',\n 'autoComplete',\n 'look',\n ],\n outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ],\n host: {\n ngSkipHydration: 'true',\n },\n imports: [\n AXTextBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXSelectBoxComponent,\n AXSearchBoxComponent,\n AXDecoratorClearButtonComponent,\n NgStyle,\n AXFormModule,\n ],\n})\nexport class AXPhoneBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n protected _updateOn: 'change' | 'blur' | 'submit' = 'change';\n\n /** @ignore */\n @ViewChild(AXTextBoxComponent, { static: true })\n private textbox: AXTextBoxComponent;\n\n protected flags = signal(COUNTRIES_FLAG_BASE64);\n\n private translationService: AXTranslationService = inject(AXTranslationService);\n\n protected messageError = this.callTranslate();\n\n async callTranslate() {\n return await this.translationService.translateAsync('@acorex:validation.messages.phone');\n }\n\n /**\n * CSS classes to apply to the component.\n */\n @Input('class')\n classNames: string;\n\n /**\n * static precode.\n */\n precode = input();\n\n /**\n * The default country value for the component.\n */\n country = model<string>('');\n\n /**\n * List of included values for the component.\n */\n included = input<string[]>([]);\n\n /**\n * List of excluded values for the component.\n */\n excluded = input<string[]>([]);\n\n private selectBox = viewChild<AXSelectBoxComponent>('s');\n\n /** @ignore */\n protected countries = signal<CountryItem[]>([]);\n\n /** @ignore */\n protected selectedCountry = signal<CountryItem>(null);\n\n #countriesChanged = effect(() => {\n this.included();\n this.excluded();\n this.setCountries();\n this.cdr.detectChanges();\n this.selectBox().refresh();\n });\n\n #init = afterNextRender(() => {\n setTimeout(() => {\n if (this.country() && !this.value) {\n this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));\n } else if (!this.country() && !this.value) {\n this.selectedCountry.set(this.countries()[0]);\n }\n });\n\n this.setCountries();\n });\n\n #eff = effect(async () => {\n if (this.selectedCountry()?.regex) {\n this.removeValidation();\n const message = await this.messageError;\n this.addValidationRule({\n rule: 'regex',\n options: {\n message,\n pattern: this.selectedCountry()?.regex,\n },\n disabled: false,\n });\n }\n });\n\n /** @ignore */\n protected _handleModelChange(e: AXValueChangedEvent<any>) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n if (e.isUserInteraction && e.value) this.commitValue(e.value, true);\n }\n\n protected override internalValueChanged(value: any): void {\n if (!value) return;\n const result = this.parsePhoneNumber(value);\n if (result.country) {\n this.selectedCountry.set(result.country);\n this.commitValue(result.nationalNumber);\n }\n }\n\n /** @ignore */\n protected dataSource = new AXDataSource<CountryItem>({\n pageSize: 10,\n load: (e) => {\n return new Promise((resolve) => {\n const list = this.countries();\n const result = e.filter\n ? filter(\n list,\n (c) =>\n c.name.toUpperCase().includes((e.filter.value as string).toUpperCase()) ||\n c.iso2code.toUpperCase().includes((e.filter.value as string).toUpperCase()) ||\n c.code.toUpperCase().includes((e.filter.value as string).toUpperCase()),\n )\n : list;\n resolve({\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n });\n });\n },\n });\n\n /** @ignore */\n protected handleCountryOnClosed() {\n setTimeout(() => {\n this.textbox?.focus();\n }, 300);\n }\n\n /**\n * Determines if the keyboard event is a valid action based on allowed keys and key codes.\n *\n * @param event - The keyboard event to validate\n * @returns boolean - True if the key action is valid, false otherwise\n */\n isValidKeyboardAction = (event: KeyboardEvent) => {\n const _code = parseInt(event.key);\n\n const ALLOWED_KEY = ['Backspace', 'ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Tab'];\n\n const IS_CTRL_A = () => (event.ctrlKey && event.key === 'a') || (event.ctrlKey && event.key === 'A');\n // eslint-disable-next-line no-constant-condition\n if ((_code >= 0 && _code <= 9) || ALLOWED_KEY.includes(event.key) || IS_CTRL_A()) {\n return true;\n } else {\n return false;\n }\n };\n\n /**\n * Updates the list of countries based on included or excluded codes.\n *\n * @returns void - No return value. Updates the internal countries list.\n */\n setCountries() {\n if (this.included().length) {\n this.countries.set(COUNTRIES.filter((c) => this.included().includes(c.code)));\n } else if (this.excluded().length) {\n this.countries.set(COUNTRIES.filter((c) => !this.excluded().includes(c.code)));\n } else {\n this.countries.set(COUNTRIES);\n }\n this.flags.set(COUNTRIES_FLAG_BASE64);\n }\n\n protected handleKeyDown(e: KeyboardEvent) {\n // Prevent all keyboard actions if component is disabled\n if (this.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n\n // In readonly state, only allow copy operations (Ctrl+C, Ctrl+A)\n if (this.readonly) {\n const isCopyOperation =\n (e.ctrlKey && (e.key === 'c' || e.key === 'C')) || (e.ctrlKey && (e.key === 'a' || e.key === 'A'));\n\n if (!isCopyOperation) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n }\n\n if (this.isValidKeyboardAction(e)) {\n this.emitOnKeydownEvent(e);\n } else {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n\n private parsePhoneNumber(fullNumber: string): {\n country: CountryItem | null;\n countryCode: string | null;\n nationalNumber: string;\n } {\n // 1) Normalize input\n let normalized = fullNumber.replace(/[^0-9+]/g, '');\n\n // convert 00... → +...\n if (normalized.startsWith('00')) {\n normalized = '+' + normalized.slice(2);\n }\n\n // 2) Sort countries by longest prefix first\n const sorted = [...COUNTRIES].sort((a, b) => b.iso2code.length - a.iso2code.length);\n\n // 3) Match the country code\n for (const country of sorted) {\n if (normalized.startsWith(country.iso2code)) {\n const countryCode = country.iso2code;\n const rawNationalNumber = normalized.slice(countryCode.length);\n const nationalNumber = this.formatNationalNumber(rawNationalNumber, country.format);\n\n return {\n country,\n countryCode,\n nationalNumber,\n };\n }\n }\n\n // 4) No match found\n return {\n country: null,\n countryCode: null,\n nationalNumber: normalized,\n };\n }\n\n /**\n * Formats a national phone number according to the country's format pattern.\n * The format pattern uses '0' as digit placeholders and preserves other characters (like spaces).\n *\n * @param number - The raw national number (digits only)\n * @param format - The country's phone number format pattern (e.g., '000 000 0000')\n * @returns The formatted national number with spaces according to the format\n */\n private formatNationalNumber(number: string, format: string): string {\n if (!format || !number) {\n return number;\n }\n\n let result = '';\n let numberIndex = 0;\n\n for (let i = 0; i < format.length && numberIndex < number.length; i++) {\n if (format[i] === '0') {\n result += number[numberIndex];\n numberIndex++;\n } else {\n result += format[i];\n }\n }\n\n // Append any remaining digits that exceed the format length\n if (numberIndex < number.length) {\n result += number.slice(numberIndex);\n }\n\n return result;\n }\n\n /** @ignore */\n _handleCountryValueChanged(event: AXValueChangedEvent) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n\n //remove validation rule before add new one\n if (event.isUserInteraction) {\n this.selectedCountry.set(event.component.selectedItems[0]);\n }\n }\n\n private removeValidation() {\n this.removeValidationRuleByType('regex');\n this.textbox.reset();\n this.textbox.resetErrors();\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"$safeNavigationMigration(selectedCountry()?.mask)\"\n [placeholder]=\"$safeNavigationMigration(selectedCountry()?.format)\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n [name]=\"name\"\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': $safeNavigationMigration(item.data.bkPosition?.x) + ' ' + $safeNavigationMigration(item.data.bkPosition?.y),\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IMaskModule } from 'angular-imask';\nimport { AXPhoneBoxComponent } from './phone-box.component';\n\nconst COMPONENT = [AXPhoneBoxComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n IMaskModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPhoneBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}