@haiilo/catalyst 10.28.2 → 10.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/catalyst/catalyst.css +3 -1
- package/dist/catalyst/catalyst.esm.js +1 -1
- package/dist/catalyst/catalyst.esm.js.map +1 -1
- package/dist/catalyst/index.esm.js +1 -1
- package/dist/catalyst/p-41a50f19.entry.js +10 -0
- package/dist/catalyst/p-41a50f19.entry.js.map +1 -0
- package/dist/catalyst/{p-e5aee21d.js → p-9500d6fb.js} +1 -1
- package/dist/catalyst/{p-e5aee21d.js.map → p-9500d6fb.js.map} +1 -1
- package/dist/catalyst/scss/core/_notification.scss +4 -1
- package/dist/catalyst/scss/utils/_elevation.mixins.scss +8 -2
- package/dist/cjs/cat-alert_30.cjs.entry.js +274 -180
- package/dist/cjs/cat-alert_30.cjs.entry.js.map +1 -1
- package/dist/cjs/catalyst.cjs.js +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{of-aaee31a6.js → of-958251e4.js} +1 -1
- package/dist/cjs/{of-aaee31a6.js.map → of-958251e4.js.map} +1 -1
- package/dist/collection/components/cat-button/cat-button.css +1 -1
- package/dist/collection/components/cat-date/cat-date.js +8 -7
- package/dist/collection/components/cat-date/cat-date.js.map +1 -1
- package/dist/collection/components/cat-date-inline/cat-date-inline.js +10 -8
- package/dist/collection/components/cat-date-inline/cat-date-inline.js.map +1 -1
- package/dist/collection/components/cat-date-inline/cat-date-locale.js +2 -4
- package/dist/collection/components/cat-date-inline/cat-date-locale.js.map +1 -1
- package/dist/collection/components/cat-datepicker/cat-datepicker.js +9 -8
- package/dist/collection/components/cat-datepicker/cat-datepicker.js.map +1 -1
- package/dist/collection/components/cat-dropdown/cat-dropdown.js +1 -1
- package/dist/collection/components/cat-input/cat-input.js +8 -4
- package/dist/collection/components/cat-input/cat-input.js.map +1 -1
- package/dist/collection/components/cat-select/cat-select.js +1 -1
- package/dist/collection/components/cat-textarea/cat-textarea.js +25 -3
- package/dist/collection/components/cat-textarea/cat-textarea.js.map +1 -1
- package/dist/collection/components/cat-time/cat-time.js +8 -7
- package/dist/collection/components/cat-time/cat-time.js.map +1 -1
- package/dist/collection/components/cat-tooltip/cat-tooltip.css +18 -9
- package/dist/collection/scss/core/_notification.scss +4 -1
- package/dist/collection/scss/utils/_elevation.mixins.scss +8 -2
- package/dist/components/cat-button2.js +1 -1
- package/dist/components/cat-button2.js.map +1 -1
- package/dist/components/cat-date-inline2.js +12 -12
- package/dist/components/cat-date-inline2.js.map +1 -1
- package/dist/components/cat-date.js +3 -3
- package/dist/components/cat-date.js.map +1 -1
- package/dist/components/cat-datepicker.js +4 -4
- package/dist/components/cat-datepicker.js.map +1 -1
- package/dist/components/cat-dropdown2.js +169 -118
- package/dist/components/cat-dropdown2.js.map +1 -1
- package/dist/components/cat-input2.js +7 -4
- package/dist/components/cat-input2.js.map +1 -1
- package/dist/components/cat-textarea.js +8 -3
- package/dist/components/cat-textarea.js.map +1 -1
- package/dist/components/cat-time.js +3 -3
- package/dist/components/cat-time.js.map +1 -1
- package/dist/components/cat-tooltip.js +1 -1
- package/dist/components/cat-tooltip.js.map +1 -1
- package/dist/components/floating-ui.dom.esm.js +67 -29
- package/dist/components/floating-ui.dom.esm.js.map +1 -1
- package/dist/components/loglevel.js.map +1 -1
- package/dist/esm/cat-alert_30.entry.js +274 -180
- package/dist/esm/cat-alert_30.entry.js.map +1 -1
- package/dist/esm/catalyst.js +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{of-acb1f3a9.js → of-e4ec2eb4.js} +1 -1
- package/dist/esm/{of-acb1f3a9.js.map → of-e4ec2eb4.js.map} +1 -1
- package/dist/types/components/cat-date/cat-date.d.ts +1 -1
- package/dist/types/components/cat-datepicker/cat-datepicker.d.ts +1 -1
- package/dist/types/components/cat-input/cat-input.d.ts +2 -0
- package/dist/types/components/cat-textarea/cat-textarea.d.ts +6 -0
- package/dist/types/components/cat-time/cat-time.d.ts +1 -1
- package/dist/types/components.d.ts +11 -3
- package/package.json +8 -8
- package/dist/catalyst/p-ee89e395.entry.js +0 -10
- package/dist/catalyst/p-ee89e395.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"cat-input2.js","mappings":"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","names":["Cleave","i18n"],"sources":["../node_modules/.pnpm/cleave.js@1.6.0/node_modules/cleave.js/dist/cleave-esm.js","src/components/cat-input/cat-input.scss?tag=cat-input&encapsulation=shadow","src/components/cat-input/cat-input.tsx"],"sourcesContent":["var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar NumeralFormatter = function (numeralDecimalMark,\n numeralIntegerScale,\n numeralDecimalScale,\n numeralThousandsGroupStyle,\n numeralPositiveOnly,\n stripLeadingZeroes,\n prefix,\n signBeforePrefix,\n tailPrefix,\n delimiter) {\n var owner = this;\n\n owner.numeralDecimalMark = numeralDecimalMark || '.';\n owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\n owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\n owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\n owner.numeralPositiveOnly = !!numeralPositiveOnly;\n owner.stripLeadingZeroes = stripLeadingZeroes !== false;\n owner.prefix = (prefix || prefix === '') ? prefix : '';\n owner.signBeforePrefix = !!signBeforePrefix;\n owner.tailPrefix = !!tailPrefix;\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n};\n\nNumeralFormatter.groupStyle = {\n thousand: 'thousand',\n lakh: 'lakh',\n wan: 'wan',\n none: 'none' \n};\n\nNumeralFormatter.prototype = {\n getRawValue: function (value) {\n return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\n },\n\n format: function (value) {\n var owner = this, parts, partSign, partSignAndPrefix, partInteger, partDecimal = '';\n\n // strip alphabet letters\n value = value.replace(/[A-Za-z]/g, '')\n // replace the first decimal mark with reserved placeholder\n .replace(owner.numeralDecimalMark, 'M')\n\n // strip non numeric letters except minus and \"M\"\n // this is to ensure prefix has been stripped\n .replace(/[^\\dM-]/g, '')\n\n // replace the leading minus with reserved placeholder\n .replace(/^\\-/, 'N')\n\n // strip the other minus sign (if present)\n .replace(/\\-/g, '')\n\n // replace the minus sign (if present)\n .replace('N', owner.numeralPositiveOnly ? '' : '-')\n\n // replace decimal mark\n .replace('M', owner.numeralDecimalMark);\n\n // strip any leading zeros\n if (owner.stripLeadingZeroes) {\n value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n }\n\n partSign = value.slice(0, 1) === '-' ? '-' : '';\n if (typeof owner.prefix != 'undefined') {\n if (owner.signBeforePrefix) {\n partSignAndPrefix = partSign + owner.prefix;\n } else {\n partSignAndPrefix = owner.prefix + partSign;\n }\n } else {\n partSignAndPrefix = partSign;\n }\n \n partInteger = value;\n\n if (value.indexOf(owner.numeralDecimalMark) >= 0) {\n parts = value.split(owner.numeralDecimalMark);\n partInteger = parts[0];\n partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\n }\n\n if(partSign === '-') {\n partInteger = partInteger.slice(1);\n }\n\n if (owner.numeralIntegerScale > 0) {\n partInteger = partInteger.slice(0, owner.numeralIntegerScale);\n }\n\n switch (owner.numeralThousandsGroupStyle) {\n case NumeralFormatter.groupStyle.lakh:\n partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.wan:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.thousand:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\n\n break;\n }\n\n if (owner.tailPrefix) {\n return partSign + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '') + owner.prefix;\n }\n\n return partSignAndPrefix + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\n }\n};\n\nvar NumeralFormatter_1 = NumeralFormatter;\n\nvar DateFormatter = function (datePattern, dateMin, dateMax) {\n var owner = this;\n\n owner.date = [];\n owner.blocks = [];\n owner.datePattern = datePattern;\n owner.dateMin = dateMin\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMin.length === 2) owner.dateMin.unshift(0);\n\n owner.dateMax = dateMax\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMax.length === 2) owner.dateMax.unshift(0);\n \n owner.initBlocks();\n};\n\nDateFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.datePattern.forEach(function (value) {\n if (value === 'Y') {\n owner.blocks.push(4);\n } else {\n owner.blocks.push(2);\n }\n });\n },\n\n getISOFormatDate: function () {\n var owner = this,\n date = owner.date;\n\n return date[2] ? (\n date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getValidatedDate: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.datePattern[index]) {\n case 'd':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 3) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 31) {\n sub = '31';\n }\n\n break;\n\n case 'm':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 1) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 12) {\n sub = '12';\n }\n\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedDateString(result);\n },\n\n getFixedDateString: function (value) {\n var owner = this, datePattern = owner.datePattern, date = [],\n dayIndex = 0, monthIndex = 0, yearIndex = 0,\n dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\n day, month, year, fullYearDone = false;\n\n // mm-dd || dd-mm\n if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\n dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\n monthStartIndex = 2 - dayStartIndex;\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\n date = this.getFixedDate(day, month, 0);\n }\n\n // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\n if (value.length === 8) {\n datePattern.forEach(function (type, index) {\n switch (type) {\n case 'd':\n dayIndex = index;\n break;\n case 'm':\n monthIndex = index;\n break;\n default:\n yearIndex = index;\n break;\n }\n });\n\n yearStartIndex = yearIndex * 2;\n dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\n monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\n\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = this.getFixedDate(day, month, year);\n }\n\n // mm-yy || yy-mm\n if (value.length === 4 && (datePattern[0] === 'y' || datePattern[1] === 'y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 2;\n yearStartIndex = 2 - monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 2), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 2).length === 2;\n\n date = [0, month, year];\n }\n\n // mm-yyyy || yyyy-mm\n if (value.length === 6 && (datePattern[0] === 'Y' || datePattern[1] === 'Y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 4;\n yearStartIndex = 2 - 0.5 * monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = [0, month, year];\n }\n\n date = owner.getRangeFixedDate(date);\n owner.date = date;\n\n var result = date.length === 0 ? value : datePattern.reduce(function (previous, current) {\n switch (current) {\n case 'd':\n return previous + (date[0] === 0 ? '' : owner.addLeadingZero(date[0]));\n case 'm':\n return previous + (date[1] === 0 ? '' : owner.addLeadingZero(date[1]));\n case 'y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], false) : '');\n case 'Y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], true) : '');\n }\n }, '');\n\n return result;\n },\n\n getRangeFixedDate: function (date) {\n var owner = this,\n datePattern = owner.datePattern,\n dateMin = owner.dateMin || [],\n dateMax = owner.dateMax || [];\n\n if (!date.length || (dateMin.length < 3 && dateMax.length < 3)) return date;\n\n if (\n datePattern.find(function(x) {\n return x.toLowerCase() === 'y';\n }) &&\n date[2] === 0\n ) return date;\n\n if (dateMax.length && (dateMax[2] < date[2] || (\n dateMax[2] === date[2] && (dateMax[1] < date[1] || (\n dateMax[1] === date[1] && dateMax[0] < date[0]\n ))\n ))) return dateMax;\n\n if (dateMin.length && (dateMin[2] > date[2] || (\n dateMin[2] === date[2] && (dateMin[1] > date[1] || (\n dateMin[1] === date[1] && dateMin[0] > date[0]\n ))\n ))) return dateMin;\n\n return date;\n },\n\n getFixedDate: function (day, month, year) {\n day = Math.min(day, 31);\n month = Math.min(month, 12);\n year = parseInt((year || 0), 10);\n\n if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\n day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\n }\n\n return [day, month, year];\n },\n\n isLeapYear: function (year) {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n },\n\n addLeadingZeroForYear: function (number, fullYearMode) {\n if (fullYearMode) {\n return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;\n }\n\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar DateFormatter_1 = DateFormatter;\n\nvar TimeFormatter = function (timePattern, timeFormat) {\n var owner = this;\n\n owner.time = [];\n owner.blocks = [];\n owner.timePattern = timePattern;\n owner.timeFormat = timeFormat;\n owner.initBlocks();\n};\n\nTimeFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.timePattern.forEach(function () {\n owner.blocks.push(2);\n });\n },\n\n getISOFormatTime: function () {\n var owner = this,\n time = owner.time;\n\n return time[2] ? (\n owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getTimeFormatOptions: function () {\n var owner = this;\n if (String(owner.timeFormat) === '12') {\n return {\n maxHourFirstDigit: 1,\n maxHours: 12,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n }\n\n return {\n maxHourFirstDigit: 2,\n maxHours: 23,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n },\n\n getValidatedTime: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n var timeFormatOptions = owner.getTimeFormatOptions();\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.timePattern[index]) {\n\n case 'h':\n if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) {\n sub = timeFormatOptions.maxHours + '';\n }\n\n break;\n\n case 'm':\n case 's':\n if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) {\n sub = timeFormatOptions.maxMinutes + '';\n }\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedTimeString(result);\n },\n\n getFixedTimeString: function (value) {\n var owner = this, timePattern = owner.timePattern, time = [],\n secondIndex = 0, minuteIndex = 0, hourIndex = 0,\n secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0,\n second, minute, hour;\n\n if (value.length === 6) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 's':\n secondIndex = index * 2;\n break;\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n secondStartIndex = secondIndex;\n\n second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10);\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n if (value.length === 4 && owner.timePattern.indexOf('s') < 0) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n\n second = 0;\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n owner.time = time;\n\n return time.length === 0 ? value : timePattern.reduce(function (previous, current) {\n switch (current) {\n case 's':\n return previous + owner.addLeadingZero(time[2]);\n case 'm':\n return previous + owner.addLeadingZero(time[1]);\n case 'h':\n return previous + owner.addLeadingZero(time[0]);\n }\n }, '');\n },\n\n getFixedTime: function (hour, minute, second) {\n second = Math.min(parseInt(second || 0, 10), 60);\n minute = Math.min(minute, 60);\n hour = Math.min(hour, 60);\n\n return [hour, minute, second];\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar TimeFormatter_1 = TimeFormatter;\n\nvar PhoneFormatter = function (formatter, delimiter) {\n var owner = this;\n\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\n owner.formatter = formatter;\n};\n\nPhoneFormatter.prototype = {\n setFormatter: function (formatter) {\n this.formatter = formatter;\n },\n\n format: function (phoneNumber) {\n var owner = this;\n\n owner.formatter.clear();\n\n // only keep number and +\n phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\n\n // strip non-leading +\n phoneNumber = phoneNumber.replace(/^\\+/, 'B').replace(/\\+/g, '').replace('B', '+');\n\n // strip delimiter\n phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\n\n var result = '', current, validated = false;\n\n for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\n current = owner.formatter.inputDigit(phoneNumber.charAt(i));\n\n // has ()- or space inside\n if (/[\\s()-]/g.test(current)) {\n result = current;\n\n validated = true;\n } else {\n if (!validated) {\n result = current;\n }\n // else: over length input\n // it turns to invalid number again\n }\n }\n\n // strip ()\n // e.g. US: 7161234567 returns (716) 123-4567\n result = result.replace(/[()]/g, '');\n // replace library delimiter with user customized delimiter\n result = result.replace(/[\\s-]/g, owner.delimiter);\n\n return result;\n }\n};\n\nvar PhoneFormatter_1 = PhoneFormatter;\n\nvar CreditCardDetector = {\n blocks: {\n uatp: [4, 5, 6],\n amex: [4, 6, 5],\n diners: [4, 6, 4],\n discover: [4, 4, 4, 4],\n mastercard: [4, 4, 4, 4],\n dankort: [4, 4, 4, 4],\n instapayment: [4, 4, 4, 4],\n jcb15: [4, 6, 5],\n jcb: [4, 4, 4, 4],\n maestro: [4, 4, 4, 4],\n visa: [4, 4, 4, 4],\n mir: [4, 4, 4, 4],\n unionPay: [4, 4, 4, 4],\n general: [4, 4, 4, 4]\n },\n\n re: {\n // starts with 1; 15 digits, not starts with 1800 (jcb card)\n uatp: /^(?!1800)1\\d{0,14}/,\n\n // starts with 34/37; 15 digits\n amex: /^3[47]\\d{0,13}/,\n\n // starts with 6011/65/644-649; 16 digits\n discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\n\n // starts with 300-305/309 or 36/38/39; 14 digits\n diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\n\n // starts with 51-55/2221–2720; 16 digits\n mastercard: /^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,\n\n // starts with 5019/4175/4571; 16 digits\n dankort: /^(5019|4175|4571)\\d{0,12}/,\n\n // starts with 637-639; 16 digits\n instapayment: /^63[7-9]\\d{0,13}/,\n\n // starts with 2131/1800; 15 digits\n jcb15: /^(?:2131|1800)\\d{0,11}/,\n\n // starts with 2131/1800/35; 16 digits\n jcb: /^(?:35\\d{0,2})\\d{0,12}/,\n\n // starts with 50/56-58/6304/67; 16 digits\n maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\n\n // starts with 22; 16 digits\n mir: /^220[0-4]\\d{0,12}/,\n\n // starts with 4; 16 digits\n visa: /^4\\d{0,15}/,\n\n // starts with 62/81; 16 digits\n unionPay: /^(62|81)\\d{0,14}/\n },\n\n getStrictBlocks: function (block) {\n var total = block.reduce(function (prev, current) {\n return prev + current;\n }, 0);\n\n return block.concat(19 - total);\n },\n\n getInfo: function (value, strictMode) {\n var blocks = CreditCardDetector.blocks,\n re = CreditCardDetector.re;\n\n // Some credit card can have up to 19 digits number.\n // Set strictMode to true will remove the 16 max-length restrain,\n // however, I never found any website validate card number like\n // this, hence probably you don't want to enable this option.\n strictMode = !!strictMode;\n\n for (var key in re) {\n if (re[key].test(value)) {\n var matchedBlocks = blocks[key];\n return {\n type: key,\n blocks: strictMode ? this.getStrictBlocks(matchedBlocks) : matchedBlocks\n };\n }\n }\n\n return {\n type: 'unknown',\n blocks: strictMode ? this.getStrictBlocks(blocks.general) : blocks.general\n };\n }\n};\n\nvar CreditCardDetector_1 = CreditCardDetector;\n\nvar Util = {\n noop: function () {\n },\n\n strip: function (value, re) {\n return value.replace(re, '');\n },\n\n getPostDelimiter: function (value, delimiter, delimiters) {\n // single delimiter\n if (delimiters.length === 0) {\n return value.slice(-delimiter.length) === delimiter ? delimiter : '';\n }\n\n // multiple delimiters\n var matchedDelimiter = '';\n delimiters.forEach(function (current) {\n if (value.slice(-current.length) === current) {\n matchedDelimiter = current;\n }\n });\n\n return matchedDelimiter;\n },\n\n getDelimiterREByDelimiter: function (delimiter) {\n return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\n },\n\n getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n // If cursor was at the end of value, just place it back.\n // Because new value could contain additional chars.\n if (oldValue.length === prevPos) {\n return newValue.length;\n }\n\n return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter ,delimiters);\n },\n\n getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n var oldRawValue, newRawValue, lengthOffset;\n\n oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);\n newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);\n lengthOffset = oldRawValue.length - newRawValue.length;\n\n return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;\n },\n\n stripDelimiters: function (value, delimiter, delimiters) {\n var owner = this;\n\n // single delimiter\n if (delimiters.length === 0) {\n var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\n\n return value.replace(delimiterRE, '');\n }\n\n // multiple delimiters\n delimiters.forEach(function (current) {\n current.split('').forEach(function (letter) {\n value = value.replace(owner.getDelimiterREByDelimiter(letter), '');\n });\n });\n\n return value;\n },\n\n headStr: function (str, length) {\n return str.slice(0, length);\n },\n\n getMaxLength: function (blocks) {\n return blocks.reduce(function (previous, current) {\n return previous + current;\n }, 0);\n },\n\n // strip prefix\n // Before type | After type | Return value\n // PEFIX-... | PEFIX-... | ''\n // PREFIX-123 | PEFIX-123 | 123\n // PREFIX-123 | PREFIX-23 | 23\n // PREFIX-123 | PREFIX-1234 | 1234\n getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix) {\n // No prefix\n if (prefixLength === 0) {\n return value;\n }\n\n // Value is prefix\n if (value === prefix && value !== '') {\n return '';\n }\n\n if (signBeforePrefix && (value.slice(0, 1) == '-')) {\n var prev = (prevResult.slice(0, 1) == '-') ? prevResult.slice(1) : prevResult;\n return '-' + this.getPrefixStrippedValue(value.slice(1), prefix, prefixLength, prev, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix);\n }\n\n // Pre result prefix string does not match pre-defined prefix\n if (prevResult.slice(0, prefixLength) !== prefix && !tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n } else if (prevResult.slice(-prefixLength) !== prefix && tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n }\n\n var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters);\n\n // New value has issue, someone typed in between prefix letters\n // Revert to pre value\n if (value.slice(0, prefixLength) !== prefix && !tailPrefix) {\n return prevValue.slice(prefixLength);\n } else if (value.slice(-prefixLength) !== prefix && tailPrefix) {\n return prevValue.slice(0, -prefixLength - 1);\n }\n\n // No issue, strip prefix for new value\n return tailPrefix ? value.slice(0, -prefixLength) : value.slice(prefixLength);\n },\n\n getFirstDiffIndex: function (prev, current) {\n var index = 0;\n\n while (prev.charAt(index) === current.charAt(index)) {\n if (prev.charAt(index++) === '') {\n return -1;\n }\n }\n\n return index;\n },\n\n getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {\n var result = '',\n multipleDelimiters = delimiters.length > 0,\n currentDelimiter = '';\n\n // no options, normal input\n if (blocksLength === 0) {\n return value;\n }\n\n blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n rest = value.slice(length);\n\n if (multipleDelimiters) {\n currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;\n } else {\n currentDelimiter = delimiter;\n }\n\n if (delimiterLazyShow) {\n if (index > 0) {\n result += currentDelimiter;\n }\n\n result += sub;\n } else {\n result += sub;\n\n if (sub.length === length && index < blocksLength - 1) {\n result += currentDelimiter;\n }\n }\n\n // update remaining string\n value = rest;\n }\n });\n\n return result;\n },\n\n // move cursor to the end\n // the first time user focuses on an input with prefix\n fixPrefixCursor: function (el, prefix, delimiter, delimiters) {\n if (!el) {\n return;\n }\n\n var val = el.value,\n appendix = delimiter || (delimiters[0] || ' ');\n\n if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) <= val.length) {\n return;\n }\n\n var len = val.length * 2;\n\n // set timeout to avoid blink\n setTimeout(function () {\n el.setSelectionRange(len, len);\n }, 1);\n },\n\n // Check if input field is fully selected\n checkFullSelection: function(value) {\n try {\n var selection = window.getSelection() || document.getSelection() || {};\n return selection.toString().length === value.length;\n } catch (ex) {\n // Ignore\n }\n\n return false;\n },\n\n setSelection: function (element, position, doc) {\n if (element !== this.getActiveElement(doc)) {\n return;\n }\n\n // cursor is already in the end\n if (element && element.value.length <= position) {\n return;\n }\n\n if (element.createTextRange) {\n var range = element.createTextRange();\n\n range.move('character', position);\n range.select();\n } else {\n try {\n element.setSelectionRange(position, position);\n } catch (e) {\n // eslint-disable-next-line\n console.warn('The input element type does not support selection');\n }\n }\n },\n\n getActiveElement: function(parent) {\n var activeElement = parent.activeElement;\n if (activeElement && activeElement.shadowRoot) {\n return this.getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n },\n\n isAndroid: function () {\n return navigator && /android/i.test(navigator.userAgent);\n },\n\n // On Android chrome, the keyup and keydown events\n // always return key code 229 as a composition that\n // buffers the user’s keystrokes\n // see https://github.com/nosir/cleave.js/issues/147\n isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\n if (!this.isAndroid() || !lastInputValue || !currentInputValue) {\n return false;\n }\n\n return currentInputValue === lastInputValue.slice(0, -1);\n }\n};\n\nvar Util_1 = Util;\n\n/**\n * Props Assignment\n *\n * Separate this, so react module can share the usage\n */\nvar DefaultProperties = {\n // Maybe change to object-assign\n // for now just keep it as simple\n assign: function (target, opts) {\n target = target || {};\n opts = opts || {};\n\n // credit card\n target.creditCard = !!opts.creditCard;\n target.creditCardStrictMode = !!opts.creditCardStrictMode;\n target.creditCardType = '';\n target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\n\n // phone\n target.phone = !!opts.phone;\n target.phoneRegionCode = opts.phoneRegionCode || 'AU';\n target.phoneFormatter = {};\n\n // time\n target.time = !!opts.time;\n target.timePattern = opts.timePattern || ['h', 'm', 's'];\n target.timeFormat = opts.timeFormat || '24';\n target.timeFormatter = {};\n\n // date\n target.date = !!opts.date;\n target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\n target.dateMin = opts.dateMin || '';\n target.dateMax = opts.dateMax || '';\n target.dateFormatter = {};\n\n // numeral\n target.numeral = !!opts.numeral;\n target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\n target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\n target.numeralDecimalMark = opts.numeralDecimalMark || '.';\n target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\n target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\n target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;\n target.signBeforePrefix = !!opts.signBeforePrefix;\n target.tailPrefix = !!opts.tailPrefix;\n\n // others\n target.swapHiddenInput = !!opts.swapHiddenInput;\n \n target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\n\n target.uppercase = !!opts.uppercase;\n target.lowercase = !!opts.lowercase;\n\n target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');\n target.noImmediatePrefix = !!opts.noImmediatePrefix;\n target.prefixLength = target.prefix.length;\n target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\n target.copyDelimiter = !!opts.copyDelimiter;\n\n target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\n\n target.delimiter =\n (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\n (opts.date ? '/' :\n (opts.time ? ':' :\n (opts.numeral ? ',' :\n (opts.phone ? ' ' :\n ' '))));\n target.delimiterLength = target.delimiter.length;\n target.delimiterLazyShow = !!opts.delimiterLazyShow;\n target.delimiters = opts.delimiters || [];\n\n target.blocks = opts.blocks || [];\n target.blocksLength = target.blocks.length;\n\n target.root = (typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window;\n target.document = opts.document || target.root.document;\n\n target.maxLength = 0;\n\n target.backspace = false;\n target.result = '';\n\n target.onValueChanged = opts.onValueChanged || (function () {});\n\n return target;\n }\n};\n\nvar DefaultProperties_1 = DefaultProperties;\n\n/**\n * Construct a new Cleave instance by passing the configuration object\n *\n * @param {String | HTMLElement} element\n * @param {Object} opts\n */\nvar Cleave = function (element, opts) {\n var owner = this;\n var hasMultipleElements = false;\n\n if (typeof element === 'string') {\n owner.element = document.querySelector(element);\n hasMultipleElements = document.querySelectorAll(element).length > 1;\n } else {\n if (typeof element.length !== 'undefined' && element.length > 0) {\n owner.element = element[0];\n hasMultipleElements = element.length > 1;\n } else {\n owner.element = element;\n }\n }\n\n if (!owner.element) {\n throw new Error('[cleave.js] Please check the element');\n }\n\n if (hasMultipleElements) {\n try {\n // eslint-disable-next-line\n console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.');\n } catch (e) {\n // Old IE\n }\n }\n\n opts.initValue = owner.element.value;\n\n owner.properties = Cleave.DefaultProperties.assign({}, opts);\n\n owner.init();\n};\n\nCleave.prototype = {\n init: function () {\n var owner = this, pps = owner.properties;\n\n // no need to use this lib\n if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\n owner.onInput(pps.initValue);\n\n return;\n }\n\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\n owner.isAndroid = Cleave.Util.isAndroid();\n owner.lastInputValue = '';\n owner.isBackward = '';\n\n owner.onChangeListener = owner.onChange.bind(owner);\n owner.onKeyDownListener = owner.onKeyDown.bind(owner);\n owner.onFocusListener = owner.onFocus.bind(owner);\n owner.onCutListener = owner.onCut.bind(owner);\n owner.onCopyListener = owner.onCopy.bind(owner);\n\n owner.initSwapHiddenInput();\n\n owner.element.addEventListener('input', owner.onChangeListener);\n owner.element.addEventListener('keydown', owner.onKeyDownListener);\n owner.element.addEventListener('focus', owner.onFocusListener);\n owner.element.addEventListener('cut', owner.onCutListener);\n owner.element.addEventListener('copy', owner.onCopyListener);\n\n\n owner.initPhoneFormatter();\n owner.initDateFormatter();\n owner.initTimeFormatter();\n owner.initNumeralFormatter();\n\n // avoid touch input field if value is null\n // otherwise Firefox will add red box-shadow for <input required />\n if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {\n owner.onInput(pps.initValue);\n }\n },\n\n initSwapHiddenInput: function () {\n var owner = this, pps = owner.properties;\n if (!pps.swapHiddenInput) return;\n\n var inputFormatter = owner.element.cloneNode(true);\n owner.element.parentNode.insertBefore(inputFormatter, owner.element);\n\n owner.elementSwapHidden = owner.element;\n owner.elementSwapHidden.type = 'hidden';\n\n owner.element = inputFormatter;\n owner.element.id = '';\n },\n\n initNumeralFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.numeral) {\n return;\n }\n\n pps.numeralFormatter = new Cleave.NumeralFormatter(\n pps.numeralDecimalMark,\n pps.numeralIntegerScale,\n pps.numeralDecimalScale,\n pps.numeralThousandsGroupStyle,\n pps.numeralPositiveOnly,\n pps.stripLeadingZeroes,\n pps.prefix,\n pps.signBeforePrefix,\n pps.tailPrefix,\n pps.delimiter\n );\n },\n\n initTimeFormatter: function() {\n var owner = this, pps = owner.properties;\n\n if (!pps.time) {\n return;\n }\n\n pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat);\n pps.blocks = pps.timeFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initDateFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.date) {\n return;\n }\n\n pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern, pps.dateMin, pps.dateMax);\n pps.blocks = pps.dateFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initPhoneFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.phone) {\n return;\n }\n\n // Cleave.AsYouTypeFormatter should be provided by\n // external google closure lib\n try {\n pps.phoneFormatter = new Cleave.PhoneFormatter(\n new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\n pps.delimiter\n );\n } catch (ex) {\n throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\n }\n },\n\n onKeyDown: function (event) {\n var owner = this,\n charCode = event.which || event.keyCode;\n\n owner.lastInputValue = owner.element.value;\n owner.isBackward = charCode === 8;\n },\n\n onChange: function (event) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n owner.isBackward = owner.isBackward || event.inputType === 'deleteContentBackward';\n\n var postDelimiter = Util.getPostDelimiter(owner.lastInputValue, pps.delimiter, pps.delimiters);\n\n if (owner.isBackward && postDelimiter) {\n pps.postDelimiterBackspace = postDelimiter;\n } else {\n pps.postDelimiterBackspace = false;\n }\n\n this.onInput(this.element.value);\n },\n\n onFocus: function () {\n var owner = this,\n pps = owner.properties;\n owner.lastInputValue = owner.element.value;\n\n if (pps.prefix && pps.noImmediatePrefix && !owner.element.value) {\n this.onInput(pps.prefix);\n }\n\n Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);\n },\n\n onCut: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n this.onInput('');\n },\n\n onCopy: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n },\n\n copyClipboardData: function (e) {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n inputValue = owner.element.value,\n textToCopy = '';\n\n if (!pps.copyDelimiter) {\n textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\n } else {\n textToCopy = inputValue;\n }\n\n try {\n if (e.clipboardData) {\n e.clipboardData.setData('Text', textToCopy);\n } else {\n window.clipboardData.setData('Text', textToCopy);\n }\n\n e.preventDefault();\n } catch (ex) {\n // empty\n }\n },\n\n onInput: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n // case 1: delete one more character \"4\"\n // 1234*| -> hit backspace -> 123|\n // case 2: last character is not delimiter which is:\n // 12|34* -> hit backspace -> 1|34*\n // note: no need to apply this for numeral mode\n var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters);\n if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) {\n value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length);\n }\n\n // phone formatter\n if (pps.phone) {\n if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\n pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);\n } else {\n pps.result = pps.phoneFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // numeral formatter\n if (pps.numeral) {\n // Do not show prefix when noImmediatePrefix is specified\n // This mostly because we need to show user the native input placeholder\n if (pps.prefix && pps.noImmediatePrefix && value.length === 0) {\n pps.result = '';\n } else {\n pps.result = pps.numeralFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // date\n if (pps.date) {\n value = pps.dateFormatter.getValidatedDate(value);\n }\n\n // time\n if (pps.time) {\n value = pps.timeFormatter.getValidatedTime(value);\n }\n\n // strip delimiters\n value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\n\n // strip prefix\n value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n\n // strip non-numeric characters\n value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\n\n // convert case\n value = pps.uppercase ? value.toUpperCase() : value;\n value = pps.lowercase ? value.toLowerCase() : value;\n\n // prevent from showing prefix when no immediate option enabled with empty input value\n if (pps.prefix) {\n if (pps.tailPrefix) {\n value = value + pps.prefix;\n } else {\n value = pps.prefix + value;\n }\n\n\n // no blocks specified, no need to do formatting\n if (pps.blocksLength === 0) {\n pps.result = value;\n owner.updateValueState();\n\n return;\n }\n }\n\n // update credit card props\n if (pps.creditCard) {\n owner.updateCreditCardPropsByValue(value);\n }\n\n // strip over length characters\n value = Util.headStr(value, pps.maxLength);\n\n // apply blocks\n pps.result = Util.getFormattedValue(\n value,\n pps.blocks, pps.blocksLength,\n pps.delimiter, pps.delimiters, pps.delimiterLazyShow\n );\n\n owner.updateValueState();\n },\n\n updateCreditCardPropsByValue: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util,\n creditCardInfo;\n\n // At least one of the first 4 characters has changed\n if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\n return;\n }\n\n creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\n\n pps.blocks = creditCardInfo.blocks;\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Util.getMaxLength(pps.blocks);\n\n // credit card type changed\n if (pps.creditCardType !== creditCardInfo.type) {\n pps.creditCardType = creditCardInfo.type;\n\n pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\n }\n },\n\n updateValueState: function () {\n var owner = this,\n Util = Cleave.Util,\n pps = owner.properties;\n\n if (!owner.element) {\n return;\n }\n\n var endPos = owner.element.selectionEnd;\n var oldValue = owner.element.value;\n var newValue = pps.result;\n\n endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);\n\n // fix Android browser type=\"text\" input field\n // cursor not jumping issue\n if (owner.isAndroid) {\n window.setTimeout(function () {\n owner.element.value = newValue;\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n }, 1);\n\n return;\n }\n\n owner.element.value = newValue;\n if (pps.swapHiddenInput) owner.elementSwapHidden.value = owner.getRawValue();\n\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n },\n\n callOnValueChanged: function () {\n var owner = this,\n pps = owner.properties;\n\n pps.onValueChanged.call(owner, {\n target: {\n name: owner.element.name,\n value: pps.result,\n rawValue: owner.getRawValue()\n }\n });\n },\n\n setPhoneRegionCode: function (phoneRegionCode) {\n var owner = this, pps = owner.properties;\n\n pps.phoneRegionCode = phoneRegionCode;\n owner.initPhoneFormatter();\n owner.onChange();\n },\n\n setRawValue: function (value) {\n var owner = this, pps = owner.properties;\n\n value = value !== undefined && value !== null ? value.toString() : '';\n\n if (pps.numeral) {\n value = value.replace('.', pps.numeralDecimalMark);\n }\n\n pps.postDelimiterBackspace = false;\n\n owner.element.value = value;\n owner.onInput(value);\n },\n\n getRawValue: function () {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n rawValue = owner.element.value;\n\n if (pps.rawValueTrimPrefix) {\n rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n }\n\n if (pps.numeral) {\n rawValue = pps.numeralFormatter.getRawValue(rawValue);\n } else {\n rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\n }\n\n return rawValue;\n },\n\n getISOFormatDate: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.date ? pps.dateFormatter.getISOFormatDate() : '';\n },\n\n getISOFormatTime: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.time ? pps.timeFormatter.getISOFormatTime() : '';\n },\n\n getFormattedValue: function () {\n return this.element.value;\n },\n\n destroy: function () {\n var owner = this;\n\n owner.element.removeEventListener('input', owner.onChangeListener);\n owner.element.removeEventListener('keydown', owner.onKeyDownListener);\n owner.element.removeEventListener('focus', owner.onFocusListener);\n owner.element.removeEventListener('cut', owner.onCutListener);\n owner.element.removeEventListener('copy', owner.onCopyListener);\n },\n\n toString: function () {\n return '[Cleave Object]';\n }\n};\n\nCleave.NumeralFormatter = NumeralFormatter_1;\nCleave.DateFormatter = DateFormatter_1;\nCleave.TimeFormatter = TimeFormatter_1;\nCleave.PhoneFormatter = PhoneFormatter_1;\nCleave.CreditCardDetector = CreditCardDetector_1;\nCleave.Util = Util_1;\nCleave.DefaultProperties = DefaultProperties_1;\n\n// for angular directive\n((typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window)['Cleave'] = Cleave;\n\n// CommonJS\nvar Cleave_1 = Cleave;\n\nexport default Cleave_1;\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n@use 'utils/color';\n@use '_snippets/form-label';\n\n:host {\n display: flex;\n @include cat-body('m', null);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.input-field,\n.input-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n flex: 1 1 auto;\n}\n\n.input-field.input-horizontal {\n flex-direction: row;\n gap: 1rem;\n}\n\n.input-wrapper {\n flex: 1 1 auto;\n display: flex;\n align-items: stretch;\n gap: 0.75rem;\n padding: 0 0.75rem;\n height: form-label.$cat-input-height;\n overflow: hidden;\n background: cat-token('color.ui.background.input');\n border-radius: cat-border-radius('m');\n box-shadow: inset 0 0 0 1px rgb(var(--border-color));\n transition: box-shadow cat-token('time.transition.s') linear;\n --border-color: #{cat-token('color.ui.border.dark', $wrap: false)};\n\n &.input-round {\n border-radius: 10rem;\n }\n\n &.input-readonly {\n pointer-events: none;\n }\n\n &.input-disabled {\n background: cat-token('color.ui.background.muted');\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &:not(.input-disabled):hover {\n box-shadow:\n inset 0 0 0 1px rgb(var(--border-color)),\n 0 0 0 1px rgb(var(--border-color));\n }\n\n &:focus-within {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: -1px;\n\n &:has(.clearable:focus) {\n outline: none;\n }\n }\n\n &.input-invalid {\n --border-color: #{cat-token('color.theme.danger.bg', 0.2, $wrap: false)};\n }\n\n /* stylelint-disable property-no-vendor-prefix */\n &:has(input:-webkit-autofill) {\n &,\n &:hover,\n &:focus {\n background-color: cat-token('color.ui.background.inputAutofill');\n }\n }\n /* stylelint-enable property-no-vendor-prefix */\n}\n\n.text-prefix,\n.text-suffix {\n display: inline-flex;\n align-items: center;\n @include cat-select(none);\n color: cat-token('color.ui.font.muted');\n}\n\n.text-prefix {\n border-right: 1px solid cat-token('color.ui.border.dark');\n padding-right: 0.75rem;\n}\n\n.text-suffix {\n border-left: 1px solid cat-token('color.ui.border.dark');\n padding-left: 0.75rem;\n}\n\n.icon-loading,\n.icon-prefix,\n.icon-suffix {\n align-self: center;\n}\n\n.input-outer-wrapper {\n display: flex;\n}\n\n.input-inner-wrapper {\n display: flex;\n align-items: center;\n position: relative;\n flex: 1 1 auto;\n}\n\ninput {\n font: inherit;\n margin: 0;\n padding: 0;\n width: 100%;\n min-width: 0;\n border: none;\n outline: none;\n background: none;\n @include cat-ellipsis;\n\n .input-disabled & {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &.has-clearable,\n &.has-toggle-password {\n padding-right: 1.5rem;\n }\n\n &.has-clearable.has-toggle-password {\n padding-right: 3.5rem;\n }\n\n &::placeholder {\n color: cat-token('color.ui.font.muted');\n }\n\n /* stylelint-disable property-no-vendor-prefix */\n &:-webkit-autofill {\n &,\n &:hover,\n &:focus {\n -webkit-box-shadow: 0 0 0 9999px cat-token('color.ui.background.inputAutofill') inset;\n }\n }\n /* stylelint-enable property-no-vendor-prefix */\n}\n\n.clearable {\n position: absolute;\n top: calc(50% - 1rem);\n right: -0.5rem;\n}\n\n.toggle-password {\n position: absolute;\n top: calc(50% - 1rem);\n right: -0.5rem;\n\n .has-clearable ~ & {\n right: 1.5rem;\n }\n}\n\n// ----- date- & timepicker\n\n:host(.cat-date-input),\n:host(.cat-time-input) {\n .input-wrapper {\n z-index: 1;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport Cleave from 'cleave.js';\nimport type { CleaveOptions } from 'cleave.js/options';\nimport { coerceBoolean, coerceNumber } from '../../utils/coerce';\nimport { CatFormHint, ErrorMap } from '../cat-form-hint/cat-form-hint';\nimport { catI18nRegistry as i18n } from '../cat-i18n/cat-i18n-registry';\nimport { InputType } from './input-type';\n\nlet nextUniqueId = 0;\n\n/**\n * Inputs are used to allow users to provide text input when the expected input\n * is short. As well as plain text, Input supports various types of text,\n * including passwords and numbers.\n *\n * @slot hint - Optional hint element to be displayed with the input.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The native label element.\n * @part input - The native input element.\n * @part prefix - The text prefix.\n * @part suffix - The text suffix.\n */\n@Component({\n tag: 'cat-input',\n styleUrl: 'cat-input.scss',\n shadow: {\n delegatesFocus: true\n }\n})\nexport class CatInput {\n private readonly _id = `cat-input-${nextUniqueId++}`;\n private get id() {\n return this.identifier || this._id;\n }\n\n private input!: HTMLInputElement;\n private errorMapSrc?: ErrorMap | true;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n @State() hasSlottedHint = false;\n\n @State() isPasswordShown = false;\n\n @State() errorMap?: ErrorMap | true;\n\n /**\n * Whether the label need a marker to shown if the input is required or optional.\n */\n @Prop() requiredMarker?: 'none' | 'required' | 'optional' | 'none!' | 'optional!' | 'required!' = 'optional';\n\n /**\n * Whether the label is on top or left.\n */\n @Prop() horizontal = false;\n\n /**\n * Hint for form autofill feature.\n */\n @Prop() autoComplete?: string;\n\n /**\n * Whether the input should show a clear button.\n */\n @Prop() clearable = false;\n\n /**\n * Whether the input should show a password toggle button for password inputs.\n */\n @Prop() togglePassword = false;\n\n /**\n * Whether the input is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Displays the input in a loading state with a spinner.\n */\n @Prop() loading = false;\n\n /**\n * Optional hint text(s) to be displayed with the input.\n */\n @Prop() hint?: string | string[];\n\n /**\n * The name of an icon to be displayed in the input.\n */\n @Prop() icon?: string;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * A unique identifier for the input.\n */\n @Prop() identifier?: string;\n\n /**\n * The label for the input.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A maximum value for numeric values.\n */\n @Prop() max?: number | string;\n\n /**\n * A maximum length (number of characters) for textual values.\n */\n @Prop() maxLength?: number;\n\n /**\n * A minimum value for numeric values.\n */\n @Prop() min?: number | string;\n\n /**\n * A minimum length (number of characters) for textual values.\n */\n @Prop() minLength?: number;\n\n /**\n * The name of the form control. Submitted with the form as part of a name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * The placeholder text to display within the input.\n */\n @Prop() placeholder?: string;\n\n /**\n * A textual prefix to be displayed in the input.\n */\n @Prop() textPrefix?: string;\n\n /**\n * A textual suffix to be displayed in the input.\n */\n @Prop() textSuffix?: string;\n\n /**\n * The value is not editable.\n */\n @Prop() readonly = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * Use round input edges.\n */\n @Prop() round = false;\n\n /**\n * Type of form control.\n */\n @Prop() type: InputType = 'text';\n\n /**\n * The value of the control.\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * The validation errors for this input. Will render a hint under the input\n * with the translated error message(s) `error.${key}`. If an object is\n * passed, the keys will be used as error keys and the values translation\n * parameters.\n * If the value is `true`, the input will be marked as invalid without any\n * hints under the input.\n */\n @Prop() errors?: boolean | string[] | ErrorMap;\n\n /**\n * Fine-grained control over when the errors are shown. Can be `false` to\n * never show errors, `true` to show errors on blur, or a number to show\n * errors change with the given delay in milliseconds or immediately on blur.\n */\n @Prop() errorUpdate: boolean | number = 0;\n\n /**\n * Attributes that will be added to the native HTML input element.\n */\n @Prop() nativeAttributes?: { [key: string]: string };\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter<string>;\n\n /**\n * Emitted when the input received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillLoad(): void {\n this.onErrorsChanged(this.errors, undefined, false);\n }\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n this.hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n }\n\n /**\n * Programmatically move focus to the input. Use this method instead of\n * `input.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async doFocus(options?: FocusOptions): Promise<void> {\n // hack to make datepicker inputs focusable. The datepicker hides the input\n // element and dynamically creates a sibling. We need to find the new input\n // element and focus it instead.\n const input = this.input.type === 'hidden' ? this.findSiblingInput(this.input.nextSibling) : this.input;\n input?.focus(options);\n }\n\n /**\n * Programmatically remove focus from the input. Use this method instead of\n * `input.blur()`.\n */\n @Method()\n async doBlur(): Promise<void> {\n this.input.blur();\n }\n\n /**\n * Clear the input.\n */\n @Method()\n async clear(): Promise<void> {\n this.value = '';\n this.catChange.emit(this.value);\n }\n\n /**\n * Adds a Cleave.js mask to the input.\n *\n * @param options The Cleave.js options.\n */\n @Method()\n async mask(options: CleaveOptions): Promise<void> {\n new Cleave(this.input, options);\n }\n\n @Watch('errors')\n onErrorsChanged(newValue?: boolean | string[] | ErrorMap, _oldValue?: unknown, update: boolean = true) {\n if (!coerceBoolean(this.errorUpdate)) {\n this.errorMap = undefined;\n } else {\n this.errorMapSrc = Array.isArray(newValue)\n ? (newValue as string[]).reduce((acc, err) => ({ ...acc, [err]: undefined }), {})\n : newValue || undefined;\n if (update) {\n this.showErrorsIfTimeout() || this.showErrorsIfNoFocus();\n }\n }\n }\n\n render() {\n this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;\n return (\n <div\n class={{\n 'input-field': true,\n 'input-horizontal': this.horizontal\n }}\n >\n <div class={{ 'label-container': true, hidden: this.labelHidden }}>\n {(this.hasSlottedLabel || this.label) && (\n <label htmlFor={this.id} part=\"label\">\n <span class=\"label-wrapper\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n <div class=\"label-metadata\">\n {!this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (\n <span class=\"label-optional\" aria-hidden=\"true\">\n ({i18n.t('input.optional')})\n </span>\n )}\n {this.required && this.requiredMarker?.startsWith('required') && (\n <span class=\"label-optional\" aria-hidden=\"true\">\n ({i18n.t('input.required')})\n </span>\n )}\n {this.maxLength && (\n <div class=\"label-character-count\" aria-hidden=\"true\">\n {this.value?.toString().length ?? 0}/{this.maxLength}\n </div>\n )}\n </div>\n </span>\n </label>\n )}\n </div>\n <div class=\"input-container\">\n <div class=\"input-outer-wrapper\">\n <div\n class={{\n 'input-wrapper': true,\n 'input-round': this.round,\n 'input-readonly': this.readonly,\n 'input-disabled': this.disabled,\n 'input-invalid': this.invalid\n }}\n onClick={() => this.input.focus()}\n >\n {this.textPrefix && (\n <span class=\"text-prefix\" part=\"prefix\">\n {this.textPrefix}\n </span>\n )}\n {this.icon && !this.iconRight && (\n <cat-icon icon={this.icon} class=\"icon-prefix\" size=\"l\" onClick={() => this.doFocus()}></cat-icon>\n )}\n <div class=\"input-inner-wrapper\">\n <input\n {...this.nativeAttributes}\n part=\"input\"\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n class={{\n 'has-clearable': this.clearable && !this.disabled && !this.readonly && !!this.value,\n 'has-toggle-password': this.togglePassword && !this.disabled && !this.readonly && !!this.value\n }}\n autocomplete={this.autoComplete}\n disabled={this.disabled}\n max={this.max}\n maxlength={this.maxLength}\n min={this.min}\n minlength={this.minLength}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n type={this.isPasswordShown ? 'text' : this.type}\n value={this.value}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n aria-invalid={this.invalid ? 'true' : undefined}\n aria-describedby={this.hasHint ? this.id + '-hint' : undefined}\n ></input>\n {this.clearable && !this.disabled && !this.readonly && this.value && (\n <cat-button\n class=\"clearable\"\n icon=\"$cat:input-close\"\n icon-only=\"true\"\n size=\"s\"\n variant=\"text\"\n a11y-label={i18n.t('input.clear')}\n onClick={this.clear.bind(this)}\n data-dropdown-no-close\n ></cat-button>\n )}\n {this.togglePassword && !this.disabled && !this.readonly && this.value && (\n <cat-button\n class=\"toggle-password\"\n icon={this.isPasswordShown ? '$cat:input-password-hide' : '$cat:input-password-show'}\n icon-only=\"true\"\n size=\"s\"\n variant=\"text\"\n a11y-label={i18n.t(this.isPasswordShown ? 'input.hidePassword' : 'input.showPassword')}\n onClick={this.doTogglePassword.bind(this)}\n ></cat-button>\n )}\n </div>\n {this.loading && <cat-spinner size=\"m\" class=\"icon-loading\"></cat-spinner>}\n {!this.invalid && this.icon && this.iconRight && (\n <cat-icon icon={this.icon} class=\"icon-suffix\" size=\"l\" onClick={() => this.doFocus()}></cat-icon>\n )}\n {this.invalid && (\n <cat-icon icon=\"$cat:input-error\" class=\"icon-suffix cat-text-danger\" size=\"l\"></cat-icon>\n )}\n {this.textSuffix && (\n <span class=\"text-suffix\" part=\"suffix\">\n {this.textSuffix}\n </span>\n )}\n </div>\n <slot name=\"addon\"></slot>\n </div>\n {this.hasHint && (\n <CatFormHint\n id={this.id}\n hint={this.hint}\n slottedHint={this.hasSlottedHint && <slot name=\"hint\"></slot>}\n errorMap={this.errorMap}\n />\n )}\n </div>\n </div>\n );\n }\n\n private get hasHint() {\n return !!this.hint || !!this.hasSlottedHint || this.invalid;\n }\n\n private get invalid() {\n return this.errorMap === true || !!Object.keys(this.errorMap || {}).length;\n }\n\n private onInput() {\n this.value = this.input.value;\n this.catChange.emit(this.value);\n this.showErrorsIfTimeout();\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n if (coerceBoolean(this.errorUpdate)) {\n this.showErrors();\n }\n }\n\n private doTogglePassword() {\n this.isPasswordShown = !this.isPasswordShown;\n }\n\n private showErrors() {\n this.errorMap = this.errorMapSrc;\n }\n\n private errorUpdateTimeoutId?: number;\n private showErrorsIfTimeout() {\n const errorUpdate = coerceNumber(this.errorUpdate, null);\n if (errorUpdate !== null) {\n typeof this.errorUpdateTimeoutId === 'number' && window.clearTimeout(this.errorUpdateTimeoutId);\n this.errorUpdateTimeoutId = window.setTimeout(() => this.showErrors(), errorUpdate);\n return true;\n }\n return false;\n }\n\n private showErrorsIfNoFocus() {\n const hasFocus = document.activeElement === this.hostElement || document.activeElement === this.input;\n if (!hasFocus) {\n this.showErrors();\n }\n }\n\n private findSiblingInput(node: Node | null): HTMLInputElement | undefined {\n if (node instanceof HTMLInputElement) {\n return node;\n } else if (node?.nextSibling) {\n return this.findSiblingInput(node.nextSibling);\n }\n return undefined;\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"cat-input2.js","mappings":"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","names":["Cleave","i18n"],"sources":["../node_modules/.pnpm/cleave.js@1.6.0/node_modules/cleave.js/dist/cleave-esm.js","src/components/cat-input/cat-input.scss?tag=cat-input&encapsulation=shadow","src/components/cat-input/cat-input.tsx"],"sourcesContent":["var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar NumeralFormatter = function (numeralDecimalMark,\n numeralIntegerScale,\n numeralDecimalScale,\n numeralThousandsGroupStyle,\n numeralPositiveOnly,\n stripLeadingZeroes,\n prefix,\n signBeforePrefix,\n tailPrefix,\n delimiter) {\n var owner = this;\n\n owner.numeralDecimalMark = numeralDecimalMark || '.';\n owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\n owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\n owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\n owner.numeralPositiveOnly = !!numeralPositiveOnly;\n owner.stripLeadingZeroes = stripLeadingZeroes !== false;\n owner.prefix = (prefix || prefix === '') ? prefix : '';\n owner.signBeforePrefix = !!signBeforePrefix;\n owner.tailPrefix = !!tailPrefix;\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n};\n\nNumeralFormatter.groupStyle = {\n thousand: 'thousand',\n lakh: 'lakh',\n wan: 'wan',\n none: 'none' \n};\n\nNumeralFormatter.prototype = {\n getRawValue: function (value) {\n return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\n },\n\n format: function (value) {\n var owner = this, parts, partSign, partSignAndPrefix, partInteger, partDecimal = '';\n\n // strip alphabet letters\n value = value.replace(/[A-Za-z]/g, '')\n // replace the first decimal mark with reserved placeholder\n .replace(owner.numeralDecimalMark, 'M')\n\n // strip non numeric letters except minus and \"M\"\n // this is to ensure prefix has been stripped\n .replace(/[^\\dM-]/g, '')\n\n // replace the leading minus with reserved placeholder\n .replace(/^\\-/, 'N')\n\n // strip the other minus sign (if present)\n .replace(/\\-/g, '')\n\n // replace the minus sign (if present)\n .replace('N', owner.numeralPositiveOnly ? '' : '-')\n\n // replace decimal mark\n .replace('M', owner.numeralDecimalMark);\n\n // strip any leading zeros\n if (owner.stripLeadingZeroes) {\n value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n }\n\n partSign = value.slice(0, 1) === '-' ? '-' : '';\n if (typeof owner.prefix != 'undefined') {\n if (owner.signBeforePrefix) {\n partSignAndPrefix = partSign + owner.prefix;\n } else {\n partSignAndPrefix = owner.prefix + partSign;\n }\n } else {\n partSignAndPrefix = partSign;\n }\n \n partInteger = value;\n\n if (value.indexOf(owner.numeralDecimalMark) >= 0) {\n parts = value.split(owner.numeralDecimalMark);\n partInteger = parts[0];\n partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\n }\n\n if(partSign === '-') {\n partInteger = partInteger.slice(1);\n }\n\n if (owner.numeralIntegerScale > 0) {\n partInteger = partInteger.slice(0, owner.numeralIntegerScale);\n }\n\n switch (owner.numeralThousandsGroupStyle) {\n case NumeralFormatter.groupStyle.lakh:\n partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.wan:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.thousand:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\n\n break;\n }\n\n if (owner.tailPrefix) {\n return partSign + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '') + owner.prefix;\n }\n\n return partSignAndPrefix + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\n }\n};\n\nvar NumeralFormatter_1 = NumeralFormatter;\n\nvar DateFormatter = function (datePattern, dateMin, dateMax) {\n var owner = this;\n\n owner.date = [];\n owner.blocks = [];\n owner.datePattern = datePattern;\n owner.dateMin = dateMin\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMin.length === 2) owner.dateMin.unshift(0);\n\n owner.dateMax = dateMax\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMax.length === 2) owner.dateMax.unshift(0);\n \n owner.initBlocks();\n};\n\nDateFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.datePattern.forEach(function (value) {\n if (value === 'Y') {\n owner.blocks.push(4);\n } else {\n owner.blocks.push(2);\n }\n });\n },\n\n getISOFormatDate: function () {\n var owner = this,\n date = owner.date;\n\n return date[2] ? (\n date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getValidatedDate: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.datePattern[index]) {\n case 'd':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 3) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 31) {\n sub = '31';\n }\n\n break;\n\n case 'm':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 1) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 12) {\n sub = '12';\n }\n\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedDateString(result);\n },\n\n getFixedDateString: function (value) {\n var owner = this, datePattern = owner.datePattern, date = [],\n dayIndex = 0, monthIndex = 0, yearIndex = 0,\n dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\n day, month, year, fullYearDone = false;\n\n // mm-dd || dd-mm\n if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\n dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\n monthStartIndex = 2 - dayStartIndex;\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\n date = this.getFixedDate(day, month, 0);\n }\n\n // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\n if (value.length === 8) {\n datePattern.forEach(function (type, index) {\n switch (type) {\n case 'd':\n dayIndex = index;\n break;\n case 'm':\n monthIndex = index;\n break;\n default:\n yearIndex = index;\n break;\n }\n });\n\n yearStartIndex = yearIndex * 2;\n dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\n monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\n\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = this.getFixedDate(day, month, year);\n }\n\n // mm-yy || yy-mm\n if (value.length === 4 && (datePattern[0] === 'y' || datePattern[1] === 'y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 2;\n yearStartIndex = 2 - monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 2), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 2).length === 2;\n\n date = [0, month, year];\n }\n\n // mm-yyyy || yyyy-mm\n if (value.length === 6 && (datePattern[0] === 'Y' || datePattern[1] === 'Y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 4;\n yearStartIndex = 2 - 0.5 * monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = [0, month, year];\n }\n\n date = owner.getRangeFixedDate(date);\n owner.date = date;\n\n var result = date.length === 0 ? value : datePattern.reduce(function (previous, current) {\n switch (current) {\n case 'd':\n return previous + (date[0] === 0 ? '' : owner.addLeadingZero(date[0]));\n case 'm':\n return previous + (date[1] === 0 ? '' : owner.addLeadingZero(date[1]));\n case 'y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], false) : '');\n case 'Y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], true) : '');\n }\n }, '');\n\n return result;\n },\n\n getRangeFixedDate: function (date) {\n var owner = this,\n datePattern = owner.datePattern,\n dateMin = owner.dateMin || [],\n dateMax = owner.dateMax || [];\n\n if (!date.length || (dateMin.length < 3 && dateMax.length < 3)) return date;\n\n if (\n datePattern.find(function(x) {\n return x.toLowerCase() === 'y';\n }) &&\n date[2] === 0\n ) return date;\n\n if (dateMax.length && (dateMax[2] < date[2] || (\n dateMax[2] === date[2] && (dateMax[1] < date[1] || (\n dateMax[1] === date[1] && dateMax[0] < date[0]\n ))\n ))) return dateMax;\n\n if (dateMin.length && (dateMin[2] > date[2] || (\n dateMin[2] === date[2] && (dateMin[1] > date[1] || (\n dateMin[1] === date[1] && dateMin[0] > date[0]\n ))\n ))) return dateMin;\n\n return date;\n },\n\n getFixedDate: function (day, month, year) {\n day = Math.min(day, 31);\n month = Math.min(month, 12);\n year = parseInt((year || 0), 10);\n\n if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\n day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\n }\n\n return [day, month, year];\n },\n\n isLeapYear: function (year) {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n },\n\n addLeadingZeroForYear: function (number, fullYearMode) {\n if (fullYearMode) {\n return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;\n }\n\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar DateFormatter_1 = DateFormatter;\n\nvar TimeFormatter = function (timePattern, timeFormat) {\n var owner = this;\n\n owner.time = [];\n owner.blocks = [];\n owner.timePattern = timePattern;\n owner.timeFormat = timeFormat;\n owner.initBlocks();\n};\n\nTimeFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.timePattern.forEach(function () {\n owner.blocks.push(2);\n });\n },\n\n getISOFormatTime: function () {\n var owner = this,\n time = owner.time;\n\n return time[2] ? (\n owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getTimeFormatOptions: function () {\n var owner = this;\n if (String(owner.timeFormat) === '12') {\n return {\n maxHourFirstDigit: 1,\n maxHours: 12,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n }\n\n return {\n maxHourFirstDigit: 2,\n maxHours: 23,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n },\n\n getValidatedTime: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n var timeFormatOptions = owner.getTimeFormatOptions();\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.timePattern[index]) {\n\n case 'h':\n if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) {\n sub = timeFormatOptions.maxHours + '';\n }\n\n break;\n\n case 'm':\n case 's':\n if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) {\n sub = timeFormatOptions.maxMinutes + '';\n }\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedTimeString(result);\n },\n\n getFixedTimeString: function (value) {\n var owner = this, timePattern = owner.timePattern, time = [],\n secondIndex = 0, minuteIndex = 0, hourIndex = 0,\n secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0,\n second, minute, hour;\n\n if (value.length === 6) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 's':\n secondIndex = index * 2;\n break;\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n secondStartIndex = secondIndex;\n\n second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10);\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n if (value.length === 4 && owner.timePattern.indexOf('s') < 0) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n\n second = 0;\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n owner.time = time;\n\n return time.length === 0 ? value : timePattern.reduce(function (previous, current) {\n switch (current) {\n case 's':\n return previous + owner.addLeadingZero(time[2]);\n case 'm':\n return previous + owner.addLeadingZero(time[1]);\n case 'h':\n return previous + owner.addLeadingZero(time[0]);\n }\n }, '');\n },\n\n getFixedTime: function (hour, minute, second) {\n second = Math.min(parseInt(second || 0, 10), 60);\n minute = Math.min(minute, 60);\n hour = Math.min(hour, 60);\n\n return [hour, minute, second];\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar TimeFormatter_1 = TimeFormatter;\n\nvar PhoneFormatter = function (formatter, delimiter) {\n var owner = this;\n\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\n owner.formatter = formatter;\n};\n\nPhoneFormatter.prototype = {\n setFormatter: function (formatter) {\n this.formatter = formatter;\n },\n\n format: function (phoneNumber) {\n var owner = this;\n\n owner.formatter.clear();\n\n // only keep number and +\n phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\n\n // strip non-leading +\n phoneNumber = phoneNumber.replace(/^\\+/, 'B').replace(/\\+/g, '').replace('B', '+');\n\n // strip delimiter\n phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\n\n var result = '', current, validated = false;\n\n for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\n current = owner.formatter.inputDigit(phoneNumber.charAt(i));\n\n // has ()- or space inside\n if (/[\\s()-]/g.test(current)) {\n result = current;\n\n validated = true;\n } else {\n if (!validated) {\n result = current;\n }\n // else: over length input\n // it turns to invalid number again\n }\n }\n\n // strip ()\n // e.g. US: 7161234567 returns (716) 123-4567\n result = result.replace(/[()]/g, '');\n // replace library delimiter with user customized delimiter\n result = result.replace(/[\\s-]/g, owner.delimiter);\n\n return result;\n }\n};\n\nvar PhoneFormatter_1 = PhoneFormatter;\n\nvar CreditCardDetector = {\n blocks: {\n uatp: [4, 5, 6],\n amex: [4, 6, 5],\n diners: [4, 6, 4],\n discover: [4, 4, 4, 4],\n mastercard: [4, 4, 4, 4],\n dankort: [4, 4, 4, 4],\n instapayment: [4, 4, 4, 4],\n jcb15: [4, 6, 5],\n jcb: [4, 4, 4, 4],\n maestro: [4, 4, 4, 4],\n visa: [4, 4, 4, 4],\n mir: [4, 4, 4, 4],\n unionPay: [4, 4, 4, 4],\n general: [4, 4, 4, 4]\n },\n\n re: {\n // starts with 1; 15 digits, not starts with 1800 (jcb card)\n uatp: /^(?!1800)1\\d{0,14}/,\n\n // starts with 34/37; 15 digits\n amex: /^3[47]\\d{0,13}/,\n\n // starts with 6011/65/644-649; 16 digits\n discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\n\n // starts with 300-305/309 or 36/38/39; 14 digits\n diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\n\n // starts with 51-55/2221–2720; 16 digits\n mastercard: /^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,\n\n // starts with 5019/4175/4571; 16 digits\n dankort: /^(5019|4175|4571)\\d{0,12}/,\n\n // starts with 637-639; 16 digits\n instapayment: /^63[7-9]\\d{0,13}/,\n\n // starts with 2131/1800; 15 digits\n jcb15: /^(?:2131|1800)\\d{0,11}/,\n\n // starts with 2131/1800/35; 16 digits\n jcb: /^(?:35\\d{0,2})\\d{0,12}/,\n\n // starts with 50/56-58/6304/67; 16 digits\n maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\n\n // starts with 22; 16 digits\n mir: /^220[0-4]\\d{0,12}/,\n\n // starts with 4; 16 digits\n visa: /^4\\d{0,15}/,\n\n // starts with 62/81; 16 digits\n unionPay: /^(62|81)\\d{0,14}/\n },\n\n getStrictBlocks: function (block) {\n var total = block.reduce(function (prev, current) {\n return prev + current;\n }, 0);\n\n return block.concat(19 - total);\n },\n\n getInfo: function (value, strictMode) {\n var blocks = CreditCardDetector.blocks,\n re = CreditCardDetector.re;\n\n // Some credit card can have up to 19 digits number.\n // Set strictMode to true will remove the 16 max-length restrain,\n // however, I never found any website validate card number like\n // this, hence probably you don't want to enable this option.\n strictMode = !!strictMode;\n\n for (var key in re) {\n if (re[key].test(value)) {\n var matchedBlocks = blocks[key];\n return {\n type: key,\n blocks: strictMode ? this.getStrictBlocks(matchedBlocks) : matchedBlocks\n };\n }\n }\n\n return {\n type: 'unknown',\n blocks: strictMode ? this.getStrictBlocks(blocks.general) : blocks.general\n };\n }\n};\n\nvar CreditCardDetector_1 = CreditCardDetector;\n\nvar Util = {\n noop: function () {\n },\n\n strip: function (value, re) {\n return value.replace(re, '');\n },\n\n getPostDelimiter: function (value, delimiter, delimiters) {\n // single delimiter\n if (delimiters.length === 0) {\n return value.slice(-delimiter.length) === delimiter ? delimiter : '';\n }\n\n // multiple delimiters\n var matchedDelimiter = '';\n delimiters.forEach(function (current) {\n if (value.slice(-current.length) === current) {\n matchedDelimiter = current;\n }\n });\n\n return matchedDelimiter;\n },\n\n getDelimiterREByDelimiter: function (delimiter) {\n return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\n },\n\n getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n // If cursor was at the end of value, just place it back.\n // Because new value could contain additional chars.\n if (oldValue.length === prevPos) {\n return newValue.length;\n }\n\n return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter ,delimiters);\n },\n\n getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n var oldRawValue, newRawValue, lengthOffset;\n\n oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);\n newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);\n lengthOffset = oldRawValue.length - newRawValue.length;\n\n return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;\n },\n\n stripDelimiters: function (value, delimiter, delimiters) {\n var owner = this;\n\n // single delimiter\n if (delimiters.length === 0) {\n var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\n\n return value.replace(delimiterRE, '');\n }\n\n // multiple delimiters\n delimiters.forEach(function (current) {\n current.split('').forEach(function (letter) {\n value = value.replace(owner.getDelimiterREByDelimiter(letter), '');\n });\n });\n\n return value;\n },\n\n headStr: function (str, length) {\n return str.slice(0, length);\n },\n\n getMaxLength: function (blocks) {\n return blocks.reduce(function (previous, current) {\n return previous + current;\n }, 0);\n },\n\n // strip prefix\n // Before type | After type | Return value\n // PEFIX-... | PEFIX-... | ''\n // PREFIX-123 | PEFIX-123 | 123\n // PREFIX-123 | PREFIX-23 | 23\n // PREFIX-123 | PREFIX-1234 | 1234\n getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix) {\n // No prefix\n if (prefixLength === 0) {\n return value;\n }\n\n // Value is prefix\n if (value === prefix && value !== '') {\n return '';\n }\n\n if (signBeforePrefix && (value.slice(0, 1) == '-')) {\n var prev = (prevResult.slice(0, 1) == '-') ? prevResult.slice(1) : prevResult;\n return '-' + this.getPrefixStrippedValue(value.slice(1), prefix, prefixLength, prev, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix);\n }\n\n // Pre result prefix string does not match pre-defined prefix\n if (prevResult.slice(0, prefixLength) !== prefix && !tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n } else if (prevResult.slice(-prefixLength) !== prefix && tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n }\n\n var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters);\n\n // New value has issue, someone typed in between prefix letters\n // Revert to pre value\n if (value.slice(0, prefixLength) !== prefix && !tailPrefix) {\n return prevValue.slice(prefixLength);\n } else if (value.slice(-prefixLength) !== prefix && tailPrefix) {\n return prevValue.slice(0, -prefixLength - 1);\n }\n\n // No issue, strip prefix for new value\n return tailPrefix ? value.slice(0, -prefixLength) : value.slice(prefixLength);\n },\n\n getFirstDiffIndex: function (prev, current) {\n var index = 0;\n\n while (prev.charAt(index) === current.charAt(index)) {\n if (prev.charAt(index++) === '') {\n return -1;\n }\n }\n\n return index;\n },\n\n getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {\n var result = '',\n multipleDelimiters = delimiters.length > 0,\n currentDelimiter = '';\n\n // no options, normal input\n if (blocksLength === 0) {\n return value;\n }\n\n blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n rest = value.slice(length);\n\n if (multipleDelimiters) {\n currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;\n } else {\n currentDelimiter = delimiter;\n }\n\n if (delimiterLazyShow) {\n if (index > 0) {\n result += currentDelimiter;\n }\n\n result += sub;\n } else {\n result += sub;\n\n if (sub.length === length && index < blocksLength - 1) {\n result += currentDelimiter;\n }\n }\n\n // update remaining string\n value = rest;\n }\n });\n\n return result;\n },\n\n // move cursor to the end\n // the first time user focuses on an input with prefix\n fixPrefixCursor: function (el, prefix, delimiter, delimiters) {\n if (!el) {\n return;\n }\n\n var val = el.value,\n appendix = delimiter || (delimiters[0] || ' ');\n\n if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) <= val.length) {\n return;\n }\n\n var len = val.length * 2;\n\n // set timeout to avoid blink\n setTimeout(function () {\n el.setSelectionRange(len, len);\n }, 1);\n },\n\n // Check if input field is fully selected\n checkFullSelection: function(value) {\n try {\n var selection = window.getSelection() || document.getSelection() || {};\n return selection.toString().length === value.length;\n } catch (ex) {\n // Ignore\n }\n\n return false;\n },\n\n setSelection: function (element, position, doc) {\n if (element !== this.getActiveElement(doc)) {\n return;\n }\n\n // cursor is already in the end\n if (element && element.value.length <= position) {\n return;\n }\n\n if (element.createTextRange) {\n var range = element.createTextRange();\n\n range.move('character', position);\n range.select();\n } else {\n try {\n element.setSelectionRange(position, position);\n } catch (e) {\n // eslint-disable-next-line\n console.warn('The input element type does not support selection');\n }\n }\n },\n\n getActiveElement: function(parent) {\n var activeElement = parent.activeElement;\n if (activeElement && activeElement.shadowRoot) {\n return this.getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n },\n\n isAndroid: function () {\n return navigator && /android/i.test(navigator.userAgent);\n },\n\n // On Android chrome, the keyup and keydown events\n // always return key code 229 as a composition that\n // buffers the user’s keystrokes\n // see https://github.com/nosir/cleave.js/issues/147\n isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\n if (!this.isAndroid() || !lastInputValue || !currentInputValue) {\n return false;\n }\n\n return currentInputValue === lastInputValue.slice(0, -1);\n }\n};\n\nvar Util_1 = Util;\n\n/**\n * Props Assignment\n *\n * Separate this, so react module can share the usage\n */\nvar DefaultProperties = {\n // Maybe change to object-assign\n // for now just keep it as simple\n assign: function (target, opts) {\n target = target || {};\n opts = opts || {};\n\n // credit card\n target.creditCard = !!opts.creditCard;\n target.creditCardStrictMode = !!opts.creditCardStrictMode;\n target.creditCardType = '';\n target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\n\n // phone\n target.phone = !!opts.phone;\n target.phoneRegionCode = opts.phoneRegionCode || 'AU';\n target.phoneFormatter = {};\n\n // time\n target.time = !!opts.time;\n target.timePattern = opts.timePattern || ['h', 'm', 's'];\n target.timeFormat = opts.timeFormat || '24';\n target.timeFormatter = {};\n\n // date\n target.date = !!opts.date;\n target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\n target.dateMin = opts.dateMin || '';\n target.dateMax = opts.dateMax || '';\n target.dateFormatter = {};\n\n // numeral\n target.numeral = !!opts.numeral;\n target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\n target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\n target.numeralDecimalMark = opts.numeralDecimalMark || '.';\n target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\n target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\n target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;\n target.signBeforePrefix = !!opts.signBeforePrefix;\n target.tailPrefix = !!opts.tailPrefix;\n\n // others\n target.swapHiddenInput = !!opts.swapHiddenInput;\n \n target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\n\n target.uppercase = !!opts.uppercase;\n target.lowercase = !!opts.lowercase;\n\n target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');\n target.noImmediatePrefix = !!opts.noImmediatePrefix;\n target.prefixLength = target.prefix.length;\n target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\n target.copyDelimiter = !!opts.copyDelimiter;\n\n target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\n\n target.delimiter =\n (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\n (opts.date ? '/' :\n (opts.time ? ':' :\n (opts.numeral ? ',' :\n (opts.phone ? ' ' :\n ' '))));\n target.delimiterLength = target.delimiter.length;\n target.delimiterLazyShow = !!opts.delimiterLazyShow;\n target.delimiters = opts.delimiters || [];\n\n target.blocks = opts.blocks || [];\n target.blocksLength = target.blocks.length;\n\n target.root = (typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window;\n target.document = opts.document || target.root.document;\n\n target.maxLength = 0;\n\n target.backspace = false;\n target.result = '';\n\n target.onValueChanged = opts.onValueChanged || (function () {});\n\n return target;\n }\n};\n\nvar DefaultProperties_1 = DefaultProperties;\n\n/**\n * Construct a new Cleave instance by passing the configuration object\n *\n * @param {String | HTMLElement} element\n * @param {Object} opts\n */\nvar Cleave = function (element, opts) {\n var owner = this;\n var hasMultipleElements = false;\n\n if (typeof element === 'string') {\n owner.element = document.querySelector(element);\n hasMultipleElements = document.querySelectorAll(element).length > 1;\n } else {\n if (typeof element.length !== 'undefined' && element.length > 0) {\n owner.element = element[0];\n hasMultipleElements = element.length > 1;\n } else {\n owner.element = element;\n }\n }\n\n if (!owner.element) {\n throw new Error('[cleave.js] Please check the element');\n }\n\n if (hasMultipleElements) {\n try {\n // eslint-disable-next-line\n console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.');\n } catch (e) {\n // Old IE\n }\n }\n\n opts.initValue = owner.element.value;\n\n owner.properties = Cleave.DefaultProperties.assign({}, opts);\n\n owner.init();\n};\n\nCleave.prototype = {\n init: function () {\n var owner = this, pps = owner.properties;\n\n // no need to use this lib\n if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\n owner.onInput(pps.initValue);\n\n return;\n }\n\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\n owner.isAndroid = Cleave.Util.isAndroid();\n owner.lastInputValue = '';\n owner.isBackward = '';\n\n owner.onChangeListener = owner.onChange.bind(owner);\n owner.onKeyDownListener = owner.onKeyDown.bind(owner);\n owner.onFocusListener = owner.onFocus.bind(owner);\n owner.onCutListener = owner.onCut.bind(owner);\n owner.onCopyListener = owner.onCopy.bind(owner);\n\n owner.initSwapHiddenInput();\n\n owner.element.addEventListener('input', owner.onChangeListener);\n owner.element.addEventListener('keydown', owner.onKeyDownListener);\n owner.element.addEventListener('focus', owner.onFocusListener);\n owner.element.addEventListener('cut', owner.onCutListener);\n owner.element.addEventListener('copy', owner.onCopyListener);\n\n\n owner.initPhoneFormatter();\n owner.initDateFormatter();\n owner.initTimeFormatter();\n owner.initNumeralFormatter();\n\n // avoid touch input field if value is null\n // otherwise Firefox will add red box-shadow for <input required />\n if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {\n owner.onInput(pps.initValue);\n }\n },\n\n initSwapHiddenInput: function () {\n var owner = this, pps = owner.properties;\n if (!pps.swapHiddenInput) return;\n\n var inputFormatter = owner.element.cloneNode(true);\n owner.element.parentNode.insertBefore(inputFormatter, owner.element);\n\n owner.elementSwapHidden = owner.element;\n owner.elementSwapHidden.type = 'hidden';\n\n owner.element = inputFormatter;\n owner.element.id = '';\n },\n\n initNumeralFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.numeral) {\n return;\n }\n\n pps.numeralFormatter = new Cleave.NumeralFormatter(\n pps.numeralDecimalMark,\n pps.numeralIntegerScale,\n pps.numeralDecimalScale,\n pps.numeralThousandsGroupStyle,\n pps.numeralPositiveOnly,\n pps.stripLeadingZeroes,\n pps.prefix,\n pps.signBeforePrefix,\n pps.tailPrefix,\n pps.delimiter\n );\n },\n\n initTimeFormatter: function() {\n var owner = this, pps = owner.properties;\n\n if (!pps.time) {\n return;\n }\n\n pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat);\n pps.blocks = pps.timeFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initDateFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.date) {\n return;\n }\n\n pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern, pps.dateMin, pps.dateMax);\n pps.blocks = pps.dateFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initPhoneFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.phone) {\n return;\n }\n\n // Cleave.AsYouTypeFormatter should be provided by\n // external google closure lib\n try {\n pps.phoneFormatter = new Cleave.PhoneFormatter(\n new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\n pps.delimiter\n );\n } catch (ex) {\n throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\n }\n },\n\n onKeyDown: function (event) {\n var owner = this,\n charCode = event.which || event.keyCode;\n\n owner.lastInputValue = owner.element.value;\n owner.isBackward = charCode === 8;\n },\n\n onChange: function (event) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n owner.isBackward = owner.isBackward || event.inputType === 'deleteContentBackward';\n\n var postDelimiter = Util.getPostDelimiter(owner.lastInputValue, pps.delimiter, pps.delimiters);\n\n if (owner.isBackward && postDelimiter) {\n pps.postDelimiterBackspace = postDelimiter;\n } else {\n pps.postDelimiterBackspace = false;\n }\n\n this.onInput(this.element.value);\n },\n\n onFocus: function () {\n var owner = this,\n pps = owner.properties;\n owner.lastInputValue = owner.element.value;\n\n if (pps.prefix && pps.noImmediatePrefix && !owner.element.value) {\n this.onInput(pps.prefix);\n }\n\n Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);\n },\n\n onCut: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n this.onInput('');\n },\n\n onCopy: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n },\n\n copyClipboardData: function (e) {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n inputValue = owner.element.value,\n textToCopy = '';\n\n if (!pps.copyDelimiter) {\n textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\n } else {\n textToCopy = inputValue;\n }\n\n try {\n if (e.clipboardData) {\n e.clipboardData.setData('Text', textToCopy);\n } else {\n window.clipboardData.setData('Text', textToCopy);\n }\n\n e.preventDefault();\n } catch (ex) {\n // empty\n }\n },\n\n onInput: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n // case 1: delete one more character \"4\"\n // 1234*| -> hit backspace -> 123|\n // case 2: last character is not delimiter which is:\n // 12|34* -> hit backspace -> 1|34*\n // note: no need to apply this for numeral mode\n var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters);\n if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) {\n value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length);\n }\n\n // phone formatter\n if (pps.phone) {\n if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\n pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);\n } else {\n pps.result = pps.phoneFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // numeral formatter\n if (pps.numeral) {\n // Do not show prefix when noImmediatePrefix is specified\n // This mostly because we need to show user the native input placeholder\n if (pps.prefix && pps.noImmediatePrefix && value.length === 0) {\n pps.result = '';\n } else {\n pps.result = pps.numeralFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // date\n if (pps.date) {\n value = pps.dateFormatter.getValidatedDate(value);\n }\n\n // time\n if (pps.time) {\n value = pps.timeFormatter.getValidatedTime(value);\n }\n\n // strip delimiters\n value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\n\n // strip prefix\n value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n\n // strip non-numeric characters\n value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\n\n // convert case\n value = pps.uppercase ? value.toUpperCase() : value;\n value = pps.lowercase ? value.toLowerCase() : value;\n\n // prevent from showing prefix when no immediate option enabled with empty input value\n if (pps.prefix) {\n if (pps.tailPrefix) {\n value = value + pps.prefix;\n } else {\n value = pps.prefix + value;\n }\n\n\n // no blocks specified, no need to do formatting\n if (pps.blocksLength === 0) {\n pps.result = value;\n owner.updateValueState();\n\n return;\n }\n }\n\n // update credit card props\n if (pps.creditCard) {\n owner.updateCreditCardPropsByValue(value);\n }\n\n // strip over length characters\n value = Util.headStr(value, pps.maxLength);\n\n // apply blocks\n pps.result = Util.getFormattedValue(\n value,\n pps.blocks, pps.blocksLength,\n pps.delimiter, pps.delimiters, pps.delimiterLazyShow\n );\n\n owner.updateValueState();\n },\n\n updateCreditCardPropsByValue: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util,\n creditCardInfo;\n\n // At least one of the first 4 characters has changed\n if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\n return;\n }\n\n creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\n\n pps.blocks = creditCardInfo.blocks;\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Util.getMaxLength(pps.blocks);\n\n // credit card type changed\n if (pps.creditCardType !== creditCardInfo.type) {\n pps.creditCardType = creditCardInfo.type;\n\n pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\n }\n },\n\n updateValueState: function () {\n var owner = this,\n Util = Cleave.Util,\n pps = owner.properties;\n\n if (!owner.element) {\n return;\n }\n\n var endPos = owner.element.selectionEnd;\n var oldValue = owner.element.value;\n var newValue = pps.result;\n\n endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);\n\n // fix Android browser type=\"text\" input field\n // cursor not jumping issue\n if (owner.isAndroid) {\n window.setTimeout(function () {\n owner.element.value = newValue;\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n }, 1);\n\n return;\n }\n\n owner.element.value = newValue;\n if (pps.swapHiddenInput) owner.elementSwapHidden.value = owner.getRawValue();\n\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n },\n\n callOnValueChanged: function () {\n var owner = this,\n pps = owner.properties;\n\n pps.onValueChanged.call(owner, {\n target: {\n name: owner.element.name,\n value: pps.result,\n rawValue: owner.getRawValue()\n }\n });\n },\n\n setPhoneRegionCode: function (phoneRegionCode) {\n var owner = this, pps = owner.properties;\n\n pps.phoneRegionCode = phoneRegionCode;\n owner.initPhoneFormatter();\n owner.onChange();\n },\n\n setRawValue: function (value) {\n var owner = this, pps = owner.properties;\n\n value = value !== undefined && value !== null ? value.toString() : '';\n\n if (pps.numeral) {\n value = value.replace('.', pps.numeralDecimalMark);\n }\n\n pps.postDelimiterBackspace = false;\n\n owner.element.value = value;\n owner.onInput(value);\n },\n\n getRawValue: function () {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n rawValue = owner.element.value;\n\n if (pps.rawValueTrimPrefix) {\n rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n }\n\n if (pps.numeral) {\n rawValue = pps.numeralFormatter.getRawValue(rawValue);\n } else {\n rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\n }\n\n return rawValue;\n },\n\n getISOFormatDate: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.date ? pps.dateFormatter.getISOFormatDate() : '';\n },\n\n getISOFormatTime: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.time ? pps.timeFormatter.getISOFormatTime() : '';\n },\n\n getFormattedValue: function () {\n return this.element.value;\n },\n\n destroy: function () {\n var owner = this;\n\n owner.element.removeEventListener('input', owner.onChangeListener);\n owner.element.removeEventListener('keydown', owner.onKeyDownListener);\n owner.element.removeEventListener('focus', owner.onFocusListener);\n owner.element.removeEventListener('cut', owner.onCutListener);\n owner.element.removeEventListener('copy', owner.onCopyListener);\n },\n\n toString: function () {\n return '[Cleave Object]';\n }\n};\n\nCleave.NumeralFormatter = NumeralFormatter_1;\nCleave.DateFormatter = DateFormatter_1;\nCleave.TimeFormatter = TimeFormatter_1;\nCleave.PhoneFormatter = PhoneFormatter_1;\nCleave.CreditCardDetector = CreditCardDetector_1;\nCleave.Util = Util_1;\nCleave.DefaultProperties = DefaultProperties_1;\n\n// for angular directive\n((typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window)['Cleave'] = Cleave;\n\n// CommonJS\nvar Cleave_1 = Cleave;\n\nexport default Cleave_1;\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n@use 'utils/color';\n@use '_snippets/form-label';\n\n:host {\n display: flex;\n @include cat-body('m', null);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.input-field,\n.input-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n flex: 1 1 auto;\n}\n\n.input-field.input-horizontal {\n flex-direction: row;\n gap: 1rem;\n}\n\n.input-wrapper {\n flex: 1 1 auto;\n display: flex;\n align-items: stretch;\n gap: 0.75rem;\n padding: 0 0.75rem;\n height: form-label.$cat-input-height;\n overflow: hidden;\n background: cat-token('color.ui.background.input');\n border-radius: cat-border-radius('m');\n box-shadow: inset 0 0 0 1px rgb(var(--border-color));\n transition: box-shadow cat-token('time.transition.s') linear;\n --border-color: #{cat-token('color.ui.border.dark', $wrap: false)};\n\n &.input-round {\n border-radius: 10rem;\n }\n\n &.input-readonly {\n pointer-events: none;\n }\n\n &.input-disabled {\n background: cat-token('color.ui.background.muted');\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &:not(.input-disabled):hover {\n box-shadow:\n inset 0 0 0 1px rgb(var(--border-color)),\n 0 0 0 1px rgb(var(--border-color));\n }\n\n &:focus-within {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: -1px;\n\n &:has(.clearable:focus) {\n outline: none;\n }\n }\n\n &.input-invalid {\n --border-color: #{cat-token('color.theme.danger.bg', 0.2, $wrap: false)};\n }\n\n /* stylelint-disable property-no-vendor-prefix */\n &:has(input:-webkit-autofill) {\n &,\n &:hover,\n &:focus {\n background-color: cat-token('color.ui.background.inputAutofill');\n }\n }\n /* stylelint-enable property-no-vendor-prefix */\n}\n\n.text-prefix,\n.text-suffix {\n display: inline-flex;\n align-items: center;\n @include cat-select(none);\n color: cat-token('color.ui.font.muted');\n}\n\n.text-prefix {\n border-right: 1px solid cat-token('color.ui.border.dark');\n padding-right: 0.75rem;\n}\n\n.text-suffix {\n border-left: 1px solid cat-token('color.ui.border.dark');\n padding-left: 0.75rem;\n}\n\n.icon-loading,\n.icon-prefix,\n.icon-suffix {\n align-self: center;\n}\n\n.input-outer-wrapper {\n display: flex;\n}\n\n.input-inner-wrapper {\n display: flex;\n align-items: center;\n position: relative;\n flex: 1 1 auto;\n}\n\ninput {\n font: inherit;\n margin: 0;\n padding: 0;\n width: 100%;\n min-width: 0;\n border: none;\n outline: none;\n background: none;\n @include cat-ellipsis;\n\n .input-disabled & {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &.has-clearable,\n &.has-toggle-password {\n padding-right: 1.5rem;\n }\n\n &.has-clearable.has-toggle-password {\n padding-right: 3.5rem;\n }\n\n &::placeholder {\n color: cat-token('color.ui.font.muted');\n }\n\n /* stylelint-disable property-no-vendor-prefix */\n &:-webkit-autofill {\n &,\n &:hover,\n &:focus {\n -webkit-box-shadow: 0 0 0 9999px cat-token('color.ui.background.inputAutofill') inset;\n }\n }\n /* stylelint-enable property-no-vendor-prefix */\n}\n\n.clearable {\n position: absolute;\n top: calc(50% - 1rem);\n right: -0.5rem;\n}\n\n.toggle-password {\n position: absolute;\n top: calc(50% - 1rem);\n right: -0.5rem;\n\n .has-clearable ~ & {\n right: 1.5rem;\n }\n}\n\n// ----- date- & timepicker\n\n:host(.cat-date-input),\n:host(.cat-time-input) {\n .input-wrapper {\n z-index: 1;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport Cleave from 'cleave.js';\nimport type { CleaveOptions } from 'cleave.js/options';\nimport { coerceBoolean, coerceNumber } from '../../utils/coerce';\nimport { CatFormHint, ErrorMap } from '../cat-form-hint/cat-form-hint';\nimport { catI18nRegistry as i18n } from '../cat-i18n/cat-i18n-registry';\nimport { InputType } from './input-type';\n\nlet nextUniqueId = 0;\n\n/**\n * Inputs are used to allow users to provide text input when the expected input\n * is short. As well as plain text, Input supports various types of text,\n * including passwords and numbers.\n *\n * @slot hint - Optional hint element to be displayed with the input.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @slot counter - Custom counter element to be displayed in the top right corner of the label.\n * @part label - The native label element.\n * @part input - The native input element.\n * @part prefix - The text prefix.\n * @part suffix - The text suffix.\n */\n@Component({\n tag: 'cat-input',\n styleUrl: 'cat-input.scss',\n shadow: {\n delegatesFocus: true\n }\n})\nexport class CatInput {\n private readonly _id = `cat-input-${nextUniqueId++}`;\n private get id() {\n return this.identifier || this._id;\n }\n\n private input!: HTMLInputElement;\n private errorMapSrc?: ErrorMap | true;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n @State() hasSlottedHint = false;\n\n @State() hasSlottedCounter = false;\n\n @State() isPasswordShown = false;\n\n @State() errorMap?: ErrorMap | true;\n\n /**\n * Whether the label need a marker to shown if the input is required or optional.\n */\n @Prop() requiredMarker?: 'none' | 'required' | 'optional' | 'none!' | 'optional!' | 'required!' = 'optional';\n\n /**\n * Whether the label is on top or left.\n */\n @Prop() horizontal = false;\n\n /**\n * Hint for form autofill feature.\n */\n @Prop() autoComplete?: string;\n\n /**\n * Whether the input should show a clear button.\n */\n @Prop() clearable = false;\n\n /**\n * Whether the input should show a password toggle button for password inputs.\n */\n @Prop() togglePassword = false;\n\n /**\n * Whether the input is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Displays the input in a loading state with a spinner.\n */\n @Prop() loading = false;\n\n /**\n * Optional hint text(s) to be displayed with the input.\n */\n @Prop() hint?: string | string[];\n\n /**\n * The name of an icon to be displayed in the input.\n */\n @Prop() icon?: string;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * A unique identifier for the input.\n */\n @Prop() identifier?: string;\n\n /**\n * The label for the input.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A maximum value for numeric values.\n */\n @Prop() max?: number | string;\n\n /**\n * A maximum length (number of characters) for textual values.\n */\n @Prop() maxLength?: number;\n\n /**\n * A minimum value for numeric values.\n */\n @Prop() min?: number | string;\n\n /**\n * A minimum length (number of characters) for textual values.\n */\n @Prop() minLength?: number;\n\n /**\n * The name of the form control. Submitted with the form as part of a name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * The placeholder text to display within the input.\n */\n @Prop() placeholder?: string;\n\n /**\n * A textual prefix to be displayed in the input.\n */\n @Prop() textPrefix?: string;\n\n /**\n * A textual suffix to be displayed in the input.\n */\n @Prop() textSuffix?: string;\n\n /**\n * The value is not editable.\n */\n @Prop() readonly = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * Use round input edges.\n */\n @Prop() round = false;\n\n /**\n * Type of form control.\n */\n @Prop() type: InputType = 'text';\n\n /**\n * The value of the control.\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * The validation errors for this input. Will render a hint under the input\n * with the translated error message(s) `error.${key}`. If an object is\n * passed, the keys will be used as error keys and the values translation\n * parameters.\n * If the value is `true`, the input will be marked as invalid without any\n * hints under the input.\n */\n @Prop() errors?: boolean | string[] | ErrorMap;\n\n /**\n * Fine-grained control over when the errors are shown. Can be `false` to\n * never show errors, `true` to show errors on blur, or a number to show\n * errors change with the given delay in milliseconds or immediately on blur.\n */\n @Prop() errorUpdate: boolean | number = 0;\n\n /**\n * Attributes that will be added to the native HTML input element.\n */\n @Prop() nativeAttributes?: { [key: string]: string };\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter<string>;\n\n /**\n * Emitted when the input received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillLoad(): void {\n this.onErrorsChanged(this.errors, undefined, false);\n }\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n this.hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n this.hasSlottedCounter = !!this.hostElement.querySelector('[slot=\"counter\"]');\n }\n\n /**\n * Programmatically move focus to the input. Use this method instead of\n * `input.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async doFocus(options?: FocusOptions): Promise<void> {\n // hack to make datepicker inputs focusable. The datepicker hides the input\n // element and dynamically creates a sibling. We need to find the new input\n // element and focus it instead.\n const input = this.input.type === 'hidden' ? this.findSiblingInput(this.input.nextSibling) : this.input;\n input?.focus(options);\n }\n\n /**\n * Programmatically remove focus from the input. Use this method instead of\n * `input.blur()`.\n */\n @Method()\n async doBlur(): Promise<void> {\n this.input.blur();\n }\n\n /**\n * Clear the input.\n */\n @Method()\n async clear(): Promise<void> {\n this.value = '';\n this.catChange.emit(this.value);\n }\n\n /**\n * Adds a Cleave.js mask to the input.\n *\n * @param options The Cleave.js options.\n */\n @Method()\n async mask(options: CleaveOptions): Promise<void> {\n new Cleave(this.input, options);\n }\n\n @Watch('errors')\n onErrorsChanged(newValue?: boolean | string[] | ErrorMap, _oldValue?: unknown, update: boolean = true) {\n if (!coerceBoolean(this.errorUpdate)) {\n this.errorMap = undefined;\n } else {\n this.errorMapSrc = Array.isArray(newValue)\n ? (newValue as string[]).reduce((acc, err) => ({ ...acc, [err]: undefined }), {})\n : newValue || undefined;\n if (update) {\n this.showErrorsIfTimeout() || this.showErrorsIfNoFocus();\n }\n }\n }\n\n render() {\n this.hostElement.tabIndex = Number(this.hostElement.getAttribute('tabindex')) || 0;\n return (\n <div\n class={{\n 'input-field': true,\n 'input-horizontal': this.horizontal\n }}\n >\n <div class={{ 'label-container': true, hidden: this.labelHidden }}>\n {(this.hasSlottedLabel || this.label) && (\n <label htmlFor={this.id} part=\"label\">\n <span class=\"label-wrapper\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n <div class=\"label-metadata\">\n {!this.required && (this.requiredMarker ?? 'optional').startsWith('optional') && (\n <span class=\"label-optional\" aria-hidden=\"true\">\n ({i18n.t('input.optional')})\n </span>\n )}\n {this.required && this.requiredMarker?.startsWith('required') && (\n <span class=\"label-optional\" aria-hidden=\"true\">\n ({i18n.t('input.required')})\n </span>\n )}\n {(this.maxLength || this.hasSlottedCounter) && (\n <div class=\"label-character-count\" aria-hidden=\"true\">\n {this.hasSlottedCounter ? (\n <slot name=\"counter\"></slot>\n ) : (\n `${this.value?.length ?? 0}/${this.maxLength}`\n )}\n </div>\n )}\n </div>\n </span>\n </label>\n )}\n </div>\n <div class=\"input-container\">\n <div class=\"input-outer-wrapper\">\n <div\n class={{\n 'input-wrapper': true,\n 'input-round': this.round,\n 'input-readonly': this.readonly,\n 'input-disabled': this.disabled,\n 'input-invalid': this.invalid\n }}\n onClick={() => this.input.focus()}\n >\n {this.textPrefix && (\n <span class=\"text-prefix\" part=\"prefix\">\n {this.textPrefix}\n </span>\n )}\n {this.icon && !this.iconRight && (\n <cat-icon icon={this.icon} class=\"icon-prefix\" size=\"l\" onClick={() => this.doFocus()}></cat-icon>\n )}\n <div class=\"input-inner-wrapper\">\n <input\n {...this.nativeAttributes}\n part=\"input\"\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n class={{\n 'has-clearable': this.clearable && !this.disabled && !this.readonly && !!this.value,\n 'has-toggle-password': this.togglePassword && !this.disabled && !this.readonly && !!this.value\n }}\n autocomplete={this.autoComplete}\n disabled={this.disabled}\n max={this.max}\n maxlength={this.maxLength}\n min={this.min}\n minlength={this.minLength}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n type={this.isPasswordShown ? 'text' : this.type}\n value={this.value}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n aria-invalid={this.invalid ? 'true' : undefined}\n aria-describedby={this.hasHint ? this.id + '-hint' : undefined}\n ></input>\n {this.clearable && !this.disabled && !this.readonly && this.value && (\n <cat-button\n class=\"clearable\"\n icon=\"$cat:input-close\"\n icon-only=\"true\"\n size=\"s\"\n variant=\"text\"\n a11y-label={i18n.t('input.clear')}\n onClick={this.clear.bind(this)}\n data-dropdown-no-close\n ></cat-button>\n )}\n {this.togglePassword && !this.disabled && !this.readonly && this.value && (\n <cat-button\n class=\"toggle-password\"\n icon={this.isPasswordShown ? '$cat:input-password-hide' : '$cat:input-password-show'}\n icon-only=\"true\"\n size=\"s\"\n variant=\"text\"\n a11y-label={i18n.t(this.isPasswordShown ? 'input.hidePassword' : 'input.showPassword')}\n onClick={this.doTogglePassword.bind(this)}\n ></cat-button>\n )}\n </div>\n {this.loading && <cat-spinner size=\"m\" class=\"icon-loading\"></cat-spinner>}\n {!this.invalid && this.icon && this.iconRight && (\n <cat-icon icon={this.icon} class=\"icon-suffix\" size=\"l\" onClick={() => this.doFocus()}></cat-icon>\n )}\n {this.invalid && (\n <cat-icon icon=\"$cat:input-error\" class=\"icon-suffix cat-text-danger\" size=\"l\"></cat-icon>\n )}\n {this.textSuffix && (\n <span class=\"text-suffix\" part=\"suffix\">\n {this.textSuffix}\n </span>\n )}\n </div>\n <slot name=\"addon\"></slot>\n </div>\n {this.hasHint && (\n <CatFormHint\n id={this.id}\n hint={this.hint}\n slottedHint={this.hasSlottedHint && <slot name=\"hint\"></slot>}\n errorMap={this.errorMap}\n />\n )}\n </div>\n </div>\n );\n }\n\n private get hasHint() {\n return !!this.hint || !!this.hasSlottedHint || this.invalid;\n }\n\n private get invalid() {\n return this.errorMap === true || !!Object.keys(this.errorMap || {}).length;\n }\n\n private onInput() {\n this.value = this.input.value;\n this.catChange.emit(this.value);\n this.showErrorsIfTimeout();\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n if (coerceBoolean(this.errorUpdate)) {\n this.showErrors();\n }\n }\n\n private doTogglePassword() {\n this.isPasswordShown = !this.isPasswordShown;\n }\n\n private showErrors() {\n this.errorMap = this.errorMapSrc;\n }\n\n private errorUpdateTimeoutId?: number;\n private showErrorsIfTimeout() {\n const errorUpdate = coerceNumber(this.errorUpdate, null);\n if (errorUpdate !== null) {\n typeof this.errorUpdateTimeoutId === 'number' && window.clearTimeout(this.errorUpdateTimeoutId);\n this.errorUpdateTimeoutId = window.setTimeout(() => this.showErrors(), errorUpdate);\n return true;\n }\n return false;\n }\n\n private showErrorsIfNoFocus() {\n const hasFocus = document.activeElement === this.hostElement || document.activeElement === this.input;\n if (!hasFocus) {\n this.showErrors();\n }\n }\n\n private findSiblingInput(node: Node | null): HTMLInputElement | undefined {\n if (node instanceof HTMLInputElement) {\n return node;\n } else if (node?.nextSibling) {\n return this.findSiblingInput(node.nextSibling);\n }\n return undefined;\n }\n}\n"],"version":3}
|