UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

1 lines 61 kB
{"version":3,"file":"ng-zorro-antd-input-number-legacy.mjs","sources":["../../components/input-number-legacy/input-number.component.ts","../../components/input-number-legacy/input-number-group-slot.component.ts","../../components/input-number-legacy/input-number-group.component.ts","../../components/input-number-legacy/input-number.module.ts","../../components/input-number-legacy/public-api.ts","../../components/input-number-legacy/ng-zorro-antd-input-number-legacy.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, ENTER, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, merge } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\nimport { NzFormItemFeedbackIconComponent, NzFormNoStatusService, NzFormStatusService } from 'ng-zorro-antd/core/form';\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport {\n NgClassInterface,\n NzSizeLDSType,\n NzStatus,\n NzValidateStatus,\n OnChangeType,\n OnTouchedType\n} from 'ng-zorro-antd/core/types';\nimport { fromEventOutsideAngular, getStatusClassNames, isNotNil } from 'ng-zorro-antd/core/util';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NZ_SPACE_COMPACT_ITEM_TYPE, NZ_SPACE_COMPACT_SIZE, NzSpaceCompactItemDirective } from 'ng-zorro-antd/space';\n\n/**\n * @deprecated Deprecated in v19.0.0. It is recommended to use the new version `<nz-input-number>`.\n */\n@Component({\n selector: 'nz-input-number',\n exportAs: 'nzInputNumber',\n template: `\n <div class=\"ant-input-number-handler-wrap\">\n <span\n #upHandler\n unselectable=\"unselectable\"\n class=\"ant-input-number-handler ant-input-number-handler-up\"\n (mousedown)=\"up($event)\"\n [class.ant-input-number-handler-up-disabled]=\"disabledUp\"\n >\n <nz-icon nzType=\"up\" class=\"ant-input-number-handler-up-inner\" />\n </span>\n <span\n #downHandler\n unselectable=\"unselectable\"\n class=\"ant-input-number-handler ant-input-number-handler-down\"\n (mousedown)=\"down($event)\"\n [class.ant-input-number-handler-down-disabled]=\"disabledDown\"\n >\n <nz-icon nzType=\"down\" class=\"ant-input-number-handler-down-inner\" />\n </span>\n </div>\n <div class=\"ant-input-number-input-wrap\">\n <input\n #inputElement\n autocomplete=\"off\"\n class=\"ant-input-number-input\"\n [attr.id]=\"nzId\"\n [attr.autofocus]=\"nzAutoFocus ? 'autofocus' : null\"\n [disabled]=\"nzDisabled\"\n [attr.min]=\"nzMin\"\n [attr.max]=\"nzMax\"\n [placeholder]=\"nzPlaceHolder\"\n [attr.step]=\"nzStep\"\n [readOnly]=\"nzReadOnly\"\n [attr.inputmode]=\"nzInputMode\"\n [ngModel]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n </div>\n @if (hasFeedback && !!status && !nzFormNoStatusService) {\n <nz-form-item-feedback-icon class=\"ant-input-number-suffix\" [status]=\"status\" />\n }\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NzInputNumberLegacyComponent),\n multi: true\n },\n { provide: NZ_SPACE_COMPACT_ITEM_TYPE, useValue: 'input-number' },\n NzDestroyService\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ant-input-number',\n '[class.ant-input-number-in-form-item]': '!!nzFormStatusService',\n '[class.ant-input-number-focused]': 'isFocused',\n '[class.ant-input-number-lg]': `finalSize() === 'large'`,\n '[class.ant-input-number-sm]': `finalSize() === 'small'`,\n '[class.ant-input-number-disabled]': 'nzDisabled',\n '[class.ant-input-number-readonly]': 'nzReadOnly',\n '[class.ant-input-number-rtl]': `dir === 'rtl'`,\n '[class.ant-input-number-borderless]': `nzBorderless`\n },\n imports: [NzIconModule, FormsModule, NzFormItemFeedbackIconComponent],\n hostDirectives: [NzSpaceCompactItemDirective]\n})\nexport class NzInputNumberLegacyComponent implements ControlValueAccessor, AfterViewInit, OnChanges, OnInit, OnDestroy {\n displayValue?: string | number;\n isFocused = false;\n disabled$ = new Subject<boolean>();\n disabledUp = false;\n disabledDown = false;\n dir: Direction = 'ltr';\n // status\n prefixCls: string = 'ant-input-number';\n status: NzValidateStatus = '';\n statusCls: NgClassInterface = {};\n hasFeedback: boolean = false;\n onChange: OnChangeType = () => {};\n onTouched: OnTouchedType = () => {};\n\n @Output() readonly nzBlur = new EventEmitter();\n @Output() readonly nzFocus = new EventEmitter();\n /** The native `<span class=\"ant-input-number-handler-up\"></span>` element. */\n @ViewChild('upHandler', { static: true }) upHandler!: ElementRef<HTMLElement>;\n /** The native `<span class=\"ant-input-number-handler-down\"></span>` element. */\n @ViewChild('downHandler', { static: true }) downHandler!: ElementRef<HTMLElement>;\n /** The native `<input class=\"ant-input-number-input\" />` element. */\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef<HTMLInputElement>;\n @Input() nzSize: NzSizeLDSType = 'default';\n @Input({ transform: numberAttribute }) nzMin: number = -Infinity;\n @Input({ transform: numberAttribute }) nzMax: number = Infinity;\n @Input() nzParser = (value: string): string =>\n value\n .trim()\n .replace(/。/g, '.')\n .replace(/[^\\w.-]+/g, '');\n @Input() nzPrecision?: number;\n @Input() nzPrecisionMode: 'cut' | 'toFixed' | ((value: number | string, precision?: number) => number) = 'toFixed';\n @Input() nzPlaceHolder = '';\n @Input() nzStatus: NzStatus = '';\n @Input({ transform: numberAttribute }) nzStep = 1;\n @Input() nzInputMode: string = 'decimal';\n @Input() nzId: string | null = null;\n @Input({ transform: booleanAttribute }) nzDisabled = false;\n @Input({ transform: booleanAttribute }) nzReadOnly = false;\n @Input({ transform: booleanAttribute }) nzAutoFocus = false;\n @Input({ transform: booleanAttribute }) nzBorderless: boolean = false;\n @Input() nzFormatter: (value: number) => string | number = value => value;\n\n protected finalSize = computed(() => {\n if (this.compactSize) {\n return this.compactSize();\n }\n return this.size();\n });\n\n private size = signal<NzSizeLDSType>(this.nzSize);\n private compactSize = inject(NZ_SPACE_COMPACT_SIZE, { optional: true });\n private autoStepTimer?: ReturnType<typeof setTimeout>;\n private parsedValue?: string | number;\n private value?: number;\n private isNzDisableFirstChange: boolean = true;\n\n onModelChange(value: string): void {\n this.parsedValue = this.nzParser(value);\n this.inputElement.nativeElement.value = `${this.parsedValue}`;\n const validValue = this.getCurrentValidValue(this.parsedValue);\n this.setValue(validValue);\n }\n\n getCurrentValidValue(value: string | number): number {\n let val = value;\n if (val === '') {\n val = '';\n } else if (!this.isNotCompleteNumber(val)) {\n val = `${this.getValidValue(val)}`;\n } else {\n val = this.value!;\n }\n return this.toNumber(val);\n }\n\n // '1.' '1x' 'xx' '' => are not complete numbers\n isNotCompleteNumber(num: string | number): boolean {\n return (\n isNaN(num as number) ||\n num === '' ||\n num === null ||\n !!(num && num.toString().indexOf('.') === num.toString().length - 1)\n );\n }\n\n getValidValue(value?: string | number): string | number | undefined {\n let val = parseFloat(value as string);\n // https://github.com/ant-design/ant-design/issues/7358\n if (isNaN(val)) {\n return value;\n }\n if (val < this.nzMin) {\n val = this.nzMin;\n }\n if (val > this.nzMax) {\n val = this.nzMax;\n }\n return val;\n }\n\n toNumber(num: string | number): number {\n if (this.isNotCompleteNumber(num)) {\n return num as number;\n }\n const numStr = String(num);\n if (numStr.indexOf('.') >= 0 && isNotNil(this.nzPrecision)) {\n if (typeof this.nzPrecisionMode === 'function') {\n return this.nzPrecisionMode(num, this.nzPrecision);\n } else if (this.nzPrecisionMode === 'cut') {\n const numSplit = numStr.split('.');\n numSplit[1] = numSplit[1].slice(0, this.nzPrecision);\n return Number(numSplit.join('.'));\n }\n return Number(Number(num).toFixed(this.nzPrecision));\n }\n return Number(num);\n }\n\n getRatio(e: KeyboardEvent): number {\n let ratio = 1;\n if (e.metaKey || e.ctrlKey) {\n ratio = 0.1;\n } else if (e.shiftKey) {\n ratio = 10;\n }\n return ratio;\n }\n\n down(e: MouseEvent | KeyboardEvent, ratio?: number): void {\n if (!this.isFocused) {\n this.focus();\n }\n this.step('down', e, ratio);\n }\n\n up(e: MouseEvent | KeyboardEvent, ratio?: number): void {\n if (!this.isFocused) {\n this.focus();\n }\n this.step('up', e, ratio);\n }\n\n getPrecision(value: number): number {\n const valueString = value.toString();\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n let precision = 0;\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n }\n\n // step={1.0} value={1.51}\n // press +\n // then value should be 2.51, rather than 2.5\n // if this.props.precision is undefined\n // https://github.com/react-component/input-number/issues/39\n getMaxPrecision(currentValue: string | number, ratio: number): number {\n if (isNotNil(this.nzPrecision)) {\n return this.nzPrecision;\n }\n const ratioPrecision = this.getPrecision(ratio);\n const stepPrecision = this.getPrecision(this.nzStep);\n const currentValuePrecision = this.getPrecision(currentValue as number);\n if (!currentValue) {\n return ratioPrecision + stepPrecision;\n }\n return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);\n }\n\n getPrecisionFactor(currentValue: string | number, ratio: number): number {\n const precision = this.getMaxPrecision(currentValue, ratio);\n return Math.pow(10, precision);\n }\n\n upStep(val: string | number, rat: number): number {\n const precisionFactor = this.getPrecisionFactor(val, rat);\n const precision = Math.abs(this.getMaxPrecision(val, rat));\n let result;\n if (typeof val === 'number') {\n result = ((precisionFactor * val + precisionFactor * this.nzStep * rat) / precisionFactor).toFixed(precision);\n } else {\n result = this.nzMin === -Infinity ? this.nzStep : this.nzMin;\n }\n return this.toNumber(result);\n }\n\n downStep(val: string | number, rat: number): number {\n const precisionFactor = this.getPrecisionFactor(val, rat);\n const precision = Math.abs(this.getMaxPrecision(val, rat));\n let result;\n if (typeof val === 'number') {\n result = ((precisionFactor * val - precisionFactor * this.nzStep * rat) / precisionFactor).toFixed(precision);\n } else {\n result = this.nzMin === -Infinity ? -this.nzStep : this.nzMin;\n }\n return this.toNumber(result);\n }\n\n step<T extends keyof NzInputNumberLegacyComponent>(type: T, e: MouseEvent | KeyboardEvent, ratio: number = 1): void {\n this.stop();\n e.preventDefault();\n if (this.nzDisabled) {\n return;\n }\n const value = this.getCurrentValidValue(this.parsedValue!) || 0;\n let val = 0;\n if (type === 'up') {\n val = this.upStep(value, ratio);\n } else if (type === 'down') {\n val = this.downStep(value, ratio);\n }\n const outOfRange = val > this.nzMax || val < this.nzMin;\n if (val > this.nzMax) {\n val = this.nzMax;\n } else if (val < this.nzMin) {\n val = this.nzMin;\n }\n this.setValue(val);\n this.updateDisplayValue(val);\n this.isFocused = true;\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(() => {\n (this[type] as (e: MouseEvent | KeyboardEvent, ratio: number) => void)(e, ratio);\n }, 300);\n }\n\n stop(): void {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n }\n\n setValue(value: number): void {\n if (`${this.value}` !== `${value}`) {\n this.onChange(value);\n }\n this.value = value;\n this.parsedValue = value;\n this.disabledUp = this.disabledDown = false;\n if (value || value === 0) {\n const val = Number(value);\n if (val >= this.nzMax) {\n this.disabledUp = true;\n }\n if (val <= this.nzMin) {\n this.disabledDown = true;\n }\n }\n }\n\n updateDisplayValue(value: number): void {\n const displayValue = isNotNil(this.nzFormatter(value)) ? this.nzFormatter(value) : '';\n this.displayValue = displayValue;\n this.inputElement.nativeElement.value = `${displayValue}`;\n }\n\n writeValue(value: number): void {\n this.value = value;\n this.setValue(value);\n this.updateDisplayValue(value);\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: OnChangeType): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: OnTouchedType): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.nzDisabled = (this.isNzDisableFirstChange && this.nzDisabled) || disabled;\n this.isNzDisableFirstChange = false;\n this.disabled$.next(this.nzDisabled);\n this.cdr.markForCheck();\n }\n\n focus(): void {\n this.focusMonitor.focusVia(this.inputElement, 'keyboard');\n }\n\n blur(): void {\n this.inputElement.nativeElement.blur();\n }\n\n nzFormStatusService = inject(NzFormStatusService, { optional: true });\n nzFormNoStatusService = inject(NzFormNoStatusService, { optional: true });\n\n constructor(\n private ngZone: NgZone,\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private renderer: Renderer2,\n private directionality: Directionality,\n private destroy$: NzDestroyService\n ) {}\n\n ngOnInit(): void {\n this.nzFormStatusService?.formStatusChanges\n .pipe(\n distinctUntilChanged((pre, cur) => {\n return pre.status === cur.status && pre.hasFeedback === cur.hasFeedback;\n }),\n takeUntil(this.destroy$)\n )\n .subscribe(({ status, hasFeedback }) => {\n this.setStatusStyles(status, hasFeedback);\n });\n\n this.focusMonitor\n .monitor(this.elementRef, true)\n .pipe(takeUntil(this.destroy$))\n .subscribe(focusOrigin => {\n if (!focusOrigin) {\n this.isFocused = false;\n this.updateDisplayValue(this.value!);\n this.nzBlur.emit();\n Promise.resolve().then(() => this.onTouched());\n } else {\n this.isFocused = true;\n this.nzFocus.emit();\n }\n });\n\n this.dir = this.directionality.value;\n this.directionality.change.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n\n this.setupHandlersListeners();\n\n fromEventOutsideAngular(this.inputElement.nativeElement, 'keyup')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.stop());\n\n fromEventOutsideAngular<KeyboardEvent>(this.inputElement.nativeElement, 'keydown')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n const { keyCode } = event;\n\n if (keyCode !== UP_ARROW && keyCode !== DOWN_ARROW && keyCode !== ENTER) {\n return;\n }\n\n this.ngZone.run(() => {\n if (keyCode === UP_ARROW) {\n const ratio = this.getRatio(event);\n this.up(event, ratio);\n this.stop();\n } else if (keyCode === DOWN_ARROW) {\n const ratio = this.getRatio(event);\n this.down(event, ratio);\n this.stop();\n } else {\n this.updateDisplayValue(this.value!);\n }\n\n this.cdr.markForCheck();\n });\n });\n }\n\n ngOnChanges({ nzStatus, nzDisabled, nzFormatter, nzSize }: SimpleChanges): void {\n if (nzFormatter && !nzFormatter.isFirstChange()) {\n const validValue = this.getCurrentValidValue(this.parsedValue!);\n this.setValue(validValue);\n this.updateDisplayValue(validValue);\n }\n if (nzDisabled) {\n this.disabled$.next(this.nzDisabled);\n }\n if (nzStatus) {\n this.setStatusStyles(this.nzStatus, this.hasFeedback);\n }\n if (nzSize) {\n this.size.set(nzSize.currentValue);\n }\n }\n\n ngAfterViewInit(): void {\n if (this.nzAutoFocus) {\n this.focus();\n }\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n private setupHandlersListeners(): void {\n merge(\n fromEventOutsideAngular(this.upHandler.nativeElement, 'mouseup'),\n fromEventOutsideAngular(this.upHandler.nativeElement, 'mouseleave'),\n fromEventOutsideAngular(this.downHandler.nativeElement, 'mouseup'),\n fromEventOutsideAngular(this.downHandler.nativeElement, 'mouseleave')\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.stop());\n }\n\n private setStatusStyles(status: NzValidateStatus, hasFeedback: boolean): void {\n // set inner status\n this.status = status;\n this.hasFeedback = hasFeedback;\n this.cdr.markForCheck();\n // render status if nzStatus is set\n this.statusCls = getStatusClassNames(this.prefixCls, status, hasFeedback);\n Object.keys(this.statusCls).forEach(status => {\n if (this.statusCls[status]) {\n this.renderer.addClass(this.elementRef.nativeElement, status);\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, status);\n }\n });\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\n/**\n * @deprecated Deprecated in v19.0.0. It is recommended to use the new version `<nz-input-number>`.\n */\n@Component({\n selector: '[nz-input-number-group-slot]',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (icon) {\n <nz-icon [nzType]=\"icon\" />\n }\n <ng-container *nzStringTemplateOutlet=\"template\">{{ template }}</ng-container>\n <ng-content></ng-content>\n `,\n host: {\n '[class.ant-input-number-group-addon]': `type === 'addon'`,\n '[class.ant-input-number-prefix]': `type === 'prefix'`,\n '[class.ant-input-number-suffix]': `type === 'suffix'`\n },\n imports: [NzIconModule, NzOutletModule]\n})\nexport class NzInputNumberGroupSlotComponent {\n @Input() icon?: string | null = null;\n @Input() type: 'addon' | 'prefix' | 'suffix' | null = null;\n @Input() template?: string | TemplateRef<void> | null = null;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { Subject, merge } from 'rxjs';\nimport { distinctUntilChanged, map, mergeMap, startWith, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { NzFormItemFeedbackIconComponent, NzFormNoStatusService, NzFormStatusService } from 'ng-zorro-antd/core/form';\nimport { NgClassInterface, NzSizeLDSType, NzStatus, NzValidateStatus } from 'ng-zorro-antd/core/types';\nimport { getStatusClassNames } from 'ng-zorro-antd/core/util';\nimport { NZ_SPACE_COMPACT_ITEM_TYPE, NzSpaceCompactItemDirective } from 'ng-zorro-antd/space';\n\nimport { NzInputNumberGroupSlotComponent } from './input-number-group-slot.component';\nimport { NzInputNumberLegacyComponent } from './input-number.component';\n\n/**\n * @deprecated Deprecated in v19.0.0. It is recommended to use the new version `<nz-input-number>`.\n */\n@Directive({\n selector: `nz-input-number-group[nzSuffix], nz-input-number-group[nzPrefix]`\n})\nexport class NzInputNumberGroupWhitSuffixOrPrefixDirective {\n constructor(public elementRef: ElementRef) {}\n}\n\n/**\n * @deprecated Deprecated in v19.0.0. It is recommended to use the new version `<nz-input-number>`.\n */\n@Component({\n selector: 'nz-input-number-group',\n exportAs: 'nzInputNumberGroup',\n imports: [NzInputNumberGroupSlotComponent, NgTemplateOutlet, NzFormItemFeedbackIconComponent],\n template: `\n @if (isAddOn) {\n <span class=\"ant-input-number-wrapper ant-input-number-group\">\n @if (nzAddOnBefore || nzAddOnBeforeIcon) {\n <div nz-input-number-group-slot type=\"addon\" [icon]=\"nzAddOnBeforeIcon\" [template]=\"nzAddOnBefore\"></div>\n }\n\n @if (isAffix || hasFeedback) {\n <div\n class=\"ant-input-number-affix-wrapper\"\n [class.ant-input-number-affix-wrapper-disabled]=\"disabled\"\n [class.ant-input-number-affix-wrapper-sm]=\"isSmall\"\n [class.ant-input-number-affix-wrapper-lg]=\"isLarge\"\n [class.ant-input-number-affix-wrapper-focused]=\"focused\"\n [class]=\"affixInGroupStatusCls\"\n >\n <ng-template [ngTemplateOutlet]=\"affixTemplate\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTemplate\" />\n }\n\n @if (nzAddOnAfter || nzAddOnAfterIcon) {\n <span nz-input-number-group-slot type=\"addon\" [icon]=\"nzAddOnAfterIcon\" [template]=\"nzAddOnAfter\"></span>\n }\n </span>\n } @else {\n @if (isAffix) {\n <ng-template [ngTemplateOutlet]=\"affixTemplate\" />\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTemplate\" />\n }\n }\n\n <!-- Affix Template -->\n <ng-template #affixTemplate>\n @if (nzPrefix || nzPrefixIcon) {\n <span nz-input-number-group-slot type=\"prefix\" [icon]=\"nzPrefixIcon\" [template]=\"nzPrefix\"></span>\n }\n <ng-template [ngTemplateOutlet]=\"contentTemplate\" />\n @if (nzSuffix || nzSuffixIcon || isFeedback) {\n <span nz-input-number-group-slot type=\"suffix\" [icon]=\"nzSuffixIcon\" [template]=\"nzSuffix\">\n @if (isFeedback) {\n <nz-form-item-feedback-icon [status]=\"status\" />\n }\n </span>\n }\n </ng-template>\n\n <!-- Content Template -->\n <ng-template #contentTemplate>\n <ng-content />\n @if (!isAddOn && !isAffix && isFeedback) {\n <span nz-input-number-group-slot type=\"suffix\">\n @if (isFeedback) {\n <nz-form-item-feedback-icon [status]=\"status\" />\n }\n </span>\n }\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NzFormNoStatusService, { provide: NZ_SPACE_COMPACT_ITEM_TYPE, useValue: 'input-number' }],\n host: {\n '[class.ant-input-number-group]': 'nzCompact',\n '[class.ant-input-number-group-compact]': 'nzCompact',\n '[class.ant-input-number-group-wrapper]': `isAddOn`,\n '[class.ant-input-number-group-wrapper-rtl]': `isAddOn && dir === 'rtl'`,\n '[class.ant-input-number-group-wrapper-lg]': `isAddOn && isLarge`,\n '[class.ant-input-number-group-wrapper-sm]': `isAddOn && isSmall`,\n '[class.ant-input-number-affix-wrapper]': `!isAddOn && isAffix`,\n '[class.ant-input-number-affix-wrapper-rtl]': `!isAddOn && dir === 'rtl'`,\n '[class.ant-input-number-affix-wrapper-focused]': `!isAddOn && isAffix && focused`,\n '[class.ant-input-number-affix-wrapper-disabled]': `!isAddOn && isAffix && disabled`,\n '[class.ant-input-number-affix-wrapper-lg]': `!isAddOn && isAffix && isLarge`,\n '[class.ant-input-number-affix-wrapper-sm]': `!isAddOn && isAffix && isSmall`\n },\n hostDirectives: [NzSpaceCompactItemDirective]\n})\nexport class NzInputNumberGroupComponent implements AfterContentInit, OnChanges, OnInit, OnDestroy {\n @ContentChildren(NzInputNumberLegacyComponent, { descendants: true })\n listOfNzInputNumberComponent!: QueryList<NzInputNumberLegacyComponent>;\n @Input() nzAddOnBeforeIcon?: string | null = null;\n @Input() nzAddOnAfterIcon?: string | null = null;\n @Input() nzPrefixIcon?: string | null = null;\n @Input() nzSuffixIcon?: string | null = null;\n @Input() nzAddOnBefore?: string | TemplateRef<void>;\n @Input() nzAddOnAfter?: string | TemplateRef<void>;\n @Input() nzPrefix?: string | TemplateRef<void>;\n @Input() nzStatus: NzStatus = '';\n @Input() nzSuffix?: string | TemplateRef<void>;\n @Input() nzSize: NzSizeLDSType = 'default';\n /**\n * @deprecated Will be removed in v20. Use `NzSpaceCompactComponent` instead.\n */\n @Input({ transform: booleanAttribute }) nzCompact = false;\n isLarge = false;\n isSmall = false;\n isAffix = false;\n isAddOn = false;\n isFeedback = false;\n focused = false;\n disabled = false;\n dir: Direction = 'ltr';\n // status\n prefixCls: string = 'ant-input-number';\n affixStatusCls: NgClassInterface = {};\n groupStatusCls: NgClassInterface = {};\n affixInGroupStatusCls: NgClassInterface = {};\n status: NzValidateStatus = '';\n hasFeedback: boolean = false;\n private destroy$ = new Subject<void>();\n private nzFormStatusService = inject(NzFormStatusService, { optional: true });\n private nzFormNoStatusService = inject(NzFormNoStatusService, { optional: true });\n\n constructor(\n private focusMonitor: FocusMonitor,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n private directionality: Directionality\n ) {}\n\n updateChildrenInputSize(): void {\n if (this.listOfNzInputNumberComponent) {\n this.listOfNzInputNumberComponent.forEach(item => item['size'].set(this.nzSize));\n }\n }\n\n ngOnInit(): void {\n this.nzFormStatusService?.formStatusChanges\n .pipe(\n distinctUntilChanged((pre, cur) => {\n return pre.status === cur.status && pre.hasFeedback === cur.hasFeedback;\n }),\n takeUntil(this.destroy$)\n )\n .subscribe(({ status, hasFeedback }) => {\n this.setStatusStyles(status, hasFeedback);\n });\n\n this.focusMonitor\n .monitor(this.elementRef, true)\n .pipe(takeUntil(this.destroy$))\n .subscribe(focusOrigin => {\n this.focused = !!focusOrigin;\n this.cdr.markForCheck();\n });\n\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n }\n\n ngAfterContentInit(): void {\n this.updateChildrenInputSize();\n const listOfInputChange$ = this.listOfNzInputNumberComponent.changes.pipe(\n startWith(this.listOfNzInputNumberComponent)\n );\n listOfInputChange$\n .pipe(\n switchMap(list =>\n merge(...[listOfInputChange$, ...list.map((input: NzInputNumberLegacyComponent) => input.disabled$)])\n ),\n mergeMap(() => listOfInputChange$),\n map(list => list.some((input: NzInputNumberLegacyComponent) => input.nzDisabled)),\n takeUntil(this.destroy$)\n )\n .subscribe(disabled => {\n this.disabled = disabled;\n this.cdr.markForCheck();\n });\n }\n ngOnChanges(changes: SimpleChanges): void {\n const {\n nzSize,\n nzSuffix,\n nzPrefix,\n nzPrefixIcon,\n nzSuffixIcon,\n nzAddOnAfter,\n nzAddOnBefore,\n nzAddOnAfterIcon,\n nzAddOnBeforeIcon,\n nzStatus\n } = changes;\n if (nzSize) {\n this.updateChildrenInputSize();\n this.isLarge = this.nzSize === 'large';\n this.isSmall = this.nzSize === 'small';\n }\n if (nzSuffix || nzPrefix || nzPrefixIcon || nzSuffixIcon) {\n this.isAffix = !!(this.nzSuffix || this.nzPrefix || this.nzPrefixIcon || this.nzSuffixIcon);\n }\n if (nzAddOnAfter || nzAddOnBefore || nzAddOnAfterIcon || nzAddOnBeforeIcon) {\n this.isAddOn = !!(this.nzAddOnAfter || this.nzAddOnBefore || this.nzAddOnAfterIcon || this.nzAddOnBeforeIcon);\n this.nzFormNoStatusService?.noFormStatus?.next(this.isAddOn);\n }\n if (nzStatus) {\n this.setStatusStyles(this.nzStatus, this.hasFeedback);\n }\n }\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private setStatusStyles(status: NzValidateStatus, hasFeedback: boolean): void {\n // set inner status\n this.status = status;\n this.hasFeedback = hasFeedback;\n this.isFeedback = !!status && hasFeedback;\n const baseAffix = !!(this.nzSuffix || this.nzPrefix || this.nzPrefixIcon || this.nzSuffixIcon);\n this.isAffix = baseAffix || (!this.isAddOn && hasFeedback);\n this.affixInGroupStatusCls =\n this.isAffix || this.isFeedback\n ? (this.affixStatusCls = getStatusClassNames(`${this.prefixCls}-affix-wrapper`, status, hasFeedback))\n : {};\n this.cdr.markForCheck();\n // render status if nzStatus is set\n this.affixStatusCls = getStatusClassNames(\n `${this.prefixCls}-affix-wrapper`,\n this.isAddOn ? '' : status,\n this.isAddOn ? false : hasFeedback\n );\n this.groupStatusCls = getStatusClassNames(\n `${this.prefixCls}-group-wrapper`,\n this.isAddOn ? status : '',\n this.isAddOn ? hasFeedback : false\n );\n const statusCls = {\n ...this.affixStatusCls,\n ...this.groupStatusCls\n };\n Object.keys(statusCls).forEach(status => {\n if (statusCls[status]) {\n this.renderer.addClass(this.elementRef.nativeElement, status);\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, status);\n }\n });\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { NzInputNumberGroupSlotComponent } from './input-number-group-slot.component';\nimport {\n NzInputNumberGroupComponent,\n NzInputNumberGroupWhitSuffixOrPrefixDirective\n} from './input-number-group.component';\nimport { NzInputNumberLegacyComponent } from './input-number.component';\n\n/**\n * @deprecated Deprecated in v19.0.0. It is recommended to use the new version `<nz-input-number>`.\n */\n@NgModule({\n imports: [\n NzInputNumberLegacyComponent,\n NzInputNumberGroupComponent,\n NzInputNumberGroupWhitSuffixOrPrefixDirective,\n NzInputNumberGroupSlotComponent\n ],\n exports: [NzInputNumberLegacyComponent, NzInputNumberGroupComponent, NzInputNumberGroupWhitSuffixOrPrefixDirective]\n})\nexport class NzInputNumberLegacyModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './input-number.component';\nexport * from './input-number-group-slot.component';\nexport * from './input-number-group.component';\nexport * from './input-number.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3"],"mappings":"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