ngx-tethys 19.1.13 → 19.1.15-0

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.
@@ -52,6 +52,10 @@ class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
52
52
  * 每次改变步数,可以为小数
53
53
  */
54
54
  this.thyStep = input(1, { transform: numberAttribute });
55
+ /**
56
+ * 是否展示步数切换按钮
57
+ */
58
+ this.thyShowStepControls = input(true, { transform: coerceBooleanProperty });
55
59
  /**
56
60
  * 改变步数时的延迟毫秒数,值越小变化的速度越快
57
61
  * @default 300
@@ -324,13 +328,13 @@ class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
324
328
  this.hostFocusControl.destroy();
325
329
  }
326
330
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyInputNumber, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
327
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.8", type: ThyInputNumber, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: { classPropertyName: "thyAutoFocus", publicName: "thyAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, thyPlaceholder: { classPropertyName: "thyPlaceholder", publicName: "thyPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: false, isRequired: false, transformFunction: coerceBooleanProperty }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyMin: { classPropertyName: "thyMin", publicName: "thyMin", isSignal: true, isRequired: false, transformFunction: null }, thyStep: { classPropertyName: "thyStep", publicName: "thyStep", isSignal: true, isRequired: false, transformFunction: null }, thyStepDelay: { classPropertyName: "thyStepDelay", publicName: "thyStepDelay", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyPrecision: { classPropertyName: "thyPrecision", publicName: "thyPrecision", isSignal: true, isRequired: false, transformFunction: null }, thySuffix: { classPropertyName: "thySuffix", publicName: "thySuffix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus", thyStepChange: "thyStepChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
331
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyInputNumber, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: { classPropertyName: "thyAutoFocus", publicName: "thyAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, thyPlaceholder: { classPropertyName: "thyPlaceholder", publicName: "thyPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: false, isRequired: false, transformFunction: coerceBooleanProperty }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyMin: { classPropertyName: "thyMin", publicName: "thyMin", isSignal: true, isRequired: false, transformFunction: null }, thyStep: { classPropertyName: "thyStep", publicName: "thyStep", isSignal: true, isRequired: false, transformFunction: null }, thyShowStepControls: { classPropertyName: "thyShowStepControls", publicName: "thyShowStepControls", isSignal: true, isRequired: false, transformFunction: null }, thyStepDelay: { classPropertyName: "thyStepDelay", publicName: "thyStepDelay", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyPrecision: { classPropertyName: "thyPrecision", publicName: "thyPrecision", isSignal: true, isRequired: false, transformFunction: null }, thySuffix: { classPropertyName: "thySuffix", publicName: "thySuffix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus", thyStepChange: "thyStepChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
328
332
  {
329
333
  provide: NG_VALUE_ACCESSOR,
330
334
  useExisting: forwardRef(() => ThyInputNumber),
331
335
  multi: true
332
336
  }
333
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[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"] }] }); }
337
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (thyShowStepControls()) {\n <div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n </div>\n}\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[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"] }] }); }
334
338
  }
335
339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyInputNumber, decorators: [{
336
340
  type: Component,
@@ -343,7 +347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
343
347
  ], imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule], host: {
344
348
  class: 'thy-input-number',
345
349
  '[attr.tabindex]': 'tabIndex'
346
- }, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n" }]
350
+ }, template: "@if (thyShowStepControls()) {\n <div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n </div>\n}\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n" }]
347
351
  }], ctorParameters: () => [], propDecorators: { thyDisabled: [{
348
352
  type: Input,
349
353
  args: [{ transform: coerceBooleanProperty }]
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-input-number.mjs","sources":["../../../src/input-number/input-number.component.ts","../../../src/input-number/input-number.component.html","../../../src/input-number/module.ts","../../../src/input-number/ngx-tethys-input-number.ts"],"sourcesContent":["import { TabIndexDisabledControlValueAccessorMixin, useHostFocusControl } from 'ngx-tethys/core';\nimport { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport {\n Component,\n ElementRef,\n forwardRef,\n Input,\n numberAttribute,\n OnDestroy,\n OnInit,\n input,\n effect,\n signal,\n output,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nenum Type {\n up,\n down\n}\n\n/**\n * 数字输入框\n * @name thy-input-number\n * @order 10\n */\n@Component({\n selector: 'thy-input-number',\n templateUrl: './input-number.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInputNumber),\n multi: true\n }\n ],\n imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule],\n host: {\n class: 'thy-input-number',\n '[attr.tabindex]': 'tabIndex'\n }\n})\nexport class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin implements ControlValueAccessor, OnInit, OnDestroy {\n readonly inputElement = viewChild<ElementRef<any>>('input');\n\n private autoStepTimer: any;\n\n private hostFocusControl = useHostFocusControl();\n\n validValue: number | string;\n\n displayValue = signal<number | string>(undefined);\n\n disabledUp = signal(false);\n\n disabledDown = signal(false);\n\n activeValue: string = '';\n\n /**\n * 是否自动聚焦\n * @default false\n */\n readonly thyAutoFocus = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 输入框的placeholder\n */\n readonly thyPlaceholder = input<string>('');\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled: boolean;\n\n /**\n * 最大值\n * @default Infinity\n */\n readonly thyMax = input(Infinity, { transform: (value: number) => (isNumber(value) ? value : Infinity) });\n\n /**\n * 最小值\n * @default -Infinity\n */\n readonly thyMin = input(-Infinity, { transform: (value: number) => (isNumber(value) ? value : -Infinity) });\n\n /**\n * 每次改变步数,可以为小数\n */\n readonly thyStep = input(1, { transform: numberAttribute });\n\n /**\n * 改变步数时的延迟毫秒数,值越小变化的速度越快\n * @default 300\n */\n readonly thyStepDelay = input(300, { transform: numberAttribute });\n\n /**\n * 输入框大小\n * @type xs | sm | md | lg\n */\n readonly thySize = input<InputSize>();\n\n /**\n * 数值精度\n */\n readonly thyPrecision = input<number>();\n\n /**\n * 数值后缀\n */\n readonly thySuffix = input<string>();\n\n /**\n * 焦点失去事件\n */\n readonly thyBlur = output();\n\n /**\n * 焦点激活事件\n */\n readonly thyFocus = output<Event>();\n\n /**\n * 上下箭头点击事件\n */\n readonly thyStepChange = output<{ value: number; type: Type }>();\n\n private isFocused: boolean;\n\n constructor() {\n super();\n\n effect(() => {\n const displayValue = this.displayValue();\n const max = this.thyMax();\n if (displayValue || displayValue === 0) {\n const val = Number(displayValue);\n this.disabledUp.set(val >= max);\n }\n });\n\n effect(() => {\n const min = this.thyMin();\n const displayValue = this.displayValue();\n if (displayValue || displayValue === 0) {\n const val = Number(displayValue);\n this.disabledDown.set(val <= min);\n }\n });\n\n effect(() => {\n const suffix = this.thySuffix();\n const validValue = this.getCurrentValidValue(this.validValue);\n this.updateValidValue(validValue);\n this.displayValue.set(this.formatterValue(validValue));\n });\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.thyDisabled = isDisabled;\n }\n\n ngOnInit() {\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (this.thyDisabled) {\n return;\n }\n\n if (origin) {\n if (!this.isFocused) {\n this.inputElement().nativeElement.focus();\n }\n } else {\n if (this.isFocused) {\n this.displayValue.set(this.formatterValue(this.validValue));\n this.onTouchedFn();\n this.thyBlur.emit();\n this.isFocused = false;\n }\n }\n };\n }\n\n writeValue(value: number | string): void {\n const _value = this.getCurrentValidValue(value);\n this.updateValidValue(_value);\n this.displayValue.set(this.formatterValue(_value));\n }\n\n updateValidValue(value: number | string): void {\n if (this.isNotValid(value)) {\n this.validValue = '';\n } else if (this.validValue !== value) {\n this.validValue = value;\n }\n this.disabledUp.set(false);\n this.disabledDown.set(false);\n if (value || value === 0) {\n const val = Number(value);\n if (val >= this.thyMax()) {\n this.disabledUp.set(true);\n }\n if (val <= this.thyMin()) {\n this.disabledDown.set(true);\n }\n }\n }\n\n onModelChange(value: string): void {\n const parseValue = this.parser(value);\n if (this.isInputNumber(value)) {\n this.activeValue = value;\n } else {\n this.displayValue.set(parseValue);\n this.inputElement().nativeElement.value = parseValue;\n }\n const validValue = this.getCurrentValidValue(parseValue);\n if (`${this.validValue}` !== `${validValue}`) {\n this.updateValidValue(validValue);\n this.onChangeFn(validValue);\n }\n }\n\n onInputFocus(event?: Event) {\n this.activeValue = this.parser(this.displayValue().toString());\n if (!this.isFocused) {\n this.isFocused = true;\n this.thyFocus.emit(event);\n }\n }\n\n onKeyDown(e: KeyboardEvent): void {\n if (e.keyCode === UP_ARROW) {\n this.up(e);\n this.stop();\n } else if (e.keyCode === DOWN_ARROW) {\n this.down(e);\n this.stop();\n } else if (e.keyCode === ENTER) {\n this.displayValue.set(this.formatterValue(this.validValue));\n }\n }\n\n stop() {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n this.displayValue.set(this.toNumber(this.displayValue()));\n }\n\n step(type: Type, e: MouseEvent | KeyboardEvent): void {\n this.stop();\n e.preventDefault();\n if (this.thyDisabled) {\n return;\n }\n const value = this.validValue as number;\n let val;\n if (type === Type.up) {\n val = this.upStep(value);\n } else if (type === Type.down) {\n val = this.downStep(value);\n }\n const outOfRange = val > this.thyMax() || val < this.thyMin();\n val = this.getCurrentValidValue(val);\n this.updateValidValue(val);\n this.onChangeFn(this.validValue);\n this.thyStepChange.emit({ value: this.validValue as number, type });\n this.displayValue.set(this.formatterValue(val));\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(() => {\n (this[Type[type] as keyof typeof Type] as (e: MouseEvent | KeyboardEvent) => void)(e);\n }, this.thyStepDelay());\n }\n\n upStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = this.getMaxPrecision(value);\n const result = ((precisionFactor * value + precisionFactor * this.thyStep()) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n downStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = Math.abs(this.getMaxPrecision(value));\n const result = ((precisionFactor * value - precisionFactor * this.thyStep()) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n getMaxPrecision(value: string | number): number {\n const precision = this.thyPrecision();\n if (!isUndefinedOrNull(precision)) {\n return precision;\n }\n const stepPrecision = this.getPrecision(this.thyStep());\n const currentValuePrecision = this.getPrecision(value as number);\n if (!value) {\n return stepPrecision;\n }\n return Math.max(currentValuePrecision, stepPrecision);\n }\n\n getPrecisionFactor(activeValue: string | number): number {\n const precision = this.getMaxPrecision(activeValue);\n return Math.pow(10, precision);\n }\n\n getPrecision(value: number): number {\n const valueString = value.toString();\n // 0.0000000004.toString() = 4e10 => 10\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n let precision = 0;\n // 1.2222 => 4\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n }\n\n up(e: MouseEvent | KeyboardEvent) {\n this.inputElement().nativeElement.focus();\n this.step(Type.up, e);\n }\n\n down(e: MouseEvent | KeyboardEvent) {\n this.inputElement().nativeElement.focus();\n this.step(Type.down, e);\n }\n\n formatterValue(value: number | string) {\n const parseValue = this.parser(`${value}`);\n if (parseValue) {\n const suffix = this.thySuffix();\n return suffix ? `${parseValue} ${suffix}` : parseValue;\n } else {\n return '';\n }\n }\n\n parser(value: string) {\n return value\n .trim()\n .replace(/。/g, '.')\n .replace(/[^\\w\\.-]+/g, '')\n .replace(this.thySuffix(), '');\n }\n\n getCurrentValidValue(value: string | number): number | string {\n let val = value;\n if (value === '' || isUndefinedOrNull(value)) {\n return '';\n }\n val = parseFloat(value as string);\n if (this.isNotValid(val)) {\n val = this.validValue;\n }\n if ((val as number) < this.thyMin()) {\n val = this.thyMin();\n }\n if ((val as number) > this.thyMax()) {\n val = this.thyMax();\n }\n\n return this.toNumber(val);\n }\n\n isNotValid(num: string | number): boolean {\n return isNaN(num as number) || num === '' || num === null || !!(num && num.toString().indexOf('.') === num.toString().length - 1);\n }\n\n toNumber(num: string | number): number {\n if (this.isNotValid(num)) {\n return num as number;\n }\n const numStr = String(num);\n const precision = this.thyPrecision();\n if (numStr.indexOf('.') >= 0 && !isUndefinedOrNull(precision)) {\n return Number(Number(num).toFixed(precision));\n }\n return Number(num);\n }\n\n isInputNumber(value: string) {\n return isFloat(value) || /^[-+Ee]$|^([-+.]?[0-9])*(([.]|[.eE])?[eE]?[+-]?)?$|^$/.test(value);\n }\n\n ngOnDestroy() {\n this.hostFocusControl.destroy();\n }\n}\n","<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputNumber } from './input-number.component';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyFormModule } from 'ngx-tethys/form';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyInputModule, ThyFormModule, ThyInputNumber],\n exports: [ThyInputNumber]\n})\nexport class ThyInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-input-number.mjs","sources":["../../../src/input-number/input-number.component.ts","../../../src/input-number/input-number.component.html","../../../src/input-number/module.ts","../../../src/input-number/ngx-tethys-input-number.ts"],"sourcesContent":["import { TabIndexDisabledControlValueAccessorMixin, useHostFocusControl } from 'ngx-tethys/core';\nimport { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport {\n Component,\n ElementRef,\n forwardRef,\n Input,\n numberAttribute,\n OnDestroy,\n OnInit,\n input,\n effect,\n signal,\n output,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nenum Type {\n up,\n down\n}\n\n/**\n * 数字输入框\n * @name thy-input-number\n * @order 10\n */\n@Component({\n selector: 'thy-input-number',\n templateUrl: './input-number.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInputNumber),\n multi: true\n }\n ],\n imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule],\n host: {\n class: 'thy-input-number',\n '[attr.tabindex]': 'tabIndex'\n }\n})\nexport class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin implements ControlValueAccessor, OnInit, OnDestroy {\n readonly inputElement = viewChild<ElementRef<any>>('input');\n\n private autoStepTimer: any;\n\n private hostFocusControl = useHostFocusControl();\n\n validValue: number | string;\n\n displayValue = signal<number | string>(undefined);\n\n disabledUp = signal(false);\n\n disabledDown = signal(false);\n\n activeValue: string = '';\n\n /**\n * 是否自动聚焦\n * @default false\n */\n readonly thyAutoFocus = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 输入框的placeholder\n */\n readonly thyPlaceholder = input<string>('');\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled: boolean;\n\n /**\n * 最大值\n * @default Infinity\n */\n readonly thyMax = input(Infinity, { transform: (value: number) => (isNumber(value) ? value : Infinity) });\n\n /**\n * 最小值\n * @default -Infinity\n */\n readonly thyMin = input(-Infinity, { transform: (value: number) => (isNumber(value) ? value : -Infinity) });\n\n /**\n * 每次改变步数,可以为小数\n */\n readonly thyStep = input(1, { transform: numberAttribute });\n\n /**\n * 是否展示步数切换按钮\n */\n readonly thyShowStepControls = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 改变步数时的延迟毫秒数,值越小变化的速度越快\n * @default 300\n */\n readonly thyStepDelay = input(300, { transform: numberAttribute });\n\n /**\n * 输入框大小\n * @type xs | sm | md | lg\n */\n readonly thySize = input<InputSize>();\n\n /**\n * 数值精度\n */\n readonly thyPrecision = input<number>();\n\n /**\n * 数值后缀\n */\n readonly thySuffix = input<string>();\n\n /**\n * 焦点失去事件\n */\n readonly thyBlur = output();\n\n /**\n * 焦点激活事件\n */\n readonly thyFocus = output<Event>();\n\n /**\n * 上下箭头点击事件\n */\n readonly thyStepChange = output<{ value: number; type: Type }>();\n\n private isFocused: boolean;\n\n constructor() {\n super();\n\n effect(() => {\n const displayValue = this.displayValue();\n const max = this.thyMax();\n if (displayValue || displayValue === 0) {\n const val = Number(displayValue);\n this.disabledUp.set(val >= max);\n }\n });\n\n effect(() => {\n const min = this.thyMin();\n const displayValue = this.displayValue();\n if (displayValue || displayValue === 0) {\n const val = Number(displayValue);\n this.disabledDown.set(val <= min);\n }\n });\n\n effect(() => {\n const suffix = this.thySuffix();\n const validValue = this.getCurrentValidValue(this.validValue);\n this.updateValidValue(validValue);\n this.displayValue.set(this.formatterValue(validValue));\n });\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.thyDisabled = isDisabled;\n }\n\n ngOnInit() {\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (this.thyDisabled) {\n return;\n }\n\n if (origin) {\n if (!this.isFocused) {\n this.inputElement().nativeElement.focus();\n }\n } else {\n if (this.isFocused) {\n this.displayValue.set(this.formatterValue(this.validValue));\n this.onTouchedFn();\n this.thyBlur.emit();\n this.isFocused = false;\n }\n }\n };\n }\n\n writeValue(value: number | string): void {\n const _value = this.getCurrentValidValue(value);\n this.updateValidValue(_value);\n this.displayValue.set(this.formatterValue(_value));\n }\n\n updateValidValue(value: number | string): void {\n if (this.isNotValid(value)) {\n this.validValue = '';\n } else if (this.validValue !== value) {\n this.validValue = value;\n }\n this.disabledUp.set(false);\n this.disabledDown.set(false);\n if (value || value === 0) {\n const val = Number(value);\n if (val >= this.thyMax()) {\n this.disabledUp.set(true);\n }\n if (val <= this.thyMin()) {\n this.disabledDown.set(true);\n }\n }\n }\n\n onModelChange(value: string): void {\n const parseValue = this.parser(value);\n if (this.isInputNumber(value)) {\n this.activeValue = value;\n } else {\n this.displayValue.set(parseValue);\n this.inputElement().nativeElement.value = parseValue;\n }\n const validValue = this.getCurrentValidValue(parseValue);\n if (`${this.validValue}` !== `${validValue}`) {\n this.updateValidValue(validValue);\n this.onChangeFn(validValue);\n }\n }\n\n onInputFocus(event?: Event) {\n this.activeValue = this.parser(this.displayValue().toString());\n if (!this.isFocused) {\n this.isFocused = true;\n this.thyFocus.emit(event);\n }\n }\n\n onKeyDown(e: KeyboardEvent): void {\n if (e.keyCode === UP_ARROW) {\n this.up(e);\n this.stop();\n } else if (e.keyCode === DOWN_ARROW) {\n this.down(e);\n this.stop();\n } else if (e.keyCode === ENTER) {\n this.displayValue.set(this.formatterValue(this.validValue));\n }\n }\n\n stop() {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n this.displayValue.set(this.toNumber(this.displayValue()));\n }\n\n step(type: Type, e: MouseEvent | KeyboardEvent): void {\n this.stop();\n e.preventDefault();\n if (this.thyDisabled) {\n return;\n }\n const value = this.validValue as number;\n let val;\n if (type === Type.up) {\n val = this.upStep(value);\n } else if (type === Type.down) {\n val = this.downStep(value);\n }\n const outOfRange = val > this.thyMax() || val < this.thyMin();\n val = this.getCurrentValidValue(val);\n this.updateValidValue(val);\n this.onChangeFn(this.validValue);\n this.thyStepChange.emit({ value: this.validValue as number, type });\n this.displayValue.set(this.formatterValue(val));\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(() => {\n (this[Type[type] as keyof typeof Type] as (e: MouseEvent | KeyboardEvent) => void)(e);\n }, this.thyStepDelay());\n }\n\n upStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = this.getMaxPrecision(value);\n const result = ((precisionFactor * value + precisionFactor * this.thyStep()) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n downStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = Math.abs(this.getMaxPrecision(value));\n const result = ((precisionFactor * value - precisionFactor * this.thyStep()) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n getMaxPrecision(value: string | number): number {\n const precision = this.thyPrecision();\n if (!isUndefinedOrNull(precision)) {\n return precision;\n }\n const stepPrecision = this.getPrecision(this.thyStep());\n const currentValuePrecision = this.getPrecision(value as number);\n if (!value) {\n return stepPrecision;\n }\n return Math.max(currentValuePrecision, stepPrecision);\n }\n\n getPrecisionFactor(activeValue: string | number): number {\n const precision = this.getMaxPrecision(activeValue);\n return Math.pow(10, precision);\n }\n\n getPrecision(value: number): number {\n const valueString = value.toString();\n // 0.0000000004.toString() = 4e10 => 10\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n let precision = 0;\n // 1.2222 => 4\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n }\n\n up(e: MouseEvent | KeyboardEvent) {\n this.inputElement().nativeElement.focus();\n this.step(Type.up, e);\n }\n\n down(e: MouseEvent | KeyboardEvent) {\n this.inputElement().nativeElement.focus();\n this.step(Type.down, e);\n }\n\n formatterValue(value: number | string) {\n const parseValue = this.parser(`${value}`);\n if (parseValue) {\n const suffix = this.thySuffix();\n return suffix ? `${parseValue} ${suffix}` : parseValue;\n } else {\n return '';\n }\n }\n\n parser(value: string) {\n return value\n .trim()\n .replace(/。/g, '.')\n .replace(/[^\\w\\.-]+/g, '')\n .replace(this.thySuffix(), '');\n }\n\n getCurrentValidValue(value: string | number): number | string {\n let val = value;\n if (value === '' || isUndefinedOrNull(value)) {\n return '';\n }\n val = parseFloat(value as string);\n if (this.isNotValid(val)) {\n val = this.validValue;\n }\n if ((val as number) < this.thyMin()) {\n val = this.thyMin();\n }\n if ((val as number) > this.thyMax()) {\n val = this.thyMax();\n }\n\n return this.toNumber(val);\n }\n\n isNotValid(num: string | number): boolean {\n return isNaN(num as number) || num === '' || num === null || !!(num && num.toString().indexOf('.') === num.toString().length - 1);\n }\n\n toNumber(num: string | number): number {\n if (this.isNotValid(num)) {\n return num as number;\n }\n const numStr = String(num);\n const precision = this.thyPrecision();\n if (numStr.indexOf('.') >= 0 && !isUndefinedOrNull(precision)) {\n return Number(Number(num).toFixed(precision));\n }\n return Number(num);\n }\n\n isInputNumber(value: string) {\n return isFloat(value) || /^[-+Ee]$|^([-+.]?[0-9])*(([.]|[.eE])?[eE]?[+-]?)?$|^$/.test(value);\n }\n\n ngOnDestroy() {\n this.hostFocusControl.destroy();\n }\n}\n","@if (thyShowStepControls()) {\n <div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n </div>\n}\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputNumber } from './input-number.component';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyFormModule } from 'ngx-tethys/form';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyInputModule, ThyFormModule, ThyInputNumber],\n exports: [ThyInputNumber]\n})\nexport class ThyInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AA0BA,IAAK,IAGJ;AAHD,CAAA,UAAK,IAAI,EAAA;AACL,IAAA,IAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE;AACF,IAAA,IAAA,CAAA,IAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACR,CAAC,EAHI,IAAI,KAAJ,IAAI,GAGR,EAAA,CAAA,CAAA;AAED;;;;AAIG;AAiBG,MAAO,cAAe,SAAQ,yCAAyC,CAAA;AA+FzE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AA/FF,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAkB,OAAO,CAAC;QAInD,IAAgB,CAAA,gBAAA,GAAG,mBAAmB,EAAE;AAIhD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAkB,SAAS,CAAC;AAEjD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAE1B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;QAE5B,IAAW,CAAA,WAAA,GAAW,EAAE;AAExB;;;AAGG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAE1E;;AAEG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAS,EAAE,CAAC;AAQ3C;;;AAGG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,KAAa,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC;AAEzG;;;AAGG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,KAAa,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;AAE3G;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAE3D;;AAEG;QACM,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAEhF;;;AAGG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAElE;;;AAGG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,EAAa;AAErC;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,EAAU;AAEvC;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,EAAU;AAEpC;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,MAAM,EAAE;AAE3B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAS;AAEnC;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,MAAM,EAAiC;QAO5D,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AACxC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,IAAI,YAAY,IAAI,YAAY,KAAK,CAAC,EAAE;AACpC,gBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;gBAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;;AAEvC,SAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AACxC,YAAA,IAAI,YAAY,IAAI,YAAY,KAAK,CAAC,EAAE;AACpC,gBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;;AAEzC,SAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAC1D,SAAC,CAAC;;AAGN,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU;;IAGjC,QAAQ,GAAA;QACJ,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,CAAC,MAAmB,KAAI;AACzD,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB;;YAGJ,IAAI,MAAM,EAAE;AACR,gBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACjB,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;;;iBAE1C;AACH,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC3D,IAAI,CAAC,WAAW,EAAE;AAClB,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACnB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;;AAGlC,SAAC;;AAGL,IAAA,UAAU,CAAC,KAAsB,EAAA;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;AAGtD,IAAA,gBAAgB,CAAC,KAAsB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AACjB,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;AAClC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;AAE3B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACtB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;;AAE7B,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;;;;AAKvC,IAAA,aAAa,CAAC,KAAa,EAAA;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;aACrB;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,UAAU;;QAExD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;QACxD,IAAI,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,CAAE,KAAK,CAAG,EAAA,UAAU,CAAE,CAAA,EAAE;AAC1C,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;;;AAInC,IAAA,YAAY,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAIjC,IAAA,SAAS,CAAC,CAAgB,EAAA;AACtB,QAAA,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;AACxB,YAAA,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACV,IAAI,CAAC,IAAI,EAAE;;AACR,aAAA,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE;;AACR,aAAA,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;IAInE,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;;AAEpC,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;;IAG7D,IAAI,CAAC,IAAU,EAAE,CAA6B,EAAA;QAC1C,IAAI,CAAC,IAAI,EAAE;QACX,CAAC,CAAC,cAAc,EAAE;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB;;AAEJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAoB;AACvC,QAAA,IAAI,GAAG;AACP,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE;AAClB,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AACrB,aAAA,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAE9B,QAAA,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AAC7D,QAAA,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;AACpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAoB,EAAE,IAAI,EAAE,CAAC;AACnE,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,UAAU,EAAE;YACZ;;AAEJ,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,CAA6C,CAAC,CAAC,CAAC;AACzF,SAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;;AAG3B,IAAA,MAAM,CAAC,KAAa,EAAA;QAChB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,eAAe,GAAG,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC;AAClH,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;;AAGhC,IAAA,QAAQ,CAAC,KAAa,EAAA;QAClB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AACtD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,CAAC,CAAC,eAAe,GAAG,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC;AAClH,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;;AAGhC,IAAA,eAAe,CAAC,KAAsB,EAAA;AAClC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,OAAO,SAAS;;QAEpB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAe,CAAC;QAChE,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,aAAa;;QAExB,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,aAAa,CAAC;;AAGzD,IAAA,kBAAkB,CAAC,WAA4B,EAAA;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;;AAGlC,IAAA,YAAY,CAAC,KAAa,EAAA;AACtB,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE;;QAEpC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAChC,YAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;;QAEzE,IAAI,SAAS,GAAG,CAAC;;QAEjB,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC/B,YAAA,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;;AAEjE,QAAA,OAAO,SAAS;;AAGpB,IAAA,EAAE,CAAC,CAA6B,EAAA;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;;AAGzB,IAAA,IAAI,CAAC,CAA6B,EAAA;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;AAG3B,IAAA,cAAc,CAAC,KAAsB,EAAA;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAG,EAAA,KAAK,CAAE,CAAA,CAAC;QAC1C,IAAI,UAAU,EAAE;AACZ,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/B,YAAA,OAAO,MAAM,GAAG,CAAG,EAAA,UAAU,CAAI,CAAA,EAAA,MAAM,CAAE,CAAA,GAAG,UAAU;;aACnD;AACH,YAAA,OAAO,EAAE;;;AAIjB,IAAA,MAAM,CAAC,KAAa,EAAA;AAChB,QAAA,OAAO;AACF,aAAA,IAAI;AACJ,aAAA,OAAO,CAAC,IAAI,EAAE,GAAG;AACjB,aAAA,OAAO,CAAC,YAAY,EAAE,EAAE;aACxB,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;;AAGtC,IAAA,oBAAoB,CAAC,KAAsB,EAAA;QACvC,IAAI,GAAG,GAAG,KAAK;QACf,IAAI,KAAK,KAAK,EAAE,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;AAC1C,YAAA,OAAO,EAAE;;AAEb,QAAA,GAAG,GAAG,UAAU,CAAC,KAAe,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,GAAG,GAAG,IAAI,CAAC,UAAU;;AAEzB,QAAA,IAAK,GAAc,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;AACjC,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;;AAEvB,QAAA,IAAK,GAAc,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;AACjC,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;;AAGvB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;;AAG7B,IAAA,UAAU,CAAC,GAAoB,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC,GAAa,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;;AAGrI,IAAA,QAAQ,CAAC,GAAoB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,OAAO,GAAa;;AAExB,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;AAC3D,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;;AAEjD,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAGtB,IAAA,aAAa,CAAC,KAAa,EAAA;QACvB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,uDAAuD,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGhG,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;;8GArW1B,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAgCH,qBAAqB,EA7C9B,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC7C,gBAAA,KAAK,EAAE;AACV;SACJ,EC7CL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,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,EAAA,2vCAwCA,4CDMc,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAE,QAAA,EAAA,uDAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,iIAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,CAAA,EAAA,CAAA,CAAA;;2FAM/D,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhB1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAEjB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAC7C,4BAAA,KAAK,EAAE;AACV;qBACJ,EACQ,OAAA,EAAA,CAAC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,WAAW,CAAC,EACnE,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,kBAAkB;AACzB,wBAAA,iBAAiB,EAAE;AACtB,qBAAA,EAAA,QAAA,EAAA,2vCAAA,EAAA;wDAkC4C,WAAW,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;;;MEvElC,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,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,oBAAoB,EAHnB,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,aACxG,cAAc,CAAA,EAAA,CAAA,CAAA;AAEf,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,oBAAoB,EAHnB,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAGzG,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,CAAC;oBACnH,OAAO,EAAE,CAAC,cAAc;AAC3B,iBAAA;;;ACZD;;AAEG;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('19.1.13');
3
+ const VERSION = new Version('19.1.15-0');
4
4
 
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.1.13');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS;;ACF5C;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.1.15-0');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW;;ACF9C;;AAEG;;;;"}
@@ -50,6 +50,10 @@ export declare class ThyInputNumber extends TabIndexDisabledControlValueAccessor
50
50
  * 每次改变步数,可以为小数
51
51
  */
52
52
  readonly thyStep: import("@angular/core").InputSignalWithTransform<number, unknown>;
53
+ /**
54
+ * 是否展示步数切换按钮
55
+ */
56
+ readonly thyShowStepControls: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
53
57
  /**
54
58
  * 改变步数时的延迟毫秒数,值越小变化的速度越快
55
59
  * @default 300
@@ -109,7 +113,7 @@ export declare class ThyInputNumber extends TabIndexDisabledControlValueAccessor
109
113
  isInputNumber(value: string): boolean;
110
114
  ngOnDestroy(): void;
111
115
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyInputNumber, never>;
112
- static ɵcmp: i0.ɵɵComponentDeclaration<ThyInputNumber, "thy-input-number", never, { "thyAutoFocus": { "alias": "thyAutoFocus"; "required": false; "isSignal": true; }; "thyPlaceholder": { "alias": "thyPlaceholder"; "required": false; "isSignal": true; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; }; "thyMax": { "alias": "thyMax"; "required": false; "isSignal": true; }; "thyMin": { "alias": "thyMin"; "required": false; "isSignal": true; }; "thyStep": { "alias": "thyStep"; "required": false; "isSignal": true; }; "thyStepDelay": { "alias": "thyStepDelay"; "required": false; "isSignal": true; }; "thySize": { "alias": "thySize"; "required": false; "isSignal": true; }; "thyPrecision": { "alias": "thyPrecision"; "required": false; "isSignal": true; }; "thySuffix": { "alias": "thySuffix"; "required": false; "isSignal": true; }; }, { "thyBlur": "thyBlur"; "thyFocus": "thyFocus"; "thyStepChange": "thyStepChange"; }, never, never, true, never>;
116
+ static ɵcmp: i0.ɵɵComponentDeclaration<ThyInputNumber, "thy-input-number", never, { "thyAutoFocus": { "alias": "thyAutoFocus"; "required": false; "isSignal": true; }; "thyPlaceholder": { "alias": "thyPlaceholder"; "required": false; "isSignal": true; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; }; "thyMax": { "alias": "thyMax"; "required": false; "isSignal": true; }; "thyMin": { "alias": "thyMin"; "required": false; "isSignal": true; }; "thyStep": { "alias": "thyStep"; "required": false; "isSignal": true; }; "thyShowStepControls": { "alias": "thyShowStepControls"; "required": false; "isSignal": true; }; "thyStepDelay": { "alias": "thyStepDelay"; "required": false; "isSignal": true; }; "thySize": { "alias": "thySize"; "required": false; "isSignal": true; }; "thyPrecision": { "alias": "thyPrecision"; "required": false; "isSignal": true; }; "thySuffix": { "alias": "thySuffix"; "required": false; "isSignal": true; }; }, { "thyBlur": "thyBlur"; "thyFocus": "thyFocus"; "thyStepChange": "thyStepChange"; }, never, never, true, never>;
113
117
  static ngAcceptInputType_thyDisabled: i1.ThyBooleanInput;
114
118
  }
115
119
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-tethys",
3
- "version": "19.1.13",
3
+ "version": "19.1.15-0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/atinc/ngx-tethys.git"
@@ -50,14 +50,14 @@
50
50
  "types": "./autocomplete/index.d.ts",
51
51
  "default": "./fesm2022/ngx-tethys-autocomplete.mjs"
52
52
  },
53
- "./back-top": {
54
- "types": "./back-top/index.d.ts",
55
- "default": "./fesm2022/ngx-tethys-back-top.mjs"
56
- },
57
53
  "./avatar": {
58
54
  "types": "./avatar/index.d.ts",
59
55
  "default": "./fesm2022/ngx-tethys-avatar.mjs"
60
56
  },
57
+ "./back-top": {
58
+ "types": "./back-top/index.d.ts",
59
+ "default": "./fesm2022/ngx-tethys-back-top.mjs"
60
+ },
61
61
  "./badge": {
62
62
  "types": "./badge/index.d.ts",
63
63
  "default": "./fesm2022/ngx-tethys-badge.mjs"
@@ -1 +1 @@
1
- export declare const VERSION = "19.1.13";
1
+ export declare const VERSION = "19.1.15-0";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '19.1.13';
4
+ exports.VERSION = '19.1.15-0';