@acorex/components 21.0.2-next.11 → 21.0.2-next.13

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.
@@ -1,7 +1,5 @@
1
1
  import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/cdk/common';
2
- import * as i3 from '@acorex/components/form';
3
- import { AXFormModule } from '@acorex/components/form';
4
- import { AXSelectBoxModule } from '@acorex/components/select-box';
2
+ import { AXValidationRuleDirective } from '@acorex/components/form';
5
3
  import * as i1 from '@acorex/components/text-box';
6
4
  import { AXTextBoxModule } from '@acorex/components/text-box';
7
5
  import { AXTimeDurationFormatter } from '@acorex/core/date-time';
@@ -274,11 +272,11 @@ class AXTimeDurationComponent extends classes((MXInputBaseValueComponent), MXLoo
274
272
  useExisting: forwardRef(() => AXTimeDurationComponent),
275
273
  multi: true,
276
274
  },
277
- ], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n [look]=\"look\"\n [name]=\"name\"\n [placeholder]=\"maskPlaceHolder()\"\n [maskPattern]=\"mask()\"\n [(ngModel)]=\"inputValue\"\n (onValueChanged)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n (onFocus)=\"focusHandler($event)\"\n (onBlur)=\"blurHandler($event)\"\n (onMaskChanged)=\"maskChange($event)\"\n>\n</ax-text-box>\n<ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n", dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
275
+ ], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n [look]=\"look\"\n [name]=\"name\"\n [placeholder]=\"maskPlaceHolder()\"\n [maskPattern]=\"mask()\"\n [(ngModel)]=\"inputValue\"\n (onValueChanged)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n (onFocus)=\"focusHandler($event)\"\n (onBlur)=\"blurHandler($event)\"\n (onMaskChanged)=\"maskChange($event)\"\n>\n</ax-text-box>\n<ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n", dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
278
276
  }
279
277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTimeDurationComponent, decorators: [{
280
278
  type: Component,
281
- args: [{ selector: 'ax-time-duration', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, FormsModule, AXSelectBoxModule, AXFormModule], inputs: ['disabled', 'tabIndex', 'readonly', 'look', 'name'], outputs: ['onValueChanged'], providers: [
279
+ args: [{ selector: 'ax-time-duration', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, FormsModule, AXValidationRuleDirective], inputs: ['disabled', 'tabIndex', 'readonly', 'look', 'name'], outputs: ['onValueChanged'], providers: [
282
280
  { provide: AXComponent, useExisting: AXTimeDurationComponent },
283
281
  { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },
284
282
  { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-time-duration.mjs","sources":["../../../../packages/components/time-duration/src/lib/time-duration.component.ts","../../../../packages/components/time-duration/src/lib/time-duration.component.html","../../../../packages/components/time-duration/src/lib/time-duration.module.ts","../../../../packages/components/time-duration/src/acorex-components-time-duration.ts"],"sourcesContent":["import {\n AXComponent,\n AXFocusableComponent,\n AXFocusEvent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXInputMaskEvent } from '@acorex/cdk/input-mask';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTimeDurationFormatter } from '@acorex/core/date-time';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n forwardRef,\n HostBinding,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXTimeDurationUnit } from './time-duration.type';\n\n@Component({\n selector: 'ax-time-duration',\n templateUrl: './time-duration.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextBoxModule, FormsModule, AXSelectBoxModule, AXFormModule],\n inputs: ['disabled', 'tabIndex', 'readonly', 'look', 'name'],\n outputs: ['onValueChanged'],\n providers: [\n { provide: AXComponent, useExisting: AXTimeDurationComponent },\n { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },\n { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTimeDurationComponent),\n multi: true,\n },\n ],\n})\nexport class AXTimeDurationComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n protected inputValue: string;\n readonly valueStart = input<AXTimeDurationUnit>('YEAR');\n readonly valueEnd = input<AXTimeDurationUnit>('MILLISECOND');\n readonly label = input<boolean>(true);\n readonly maskDigits = input('00:00:00:00:00:00:00:000');\n readonly minValue = input<number>(null);\n readonly maxValue = input<number>(null);\n\n protected mask = signal(null);\n protected maskPlaceHolder = signal(null);\n\n private translationService: AXTranslationService = inject(AXTranslationService);\n private timeDurationFormatter: AXTimeDurationFormatter = inject(AXTimeDurationFormatter);\n\n private onInputFire = false;\n private onInternalValueChangedFire = false;\n\n private YEAR = signal(null);\n private MONTH = signal(null);\n private WEEK = signal(null);\n private DAY = signal(null);\n private HOUR = signal(null);\n private MINUTE = signal(null);\n private SECOND = signal(null);\n private MILLISECOND = signal(null);\n private isTranslationInit = signal(false);\n\n #init = afterNextRender(async () => {\n await this.initTranslation();\n });\n\n #effect = effect(() => {\n // Depend on label as well\n void this.label();\n if (this.valueStart() && this.valueEnd() && this.isTranslationInit()) {\n this.updateMask();\n }\n });\n\n async initTranslation() {\n this.YEAR.set((await this.translationService.translateAsync('@acorex:dateTime.units.year')).toLocaleUpperCase());\n this.MONTH.set((await this.translationService.translateAsync('@acorex:dateTime.units.month')).toLocaleUpperCase());\n this.WEEK.set((await this.translationService.translateAsync('@acorex:dateTime.units.week')).toLocaleUpperCase());\n this.DAY.set((await this.translationService.translateAsync('@acorex:dateTime.units.day')).toLocaleUpperCase());\n this.HOUR.set((await this.translationService.translateAsync('@acorex:dateTime.units.hour')).toLocaleUpperCase());\n this.MINUTE.set(\n (await this.translationService.translateAsync('@acorex:dateTime.units.minute')).toLocaleUpperCase(),\n );\n this.SECOND.set(\n (await this.translationService.translateAsync('@acorex:dateTime.units.second')).toLocaleUpperCase(),\n );\n this.MILLISECOND.set(\n (await this.translationService.translateAsync('@acorex:dateTime.units.millisecond')).toLocaleUpperCase(),\n );\n this.isTranslationInit.set(true);\n }\n\n protected maskChange(e: AXInputMaskEvent) {\n if (!e.completed) return;\n\n if (this.minValue() && this.minValue() > this.value) {\n this.commitValue(this.minValue());\n }\n\n if (this.maxValue() && this.maxValue() < this.value) {\n this.commitValue(this.maxValue());\n }\n }\n\n protected async onInput(event: AXValueChangedEvent<any>) {\n if (this.disabled) return;\n if (this.readonly) return;\n if (!event.isUserInteraction) return;\n if (this.onInternalValueChangedFire) return;\n this.onInputFire = true;\n\n if (!event.value) {\n this.commitValue(null, true);\n this.onInputFire = false;\n return;\n }\n\n const milliseconds = this.maskToMilliseconds(event.value);\n\n this.commitValue(milliseconds, true);\n this.onInputFire = false;\n }\n\n protected override async internalValueChanged(value: number): Promise<void> {\n if (this.onInputFire) return;\n this.onInternalValueChangedFire = true;\n\n const normalizedMask = await this.timeDurationFormatter.millisecondsToMask(\n value,\n this.valueStart(),\n this.valueEnd(),\n this.label(),\n this.maskDigits(),\n true,\n );\n\n this.inputValue = normalizedMask;\n\n setTimeout(() => {\n this.onInternalValueChangedFire = false;\n });\n }\n\n private replacePersianLabels(input: string) {\n const replacements = {\n [this.YEAR()]: 'YEAR',\n [this.MONTH()]: 'MONTH',\n [this.WEEK()]: 'WEEK',\n [this.DAY()]: 'DAY',\n [this.HOUR()]: 'HOUR',\n [this.MINUTE()]: 'MINUTE',\n [this.SECOND()]: 'SECOND',\n [this.MILLISECOND()]: 'MILLISECOND',\n };\n\n return Object.entries(replacements).reduce((str, [fa, en]) => {\n return str.replace(`(${fa})`, `(${en})`);\n }, input);\n }\n\n private maskToMilliseconds(maskValue: string): number {\n const timeUnits = {\n YEAR: 365 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n HOUR: 60 * 60 * 1000,\n MINUTE: 60 * 1000,\n SECOND: 1000,\n MILLISECOND: 1,\n };\n\n let totalMs = 0;\n\n if (this.label()) {\n // Parse labeled format: \"00 (YEAR) : 00 (MONTH) : 00 (DAY)\"\n const transformedMaskValue = this.replacePersianLabels(maskValue);\n const regex = /(\\d+)\\s*\\((YEAR|MONTH|WEEK|DAY|HOUR|MINUTE|SECOND|MILLISECOND)\\)/g;\n let match;\n\n while ((match = regex.exec(transformedMaskValue)) !== null) {\n const value = parseInt(match[1], 10);\n const unit = match[2];\n if (timeUnits[unit] !== undefined) {\n totalMs += value * timeUnits[unit];\n }\n }\n } else {\n // Parse unlabeled format: \"00:00:00\" (colon-separated numbers)\n const allUnits = ['YEAR', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n\n if (startIndex !== -1 && endIndex !== -1 && endIndex >= startIndex) {\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n const numbers = maskValue.split(':').map((num) => parseInt(num.trim(), 10));\n\n for (let i = 0; i < Math.min(numbers.length, selectedUnits.length); i++) {\n const value = numbers[i];\n const unit = selectedUnits[i];\n if (!isNaN(value) && timeUnits[unit] !== undefined) {\n totalMs += value * timeUnits[unit];\n }\n }\n }\n }\n\n return totalMs;\n }\n\n private updateMask() {\n const allUnits = ['YEAR', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n\n if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) {\n this.mask.set(null);\n return null;\n }\n\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n\n let maskParts: string[];\n\n const yearDigits = this.maskDigits().split(':')[0];\n const monthDigits = this.maskDigits().split(':')[1];\n const weekDigits = this.maskDigits().split(':')[2];\n const dayDigits = this.maskDigits().split(':')[3];\n const hourDigits = this.maskDigits().split(':')[4];\n const minuteDigits = this.maskDigits().split(':')[5];\n const secondDigits = this.maskDigits().split(':')[6];\n const millisecondDigits = this.maskDigits().split(':')[7];\n\n if (this.label()) {\n // With labels\n const unitPatterns: Record<string, string> = {\n YEAR: `${yearDigits} (${this.YEAR()})`,\n MONTH: `${monthDigits} (${this.MONTH()})`,\n WEEK: `${weekDigits} (${this.WEEK()})`,\n DAY: `${dayDigits} (${this.DAY()})`,\n HOUR: `${hourDigits} (${this.HOUR()})`,\n MINUTE: `${minuteDigits} (${this.MINUTE()})`,\n SECOND: `${secondDigits} (${this.SECOND()})`,\n MILLISECOND: `${millisecondDigits} (${this.MILLISECOND()})`,\n };\n\n maskParts = selectedUnits.map((unit) => {\n return unitPatterns[unit];\n });\n } else {\n // Without labels - just numbers\n const unitPatterns: Record<string, string> = {\n YEAR: yearDigits,\n MONTH: monthDigits,\n WEEK: weekDigits,\n DAY: dayDigits,\n HOUR: hourDigits,\n MINUTE: minuteDigits,\n SECOND: secondDigits,\n MILLISECOND: millisecondDigits,\n };\n\n maskParts = selectedUnits.map((unit) => {\n return unitPatterns[unit];\n });\n }\n\n let result: string;\n\n if (this.label()) {\n if (this.translationService.getActiveLang() === 'fa-IR') {\n result = maskParts.reverse().join(' : ');\n } else {\n result = maskParts.join(' : ');\n }\n } else {\n result = maskParts.join(':');\n }\n\n const convert = result.replace(/0/g, '#');\n this.mask.set(convert);\n this.maskPlaceHolder.set(result);\n }\n\n protected focusHandler(e: AXFocusEvent) {\n this.onFocus.emit(e);\n }\n\n protected blurHandler(e: AXFocusEvent) {\n this.onBlur.emit(e);\n }\n\n protected validateFn = async (val: number) => {\n if (this.minValue() && this.minValue() > val) {\n const normalizedMaskMin = await this.timeDurationFormatter.millisecondsToMask(\n this.minValue(),\n this.valueStart(),\n this.valueEnd(),\n true,\n this.maskDigits(),\n true,\n );\n\n const message = await this.translationService.translateAsync('@acorex:validation.messages.min', {\n params: { value: normalizedMaskMin },\n });\n\n return {\n rule: 'callback',\n result: false,\n message,\n value: val,\n };\n }\n\n if (this.maxValue() && this.maxValue() < val) {\n const normalizedMaskMax = await this.timeDurationFormatter.millisecondsToMask(\n this.maxValue(),\n this.valueStart(),\n this.valueEnd(),\n true,\n this.maskDigits(),\n true,\n );\n\n const message = await this.translationService.translateAsync('@acorex:validation.messages.max', {\n params: { value: normalizedMaskMax },\n });\n\n return {\n rule: 'callback',\n result: false,\n message,\n value: val,\n };\n }\n\n return {\n rule: 'callback',\n result: true,\n value: val,\n };\n };\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<ax-text-box\n [look]=\"look\"\n [name]=\"name\"\n [placeholder]=\"maskPlaceHolder()\"\n [maskPattern]=\"mask()\"\n [(ngModel)]=\"inputValue\"\n (onValueChanged)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n (onFocus)=\"focusHandler($event)\"\n (onBlur)=\"blurHandler($event)\"\n (onMaskChanged)=\"maskChange($event)\"\n>\n</ax-text-box>\n<ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n","import { NgModule } from '@angular/core';\nimport { AXTimeDurationComponent } from './time-duration.component';\n\nconst COMPONENT = [AXTimeDurationComponent];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXTimeDurationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkDM,MAAO,uBAAwB,SAAQ,OAAO,EAAC,yBAAiC,GAAE,eAAe,CAAC,CAAA;AAnBxG,IAAA,WAAA,GAAA;;AAqBW,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAqB,MAAM,sDAAC;AAC9C,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAqB,aAAa,oDAAC;AACnD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAU,IAAI,iDAAC;AAC5B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,0BAA0B,sDAAC;AAC9C,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,IAAI,oDAAC;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,IAAI,oDAAC;AAE7B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,IAAI,gDAAC;AACnB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,IAAI,2DAAC;AAEhC,QAAA,IAAA,CAAA,kBAAkB,GAAyB,MAAM,CAAC,oBAAoB,CAAC;AACvE,QAAA,IAAA,CAAA,qBAAqB,GAA4B,MAAM,CAAC,uBAAuB,CAAC;QAEhF,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,0BAA0B,GAAG,KAAK;AAElC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,IAAI,gDAAC;AACnB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,IAAI,iDAAC;AACpB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,IAAI,gDAAC;AACnB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,IAAI,+CAAC;AAClB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,IAAI,gDAAC;AACnB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,IAAI,kDAAC;AACrB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,IAAI,kDAAC;AACrB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,IAAI,uDAAC;AAC1B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,6DAAC;AAEzC,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,YAAW;AACjC,YAAA,MAAM,IAAI,CAAC,eAAe,EAAE;AAC9B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAK;;AAEpB,YAAA,KAAK,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBACpE,IAAI,CAAC,UAAU,EAAE;YACnB;AACF,QAAA,CAAC,mDAAC;AA4NQ,QAAA,IAAA,CAAA,UAAU,GAAG,OAAO,GAAW,KAAI;AAC3C,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,EAAE;AAC5C,gBAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAC3E,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,EACJ,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CACL;gBAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,iCAAiC,EAAE;AAC9F,oBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;AACrC,iBAAA,CAAC;gBAEF,OAAO;AACL,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,MAAM,EAAE,KAAK;oBACb,OAAO;AACP,oBAAA,KAAK,EAAE,GAAG;iBACX;YACH;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,EAAE;AAC5C,gBAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAC3E,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,EACJ,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CACL;gBAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,iCAAiC,EAAE;AAC9F,oBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;AACrC,iBAAA,CAAC;gBAEF,OAAO;AACL,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,MAAM,EAAE,KAAK;oBACb,OAAO;AACP,oBAAA,KAAK,EAAE,GAAG;iBACX;YACH;YAEA,OAAO;AACL,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,GAAG;aACX;AACH,QAAA,CAAC;AAMF,IAAA;AA9RC,IAAA,KAAK;AAIL,IAAA,OAAO;AAQP,IAAA,MAAM,eAAe,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,6BAA6B,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAChH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,8BAA8B,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAClH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,6BAA6B,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAChH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,4BAA4B,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC9G,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,6BAA6B,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAChH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,+BAA+B,CAAC,EAAE,iBAAiB,EAAE,CACpG;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,+BAA+B,CAAC,EAAE,iBAAiB,EAAE,CACpG;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,oCAAoC,CAAC,EAAE,iBAAiB,EAAE,CACzG;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC;AAEU,IAAA,UAAU,CAAC,CAAmB,EAAA;QACtC,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE;AAElB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC;IACF;IAEU,MAAM,OAAO,CAAC,KAA+B,EAAA;QACrD,IAAI,IAAI,CAAC,QAAQ;YAAE;QACnB,IAAI,IAAI,CAAC,QAAQ;YAAE;QACnB,IAAI,CAAC,KAAK,CAAC,iBAAiB;YAAE;QAC9B,IAAI,IAAI,CAAC,0BAA0B;YAAE;AACrC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AAEvB,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAChB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;YACxB;QACF;QAEA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;AAEzD,QAAA,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;IAEmB,MAAM,oBAAoB,CAAC,KAAa,EAAA;QACzD,IAAI,IAAI,CAAC,WAAW;YAAE;AACtB,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI;AAEtC,QAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CACxE,KAAK,EACL,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,KAAK,EAAE,EACZ,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CACL;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,cAAc;QAEhC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK;AACzC,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,oBAAoB,CAAC,KAAa,EAAA;AACxC,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM;AACrB,YAAA,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,OAAO;AACvB,YAAA,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM;AACrB,YAAA,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;AACnB,YAAA,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM;AACrB,YAAA,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ;AACzB,YAAA,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ;AACzB,YAAA,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,aAAa;SACpC;AAED,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAI;AAC3D,YAAA,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,CAAC;QAC1C,CAAC,EAAE,KAAK,CAAC;IACX;AAEQ,IAAA,kBAAkB,CAAC,SAAiB,EAAA;AAC1C,QAAA,MAAM,SAAS,GAAG;YAChB,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;YAC/B,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;YAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAC7B,YAAA,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AACxB,YAAA,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACpB,MAAM,EAAE,EAAE,GAAG,IAAI;AACjB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,WAAW,EAAE,CAAC;SACf;QAED,IAAI,OAAO,GAAG,CAAC;AAEf,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;;YAEhB,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;YACjE,MAAM,KAAK,GAAG,mEAAmE;AACjF,YAAA,IAAI,KAAK;AAET,YAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,EAAE;gBAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,gBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACrB,gBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACjC,oBAAA,OAAO,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;gBACpC;YACF;QACF;aAAO;;AAEL,YAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC;YAC5F,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAElD,YAAA,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,IAAI,UAAU,EAAE;AAClE,gBAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC;gBAC9D,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE;AACvE,oBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;AACxB,oBAAA,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;AAC7B,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AAClD,wBAAA,OAAO,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;oBACpC;gBACF;YACF;QACF;AAEA,QAAA,OAAO,OAAO;IAChB;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC;QAC5F,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAElD,QAAA,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,GAAG,UAAU,EAAE;AACjE,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC;AAE9D,QAAA,IAAI,SAAmB;AAEvB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEzD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;;AAEhB,YAAA,MAAM,YAAY,GAA2B;gBAC3C,IAAI,EAAE,GAAG,UAAU,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,EAAE,CAAA,CAAA,CAAG;gBACtC,KAAK,EAAE,GAAG,WAAW,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,EAAE,CAAA,CAAA,CAAG;gBACzC,IAAI,EAAE,GAAG,UAAU,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,EAAE,CAAA,CAAA,CAAG;gBACtC,GAAG,EAAE,GAAG,SAAS,CAAA,EAAA,EAAK,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,CAAG;gBACnC,IAAI,EAAE,GAAG,UAAU,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,EAAE,CAAA,CAAA,CAAG;gBACtC,MAAM,EAAE,GAAG,YAAY,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,EAAE,CAAA,CAAA,CAAG;gBAC5C,MAAM,EAAE,GAAG,YAAY,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,EAAE,CAAA,CAAA,CAAG;gBAC5C,WAAW,EAAE,GAAG,iBAAiB,CAAA,EAAA,EAAK,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG;aAC5D;YAED,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACrC,gBAAA,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B,YAAA,CAAC,CAAC;QACJ;aAAO;;AAEL,YAAA,MAAM,YAAY,GAA2B;AAC3C,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,MAAM,EAAE,YAAY;AACpB,gBAAA,MAAM,EAAE,YAAY;AACpB,gBAAA,WAAW,EAAE,iBAAiB;aAC/B;YAED,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACrC,gBAAA,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,IAAI,MAAc;AAElB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,KAAK,OAAO,EAAE;gBACvD,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C;iBAAO;AACL,gBAAA,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC;QACF;aAAO;AACL,YAAA,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9B;QAEA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;IAClC;AAEU,IAAA,YAAY,CAAC,CAAe,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtB;AAEU,IAAA,WAAW,CAAC,CAAe,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACrB;AAsDA,IAAA,IACY,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI;IAClB;8GAzTW,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,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,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,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAXvB;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAC9D,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AACvE,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AACtE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChDH,8hBAiBA,2CDmBY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,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,UAAA,EAAA,IAAA,EAAE,iBAAiB,8BAAE,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,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAc5D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnBnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,eAAA,EAEX,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAA,MAAA,EAChE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAA,OAAA,EACnD,CAAC,gBAAgB,CAAC,EAAA,SAAA,EAChB;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,yBAAyB,EAAE;AAC9D,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,yBAAyB,EAAE;AACvE,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,yBAAyB,EAAE;AACtE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,6BAA6B,CAAC;AACtD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,8hBAAA,EAAA;;sBAwTA,WAAW;uBAAC,WAAW;;;AErW1B,MAAM,SAAS,GAAG,CAAC,uBAAuB,CAAC;AAE3C,MAAM,OAAO,GAAG,EAAE;MAOL,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,OAAA,EAAA,CATd,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAAvB,uBAAuB,CAAA,EAAA,CAAA,CAAA;+GAS7B,oBAAoB,EAAA,OAAA,EAAA,CAJlB,OAAO,EAAK,SAAS,CAAA,EAAA,CAAA,CAAA;;2FAIvB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,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;;;ACXD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-components-time-duration.mjs","sources":["../../../../packages/components/time-duration/src/lib/time-duration.component.ts","../../../../packages/components/time-duration/src/lib/time-duration.component.html","../../../../packages/components/time-duration/src/lib/time-duration.module.ts","../../../../packages/components/time-duration/src/acorex-components-time-duration.ts"],"sourcesContent":["import {\n AXComponent,\n AXFocusableComponent,\n AXFocusEvent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXInputMaskEvent } from '@acorex/cdk/input-mask';\nimport { AXValidationRuleDirective } from '@acorex/components/form';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTimeDurationFormatter } from '@acorex/core/date-time';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n forwardRef,\n HostBinding,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXTimeDurationUnit } from './time-duration.type';\n\n@Component({\n selector: 'ax-time-duration',\n templateUrl: './time-duration.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextBoxModule, FormsModule, AXValidationRuleDirective],\n inputs: ['disabled', 'tabIndex', 'readonly', 'look', 'name'],\n outputs: ['onValueChanged'],\n providers: [\n { provide: AXComponent, useExisting: AXTimeDurationComponent },\n { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },\n { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTimeDurationComponent),\n multi: true,\n },\n ],\n})\nexport class AXTimeDurationComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n protected inputValue: string;\n readonly valueStart = input<AXTimeDurationUnit>('YEAR');\n readonly valueEnd = input<AXTimeDurationUnit>('MILLISECOND');\n readonly label = input<boolean>(true);\n readonly maskDigits = input('00:00:00:00:00:00:00:000');\n readonly minValue = input<number>(null);\n readonly maxValue = input<number>(null);\n\n protected mask = signal(null);\n protected maskPlaceHolder = signal(null);\n\n private translationService: AXTranslationService = inject(AXTranslationService);\n private timeDurationFormatter: AXTimeDurationFormatter = inject(AXTimeDurationFormatter);\n\n private onInputFire = false;\n private onInternalValueChangedFire = false;\n\n private YEAR = signal(null);\n private MONTH = signal(null);\n private WEEK = signal(null);\n private DAY = signal(null);\n private HOUR = signal(null);\n private MINUTE = signal(null);\n private SECOND = signal(null);\n private MILLISECOND = signal(null);\n private isTranslationInit = signal(false);\n\n #init = afterNextRender(async () => {\n await this.initTranslation();\n });\n\n #effect = effect(() => {\n // Depend on label as well\n void this.label();\n if (this.valueStart() && this.valueEnd() && this.isTranslationInit()) {\n this.updateMask();\n }\n });\n\n async initTranslation() {\n this.YEAR.set((await this.translationService.translateAsync('@acorex:dateTime.units.year')).toLocaleUpperCase());\n this.MONTH.set((await this.translationService.translateAsync('@acorex:dateTime.units.month')).toLocaleUpperCase());\n this.WEEK.set((await this.translationService.translateAsync('@acorex:dateTime.units.week')).toLocaleUpperCase());\n this.DAY.set((await this.translationService.translateAsync('@acorex:dateTime.units.day')).toLocaleUpperCase());\n this.HOUR.set((await this.translationService.translateAsync('@acorex:dateTime.units.hour')).toLocaleUpperCase());\n this.MINUTE.set(\n (await this.translationService.translateAsync('@acorex:dateTime.units.minute')).toLocaleUpperCase(),\n );\n this.SECOND.set(\n (await this.translationService.translateAsync('@acorex:dateTime.units.second')).toLocaleUpperCase(),\n );\n this.MILLISECOND.set(\n (await this.translationService.translateAsync('@acorex:dateTime.units.millisecond')).toLocaleUpperCase(),\n );\n this.isTranslationInit.set(true);\n }\n\n protected maskChange(e: AXInputMaskEvent) {\n if (!e.completed) return;\n\n if (this.minValue() && this.minValue() > this.value) {\n this.commitValue(this.minValue());\n }\n\n if (this.maxValue() && this.maxValue() < this.value) {\n this.commitValue(this.maxValue());\n }\n }\n\n protected async onInput(event: AXValueChangedEvent<any>) {\n if (this.disabled) return;\n if (this.readonly) return;\n if (!event.isUserInteraction) return;\n if (this.onInternalValueChangedFire) return;\n this.onInputFire = true;\n\n if (!event.value) {\n this.commitValue(null, true);\n this.onInputFire = false;\n return;\n }\n\n const milliseconds = this.maskToMilliseconds(event.value);\n\n this.commitValue(milliseconds, true);\n this.onInputFire = false;\n }\n\n protected override async internalValueChanged(value: number): Promise<void> {\n if (this.onInputFire) return;\n this.onInternalValueChangedFire = true;\n\n const normalizedMask = await this.timeDurationFormatter.millisecondsToMask(\n value,\n this.valueStart(),\n this.valueEnd(),\n this.label(),\n this.maskDigits(),\n true,\n );\n\n this.inputValue = normalizedMask;\n\n setTimeout(() => {\n this.onInternalValueChangedFire = false;\n });\n }\n\n private replacePersianLabels(input: string) {\n const replacements = {\n [this.YEAR()]: 'YEAR',\n [this.MONTH()]: 'MONTH',\n [this.WEEK()]: 'WEEK',\n [this.DAY()]: 'DAY',\n [this.HOUR()]: 'HOUR',\n [this.MINUTE()]: 'MINUTE',\n [this.SECOND()]: 'SECOND',\n [this.MILLISECOND()]: 'MILLISECOND',\n };\n\n return Object.entries(replacements).reduce((str, [fa, en]) => {\n return str.replace(`(${fa})`, `(${en})`);\n }, input);\n }\n\n private maskToMilliseconds(maskValue: string): number {\n const timeUnits = {\n YEAR: 365 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n HOUR: 60 * 60 * 1000,\n MINUTE: 60 * 1000,\n SECOND: 1000,\n MILLISECOND: 1,\n };\n\n let totalMs = 0;\n\n if (this.label()) {\n // Parse labeled format: \"00 (YEAR) : 00 (MONTH) : 00 (DAY)\"\n const transformedMaskValue = this.replacePersianLabels(maskValue);\n const regex = /(\\d+)\\s*\\((YEAR|MONTH|WEEK|DAY|HOUR|MINUTE|SECOND|MILLISECOND)\\)/g;\n let match;\n\n while ((match = regex.exec(transformedMaskValue)) !== null) {\n const value = parseInt(match[1], 10);\n const unit = match[2];\n if (timeUnits[unit] !== undefined) {\n totalMs += value * timeUnits[unit];\n }\n }\n } else {\n // Parse unlabeled format: \"00:00:00\" (colon-separated numbers)\n const allUnits = ['YEAR', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n\n if (startIndex !== -1 && endIndex !== -1 && endIndex >= startIndex) {\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n const numbers = maskValue.split(':').map((num) => parseInt(num.trim(), 10));\n\n for (let i = 0; i < Math.min(numbers.length, selectedUnits.length); i++) {\n const value = numbers[i];\n const unit = selectedUnits[i];\n if (!isNaN(value) && timeUnits[unit] !== undefined) {\n totalMs += value * timeUnits[unit];\n }\n }\n }\n }\n\n return totalMs;\n }\n\n private updateMask() {\n const allUnits = ['YEAR', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n\n if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) {\n this.mask.set(null);\n return null;\n }\n\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n\n let maskParts: string[];\n\n const yearDigits = this.maskDigits().split(':')[0];\n const monthDigits = this.maskDigits().split(':')[1];\n const weekDigits = this.maskDigits().split(':')[2];\n const dayDigits = this.maskDigits().split(':')[3];\n const hourDigits = this.maskDigits().split(':')[4];\n const minuteDigits = this.maskDigits().split(':')[5];\n const secondDigits = this.maskDigits().split(':')[6];\n const millisecondDigits = this.maskDigits().split(':')[7];\n\n if (this.label()) {\n // With labels\n const unitPatterns: Record<string, string> = {\n YEAR: `${yearDigits} (${this.YEAR()})`,\n MONTH: `${monthDigits} (${this.MONTH()})`,\n WEEK: `${weekDigits} (${this.WEEK()})`,\n DAY: `${dayDigits} (${this.DAY()})`,\n HOUR: `${hourDigits} (${this.HOUR()})`,\n MINUTE: `${minuteDigits} (${this.MINUTE()})`,\n SECOND: `${secondDigits} (${this.SECOND()})`,\n MILLISECOND: `${millisecondDigits} (${this.MILLISECOND()})`,\n };\n\n maskParts = selectedUnits.map((unit) => {\n return unitPatterns[unit];\n });\n } else {\n // Without labels - just numbers\n const unitPatterns: Record<string, string> = {\n YEAR: yearDigits,\n MONTH: monthDigits,\n WEEK: weekDigits,\n DAY: dayDigits,\n HOUR: hourDigits,\n MINUTE: minuteDigits,\n SECOND: secondDigits,\n MILLISECOND: millisecondDigits,\n };\n\n maskParts = selectedUnits.map((unit) => {\n return unitPatterns[unit];\n });\n }\n\n let result: string;\n\n if (this.label()) {\n if (this.translationService.getActiveLang() === 'fa-IR') {\n result = maskParts.reverse().join(' : ');\n } else {\n result = maskParts.join(' : ');\n }\n } else {\n result = maskParts.join(':');\n }\n\n const convert = result.replace(/0/g, '#');\n this.mask.set(convert);\n this.maskPlaceHolder.set(result);\n }\n\n protected focusHandler(e: AXFocusEvent) {\n this.onFocus.emit(e);\n }\n\n protected blurHandler(e: AXFocusEvent) {\n this.onBlur.emit(e);\n }\n\n protected validateFn = async (val: number) => {\n if (this.minValue() && this.minValue() > val) {\n const normalizedMaskMin = await this.timeDurationFormatter.millisecondsToMask(\n this.minValue(),\n this.valueStart(),\n this.valueEnd(),\n true,\n this.maskDigits(),\n true,\n );\n\n const message = await this.translationService.translateAsync('@acorex:validation.messages.min', {\n params: { value: normalizedMaskMin },\n });\n\n return {\n rule: 'callback',\n result: false,\n message,\n value: val,\n };\n }\n\n if (this.maxValue() && this.maxValue() < val) {\n const normalizedMaskMax = await this.timeDurationFormatter.millisecondsToMask(\n this.maxValue(),\n this.valueStart(),\n this.valueEnd(),\n true,\n this.maskDigits(),\n true,\n );\n\n const message = await this.translationService.translateAsync('@acorex:validation.messages.max', {\n params: { value: normalizedMaskMax },\n });\n\n return {\n rule: 'callback',\n result: false,\n message,\n value: val,\n };\n }\n\n return {\n rule: 'callback',\n result: true,\n value: val,\n };\n };\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<ax-text-box\n [look]=\"look\"\n [name]=\"name\"\n [placeholder]=\"maskPlaceHolder()\"\n [maskPattern]=\"mask()\"\n [(ngModel)]=\"inputValue\"\n (onValueChanged)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n (onFocus)=\"focusHandler($event)\"\n (onBlur)=\"blurHandler($event)\"\n (onMaskChanged)=\"maskChange($event)\"\n>\n</ax-text-box>\n<ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n","import { NgModule } from '@angular/core';\nimport { AXTimeDurationComponent } from './time-duration.component';\n\nconst COMPONENT = [AXTimeDurationComponent];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXTimeDurationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "21.0.2-next.11",
3
+ "version": "21.0.2-next.13",
4
4
  "peerDependencies": {
5
- "@acorex/core": "21.0.2-next.11",
6
- "@acorex/cdk": "21.0.2-next.11",
5
+ "@acorex/core": "21.0.2-next.13",
6
+ "@acorex/cdk": "21.0.2-next.13",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "gridstack": ">=12.0.0",
@@ -10,8 +10,14 @@ import { MXInteractiveComponent, AXStyleColorType, AXStyleLookType, AXClickEvent
10
10
  declare class AXButtonGroupComponent extends MXInteractiveComponent {
11
11
  #private;
12
12
  readonly fitParent: i0.InputSignal<boolean>;
13
- color: AXStyleColorType;
14
- look: AXStyleLookType;
13
+ colorChange: EventEmitter<AXStyleColorType>;
14
+ private _color;
15
+ get color(): AXStyleColorType;
16
+ set color(v: AXStyleColorType);
17
+ lookChange: EventEmitter<AXStyleLookType>;
18
+ private _look;
19
+ get look(): AXStyleLookType;
20
+ set look(v: AXStyleLookType);
15
21
  readonly customClass: i0.InputSignal<string>;
16
22
  /**
17
23
  * Fires when any button in the group is clicked.
@@ -83,7 +89,7 @@ declare class AXButtonGroupComponent extends MXInteractiveComponent {
83
89
  */
84
90
  __hostClick(e: MouseEvent): void;
85
91
  static ɵfac: i0.ɵɵFactoryDeclaration<AXButtonGroupComponent, never>;
86
- static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupComponent, "ax-button-group", never, { "disabled": { "alias": "disabled"; "required": false; }; "fitParent": { "alias": "fitParent"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "lookChange": "lookChange"; "colorChange": "colorChange"; "disabledChange": "disabledChange"; "onClick": "onClick"; "selectionChange": "selectionChange"; "selectedButtonChange": "selectedButtonChange"; }, ["_contentButtons"], ["ax-button-group-item"], true, never>;
92
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupComponent, "ax-button-group", never, { "disabled": { "alias": "disabled"; "required": false; }; "fitParent": { "alias": "fitParent"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "disabledChange": "disabledChange"; "colorChange": "colorChange"; "lookChange": "lookChange"; "onClick": "onClick"; "selectionChange": "selectionChange"; "selectedButtonChange": "selectedButtonChange"; }, ["_contentButtons"], ["ax-button-group-item"], true, never>;
87
93
  }
88
94
 
89
95
  interface AXButtonItemListItem {
@@ -96,6 +96,7 @@ declare class AXColorPaletteInputComponent extends MXBaseComponent implements Af
96
96
  */
97
97
  declare class AXColorPalettePickerComponent extends MXBaseComponent implements OnDestroy {
98
98
  protected _parent: AXColorPaletteParentComponent;
99
+ private platformId;
99
100
  private _unsubscriber;
100
101
  private colorService;
101
102
  private render;
@@ -168,6 +169,7 @@ declare class AXColorPalettePickerComponent extends MXBaseComponent implements O
168
169
  * @ignore
169
170
  */
170
171
  protected _handleGradientChanged(e: any): void;
172
+ private getParentRect;
171
173
  /**
172
174
  * @ignore
173
175
  */
@@ -45,6 +45,8 @@ type AXLineClickEvent = {
45
45
  declare class AXFlowChartService {
46
46
  #private;
47
47
  private zone;
48
+ private platformId;
49
+ private document;
48
50
  initialFlowChartEdge: _angular_core.WritableSignal<any[]>;
49
51
  initialFlowChartNode: _angular_core.WritableSignal<any[]>;
50
52
  selectedNode: _angular_core.WritableSignal<AXFlowChartNodes>;
@@ -113,6 +115,8 @@ declare class AXFlowChartRendererComponent extends NXComponent implements OnDest
113
115
  private canvas;
114
116
  private svg;
115
117
  private service;
118
+ private document;
119
+ private platformId;
116
120
  readonly onLineClick: _angular_core.OutputEmitterRef<AXLineClickEvent>;
117
121
  readonly onLineDbClick: _angular_core.OutputEmitterRef<AXLineClickEvent>;
118
122
  readonly onNodeClick: _angular_core.OutputEmitterRef<AXNodeClickEvent>;
@@ -29,11 +29,20 @@ declare class AXNumberBoxComponent extends AXNumberBoxComponent_base {
29
29
  protected mode: _angular_core.WritableSignal<"digits" | "thousandsSeparator" | "decimal">;
30
30
  private input;
31
31
  protected stringValue: _angular_core.WritableSignal<string>;
32
+ private translationService;
33
+ protected validateFn: (val: number) => Promise<{
34
+ result: boolean;
35
+ message: string;
36
+ } | {
37
+ result: boolean;
38
+ message?: undefined;
39
+ }>;
32
40
  protected internalValueChanged(value: number | undefined): void;
33
41
  private plusValue;
34
42
  private minusValue;
35
43
  private getNumericValue;
36
44
  private getSteppedValue;
45
+ private clampToRange;
37
46
  private getFractionDigits;
38
47
  protected handleOnKeydownEvent(e: KeyboardEvent): void;
39
48
  protected handleUpClick(): void;
@@ -7,6 +7,7 @@ type AXQrcodeLevel = 'L' | 'M' | 'Q' | 'H';
7
7
  declare function debounce(func: (...args: any) => void, delayMS: number): (...args: any[]) => void;
8
8
 
9
9
  declare class AXQrcodeComponent implements AfterViewInit {
10
+ private platformId;
10
11
  /**
11
12
  * @description Value of QR code
12
13
  */
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';
3
2
  import * as i1 from '@acorex/components/button-group';
4
3
  import { AXButtonGroupItemComponent } from '@acorex/components/button-group';
4
+ import { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';
5
5
  import * as i3 from '@acorex/components/select-box';
6
6
  import { AXSelectBoxComponent } from '@acorex/components/select-box';
7
7
  import * as i2 from '@acorex/components/decorators';