{"version":3,"sources":["node_modules/@uiowa/digit-only/fesm2020/uiowa-digit-only.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Directive, Input, HostListener, NgModule } from '@angular/core';\nlet DigitOnlyDirective = /*#__PURE__*/(() => {\n class DigitOnlyDirective {\n constructor(el) {\n this.el = el;\n this.hasDecimalPoint = false;\n this.hasNegativeSign = false;\n this.navigationKeys = ['Backspace', 'Delete', 'Tab', 'Escape', 'Enter', 'Home', 'End', 'ArrowLeft', 'ArrowRight', 'Clear', 'Copy', 'Paste'];\n this.decimal = false;\n this.decimalSeparator = '.';\n this.allowNegatives = false;\n this.allowPaste = true;\n this.negativeSign = '-';\n this.min = -Infinity;\n this.max = Infinity;\n this.regex = null;\n this.inputElement = el.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes['pattern']) {\n this.regex = this.pattern ? RegExp(this.pattern) : null;\n }\n if (changes['min']) {\n const maybeMin = Number(this.min);\n this.min = isNaN(maybeMin) ? -Infinity : maybeMin;\n }\n if (changes['max']) {\n const maybeMax = Number(this.max);\n this.max = isNaN(maybeMax) ? Infinity : maybeMax;\n }\n }\n onBeforeInput(e) {\n if (isNaN(Number(e.data))) {\n if (e.data === this.decimalSeparator || e.data === this.negativeSign && this.allowNegatives) {\n return; // go on\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n onKeyDown(e) {\n if (this.navigationKeys.indexOf(e.key) > -1 ||\n // Allow: navigation keys: backspace, delete, arrows etc.\n (e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true ||\n // Allow: Ctrl+A\n (e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true ||\n // Allow: Ctrl+C\n (e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true ||\n // Allow: Ctrl+V\n (e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true ||\n // Allow: Ctrl+X\n (e.key === 'a' || e.code === 'KeyA') && e.metaKey === true ||\n // Allow: Cmd+A (Mac)\n (e.key === 'c' || e.code === 'KeyC') && e.metaKey === true ||\n // Allow: Cmd+C (Mac)\n (e.key === 'v' || e.code === 'KeyV') && e.metaKey === true ||\n // Allow: Cmd+V (Mac)\n (e.key === 'x' || e.code === 'KeyX') && e.metaKey === true // Allow: Cmd+X (Mac)\n ) {\n // let it happen, don't do anything\n return;\n }\n let newValue = '';\n if (this.decimal && e.key === this.decimalSeparator) {\n newValue = this.forecastValue(e.key);\n if (newValue.split(this.decimalSeparator).length > 2) {\n // has two or more decimal points\n e.preventDefault();\n return;\n } else {\n this.hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;\n return; // Allow: only one decimal point\n }\n }\n if (e.key === this.negativeSign && this.allowNegatives) {\n newValue = this.forecastValue(e.key);\n if (newValue.charAt(0) !== this.negativeSign || newValue.split(this.negativeSign).length > 2) {\n e.preventDefault();\n return;\n } else {\n this.hasNegativeSign = newValue.split(this.negativeSign).length > -1;\n return;\n }\n }\n // Ensure that it is a number and stop the keypress\n if (e.key === ' ' || isNaN(Number(e.key))) {\n e.preventDefault();\n return;\n }\n newValue = newValue || this.forecastValue(e.key);\n // check the input pattern RegExp\n if (this.regex) {\n if (!this.regex.test(newValue)) {\n e.preventDefault();\n return;\n }\n }\n const newNumber = Number(newValue);\n if (newNumber > this.max || newNumber < this.min) {\n e.preventDefault();\n }\n }\n onPaste(event) {\n if (this.allowPaste === true) {\n let pastedInput = '';\n if (window['clipboardData']) {\n // Browser is IE\n pastedInput = window['clipboardData'].getData('text');\n } else if (event.clipboardData && event.clipboardData.getData) {\n // Other browsers\n pastedInput = event.clipboardData.getData('text/plain');\n }\n this.pasteData(pastedInput);\n event.preventDefault();\n } else {\n // this prevents the paste\n event.preventDefault();\n event.stopPropagation();\n }\n }\n onDrop(event) {\n const textData = event.dataTransfer?.getData('text') ?? '';\n this.inputElement.focus();\n this.pasteData(textData);\n event.preventDefault();\n }\n pasteData(pastedContent) {\n const sanitizedContent = this.sanitizeInput(pastedContent);\n if (sanitizedContent.includes(this.negativeSign) && this.hasNegativeSign && !this.getSelection().includes(this.negativeSign)) {\n return;\n }\n const pasted = document.execCommand('insertText', false, sanitizedContent);\n if (!pasted) {\n if (this.inputElement.setRangeText) {\n const {\n selectionStart: start,\n selectionEnd: end\n } = this.inputElement;\n this.inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\n // so we have to trigger it ourself.\n if (typeof window['InstallTrigger'] !== 'undefined') {\n this.inputElement.dispatchEvent(new Event('input', {\n cancelable: true\n }));\n }\n } else {\n // Browser does not support setRangeText, e.g. IE\n this.insertAtCursor(this.inputElement, sanitizedContent);\n }\n }\n if (this.decimal) {\n this.hasDecimalPoint = this.inputElement.value.indexOf(this.decimalSeparator) > -1;\n }\n this.hasNegativeSign = this.inputElement.value.indexOf(this.negativeSign) > -1;\n }\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\n insertAtCursor(myField, myValue) {\n const startPos = myField.selectionStart ?? 0;\n const endPos = myField.selectionEnd ?? 0;\n myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);\n const pos = startPos + myValue.length;\n myField.focus();\n myField.setSelectionRange(pos, pos);\n this.triggerEvent(myField, 'input');\n }\n triggerEvent(el, type) {\n if ('createEvent' in document) {\n // modern browsers, IE9+\n const e = document.createEvent('HTMLEvents');\n e.initEvent(type, false, true);\n el.dispatchEvent(e);\n }\n }\n // end stack overflow code\n sanitizeInput(input) {\n let result = '';\n let regex;\n if (this.decimal && this.isValidDecimal(input)) {\n regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`, 'g');\n } else {\n regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9]`, 'g');\n }\n result = input.replace(regex, '');\n const maxLength = this.inputElement.maxLength;\n if (maxLength > 0) {\n // the input element has maxLength limit\n const allowedLength = maxLength - this.inputElement.value.length + (result.includes(`${this.negativeSign}`) ? 1 : 0);\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\n }\n return result;\n }\n getNegativeSignRegExp() {\n return this.allowNegatives && (!this.hasNegativeSign || this.getSelection().includes(this.negativeSign)) ? `(?!^${this.negativeSign})` : '';\n }\n isValidDecimal(string) {\n if (!this.hasDecimalPoint) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n // the input element already has a decimal separator\n const selectedText = this.getSelection();\n if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {\n return string.split(this.decimalSeparator).length <= 2;\n } else {\n return string.indexOf(this.decimalSeparator) < 0;\n }\n }\n }\n getSelection() {\n return this.inputElement.value.substring(this.inputElement.selectionStart ?? 0, this.inputElement.selectionEnd ?? 0);\n }\n forecastValue(key) {\n const selectionStart = this.inputElement.selectionStart ?? 0;\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\n const oldValue = this.inputElement.value;\n return oldValue.substring(0, selectionStart) + key + oldValue.substring(selectionEnd);\n }\n }\n DigitOnlyDirective.ɵfac = function DigitOnlyDirective_Factory(t) {\n return new (t || DigitOnlyDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n DigitOnlyDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DigitOnlyDirective,\n selectors: [[\"\", \"digitOnly\", \"\"]],\n hostBindings: function DigitOnlyDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"beforeinput\", function DigitOnlyDirective_beforeinput_HostBindingHandler($event) {\n return ctx.onBeforeInput($event);\n })(\"keydown\", function DigitOnlyDirective_keydown_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"paste\", function DigitOnlyDirective_paste_HostBindingHandler($event) {\n return ctx.onPaste($event);\n })(\"drop\", function DigitOnlyDirective_drop_HostBindingHandler($event) {\n return ctx.onDrop($event);\n });\n }\n },\n inputs: {\n decimal: \"decimal\",\n decimalSeparator: \"decimalSeparator\",\n allowNegatives: \"allowNegatives\",\n allowPaste: \"allowPaste\",\n negativeSign: \"negativeSign\",\n min: \"min\",\n max: \"max\",\n pattern: \"pattern\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return DigitOnlyDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MaskDirective = /*#__PURE__*/(() => {\n class MaskDirective {\n constructor(el) {\n this.el = el;\n this.navigationKeys = ['Backspace', 'Delete', 'Tab', 'Escape', 'Enter', 'Home', 'End', 'ArrowLeft', 'ArrowRight', 'Clear', 'Copy', 'Paste'];\n this.regex = new RegExp('');\n this.inputElement = el.nativeElement;\n }\n ngOnInit() {\n this.regex = new RegExp(this.inputElement.pattern);\n }\n onKeyDown(e) {\n if (this.navigationKeys.indexOf(e.key) > -1 ||\n // Allow: navigation keys: backspace, delete, arrows etc.\n (e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true ||\n // Allow: Ctrl+A\n (e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true ||\n // Allow: Ctrl+C\n (e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true ||\n // Allow: Ctrl+V\n (e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true ||\n // Allow: Ctrl+X\n (e.key === 'a' || e.code === 'KeyA') && e.metaKey === true ||\n // Allow: Cmd+A (Mac)\n (e.key === 'c' || e.code === 'KeyC') && e.metaKey === true ||\n // Allow: Cmd+C (Mac)\n (e.key === 'v' || e.code === 'KeyV') && e.metaKey === true ||\n // Allow: Cmd+V (Mac)\n (e.key === 'x' || e.code === 'KeyX') && e.metaKey === true // Allow: Cmd+X (Mac)\n ) {\n // let it happen, don't do anything\n return;\n }\n const newValue = this.forecastValue(e.key);\n if (!this.regex.test(newValue)) {\n e.preventDefault();\n }\n }\n forecastValue(key) {\n const selectionStart = this.inputElement.selectionStart ?? 0;\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\n const oldValue = this.inputElement.value;\n const selection = oldValue.substring(selectionStart, selectionEnd);\n return selection ? oldValue.replace(selection, key) : oldValue.substring(0, selectionStart) + key + oldValue.substring(selectionStart);\n }\n }\n MaskDirective.ɵfac = function MaskDirective_Factory(t) {\n return new (t || MaskDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n MaskDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MaskDirective,\n selectors: [[\"\", \"mask\", \"\"]],\n hostBindings: function MaskDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MaskDirective_keydown_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n });\n }\n }\n });\n return MaskDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DigitOnlyModule = /*#__PURE__*/(() => {\n class DigitOnlyModule {}\n DigitOnlyModule.ɵfac = function DigitOnlyModule_Factory(t) {\n return new (t || DigitOnlyModule)();\n };\n DigitOnlyModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: DigitOnlyModule\n });\n DigitOnlyModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[]]\n });\n return DigitOnlyModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\r\n * Public API Surface of digit-only\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { DigitOnlyDirective, DigitOnlyModule, MaskDirective };\n"],"mappings":"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","names":["DigitOnlyDirective","el","changes","maybeMin","maybeMax","newValue","newNumber","event","pastedInput","textData","pastedContent","sanitizedContent","start","end","myField","myValue","startPos","endPos","pos","type","e","input","result","regex","maxLength","allowedLength","string","selectedText","key","selectionStart","selectionEnd","oldValue","t","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","rf","ctx","ɵɵlistener","$event","ɵɵNgOnChangesFeature","DigitOnlyModule","t","ɵɵdefineNgModule","ɵɵdefineInjector"],"x_google_ignoreList":[0]}