{"version":3,"file":"index.mjs","sources":["../../src/inputotp/BaseInputOtp.vue","../../src/inputotp/InputOtp.vue","../../src/inputotp/InputOtp.vue?vue&type=template&id=6d2494b9&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport InputOtpStyle from 'primevue/inputotp/style';\n\nexport default {\n    name: 'BaseInputOtp',\n    extends: BaseComponent,\n    props: {\n        modelValue: {\n            type: null,\n            default: false\n        },\n        invalid: {\n            type: Boolean,\n            default: false\n        },\n        disabled: {\n            type: Boolean,\n            default: false\n        },\n        readonly: {\n            type: Boolean,\n            default: false\n        },\n        variant: {\n            type: String,\n            default: null\n        },\n        tabindex: {\n            type: Number,\n            default: null\n        },\n        length: {\n            type: Number,\n            default: 4\n        },\n        mask: {\n            type: Boolean,\n            default: false\n        },\n        integerOnly: {\n            type: Boolean,\n            default: false\n        }\n    },\n    style: InputOtpStyle,\n    provide() {\n        return {\n            $pcInputOtp: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n        <template v-for=\"i in length\" :key=\"i\">\n            <slot :events=\"getTemplateEvents(i - 1)\" :attrs=\"getTemplateAttrs(i - 1)\" :index=\"i\">\n                <OtpInputText\n                    :value=\"tokens[i - 1]\"\n                    :type=\"inputType\"\n                    :class=\"cx('pcInput')\"\n                    :inputmode=\"inputMode\"\n                    :variant=\"variant\"\n                    :readonly=\"readonly\"\n                    :disabled=\"disabled\"\n                    :invalid=\"invalid\"\n                    :tabindex=\"tabindex\"\n                    :unstyled=\"unstyled\"\n                    @input=\"onInput($event, i - 1)\"\n                    @focus=\"onFocus($event)\"\n                    @blur=\"onBlur($event)\"\n                    @paste=\"onPaste($event)\"\n                    @keydown=\"onKeyDown($event)\"\n                    :pt=\"ptm('pcInput')\"\n                />\n            </slot>\n        </template>\n    </div>\n</template>\n\n<script>\nimport InputText from 'primevue/inputtext';\nimport BaseInputOtp from './BaseInputOtp.vue';\n\nexport default {\n    name: 'InputOtp',\n    extends: BaseInputOtp,\n    inheritAttrs: false,\n    emits: ['update:modelValue', 'change', 'focus', 'blur'],\n    data() {\n        return {\n            tokens: []\n        };\n    },\n    watch: {\n        modelValue: {\n            immediate: true,\n            handler(newValue) {\n                this.tokens = newValue ? newValue.split('') : new Array(this.length);\n            }\n        }\n    },\n    methods: {\n        getTemplateAttrs(index) {\n            return {\n                value: this.tokens[index]\n            };\n        },\n        getTemplateEvents(index) {\n            return {\n                input: (event) => this.onInput(event, index),\n                keydown: (event) => this.onKeyDown(event),\n                focus: (event) => this.onFocus(event),\n                blur: (event) => this.onBlur(event),\n                paste: (event) => this.onPaste(event)\n            };\n        },\n        getPTOptions(key) {\n            const _ptm = key === 'root' ? this.ptmi : this.ptm;\n\n            return _ptm(key, {\n                context: {\n                    checked: this.checked,\n                    disabled: this.disabled\n                }\n            });\n        },\n        onInput(event, index) {\n            this.tokens[index] = event.target.value;\n            this.updateModel(event);\n\n            if (event.inputType === 'deleteContentBackward') {\n                this.moveToPrev(event);\n            } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward') {\n                this.moveToNext(event);\n            }\n        },\n        updateModel(event) {\n            const newValue = this.tokens.join('');\n\n            this.$emit('update:modelValue', newValue);\n            this.$emit('change', {\n                originalEvent: event,\n                value: newValue\n            });\n        },\n        moveToPrev(event) {\n            let prevInput = this.findPrevInput(event.target);\n\n            if (prevInput) {\n                prevInput.focus();\n                prevInput.select();\n            }\n        },\n        moveToNext(event) {\n            let nextInput = this.findNextInput(event.target);\n\n            if (nextInput) {\n                nextInput.focus();\n                nextInput.select();\n            }\n        },\n        findNextInput(element) {\n            let nextElement = element.nextElementSibling;\n\n            if (!nextElement) return;\n\n            return nextElement.nodeName === 'INPUT' ? nextElement : this.findNextInput(nextElement);\n        },\n        findPrevInput(element) {\n            let prevElement = element.previousElementSibling;\n\n            if (!prevElement) return;\n\n            return prevElement.nodeName === 'INPUT' ? prevElement : this.findPrevInput(prevElement);\n        },\n        onFocus(event) {\n            event.target.select();\n            this.$emit('focus', event);\n        },\n        onBlur(event) {\n            this.$emit('blur', event);\n        },\n        onKeyDown(event) {\n            if (event.ctrlKey || event.metaKey) {\n                return;\n            }\n\n            switch (event.code) {\n                case 'ArrowLeft':\n                    this.moveToPrev(event);\n                    event.preventDefault();\n\n                    break;\n\n                case 'ArrowUp':\n                case 'ArrowDown':\n                    event.preventDefault();\n\n                    break;\n\n                case 'Backspace':\n                    if (event.target.value.length === 0) {\n                        this.moveToPrev(event);\n                        event.preventDefault();\n                    }\n\n                    break;\n\n                case 'ArrowRight':\n                    this.moveToNext(event);\n                    event.preventDefault();\n\n                    break;\n\n                case 'Enter':\n                case 'NumpadEnter':\n                case 'Tab':\n                    break;\n\n                default:\n                    if ((this.integerOnly && !(Number(event.key) >= 0 && Number(event.key) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {\n                        event.preventDefault();\n                    }\n\n                    break;\n            }\n        },\n        onPaste(event) {\n            let paste = event.clipboardData.getData('text');\n\n            if (paste.length) {\n                let pastedCode = paste.substring(0, this.length + 1);\n\n                if (!this.integerOnly || !isNaN(pastedCode)) {\n                    this.tokens = pastedCode.split('');\n                    this.updateModel(event);\n                }\n            }\n\n            event.preventDefault();\n        }\n    },\n    computed: {\n        inputMode() {\n            return this.integerOnly ? 'numeric' : 'text';\n        },\n        inputType() {\n            return this.mask ? 'password' : 'text';\n        }\n    },\n    components: {\n        OtpInputText: InputText\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n        <template v-for=\"i in length\" :key=\"i\">\n            <slot :events=\"getTemplateEvents(i - 1)\" :attrs=\"getTemplateAttrs(i - 1)\" :index=\"i\">\n                <OtpInputText\n                    :value=\"tokens[i - 1]\"\n                    :type=\"inputType\"\n                    :class=\"cx('pcInput')\"\n                    :inputmode=\"inputMode\"\n                    :variant=\"variant\"\n                    :readonly=\"readonly\"\n                    :disabled=\"disabled\"\n                    :invalid=\"invalid\"\n                    :tabindex=\"tabindex\"\n                    :unstyled=\"unstyled\"\n                    @input=\"onInput($event, i - 1)\"\n                    @focus=\"onFocus($event)\"\n                    @blur=\"onBlur($event)\"\n                    @paste=\"onPaste($event)\"\n                    @keydown=\"onKeyDown($event)\"\n                    :pt=\"ptm('pcInput')\"\n                />\n            </slot>\n        </template>\n    </div>\n</template>\n\n<script>\nimport InputText from 'primevue/inputtext';\nimport BaseInputOtp from './BaseInputOtp.vue';\n\nexport default {\n    name: 'InputOtp',\n    extends: BaseInputOtp,\n    inheritAttrs: false,\n    emits: ['update:modelValue', 'change', 'focus', 'blur'],\n    data() {\n        return {\n            tokens: []\n        };\n    },\n    watch: {\n        modelValue: {\n            immediate: true,\n            handler(newValue) {\n                this.tokens = newValue ? newValue.split('') : new Array(this.length);\n            }\n        }\n    },\n    methods: {\n        getTemplateAttrs(index) {\n            return {\n                value: this.tokens[index]\n            };\n        },\n        getTemplateEvents(index) {\n            return {\n                input: (event) => this.onInput(event, index),\n                keydown: (event) => this.onKeyDown(event),\n                focus: (event) => this.onFocus(event),\n                blur: (event) => this.onBlur(event),\n                paste: (event) => this.onPaste(event)\n            };\n        },\n        getPTOptions(key) {\n            const _ptm = key === 'root' ? this.ptmi : this.ptm;\n\n            return _ptm(key, {\n                context: {\n                    checked: this.checked,\n                    disabled: this.disabled\n                }\n            });\n        },\n        onInput(event, index) {\n            this.tokens[index] = event.target.value;\n            this.updateModel(event);\n\n            if (event.inputType === 'deleteContentBackward') {\n                this.moveToPrev(event);\n            } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward') {\n                this.moveToNext(event);\n            }\n        },\n        updateModel(event) {\n            const newValue = this.tokens.join('');\n\n            this.$emit('update:modelValue', newValue);\n            this.$emit('change', {\n                originalEvent: event,\n                value: newValue\n            });\n        },\n        moveToPrev(event) {\n            let prevInput = this.findPrevInput(event.target);\n\n            if (prevInput) {\n                prevInput.focus();\n                prevInput.select();\n            }\n        },\n        moveToNext(event) {\n            let nextInput = this.findNextInput(event.target);\n\n            if (nextInput) {\n                nextInput.focus();\n                nextInput.select();\n            }\n        },\n        findNextInput(element) {\n            let nextElement = element.nextElementSibling;\n\n            if (!nextElement) return;\n\n            return nextElement.nodeName === 'INPUT' ? nextElement : this.findNextInput(nextElement);\n        },\n        findPrevInput(element) {\n            let prevElement = element.previousElementSibling;\n\n            if (!prevElement) return;\n\n            return prevElement.nodeName === 'INPUT' ? prevElement : this.findPrevInput(prevElement);\n        },\n        onFocus(event) {\n            event.target.select();\n            this.$emit('focus', event);\n        },\n        onBlur(event) {\n            this.$emit('blur', event);\n        },\n        onKeyDown(event) {\n            if (event.ctrlKey || event.metaKey) {\n                return;\n            }\n\n            switch (event.code) {\n                case 'ArrowLeft':\n                    this.moveToPrev(event);\n                    event.preventDefault();\n\n                    break;\n\n                case 'ArrowUp':\n                case 'ArrowDown':\n                    event.preventDefault();\n\n                    break;\n\n                case 'Backspace':\n                    if (event.target.value.length === 0) {\n                        this.moveToPrev(event);\n                        event.preventDefault();\n                    }\n\n                    break;\n\n                case 'ArrowRight':\n                    this.moveToNext(event);\n                    event.preventDefault();\n\n                    break;\n\n                case 'Enter':\n                case 'NumpadEnter':\n                case 'Tab':\n                    break;\n\n                default:\n                    if ((this.integerOnly && !(Number(event.key) >= 0 && Number(event.key) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {\n                        event.preventDefault();\n                    }\n\n                    break;\n            }\n        },\n        onPaste(event) {\n            let paste = event.clipboardData.getData('text');\n\n            if (paste.length) {\n                let pastedCode = paste.substring(0, this.length + 1);\n\n                if (!this.integerOnly || !isNaN(pastedCode)) {\n                    this.tokens = pastedCode.split('');\n                    this.updateModel(event);\n                }\n            }\n\n            event.preventDefault();\n        }\n    },\n    computed: {\n        inputMode() {\n            return this.integerOnly ? 'numeric' : 'text';\n        },\n        inputType() {\n            return this.mask ? 'password' : 'text';\n        }\n    },\n    components: {\n        OtpInputText: InputText\n    }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","type","invalid","Boolean","disabled","readonly","variant","String","tabindex","Number","length","mask","integerOnly","style","InputOtpStyle","provide","$pcInputOtp","$parentInstance","BaseInputOtp","inheritAttrs","emits","data","tokens","watch","immediate","handler","newValue","split","Array","methods","getTemplateAttrs","index","value","getTemplateEvents","_this","input","event","onInput","keydown","onKeyDown","focus","onFocus","blur","onBlur","paste","onPaste","getPTOptions","key","_ptm","ptmi","ptm","context","checked","target","updateModel","inputType","moveToPrev","moveToNext","join","$emit","originalEvent","prevInput","findPrevInput","select","nextInput","findNextInput","element","nextElement","nextElementSibling","nodeName","prevElement","previousElementSibling","ctrlKey","metaKey","code","preventDefault","clipboardData","getData","pastedCode","substring","isNaN","computed","inputMode","components","OtpInputText","InputText","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","_Fragment","_renderList","i","_renderSlot","$slots","events","$options","attrs","_createVNode","_component_OtpInputText","$data","inputmode","unstyled","$event","_cache","onKeydown","pt"],"mappings":"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"}