source: trip-planner-front/node_modules/.cache/babel-webpack/121c821a381c8c96e126db9ce6c5070b.json

Last change on this file was e29cc2e, checked in by Ema <ema_spirova@…>, 3 years ago

primeNG components

  • Property mode set to 100644
File size: 138.2 KB
Line 
1{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { forwardRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from 'primeng/inputtext';\nimport { InputTextModule } from 'primeng/inputtext';\nimport * as i3 from 'primeng/button';\nimport { ButtonModule } from 'primeng/button';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nconst _c0 = [\"input\"];\n\nconst _c1 = function () {\n return {\n \"p-inputnumber-button p-inputnumber-button-up\": true\n };\n};\n\nconst _c2 = function () {\n return {\n \"p-inputnumber-button p-inputnumber-button-down\": true\n };\n};\n\nfunction InputNumber_span_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelementStart(1, \"button\", 6);\n i0.ɵɵlistener(\"mousedown\", function InputNumber_span_3_Template_button_mousedown_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r4 = i0.ɵɵnextContext();\n return ctx_r4.onUpButtonMouseDown($event);\n })(\"mouseup\", function InputNumber_span_3_Template_button_mouseup_1_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r6 = i0.ɵɵnextContext();\n return ctx_r6.onUpButtonMouseUp();\n })(\"mouseleave\", function InputNumber_span_3_Template_button_mouseleave_1_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r7 = i0.ɵɵnextContext();\n return ctx_r7.onUpButtonMouseLeave();\n })(\"keydown\", function InputNumber_span_3_Template_button_keydown_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r8 = i0.ɵɵnextContext();\n return ctx_r8.onUpButtonKeyDown($event);\n })(\"keyup\", function InputNumber_span_3_Template_button_keyup_1_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r9 = i0.ɵɵnextContext();\n return ctx_r9.onUpButtonKeyUp();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"button\", 6);\n i0.ɵɵlistener(\"mousedown\", function InputNumber_span_3_Template_button_mousedown_2_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r10 = i0.ɵɵnextContext();\n return ctx_r10.onDownButtonMouseDown($event);\n })(\"mouseup\", function InputNumber_span_3_Template_button_mouseup_2_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r11 = i0.ɵɵnextContext();\n return ctx_r11.onDownButtonMouseUp();\n })(\"mouseleave\", function InputNumber_span_3_Template_button_mouseleave_2_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r12 = i0.ɵɵnextContext();\n return ctx_r12.onDownButtonMouseLeave();\n })(\"keydown\", function InputNumber_span_3_Template_button_keydown_2_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r13 = i0.ɵɵnextContext();\n return ctx_r13.onDownButtonKeyDown($event);\n })(\"keyup\", function InputNumber_span_3_Template_button_keyup_2_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r14 = i0.ɵɵnextContext();\n return ctx_r14.onDownButtonKeyUp();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵclassMap(ctx_r1.incrementButtonClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction0(10, _c1))(\"icon\", ctx_r1.incrementButtonIcon)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵadvance(1);\n i0.ɵɵclassMap(ctx_r1.decrementButtonClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction0(11, _c2))(\"icon\", ctx_r1.decrementButtonIcon)(\"disabled\", ctx_r1.disabled);\n }\n}\n\nfunction InputNumber_button_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r16 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"button\", 6);\n i0.ɵɵlistener(\"mousedown\", function InputNumber_button_4_Template_button_mousedown_0_listener($event) {\n i0.ɵɵrestoreView(_r16);\n const ctx_r15 = i0.ɵɵnextContext();\n return ctx_r15.onUpButtonMouseDown($event);\n })(\"mouseup\", function InputNumber_button_4_Template_button_mouseup_0_listener() {\n i0.ɵɵrestoreView(_r16);\n const ctx_r17 = i0.ɵɵnextContext();\n return ctx_r17.onUpButtonMouseUp();\n })(\"mouseleave\", function InputNumber_button_4_Template_button_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r16);\n const ctx_r18 = i0.ɵɵnextContext();\n return ctx_r18.onUpButtonMouseLeave();\n })(\"keydown\", function InputNumber_button_4_Template_button_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r16);\n const ctx_r19 = i0.ɵɵnextContext();\n return ctx_r19.onUpButtonKeyDown($event);\n })(\"keyup\", function InputNumber_button_4_Template_button_keyup_0_listener() {\n i0.ɵɵrestoreView(_r16);\n const ctx_r20 = i0.ɵɵnextContext();\n return ctx_r20.onUpButtonKeyUp();\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r2.incrementButtonClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction0(5, _c1))(\"icon\", ctx_r2.incrementButtonIcon)(\"disabled\", ctx_r2.disabled);\n }\n}\n\nfunction InputNumber_button_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r22 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"button\", 6);\n i0.ɵɵlistener(\"mousedown\", function InputNumber_button_5_Template_button_mousedown_0_listener($event) {\n i0.ɵɵrestoreView(_r22);\n const ctx_r21 = i0.ɵɵnextContext();\n return ctx_r21.onDownButtonMouseDown($event);\n })(\"mouseup\", function InputNumber_button_5_Template_button_mouseup_0_listener() {\n i0.ɵɵrestoreView(_r22);\n const ctx_r23 = i0.ɵɵnextContext();\n return ctx_r23.onDownButtonMouseUp();\n })(\"mouseleave\", function InputNumber_button_5_Template_button_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r22);\n const ctx_r24 = i0.ɵɵnextContext();\n return ctx_r24.onDownButtonMouseLeave();\n })(\"keydown\", function InputNumber_button_5_Template_button_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r22);\n const ctx_r25 = i0.ɵɵnextContext();\n return ctx_r25.onDownButtonKeyDown($event);\n })(\"keyup\", function InputNumber_button_5_Template_button_keyup_0_listener() {\n i0.ɵɵrestoreView(_r22);\n const ctx_r26 = i0.ɵɵnextContext();\n return ctx_r26.onDownButtonKeyUp();\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r3.decrementButtonClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction0(5, _c2))(\"icon\", ctx_r3.decrementButtonIcon)(\"disabled\", ctx_r3.disabled);\n }\n}\n\nconst _c3 = function (a1, a2, a3) {\n return {\n \"p-inputnumber p-component\": true,\n \"p-inputnumber-buttons-stacked\": a1,\n \"p-inputnumber-buttons-horizontal\": a2,\n \"p-inputnumber-buttons-vertical\": a3\n };\n};\n\nconst INPUTNUMBER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputNumber),\n multi: true\n};\n\nclass InputNumber {\n constructor(el, cd) {\n this.el = el;\n this.cd = cd;\n this.showButtons = false;\n this.format = true;\n this.buttonLayout = \"stacked\";\n this.incrementButtonIcon = 'pi pi-angle-up';\n this.decrementButtonIcon = 'pi pi-angle-down';\n this.readonly = false;\n this.step = 1;\n this.allowEmpty = true;\n this.mode = \"decimal\";\n this.useGrouping = true;\n this.onInput = new EventEmitter();\n this.onFocus = new EventEmitter();\n this.onBlur = new EventEmitter();\n this.onKeyDown = new EventEmitter();\n\n this.onModelChange = () => {};\n\n this.onModelTouched = () => {};\n\n this.groupChar = '';\n this.prefixChar = '';\n this.suffixChar = '';\n }\n\n get disabled() {\n return this._disabled;\n }\n\n set disabled(disabled) {\n if (disabled) this.focused = false;\n this._disabled = disabled;\n if (this.timer) this.clearTimer();\n }\n\n ngOnChanges(simpleChange) {\n const props = ['locale', 'localeMatcher', 'mode', 'currency', 'currencyDisplay', 'useGrouping', 'minFractionDigits', 'maxFractionDigits', 'prefix', 'suffix'];\n\n if (props.some(p => !!simpleChange[p])) {\n this.updateConstructParser();\n }\n }\n\n ngOnInit() {\n this.constructParser();\n this.initialized = true;\n }\n\n getOptions() {\n return {\n localeMatcher: this.localeMatcher,\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits\n };\n }\n\n constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());\n const numerals = [...new Intl.NumberFormat(this.locale, {\n useGrouping: false\n }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n\n this._index = d => index.get(d);\n }\n\n updateConstructParser() {\n if (this.initialized) {\n this.constructParser();\n }\n }\n\n escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n getDecimalExpression() {\n const formatter = new Intl.NumberFormat(this.locale, Object.assign(Object.assign({}, this.getOptions()), {\n useGrouping: false\n }));\n return new RegExp(`[${formatter.format(1.1).replace(this._currency, '').trim().replace(this._numeral, '')}]`, 'g');\n }\n\n getGroupingExpression() {\n const formatter = new Intl.NumberFormat(this.locale, {\n useGrouping: true\n });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(`[${this.groupChar}]`, 'g');\n }\n\n getMinusSignExpression() {\n const formatter = new Intl.NumberFormat(this.locale, {\n useGrouping: false\n });\n return new RegExp(`[${formatter.format(-1).trim().replace(this._numeral, '')}]`, 'g');\n }\n\n getCurrencyExpression() {\n if (this.currency) {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n return new RegExp(`[${formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, '')}]`, 'g');\n }\n\n return new RegExp(`[]`, 'g');\n }\n\n getPrefixExpression() {\n if (this.prefix) {\n this.prefixChar = this.prefix;\n } else {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n\n return new RegExp(`${this.escapeRegExp(this.prefixChar || '')}`, 'g');\n }\n\n getSuffixExpression() {\n if (this.suffix) {\n this.suffixChar = this.suffix;\n } else {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n\n return new RegExp(`${this.escapeRegExp(this.suffixChar || '')}`, 'g');\n }\n\n formatValue(value) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n\n if (this.format) {\n let formatter = new Intl.NumberFormat(this.locale, this.getOptions());\n let formattedValue = formatter.format(value);\n\n if (this.prefix) {\n formattedValue = this.prefix + formattedValue;\n }\n\n if (this.suffix) {\n formattedValue = formattedValue + this.suffix;\n }\n\n return formattedValue;\n }\n\n return value.toString();\n }\n\n return '';\n }\n\n parseValue(text) {\n let filteredText = text.replace(this._suffix, '').replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '').replace(this._group, '').replace(this._minusSign, '-').replace(this._decimal, '.').replace(this._numeral, this._index);\n\n if (filteredText) {\n if (filteredText === '-') // Minus sign\n return filteredText;\n let parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n\n return null;\n }\n\n repeat(event, interval, dir) {\n if (this.readonly) {\n return;\n }\n\n let i = interval || 500;\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(event, 40, dir);\n }, i);\n this.spin(event, dir);\n }\n\n spin(event, dir) {\n let step = this.step * dir;\n let currentValue = this.parseValue(this.input.nativeElement.value) || 0;\n let newValue = this.validateValue(currentValue + step);\n\n if (this.maxlength && this.maxlength < this.formatValue(newValue).length) {\n return;\n }\n\n this.updateInput(newValue, null, 'spin', null);\n this.updateModel(event, newValue);\n this.handleOnInput(event, currentValue, newValue);\n }\n\n onUpButtonMouseDown(event) {\n this.input.nativeElement.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n\n onUpButtonMouseUp() {\n this.clearTimer();\n }\n\n onUpButtonMouseLeave() {\n this.clearTimer();\n }\n\n onUpButtonKeyDown(event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, 1);\n }\n }\n\n onUpButtonKeyUp() {\n this.clearTimer();\n }\n\n onDownButtonMouseDown(event) {\n this.input.nativeElement.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n\n onDownButtonMouseUp() {\n this.clearTimer();\n }\n\n onDownButtonMouseLeave() {\n this.clearTimer();\n }\n\n onDownButtonKeyUp() {\n this.clearTimer();\n }\n\n onDownButtonKeyDown(event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, -1);\n }\n }\n\n onUserInput(event) {\n if (this.isSpecialChar) {\n event.target.value = this.lastValue;\n }\n\n this.isSpecialChar = false;\n }\n\n onInputKeyDown(event) {\n this.lastValue = event.target.value;\n\n if (event.shiftKey || event.altKey) {\n this.isSpecialChar = true;\n return;\n }\n\n let selectionStart = event.target.selectionStart;\n let selectionEnd = event.target.selectionEnd;\n let inputValue = event.target.value;\n let newValueStr = null;\n\n if (event.altKey) {\n event.preventDefault();\n }\n\n switch (event.which) {\n //up\n case 38:\n this.spin(event, 1);\n event.preventDefault();\n break;\n //down\n\n case 40:\n this.spin(event, -1);\n event.preventDefault();\n break;\n //left\n\n case 37:\n if (!this.isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n event.preventDefault();\n }\n\n break;\n //right\n\n case 39:\n if (!this.isNumeralChar(inputValue.charAt(selectionStart))) {\n event.preventDefault();\n }\n\n break;\n //enter\n\n case 13:\n newValueStr = this.validateValue(this.parseValue(this.input.nativeElement.value));\n this.input.nativeElement.value = this.formatValue(newValueStr);\n this.input.nativeElement.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n //backspace\n\n case 8:\n {\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n const deleteChar = inputValue.charAt(selectionStart - 1);\n const {\n decimalCharIndex,\n decimalCharIndexWithoutPrefix\n } = this.getDecimalCharIndexes(inputValue);\n\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (decimalLength) {\n this.input.nativeElement.setSelectionRange(selectionStart - 1, selectionStart - 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n\n this.updateValue(event, newValueStr, null, 'delete-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n }\n // del\n\n case 46:\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n const deleteChar = inputValue.charAt(selectionStart);\n const {\n decimalCharIndex,\n decimalCharIndexWithoutPrefix\n } = this.getDecimalCharIndexes(inputValue);\n\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (decimalLength) {\n this.input.nativeElement.setSelectionRange(selectionStart + 1, selectionStart + 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart) + insertedText + inputValue.slice(selectionStart + 1);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n\n this.updateValue(event, newValueStr, null, 'delete-back-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n\n default:\n break;\n }\n\n this.onKeyDown.emit(event);\n }\n\n onInputKeyPress(event) {\n event.preventDefault();\n let code = event.which || event.keyCode;\n let char = String.fromCharCode(code);\n const isDecimalSign = this.isDecimalSign(char);\n const isMinusSign = this.isMinusSign(char);\n\n if (48 <= code && code <= 57 || isMinusSign || isDecimalSign) {\n this.insert(event, char, {\n isDecimalSign,\n isMinusSign\n });\n }\n }\n\n onPaste(event) {\n if (!this.disabled) {\n event.preventDefault();\n let data = (event.clipboardData || window['clipboardData']).getData('Text');\n\n if (data) {\n let filteredData = this.parseValue(data);\n\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n }\n }\n\n allowMinusSign() {\n return this.min == null || this.min < 0;\n }\n\n isMinusSign(char) {\n if (this._minusSign.test(char) || char === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n\n isDecimalSign(char) {\n if (this._decimal.test(char)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n\n isDecimalMode() {\n return this.mode === 'decimal';\n }\n\n getDecimalCharIndexes(val) {\n let decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n const filteredVal = val.replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '');\n const decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n return {\n decimalCharIndex,\n decimalCharIndexWithoutPrefix\n };\n }\n\n getCharIndexes(val) {\n const decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n const minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n const suffixCharIndex = val.search(this._suffix);\n this._suffix.lastIndex = 0;\n const currencyCharIndex = val.search(this._currency);\n this._currency.lastIndex = 0;\n return {\n decimalCharIndex,\n minusCharIndex,\n suffixCharIndex,\n currencyCharIndex\n };\n }\n\n insert(event, text, sign = {\n isDecimalSign: false,\n isMinusSign: false\n }) {\n const minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n\n let selectionStart = this.input.nativeElement.selectionStart;\n let selectionEnd = this.input.nativeElement.selectionEnd;\n let inputValue = this.input.nativeElement.value.trim();\n const {\n decimalCharIndex,\n minusCharIndex,\n suffixCharIndex,\n currencyCharIndex\n } = this.getCharIndexes(inputValue);\n let newValueStr;\n\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && this.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n const maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n const operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n const charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n }\n\n insertText(value, text, start, end) {\n let textSplit = text === '.' ? text : text.split('.');\n\n if (textSplit.length === 2) {\n const decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0 ? value.slice(0, start) + this.formatValue(text) + value.slice(end) : value || this.formatValue(text);\n } else if (end - start === value.length) {\n return this.formatValue(text);\n } else if (start === 0) {\n return text + value.slice(end);\n } else if (end === value.length) {\n return value.slice(0, start) + text;\n } else {\n return value.slice(0, start) + text + value.slice(end);\n }\n }\n\n deleteRange(value, start, end) {\n let newValueStr;\n if (end - start === value.length) newValueStr = '';else if (start === 0) newValueStr = value.slice(end);else if (end === value.length) newValueStr = value.slice(0, start);else newValueStr = value.slice(0, start) + value.slice(end);\n return newValueStr;\n }\n\n initCursor() {\n let selectionStart = this.input.nativeElement.selectionStart;\n let inputValue = this.input.nativeElement.value;\n let valueLength = inputValue.length;\n let index = null; // remove prefix\n\n let prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n selectionStart = selectionStart - prefixLength;\n let char = inputValue.charAt(selectionStart);\n\n if (this.isNumeralChar(char)) {\n return selectionStart + prefixLength;\n } //left\n\n\n let i = selectionStart - 1;\n\n while (i >= 0) {\n char = inputValue.charAt(i);\n\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n\n if (index !== null) {\n this.input.nativeElement.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n\n while (i < valueLength) {\n char = inputValue.charAt(i);\n\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n\n if (index !== null) {\n this.input.nativeElement.setSelectionRange(index, index);\n }\n }\n\n return index || 0;\n }\n\n onInputClick() {\n this.initCursor();\n }\n\n isNumeralChar(char) {\n if (char.length === 1 && (this._numeral.test(char) || this._decimal.test(char) || this._group.test(char) || this._minusSign.test(char))) {\n this.resetRegex();\n return true;\n }\n\n return false;\n }\n\n resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n }\n\n updateValue(event, valueStr, insertedValueStr, operation) {\n let currentValue = this.input.nativeElement.value;\n let newValue = null;\n\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n this.handleOnInput(event, currentValue, newValue);\n }\n }\n\n handleOnInput(event, currentValue, newValue) {\n if (this.isValueChanged(currentValue, newValue)) {\n this.onInput.emit({\n originalEvent: event,\n value: newValue\n });\n }\n }\n\n isValueChanged(currentValue, newValue) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n\n if (newValue != null) {\n let parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n\n return false;\n }\n\n validateValue(value) {\n if (value === '-' || value == null) {\n return null;\n }\n\n if (this.min != null && value < this.min) {\n return this.min;\n }\n\n if (this.max != null && value > this.max) {\n return this.max;\n }\n\n return value;\n }\n\n updateInput(value, insertedValueStr, operation, valueStr) {\n insertedValueStr = insertedValueStr || '';\n let inputValue = this.input.nativeElement.value;\n let newValue = this.formatValue(value);\n let currentLength = inputValue.length;\n\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr);\n }\n\n if (currentLength === 0) {\n this.input.nativeElement.value = newValue;\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n let selectionStart = this.input.nativeElement.selectionStart;\n let selectionEnd = this.input.nativeElement.selectionEnd;\n\n if (this.maxlength && this.maxlength < newValue.length) {\n return;\n }\n\n this.input.nativeElement.value = newValue;\n let newLength = newValue.length;\n\n if (operation === 'range-insert') {\n const startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n const startValueStr = startValue !== null ? startValue.toString() : '';\n const startExpr = startValueStr.split('').join(`(${this.groupChar})?`);\n const sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n const tExpr = insertedValueStr.split('').join(`(${this.groupChar})?`);\n const tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single') this.input.nativeElement.setSelectionRange(selectionEnd + 1, selectionEnd + 1);else if (operation === 'delete-single') this.input.nativeElement.setSelectionRange(selectionEnd - 1, selectionEnd - 1);else if (operation === 'delete-range' || operation === 'spin') this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (operation === 'delete-back-single') {\n let prevChar = inputValue.charAt(selectionEnd - 1);\n let nextChar = inputValue.charAt(selectionEnd);\n let diff = currentLength - newLength;\n\n let isGroupChar = this._group.test(nextChar);\n\n if (isGroupChar && diff === 1) {\n selectionEnd += 1;\n } else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n selectionEnd += -1 * diff + 1;\n }\n\n this._group.lastIndex = 0;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length + 1;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n selectionEnd = selectionEnd + (newLength - currentLength);\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n }\n\n this.input.nativeElement.setAttribute('aria-valuenow', value);\n }\n\n concatValues(val1, val2) {\n if (val1 && val2) {\n let decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n\n return val1;\n }\n\n getDecimalLength(value) {\n if (value) {\n const valueSplit = value.split(this._decimal);\n\n if (valueSplit.length === 2) {\n return valueSplit[1].replace(this._suffix, '').trim().replace(/\\s/g, '').replace(this._currency, '').length;\n }\n }\n\n return 0;\n }\n\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event) {\n this.focused = false;\n let newValue = this.validateValue(this.parseValue(this.input.nativeElement.value));\n this.input.nativeElement.value = this.formatValue(newValue);\n this.input.nativeElement.setAttribute('aria-valuenow', newValue);\n this.updateModel(event, newValue);\n this.onBlur.emit(event);\n }\n\n formattedValue() {\n const val = !this.value && !this.allowEmpty ? 0 : this.value;\n return this.formatValue(val);\n }\n\n updateModel(event, value) {\n if (this.value !== value) {\n this.value = value;\n this.onModelChange(value);\n }\n\n this.onModelTouched();\n }\n\n writeValue(value) {\n this.value = value;\n this.cd.markForCheck();\n }\n\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n get filled() {\n return this.value != null && this.value.toString().length > 0;\n }\n\n clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n\n getFormatter() {\n return this.numberFormat;\n }\n\n}\n\nInputNumber.ɵfac = function InputNumber_Factory(t) {\n return new (t || InputNumber)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\n\nInputNumber.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: InputNumber,\n selectors: [[\"p-inputNumber\"]],\n viewQuery: function InputNumber_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\", \"p-inputwrapper\"],\n hostVars: 4,\n hostBindings: function InputNumber_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"p-inputwrapper-filled\", ctx.filled)(\"p-inputwrapper-focus\", ctx.focused);\n }\n },\n inputs: {\n showButtons: \"showButtons\",\n format: \"format\",\n buttonLayout: \"buttonLayout\",\n inputId: \"inputId\",\n styleClass: \"styleClass\",\n style: \"style\",\n placeholder: \"placeholder\",\n size: \"size\",\n maxlength: \"maxlength\",\n tabindex: \"tabindex\",\n title: \"title\",\n ariaLabel: \"ariaLabel\",\n ariaRequired: \"ariaRequired\",\n name: \"name\",\n required: \"required\",\n autocomplete: \"autocomplete\",\n min: \"min\",\n max: \"max\",\n incrementButtonClass: \"incrementButtonClass\",\n decrementButtonClass: \"decrementButtonClass\",\n incrementButtonIcon: \"incrementButtonIcon\",\n decrementButtonIcon: \"decrementButtonIcon\",\n readonly: \"readonly\",\n step: \"step\",\n allowEmpty: \"allowEmpty\",\n locale: \"locale\",\n localeMatcher: \"localeMatcher\",\n mode: \"mode\",\n currency: \"currency\",\n currencyDisplay: \"currencyDisplay\",\n useGrouping: \"useGrouping\",\n minFractionDigits: \"minFractionDigits\",\n maxFractionDigits: \"maxFractionDigits\",\n prefix: \"prefix\",\n suffix: \"suffix\",\n inputStyle: \"inputStyle\",\n inputStyleClass: \"inputStyleClass\",\n disabled: \"disabled\"\n },\n outputs: {\n onInput: \"onInput\",\n onFocus: \"onFocus\",\n onBlur: \"onBlur\",\n onKeyDown: \"onKeyDown\"\n },\n features: [i0.ɵɵProvidersFeature([INPUTNUMBER_VALUE_ACCESSOR]), i0.ɵɵNgOnChangesFeature],\n decls: 6,\n vars: 31,\n consts: [[3, \"ngClass\", \"ngStyle\"], [\"pInputText\", \"\", \"inputmode\", \"decimal\", 3, \"ngClass\", \"ngStyle\", \"value\", \"disabled\", \"readonly\", \"input\", \"keydown\", \"keypress\", \"paste\", \"click\", \"focus\", \"blur\"], [\"input\", \"\"], [\"class\", \"p-inputnumber-button-group\", 4, \"ngIf\"], [\"type\", \"button\", \"pButton\", \"\", 3, \"ngClass\", \"class\", \"icon\", \"disabled\", \"mousedown\", \"mouseup\", \"mouseleave\", \"keydown\", \"keyup\", 4, \"ngIf\"], [1, \"p-inputnumber-button-group\"], [\"type\", \"button\", \"pButton\", \"\", 3, \"ngClass\", \"icon\", \"disabled\", \"mousedown\", \"mouseup\", \"mouseleave\", \"keydown\", \"keyup\"]],\n template: function InputNumber_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵelementStart(1, \"input\", 1, 2);\n i0.ɵɵlistener(\"input\", function InputNumber_Template_input_input_1_listener($event) {\n return ctx.onUserInput($event);\n })(\"keydown\", function InputNumber_Template_input_keydown_1_listener($event) {\n return ctx.onInputKeyDown($event);\n })(\"keypress\", function InputNumber_Template_input_keypress_1_listener($event) {\n return ctx.onInputKeyPress($event);\n })(\"paste\", function InputNumber_Template_input_paste_1_listener($event) {\n return ctx.onPaste($event);\n })(\"click\", function InputNumber_Template_input_click_1_listener() {\n return ctx.onInputClick();\n })(\"focus\", function InputNumber_Template_input_focus_1_listener($event) {\n return ctx.onInputFocus($event);\n })(\"blur\", function InputNumber_Template_input_blur_1_listener($event) {\n return ctx.onInputBlur($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, InputNumber_span_3_Template, 3, 12, \"span\", 3);\n i0.ɵɵtemplate(4, InputNumber_button_4_Template, 1, 6, \"button\", 4);\n i0.ɵɵtemplate(5, InputNumber_button_5_Template, 1, 6, \"button\", 4);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(27, _c3, ctx.showButtons && ctx.buttonLayout === \"stacked\", ctx.showButtons && ctx.buttonLayout === \"horizontal\", ctx.showButtons && ctx.buttonLayout === \"vertical\"))(\"ngStyle\", ctx.style);\n i0.ɵɵadvance(1);\n i0.ɵɵclassMap(ctx.inputStyleClass);\n i0.ɵɵproperty(\"ngClass\", \"p-inputnumber-input\")(\"ngStyle\", ctx.inputStyle)(\"value\", ctx.formattedValue())(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly);\n i0.ɵɵattribute(\"placeholder\", ctx.placeholder)(\"title\", ctx.title)(\"id\", ctx.inputId)(\"size\", ctx.size)(\"name\", ctx.name)(\"autocomplete\", ctx.autocomplete)(\"maxlength\", ctx.maxlength)(\"tabindex\", ctx.tabindex)(\"aria-label\", ctx.ariaLabel)(\"aria-required\", ctx.ariaRequired)(\"required\", ctx.required)(\"aria-valuemin\", ctx.min)(\"aria-valuemax\", ctx.max);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.showButtons && ctx.buttonLayout === \"stacked\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.showButtons && ctx.buttonLayout !== \"stacked\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.showButtons && ctx.buttonLayout !== \"stacked\");\n }\n },\n directives: [i1.NgClass, i1.NgStyle, i2.InputText, i1.NgIf, i3.ButtonDirective],\n styles: [\"p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputNumber, [{\n type: Component,\n args: [{\n selector: 'p-inputNumber',\n template: `\n <span [ngClass]=\"{'p-inputnumber p-component': true,'p-inputnumber-buttons-stacked': this.showButtons && this.buttonLayout === 'stacked',\n 'p-inputnumber-buttons-horizontal': this.showButtons && this.buttonLayout === 'horizontal', 'p-inputnumber-buttons-vertical': this.showButtons && this.buttonLayout === 'vertical'}\"\n [ngStyle]=\"style\" [class]=\"styleClass\">\n <input #input [ngClass]=\"'p-inputnumber-input'\" [ngStyle]=\"inputStyle\" [class]=\"inputStyleClass\" pInputText [value]=\"formattedValue()\" [attr.placeholder]=\"placeholder\" [attr.title]=\"title\" [attr.id]=\"inputId\"\n [attr.size]=\"size\" [attr.name]=\"name\" [attr.autocomplete]=\"autocomplete\" [attr.maxlength]=\"maxlength\" [attr.tabindex]=\"tabindex\" [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\" [disabled]=\"disabled\" [attr.required]=\"required\" [attr.aria-valuemin]=\"min\" [attr.aria-valuemax]=\"max\" [readonly]=\"readonly\" inputmode=\"decimal\"\n (input)=\"onUserInput($event)\" (keydown)=\"onInputKeyDown($event)\" (keypress)=\"onInputKeyPress($event)\" (paste)=\"onPaste($event)\" (click)=\"onInputClick()\"\n (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\">\n <span class=\"p-inputnumber-button-group\" *ngIf=\"showButtons && buttonLayout === 'stacked'\">\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-up': true}\" [class]=\"incrementButtonClass\" [icon]=\"incrementButtonIcon\" [disabled]=\"disabled\"\n (mousedown)=\"this.onUpButtonMouseDown($event)\" (mouseup)=\"onUpButtonMouseUp()\" (mouseleave)=\"onUpButtonMouseLeave()\" (keydown)=\"onUpButtonKeyDown($event)\" (keyup)=\"onUpButtonKeyUp()\"></button>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-down': true}\" [class]=\"decrementButtonClass\" [icon]=\"decrementButtonIcon\" [disabled]=\"disabled\"\n (mousedown)=\"this.onDownButtonMouseDown($event)\" (mouseup)=\"onDownButtonMouseUp()\" (mouseleave)=\"onDownButtonMouseLeave()\" (keydown)=\"onDownButtonKeyDown($event)\" (keyup)=\"onDownButtonKeyUp()\"></button>\n </span>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-up': true}\" [class]=\"incrementButtonClass\" [icon]=\"incrementButtonIcon\" *ngIf=\"showButtons && buttonLayout !== 'stacked'\" [disabled]=\"disabled\"\n (mousedown)=\"this.onUpButtonMouseDown($event)\" (mouseup)=\"onUpButtonMouseUp()\" (mouseleave)=\"onUpButtonMouseLeave()\" (keydown)=\"onUpButtonKeyDown($event)\" (keyup)=\"onUpButtonKeyUp()\"></button>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-down': true}\" [class]=\"decrementButtonClass\" [icon]=\"decrementButtonIcon\" *ngIf=\"showButtons && buttonLayout !== 'stacked'\" [disabled]=\"disabled\"\n (mousedown)=\"this.onDownButtonMouseDown($event)\" (mouseup)=\"onDownButtonMouseUp()\" (mouseleave)=\"onDownButtonMouseLeave()\" (keydown)=\"onDownButtonKeyDown($event)\" (keyup)=\"onDownButtonKeyUp()\"></button>\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [INPUTNUMBER_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element p-inputwrapper',\n '[class.p-inputwrapper-filled]': 'filled',\n '[class.p-inputwrapper-focus]': 'focused'\n },\n styles: [\"p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}\\n\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n showButtons: [{\n type: Input\n }],\n format: [{\n type: Input\n }],\n buttonLayout: [{\n type: Input\n }],\n inputId: [{\n type: Input\n }],\n styleClass: [{\n type: Input\n }],\n style: [{\n type: Input\n }],\n placeholder: [{\n type: Input\n }],\n size: [{\n type: Input\n }],\n maxlength: [{\n type: Input\n }],\n tabindex: [{\n type: Input\n }],\n title: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input\n }],\n ariaRequired: [{\n type: Input\n }],\n name: [{\n type: Input\n }],\n required: [{\n type: Input\n }],\n autocomplete: [{\n type: Input\n }],\n min: [{\n type: Input\n }],\n max: [{\n type: Input\n }],\n incrementButtonClass: [{\n type: Input\n }],\n decrementButtonClass: [{\n type: Input\n }],\n incrementButtonIcon: [{\n type: Input\n }],\n decrementButtonIcon: [{\n type: Input\n }],\n readonly: [{\n type: Input\n }],\n step: [{\n type: Input\n }],\n allowEmpty: [{\n type: Input\n }],\n locale: [{\n type: Input\n }],\n localeMatcher: [{\n type: Input\n }],\n mode: [{\n type: Input\n }],\n currency: [{\n type: Input\n }],\n currencyDisplay: [{\n type: Input\n }],\n useGrouping: [{\n type: Input\n }],\n minFractionDigits: [{\n type: Input\n }],\n maxFractionDigits: [{\n type: Input\n }],\n prefix: [{\n type: Input\n }],\n suffix: [{\n type: Input\n }],\n inputStyle: [{\n type: Input\n }],\n inputStyleClass: [{\n type: Input\n }],\n input: [{\n type: ViewChild,\n args: ['input']\n }],\n onInput: [{\n type: Output\n }],\n onFocus: [{\n type: Output\n }],\n onBlur: [{\n type: Output\n }],\n onKeyDown: [{\n type: Output\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\n\nclass InputNumberModule {}\n\nInputNumberModule.ɵfac = function InputNumberModule_Factory(t) {\n return new (t || InputNumberModule)();\n};\n\nInputNumberModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: InputNumberModule\n});\nInputNumberModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, InputTextModule, ButtonModule]]\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputNumberModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, InputTextModule, ButtonModule],\n exports: [InputNumber],\n declarations: [InputNumber]\n }]\n }], null, null);\n})();\n/**\n * Generated bundle index. Do not edit.\n */\n\n\nexport { INPUTNUMBER_VALUE_ACCESSOR, InputNumber, InputNumberModule };","map":{"version":3,"sources":["C:/Users/DELL/Desktop/bachelor-thesis/trip-planner-front/node_modules/primeng/fesm2015/primeng-inputnumber.mjs"],"names":["i0","forwardRef","EventEmitter","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","ViewChild","Output","NgModule","i1","CommonModule","i2","InputTextModule","i3","ButtonModule","NG_VALUE_ACCESSOR","INPUTNUMBER_VALUE_ACCESSOR","provide","useExisting","InputNumber","multi","constructor","el","cd","showButtons","format","buttonLayout","incrementButtonIcon","decrementButtonIcon","readonly","step","allowEmpty","mode","useGrouping","onInput","onFocus","onBlur","onKeyDown","onModelChange","onModelTouched","groupChar","prefixChar","suffixChar","disabled","_disabled","focused","timer","clearTimer","ngOnChanges","simpleChange","props","some","p","updateConstructParser","ngOnInit","constructParser","initialized","getOptions","localeMatcher","style","currency","currencyDisplay","minimumFractionDigits","minFractionDigits","maximumFractionDigits","maxFractionDigits","numberFormat","Intl","NumberFormat","locale","numerals","reverse","index","Map","map","d","i","_numeral","RegExp","join","_group","getGroupingExpression","_minusSign","getMinusSignExpression","_currency","getCurrencyExpression","_decimal","getDecimalExpression","_suffix","getSuffixExpression","_prefix","getPrefixExpression","_index","get","escapeRegExp","text","replace","formatter","Object","assign","trim","charAt","prefix","split","suffix","formatValue","value","formattedValue","toString","parseValue","filteredText","parsedValue","isNaN","repeat","event","interval","dir","setTimeout","spin","currentValue","input","nativeElement","newValue","validateValue","maxlength","length","updateInput","updateModel","handleOnInput","onUpButtonMouseDown","focus","preventDefault","onUpButtonMouseUp","onUpButtonMouseLeave","onUpButtonKeyDown","keyCode","onUpButtonKeyUp","onDownButtonMouseDown","onDownButtonMouseUp","onDownButtonMouseLeave","onDownButtonKeyUp","onDownButtonKeyDown","onUserInput","isSpecialChar","target","lastValue","onInputKeyDown","shiftKey","altKey","selectionStart","selectionEnd","inputValue","newValueStr","which","isNumeralChar","setAttribute","deleteChar","decimalCharIndex","decimalCharIndexWithoutPrefix","getDecimalCharIndexes","decimalLength","getDecimalLength","test","lastIndex","slice","setSelectionRange","insertedText","isDecimalMode","updateValue","deleteRange","emit","onInputKeyPress","code","char","String","fromCharCode","isDecimalSign","isMinusSign","insert","onPaste","data","clipboardData","window","getData","filteredData","allowMinusSign","min","val","search","filteredVal","getCharIndexes","minusCharIndex","suffixCharIndex","currencyCharIndex","sign","minusCharIndexOnText","insertText","resolvedOptions","operation","charIndex","start","end","textSplit","initCursor","valueLength","prefixLength","onInputClick","resetRegex","valueStr","insertedValueStr","isValueChanged","originalEvent","parsedCurrentValue","max","currentLength","concatValues","newLength","startValue","startValueStr","startExpr","sRegex","tExpr","tRegex","prevChar","nextChar","diff","isGroupChar","val1","val2","valueSplit","onInputFocus","onInputBlur","writeValue","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","filled","clearInterval","getFormatter","ɵfac","ElementRef","ChangeDetectorRef","ɵcmp","NgClass","NgStyle","InputText","NgIf","ButtonDirective","type","args","selector","template","changeDetection","OnPush","providers","encapsulation","None","host","styles","inputId","styleClass","placeholder","size","tabindex","title","ariaLabel","ariaRequired","name","required","autocomplete","incrementButtonClass","decrementButtonClass","inputStyle","inputStyleClass","InputNumberModule","ɵmod","ɵinj","imports","exports","declarations"],"mappings":"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","sourcesContent":["import * as i0 from '@angular/core';\nimport { forwardRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from 'primeng/inputtext';\nimport { InputTextModule } from 'primeng/inputtext';\nimport * as i3 from 'primeng/button';\nimport { ButtonModule } from 'primeng/button';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst INPUTNUMBER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputNumber),\n multi: true\n};\nclass InputNumber {\n constructor(el, cd) {\n this.el = el;\n this.cd = cd;\n this.showButtons = false;\n this.format = true;\n this.buttonLayout = \"stacked\";\n this.incrementButtonIcon = 'pi pi-angle-up';\n this.decrementButtonIcon = 'pi pi-angle-down';\n this.readonly = false;\n this.step = 1;\n this.allowEmpty = true;\n this.mode = \"decimal\";\n this.useGrouping = true;\n this.onInput = new EventEmitter();\n this.onFocus = new EventEmitter();\n this.onBlur = new EventEmitter();\n this.onKeyDown = new EventEmitter();\n this.onModelChange = () => { };\n this.onModelTouched = () => { };\n this.groupChar = '';\n this.prefixChar = '';\n this.suffixChar = '';\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(disabled) {\n if (disabled)\n this.focused = false;\n this._disabled = disabled;\n if (this.timer)\n this.clearTimer();\n }\n ngOnChanges(simpleChange) {\n const props = ['locale', 'localeMatcher', 'mode', 'currency', 'currencyDisplay', 'useGrouping', 'minFractionDigits', 'maxFractionDigits', 'prefix', 'suffix'];\n if (props.some(p => !!simpleChange[p])) {\n this.updateConstructParser();\n }\n }\n ngOnInit() {\n this.constructParser();\n this.initialized = true;\n }\n getOptions() {\n return {\n localeMatcher: this.localeMatcher,\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits\n };\n }\n constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());\n const numerals = [...new Intl.NumberFormat(this.locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n this._index = d => index.get(d);\n }\n updateConstructParser() {\n if (this.initialized) {\n this.constructParser();\n }\n }\n escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n getDecimalExpression() {\n const formatter = new Intl.NumberFormat(this.locale, Object.assign(Object.assign({}, this.getOptions()), { useGrouping: false }));\n return new RegExp(`[${formatter.format(1.1).replace(this._currency, '').trim().replace(this._numeral, '')}]`, 'g');\n }\n getGroupingExpression() {\n const formatter = new Intl.NumberFormat(this.locale, { useGrouping: true });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(`[${this.groupChar}]`, 'g');\n }\n getMinusSignExpression() {\n const formatter = new Intl.NumberFormat(this.locale, { useGrouping: false });\n return new RegExp(`[${formatter.format(-1).trim().replace(this._numeral, '')}]`, 'g');\n }\n getCurrencyExpression() {\n if (this.currency) {\n const formatter = new Intl.NumberFormat(this.locale, { style: 'currency', currency: this.currency, currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0, maximumFractionDigits: 0 });\n return new RegExp(`[${formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, '')}]`, 'g');\n }\n return new RegExp(`[]`, 'g');\n }\n getPrefixExpression() {\n if (this.prefix) {\n this.prefixChar = this.prefix;\n }\n else {\n const formatter = new Intl.NumberFormat(this.locale, { style: this.mode, currency: this.currency, currencyDisplay: this.currencyDisplay });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n return new RegExp(`${this.escapeRegExp(this.prefixChar || '')}`, 'g');\n }\n getSuffixExpression() {\n if (this.suffix) {\n this.suffixChar = this.suffix;\n }\n else {\n const formatter = new Intl.NumberFormat(this.locale, { style: this.mode, currency: this.currency, currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0, maximumFractionDigits: 0 });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n return new RegExp(`${this.escapeRegExp(this.suffixChar || '')}`, 'g');\n }\n formatValue(value) {\n if (value != null) {\n if (value === '-') { // Minus sign\n return value;\n }\n if (this.format) {\n let formatter = new Intl.NumberFormat(this.locale, this.getOptions());\n let formattedValue = formatter.format(value);\n if (this.prefix) {\n formattedValue = this.prefix + formattedValue;\n }\n if (this.suffix) {\n formattedValue = formattedValue + this.suffix;\n }\n return formattedValue;\n }\n return value.toString();\n }\n return '';\n }\n parseValue(text) {\n let filteredText = text\n .replace(this._suffix, '')\n .replace(this._prefix, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(this._currency, '')\n .replace(this._group, '')\n .replace(this._minusSign, '-')\n .replace(this._decimal, '.')\n .replace(this._numeral, this._index);\n if (filteredText) {\n if (filteredText === '-') // Minus sign\n return filteredText;\n let parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n return null;\n }\n repeat(event, interval, dir) {\n if (this.readonly) {\n return;\n }\n let i = interval || 500;\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(event, 40, dir);\n }, i);\n this.spin(event, dir);\n }\n spin(event, dir) {\n let step = this.step * dir;\n let currentValue = this.parseValue(this.input.nativeElement.value) || 0;\n let newValue = this.validateValue(currentValue + step);\n if (this.maxlength && this.maxlength < this.formatValue(newValue).length) {\n return;\n }\n this.updateInput(newValue, null, 'spin', null);\n this.updateModel(event, newValue);\n this.handleOnInput(event, currentValue, newValue);\n }\n onUpButtonMouseDown(event) {\n this.input.nativeElement.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n onUpButtonMouseUp() {\n this.clearTimer();\n }\n onUpButtonMouseLeave() {\n this.clearTimer();\n }\n onUpButtonKeyDown(event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, 1);\n }\n }\n onUpButtonKeyUp() {\n this.clearTimer();\n }\n onDownButtonMouseDown(event) {\n this.input.nativeElement.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n onDownButtonMouseUp() {\n this.clearTimer();\n }\n onDownButtonMouseLeave() {\n this.clearTimer();\n }\n onDownButtonKeyUp() {\n this.clearTimer();\n }\n onDownButtonKeyDown(event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, -1);\n }\n }\n onUserInput(event) {\n if (this.isSpecialChar) {\n event.target.value = this.lastValue;\n }\n this.isSpecialChar = false;\n }\n onInputKeyDown(event) {\n this.lastValue = event.target.value;\n if (event.shiftKey || event.altKey) {\n this.isSpecialChar = true;\n return;\n }\n let selectionStart = event.target.selectionStart;\n let selectionEnd = event.target.selectionEnd;\n let inputValue = event.target.value;\n let newValueStr = null;\n if (event.altKey) {\n event.preventDefault();\n }\n switch (event.which) {\n //up\n case 38:\n this.spin(event, 1);\n event.preventDefault();\n break;\n //down\n case 40:\n this.spin(event, -1);\n event.preventDefault();\n break;\n //left\n case 37:\n if (!this.isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n event.preventDefault();\n }\n break;\n //right\n case 39:\n if (!this.isNumeralChar(inputValue.charAt(selectionStart))) {\n event.preventDefault();\n }\n break;\n //enter\n case 13:\n newValueStr = this.validateValue(this.parseValue(this.input.nativeElement.value));\n this.input.nativeElement.value = this.formatValue(newValueStr);\n this.input.nativeElement.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n //backspace\n case 8: {\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n const deleteChar = inputValue.charAt(selectionStart - 1);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n }\n else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n if (decimalLength) {\n this.input.nativeElement.setSelectionRange(selectionStart - 1, selectionStart - 1);\n }\n else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n }\n else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n }\n else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-single');\n }\n else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n }\n // del\n case 46:\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n const deleteChar = inputValue.charAt(selectionStart);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n }\n else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n if (decimalLength) {\n this.input.nativeElement.setSelectionRange(selectionStart + 1, selectionStart + 1);\n }\n else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart) + insertedText + inputValue.slice(selectionStart + 1);\n }\n else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n }\n else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-back-single');\n }\n else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n default:\n break;\n }\n this.onKeyDown.emit(event);\n }\n onInputKeyPress(event) {\n event.preventDefault();\n let code = event.which || event.keyCode;\n let char = String.fromCharCode(code);\n const isDecimalSign = this.isDecimalSign(char);\n const isMinusSign = this.isMinusSign(char);\n if ((48 <= code && code <= 57) || isMinusSign || isDecimalSign) {\n this.insert(event, char, { isDecimalSign, isMinusSign });\n }\n }\n onPaste(event) {\n if (!this.disabled) {\n event.preventDefault();\n let data = (event.clipboardData || window['clipboardData']).getData('Text');\n if (data) {\n let filteredData = this.parseValue(data);\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n }\n }\n allowMinusSign() {\n return this.min == null || this.min < 0;\n }\n isMinusSign(char) {\n if (this._minusSign.test(char) || char === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n return false;\n }\n isDecimalSign(char) {\n if (this._decimal.test(char)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n return false;\n }\n isDecimalMode() {\n return this.mode === 'decimal';\n }\n getDecimalCharIndexes(val) {\n let decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n const filteredVal = val.replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '');\n const decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n return { decimalCharIndex, decimalCharIndexWithoutPrefix };\n }\n getCharIndexes(val) {\n const decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n const minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n const suffixCharIndex = val.search(this._suffix);\n this._suffix.lastIndex = 0;\n const currencyCharIndex = val.search(this._currency);\n this._currency.lastIndex = 0;\n return { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex };\n }\n insert(event, text, sign = { isDecimalSign: false, isMinusSign: false }) {\n const minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n let selectionStart = this.input.nativeElement.selectionStart;\n let selectionEnd = this.input.nativeElement.selectionEnd;\n let inputValue = this.input.nativeElement.value.trim();\n const { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex } = this.getCharIndexes(inputValue);\n let newValueStr;\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n this.updateValue(event, newValueStr, text, 'insert');\n }\n }\n else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n }\n else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n else if (decimalCharIndex === -1 && this.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n }\n else {\n const maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n const operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if ((selectionStart + text.length - (decimalCharIndex + 1)) <= maxFractionDigits) {\n const charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : (suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length);\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n }\n insertText(value, text, start, end) {\n let textSplit = text === '.' ? text : text.split('.');\n if (textSplit.length === 2) {\n const decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return (decimalCharIndex > 0) ? value.slice(0, start) + this.formatValue(text) + value.slice(end) : (value || this.formatValue(text));\n }\n else if ((end - start) === value.length) {\n return this.formatValue(text);\n }\n else if (start === 0) {\n return text + value.slice(end);\n }\n else if (end === value.length) {\n return value.slice(0, start) + text;\n }\n else {\n return value.slice(0, start) + text + value.slice(end);\n }\n }\n deleteRange(value, start, end) {\n let newValueStr;\n if ((end - start) === value.length)\n newValueStr = '';\n else if (start === 0)\n newValueStr = value.slice(end);\n else if (end === value.length)\n newValueStr = value.slice(0, start);\n else\n newValueStr = value.slice(0, start) + value.slice(end);\n return newValueStr;\n }\n initCursor() {\n let selectionStart = this.input.nativeElement.selectionStart;\n let inputValue = this.input.nativeElement.value;\n let valueLength = inputValue.length;\n let index = null;\n // remove prefix\n let prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n selectionStart = selectionStart - prefixLength;\n let char = inputValue.charAt(selectionStart);\n if (this.isNumeralChar(char)) {\n return selectionStart + prefixLength;\n }\n //left\n let i = selectionStart - 1;\n while (i >= 0) {\n char = inputValue.charAt(i);\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n }\n else {\n i--;\n }\n }\n if (index !== null) {\n this.input.nativeElement.setSelectionRange(index + 1, index + 1);\n }\n else {\n i = selectionStart;\n while (i < valueLength) {\n char = inputValue.charAt(i);\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n }\n else {\n i++;\n }\n }\n if (index !== null) {\n this.input.nativeElement.setSelectionRange(index, index);\n }\n }\n return index || 0;\n }\n onInputClick() {\n this.initCursor();\n }\n isNumeralChar(char) {\n if (char.length === 1 && (this._numeral.test(char) || this._decimal.test(char) || this._group.test(char) || this._minusSign.test(char))) {\n this.resetRegex();\n return true;\n }\n return false;\n }\n resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n }\n updateValue(event, valueStr, insertedValueStr, operation) {\n let currentValue = this.input.nativeElement.value;\n let newValue = null;\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n this.handleOnInput(event, currentValue, newValue);\n }\n }\n handleOnInput(event, currentValue, newValue) {\n if (this.isValueChanged(currentValue, newValue)) {\n this.onInput.emit({ originalEvent: event, value: newValue });\n }\n }\n isValueChanged(currentValue, newValue) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n if (newValue != null) {\n let parsedCurrentValue = (typeof currentValue === 'string') ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n return false;\n }\n validateValue(value) {\n if (value === '-' || value == null) {\n return null;\n }\n if (this.min != null && value < this.min) {\n return this.min;\n }\n if (this.max != null && value > this.max) {\n return this.max;\n }\n return value;\n }\n updateInput(value, insertedValueStr, operation, valueStr) {\n insertedValueStr = insertedValueStr || '';\n let inputValue = this.input.nativeElement.value;\n let newValue = this.formatValue(value);\n let currentLength = inputValue.length;\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr);\n }\n if (currentLength === 0) {\n this.input.nativeElement.value = newValue;\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else {\n let selectionStart = this.input.nativeElement.selectionStart;\n let selectionEnd = this.input.nativeElement.selectionEnd;\n if (this.maxlength && this.maxlength < newValue.length) {\n return;\n }\n this.input.nativeElement.value = newValue;\n let newLength = newValue.length;\n if (operation === 'range-insert') {\n const startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n const startValueStr = startValue !== null ? startValue.toString() : '';\n const startExpr = startValueStr.split('').join(`(${this.groupChar})?`);\n const sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n const tExpr = insertedValueStr.split('').join(`(${this.groupChar})?`);\n const tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single')\n this.input.nativeElement.setSelectionRange(selectionEnd + 1, selectionEnd + 1);\n else if (operation === 'delete-single')\n this.input.nativeElement.setSelectionRange(selectionEnd - 1, selectionEnd - 1);\n else if (operation === 'delete-range' || operation === 'spin')\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else if (operation === 'delete-back-single') {\n let prevChar = inputValue.charAt(selectionEnd - 1);\n let nextChar = inputValue.charAt(selectionEnd);\n let diff = currentLength - newLength;\n let isGroupChar = this._group.test(nextChar);\n if (isGroupChar && diff === 1) {\n selectionEnd += 1;\n }\n else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n selectionEnd += (-1 * diff) + 1;\n }\n this._group.lastIndex = 0;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else if (inputValue === '-' && operation === 'insert') {\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length + 1;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n else {\n selectionEnd = selectionEnd + (newLength - currentLength);\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n }\n this.input.nativeElement.setAttribute('aria-valuenow', value);\n }\n concatValues(val1, val2) {\n if (val1 && val2) {\n let decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex !== -1 ? (val1.split(this._decimal)[0] + val2.slice(decimalCharIndex)) : val1;\n }\n return val1;\n }\n getDecimalLength(value) {\n if (value) {\n const valueSplit = value.split(this._decimal);\n if (valueSplit.length === 2) {\n return valueSplit[1].replace(this._suffix, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(this._currency, '').length;\n }\n }\n return 0;\n }\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n let newValue = this.validateValue(this.parseValue(this.input.nativeElement.value));\n this.input.nativeElement.value = this.formatValue(newValue);\n this.input.nativeElement.setAttribute('aria-valuenow', newValue);\n this.updateModel(event, newValue);\n this.onBlur.emit(event);\n }\n formattedValue() {\n const val = !this.value && !this.allowEmpty ? 0 : this.value;\n return this.formatValue(val);\n }\n updateModel(event, value) {\n if (this.value !== value) {\n this.value = value;\n this.onModelChange(value);\n }\n this.onModelTouched();\n }\n writeValue(value) {\n this.value = value;\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n get filled() {\n return (this.value != null && this.value.toString().length > 0);\n }\n clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n getFormatter() {\n return this.numberFormat;\n }\n}\nInputNumber.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: InputNumber, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nInputNumber.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: InputNumber, selector: \"p-inputNumber\", inputs: { showButtons: \"showButtons\", format: \"format\", buttonLayout: \"buttonLayout\", inputId: \"inputId\", styleClass: \"styleClass\", style: \"style\", placeholder: \"placeholder\", size: \"size\", maxlength: \"maxlength\", tabindex: \"tabindex\", title: \"title\", ariaLabel: \"ariaLabel\", ariaRequired: \"ariaRequired\", name: \"name\", required: \"required\", autocomplete: \"autocomplete\", min: \"min\", max: \"max\", incrementButtonClass: \"incrementButtonClass\", decrementButtonClass: \"decrementButtonClass\", incrementButtonIcon: \"incrementButtonIcon\", decrementButtonIcon: \"decrementButtonIcon\", readonly: \"readonly\", step: \"step\", allowEmpty: \"allowEmpty\", locale: \"locale\", localeMatcher: \"localeMatcher\", mode: \"mode\", currency: \"currency\", currencyDisplay: \"currencyDisplay\", useGrouping: \"useGrouping\", minFractionDigits: \"minFractionDigits\", maxFractionDigits: \"maxFractionDigits\", prefix: \"prefix\", suffix: \"suffix\", inputStyle: \"inputStyle\", inputStyleClass: \"inputStyleClass\", disabled: \"disabled\" }, outputs: { onInput: \"onInput\", onFocus: \"onFocus\", onBlur: \"onBlur\", onKeyDown: \"onKeyDown\" }, host: { properties: { \"class.p-inputwrapper-filled\": \"filled\", \"class.p-inputwrapper-focus\": \"focused\" }, classAttribute: \"p-element p-inputwrapper\" }, providers: [INPUTNUMBER_VALUE_ACCESSOR], viewQueries: [{ propertyName: \"input\", first: true, predicate: [\"input\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n <span [ngClass]=\"{'p-inputnumber p-component': true,'p-inputnumber-buttons-stacked': this.showButtons && this.buttonLayout === 'stacked',\n 'p-inputnumber-buttons-horizontal': this.showButtons && this.buttonLayout === 'horizontal', 'p-inputnumber-buttons-vertical': this.showButtons && this.buttonLayout === 'vertical'}\"\n [ngStyle]=\"style\" [class]=\"styleClass\">\n <input #input [ngClass]=\"'p-inputnumber-input'\" [ngStyle]=\"inputStyle\" [class]=\"inputStyleClass\" pInputText [value]=\"formattedValue()\" [attr.placeholder]=\"placeholder\" [attr.title]=\"title\" [attr.id]=\"inputId\"\n [attr.size]=\"size\" [attr.name]=\"name\" [attr.autocomplete]=\"autocomplete\" [attr.maxlength]=\"maxlength\" [attr.tabindex]=\"tabindex\" [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\" [disabled]=\"disabled\" [attr.required]=\"required\" [attr.aria-valuemin]=\"min\" [attr.aria-valuemax]=\"max\" [readonly]=\"readonly\" inputmode=\"decimal\"\n (input)=\"onUserInput($event)\" (keydown)=\"onInputKeyDown($event)\" (keypress)=\"onInputKeyPress($event)\" (paste)=\"onPaste($event)\" (click)=\"onInputClick()\"\n (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\">\n <span class=\"p-inputnumber-button-group\" *ngIf=\"showButtons && buttonLayout === 'stacked'\">\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-up': true}\" [class]=\"incrementButtonClass\" [icon]=\"incrementButtonIcon\" [disabled]=\"disabled\"\n (mousedown)=\"this.onUpButtonMouseDown($event)\" (mouseup)=\"onUpButtonMouseUp()\" (mouseleave)=\"onUpButtonMouseLeave()\" (keydown)=\"onUpButtonKeyDown($event)\" (keyup)=\"onUpButtonKeyUp()\"></button>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-down': true}\" [class]=\"decrementButtonClass\" [icon]=\"decrementButtonIcon\" [disabled]=\"disabled\"\n (mousedown)=\"this.onDownButtonMouseDown($event)\" (mouseup)=\"onDownButtonMouseUp()\" (mouseleave)=\"onDownButtonMouseLeave()\" (keydown)=\"onDownButtonKeyDown($event)\" (keyup)=\"onDownButtonKeyUp()\"></button>\n </span>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-up': true}\" [class]=\"incrementButtonClass\" [icon]=\"incrementButtonIcon\" *ngIf=\"showButtons && buttonLayout !== 'stacked'\" [disabled]=\"disabled\"\n (mousedown)=\"this.onUpButtonMouseDown($event)\" (mouseup)=\"onUpButtonMouseUp()\" (mouseleave)=\"onUpButtonMouseLeave()\" (keydown)=\"onUpButtonKeyDown($event)\" (keyup)=\"onUpButtonKeyUp()\"></button>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-down': true}\" [class]=\"decrementButtonClass\" [icon]=\"decrementButtonIcon\" *ngIf=\"showButtons && buttonLayout !== 'stacked'\" [disabled]=\"disabled\"\n (mousedown)=\"this.onDownButtonMouseDown($event)\" (mouseup)=\"onDownButtonMouseUp()\" (mouseleave)=\"onDownButtonMouseLeave()\" (keydown)=\"onDownButtonKeyDown($event)\" (keyup)=\"onDownButtonKeyUp()\"></button>\n </span>\n `, isInline: true, styles: [\"p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}\\n\"], directives: [{ type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i2.InputText, selector: \"[pInputText]\" }, { type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i3.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"label\", \"icon\", \"loading\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: InputNumber, decorators: [{\n type: Component,\n args: [{ selector: 'p-inputNumber', template: `\n <span [ngClass]=\"{'p-inputnumber p-component': true,'p-inputnumber-buttons-stacked': this.showButtons && this.buttonLayout === 'stacked',\n 'p-inputnumber-buttons-horizontal': this.showButtons && this.buttonLayout === 'horizontal', 'p-inputnumber-buttons-vertical': this.showButtons && this.buttonLayout === 'vertical'}\"\n [ngStyle]=\"style\" [class]=\"styleClass\">\n <input #input [ngClass]=\"'p-inputnumber-input'\" [ngStyle]=\"inputStyle\" [class]=\"inputStyleClass\" pInputText [value]=\"formattedValue()\" [attr.placeholder]=\"placeholder\" [attr.title]=\"title\" [attr.id]=\"inputId\"\n [attr.size]=\"size\" [attr.name]=\"name\" [attr.autocomplete]=\"autocomplete\" [attr.maxlength]=\"maxlength\" [attr.tabindex]=\"tabindex\" [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\" [disabled]=\"disabled\" [attr.required]=\"required\" [attr.aria-valuemin]=\"min\" [attr.aria-valuemax]=\"max\" [readonly]=\"readonly\" inputmode=\"decimal\"\n (input)=\"onUserInput($event)\" (keydown)=\"onInputKeyDown($event)\" (keypress)=\"onInputKeyPress($event)\" (paste)=\"onPaste($event)\" (click)=\"onInputClick()\"\n (focus)=\"onInputFocus($event)\" (blur)=\"onInputBlur($event)\">\n <span class=\"p-inputnumber-button-group\" *ngIf=\"showButtons && buttonLayout === 'stacked'\">\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-up': true}\" [class]=\"incrementButtonClass\" [icon]=\"incrementButtonIcon\" [disabled]=\"disabled\"\n (mousedown)=\"this.onUpButtonMouseDown($event)\" (mouseup)=\"onUpButtonMouseUp()\" (mouseleave)=\"onUpButtonMouseLeave()\" (keydown)=\"onUpButtonKeyDown($event)\" (keyup)=\"onUpButtonKeyUp()\"></button>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-down': true}\" [class]=\"decrementButtonClass\" [icon]=\"decrementButtonIcon\" [disabled]=\"disabled\"\n (mousedown)=\"this.onDownButtonMouseDown($event)\" (mouseup)=\"onDownButtonMouseUp()\" (mouseleave)=\"onDownButtonMouseLeave()\" (keydown)=\"onDownButtonKeyDown($event)\" (keyup)=\"onDownButtonKeyUp()\"></button>\n </span>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-up': true}\" [class]=\"incrementButtonClass\" [icon]=\"incrementButtonIcon\" *ngIf=\"showButtons && buttonLayout !== 'stacked'\" [disabled]=\"disabled\"\n (mousedown)=\"this.onUpButtonMouseDown($event)\" (mouseup)=\"onUpButtonMouseUp()\" (mouseleave)=\"onUpButtonMouseLeave()\" (keydown)=\"onUpButtonKeyDown($event)\" (keyup)=\"onUpButtonKeyUp()\"></button>\n <button type=\"button\" pButton [ngClass]=\"{'p-inputnumber-button p-inputnumber-button-down': true}\" [class]=\"decrementButtonClass\" [icon]=\"decrementButtonIcon\" *ngIf=\"showButtons && buttonLayout !== 'stacked'\" [disabled]=\"disabled\"\n (mousedown)=\"this.onDownButtonMouseDown($event)\" (mouseup)=\"onDownButtonMouseUp()\" (mouseleave)=\"onDownButtonMouseLeave()\" (keydown)=\"onDownButtonKeyDown($event)\" (keyup)=\"onDownButtonKeyUp()\"></button>\n </span>\n `, changeDetection: ChangeDetectionStrategy.OnPush, providers: [INPUTNUMBER_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, host: {\n 'class': 'p-element p-inputwrapper',\n '[class.p-inputwrapper-filled]': 'filled',\n '[class.p-inputwrapper-focus]': 'focused'\n }, styles: [\"p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { showButtons: [{\n type: Input\n }], format: [{\n type: Input\n }], buttonLayout: [{\n type: Input\n }], inputId: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], style: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], size: [{\n type: Input\n }], maxlength: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], title: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], ariaRequired: [{\n type: Input\n }], name: [{\n type: Input\n }], required: [{\n type: Input\n }], autocomplete: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], incrementButtonClass: [{\n type: Input\n }], decrementButtonClass: [{\n type: Input\n }], incrementButtonIcon: [{\n type: Input\n }], decrementButtonIcon: [{\n type: Input\n }], readonly: [{\n type: Input\n }], step: [{\n type: Input\n }], allowEmpty: [{\n type: Input\n }], locale: [{\n type: Input\n }], localeMatcher: [{\n type: Input\n }], mode: [{\n type: Input\n }], currency: [{\n type: Input\n }], currencyDisplay: [{\n type: Input\n }], useGrouping: [{\n type: Input\n }], minFractionDigits: [{\n type: Input\n }], maxFractionDigits: [{\n type: Input\n }], prefix: [{\n type: Input\n }], suffix: [{\n type: Input\n }], inputStyle: [{\n type: Input\n }], inputStyleClass: [{\n type: Input\n }], input: [{\n type: ViewChild,\n args: ['input']\n }], onInput: [{\n type: Output\n }], onFocus: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], onKeyDown: [{\n type: Output\n }], disabled: [{\n type: Input\n }] } });\nclass InputNumberModule {\n}\nInputNumberModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: InputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nInputNumberModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: InputNumberModule, declarations: [InputNumber], imports: [CommonModule, InputTextModule, ButtonModule], exports: [InputNumber] });\nInputNumberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: InputNumberModule, imports: [[CommonModule, InputTextModule, ButtonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: InputNumberModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, InputTextModule, ButtonModule],\n exports: [InputNumber],\n declarations: [InputNumber]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INPUTNUMBER_VALUE_ACCESSOR, InputNumber, InputNumberModule };\n"]},"metadata":{},"sourceType":"module"}
Note: See TracBrowser for help on using the repository browser.