@taiga-ui/addon-commerce 2.55.0 → 2.56.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/bundles/taiga-ui-addon-commerce-components-card.umd.js +14 -14
- package/bundles/taiga-ui-addon-commerce-components-card.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-card.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.js +36 -36
- package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js +11 -11
- package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-input-card.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js +5 -5
- package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js +4 -4
- package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-money.umd.js +18 -18
- package/bundles/taiga-ui-addon-commerce-components-money.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-components-money.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-constants.umd.js +30 -30
- package/bundles/taiga-ui-addon-commerce-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-constants.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-enums.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-pipes.umd.js +6 -6
- package/bundles/taiga-ui-addon-commerce-pipes.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-pipes.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-tokens.umd.js +4 -4
- package/bundles/taiga-ui-addon-commerce-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-utils.umd.js +30 -30
- package/bundles/taiga-ui-addon-commerce-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-utils.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-validators.umd.js +2 -2
- package/bundles/taiga-ui-addon-commerce-validators.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-commerce-validators.umd.min.js.map +1 -1
- package/esm2015/components/card/card.component.js +15 -15
- package/esm2015/components/input-card/input-card.component.js +12 -12
- package/esm2015/components/input-card-grouped/input-card-grouped.component.js +35 -35
- package/esm2015/components/input-card-grouped/input-card-grouped.providers.js +3 -3
- package/esm2015/components/input-cvc/input-cvc.component.js +6 -6
- package/esm2015/components/input-expire/input-expire.component.js +5 -5
- package/esm2015/components/money/money-options.js +4 -4
- package/esm2015/components/money/money.component.js +7 -7
- package/esm2015/components/money/pipes/fraction-part.pipe.js +2 -2
- package/esm2015/components/money/pipes/integer-part.pipe.js +2 -2
- package/esm2015/components/money/pipes/sign-symbol.pipe.js +2 -2
- package/esm2015/components/money/utils/format-fraction-part.js +4 -4
- package/esm2015/components/money/utils/format-sign-symbol.js +4 -4
- package/esm2015/constants/card-holder-mask.js +27 -27
- package/esm2015/constants/card-mask.js +5 -5
- package/esm2015/enums/currency-code.js +1 -1
- package/esm2015/enums/currency.js +1 -1
- package/esm2015/enums/money-sign.js +1 -1
- package/esm2015/enums/payment-system.js +1 -1
- package/esm2015/pipes/currency/currency.pipe.js +2 -2
- package/esm2015/pipes/format-card/format-card.pipe.js +6 -6
- package/esm2015/tokens/i18n.js +5 -5
- package/esm2015/utils/create-auto-corrected-expire-pipe.js +6 -6
- package/esm2015/utils/format-currency.js +4 -4
- package/esm2015/utils/get-currency-symbol.js +20 -20
- package/esm2015/utils/get-payment-system.js +2 -2
- package/esm2015/utils/is-card-number-valid.js +3 -3
- package/esm2015/validators/card-expire.validator.js +2 -2
- package/esm2015/validators/card-number.validator.js +2 -2
- package/esm5/components/card/card.component.js +15 -15
- package/esm5/components/input-card/input-card.component.js +12 -12
- package/esm5/components/input-card-grouped/input-card-grouped.component.js +35 -35
- package/esm5/components/input-card-grouped/input-card-grouped.providers.js +3 -3
- package/esm5/components/input-cvc/input-cvc.component.js +6 -6
- package/esm5/components/input-expire/input-expire.component.js +5 -5
- package/esm5/components/money/money-options.js +4 -4
- package/esm5/components/money/money.component.js +7 -7
- package/esm5/components/money/pipes/fraction-part.pipe.js +2 -2
- package/esm5/components/money/pipes/integer-part.pipe.js +2 -2
- package/esm5/components/money/pipes/sign-symbol.pipe.js +2 -2
- package/esm5/components/money/utils/format-fraction-part.js +4 -4
- package/esm5/components/money/utils/format-sign-symbol.js +4 -4
- package/esm5/constants/card-holder-mask.js +27 -27
- package/esm5/constants/card-mask.js +5 -5
- package/esm5/enums/currency-code.js +1 -1
- package/esm5/enums/currency.js +1 -1
- package/esm5/enums/money-sign.js +1 -1
- package/esm5/enums/payment-system.js +1 -1
- package/esm5/pipes/currency/currency.pipe.js +2 -2
- package/esm5/pipes/format-card/format-card.pipe.js +6 -6
- package/esm5/tokens/i18n.js +5 -5
- package/esm5/utils/create-auto-corrected-expire-pipe.js +6 -6
- package/esm5/utils/format-currency.js +4 -4
- package/esm5/utils/get-currency-symbol.js +20 -20
- package/esm5/utils/get-payment-system.js +2 -2
- package/esm5/utils/is-card-number-valid.js +3 -3
- package/esm5/validators/card-expire.validator.js +2 -2
- package/esm5/validators/card-number.validator.js +2 -2
- package/fesm2015/taiga-ui-addon-commerce-components-card.js +14 -14
- package/fesm2015/taiga-ui-addon-commerce-components-card.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js +36 -36
- package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-components-input-card.js +11 -11
- package/fesm2015/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js +5 -5
- package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js +4 -4
- package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-components-money.js +18 -18
- package/fesm2015/taiga-ui-addon-commerce-components-money.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-constants.js +30 -30
- package/fesm2015/taiga-ui-addon-commerce-constants.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-enums.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-pipes.js +6 -6
- package/fesm2015/taiga-ui-addon-commerce-pipes.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-tokens.js +4 -4
- package/fesm2015/taiga-ui-addon-commerce-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-utils.js +30 -30
- package/fesm2015/taiga-ui-addon-commerce-utils.js.map +1 -1
- package/fesm2015/taiga-ui-addon-commerce-validators.js +2 -2
- package/fesm2015/taiga-ui-addon-commerce-validators.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-components-card.js +14 -14
- package/fesm5/taiga-ui-addon-commerce-components-card.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js +36 -36
- package/fesm5/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-components-input-card.js +11 -11
- package/fesm5/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-components-input-cvc.js +5 -5
- package/fesm5/taiga-ui-addon-commerce-components-input-cvc.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-components-input-expire.js +4 -4
- package/fesm5/taiga-ui-addon-commerce-components-input-expire.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-components-money.js +18 -18
- package/fesm5/taiga-ui-addon-commerce-components-money.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-constants.js +30 -30
- package/fesm5/taiga-ui-addon-commerce-constants.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-enums.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-pipes.js +6 -6
- package/fesm5/taiga-ui-addon-commerce-pipes.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-tokens.js +4 -4
- package/fesm5/taiga-ui-addon-commerce-tokens.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-utils.js +30 -30
- package/fesm5/taiga-ui-addon-commerce-utils.js.map +1 -1
- package/fesm5/taiga-ui-addon-commerce-validators.js +2 -2
- package/fesm5/taiga-ui-addon-commerce-validators.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-commerce-utils.umd.js","sources":["ng://@taiga-ui/addon-commerce/utils/create-auto-corrected-expire-pipe.ts","ng://@taiga-ui/addon-commerce/utils/get-currency-symbol.ts","ng://@taiga-ui/addon-commerce/utils/format-currency.ts","ng://@taiga-ui/addon-commerce/utils/get-payment-system.ts","ng://@taiga-ui/addon-commerce/utils/is-card-length-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-card-number-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-expire-valid.ts"],"sourcesContent":["import {TUI_NON_DIGIT_REGEXP, TuiTextMaskPipeHandler} from '@taiga-ui/core';\n\nconst TUI_EXP_YEAR_MONTH = /^\\d{2}[/|.]\\d{4}$/;\nconst TUI_EXP_SAFARI = /^\\d{1,4}.\\d{1,2}.\\d{1,4}$/;\n\n/**\n * Correct expiration date text allowing only valid months\n * @internal\n *\n * @returns MM/YY\n */\nexport function tuiCreateAutoCorrectedExpirePipe(): TuiTextMaskPipeHandler {\n return (conformedValue, {rawValue}) => {\n // Autofilled with MM/YYYY format\n if (TUI_EXP_YEAR_MONTH.test(rawValue)) {\n conformedValue = `${rawValue.slice(0, 2)}/${rawValue.slice(5)}`;\n }\n\n // Autofilled with Safari crazy format\n if (\n rawValue.length > 7 &&\n rawValue.length < 11 &&\n TUI_EXP_SAFARI.test(rawValue)\n ) {\n const array = rawValue.split(TUI_NON_DIGIT_REGEXP);\n const month = array[1];\n const year = array.find(({length}) => length === 4);\n\n conformedValue = `${'0'.repeat(2 - month.length)}${month}/${\n year ? year.slice(2) : ''\n }`;\n }\n\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n if (parseInt(conformedValueArr[0], 10) > 1) {\n conformedValueArr[2] = '/';\n conformedValueArr[1] = conformedValueArr[0];\n conformedValueArr[0] = '0';\n indexesOfPipedChars.push(0);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\n\n/**\n * @deprecated: use {@link tuiGetCurrencySymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return '₽';\n case TuiCurrency.Dollar:\n case TuiCurrencyCode.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.MexicanPeso:\n return '$';\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return 'S$';\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return 'A$';\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return 'HK$';\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return 'C$';\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return '€';\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return '£';\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return '฿';\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return '₺';\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return 'CN¥';\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return '¥';\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return '₪';\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return '₹';\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return '₣';\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return '֏';\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return '₩';\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return '₸';\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return '₴';\n default:\n return null;\n }\n}\n\nexport const tuiGetCurrencySymbol = getCurrencySymbol;\n","import {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {padStart} from '@taiga-ui/cdk';\n\nimport {getCurrencySymbol} from './get-currency-symbol';\n\n/**\n * @deprecated: use {@link tuiFormatCurrency} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n\nexport const tuiFormatCurrency = formatCurrency;\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || typeof currency === 'string'\n ? currency || ''\n : padStart(String(currency), 3, '0');\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\n/**\n * @deprecated: use {@link tuiGetPaymentSystem} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null {\n if (cardNumber === '') {\n return null;\n }\n\n const one = Number.parseInt(cardNumber[0], 10);\n const two = Number.parseInt(cardNumber.slice(0, 2), 10);\n const three = Number.parseInt(cardNumber.slice(0, 3), 10);\n const four = Number.parseInt(cardNumber.slice(0, 4), 10);\n\n if (isMaestro(three, two, one)) {\n return TuiPaymentSystem.Maestro;\n }\n\n if (isMastercard(four, two, one)) {\n return TuiPaymentSystem.Mastercard;\n }\n\n if (isMir(four)) {\n return TuiPaymentSystem.Mir;\n }\n\n if (isElectron(four)) {\n return TuiPaymentSystem.Electron;\n }\n\n if (isVisa(one)) {\n return TuiPaymentSystem.Visa;\n }\n\n return null;\n}\n\nexport const tuiGetPaymentSystem = getPaymentSystem;\n\n/**\n * @deprecated: use {@link tuiIsMaestro} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMaestro(three: number, two: number, one: number): boolean {\n if (one === 6) {\n return true;\n }\n\n if (two === 50 || (two > 55 && two < 59)) {\n return true;\n }\n\n if (three < 500) {\n return false;\n }\n\n return three < 510;\n}\n\nexport const tuiIsMaestro = isMaestro;\n\n/**\n * @deprecated: use {@link tuiIsMastercard} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMastercard(four: number, two: number, one: number): boolean {\n if (one === 5) {\n return true;\n }\n\n if (two < 10) {\n return false;\n }\n\n if (two > 50 && two < 56) {\n return true;\n }\n\n if (four < 1000) {\n return false;\n }\n\n return four > 2220 && four < 2721;\n}\n\nexport const tuiIsMastercard = isMastercard;\n\n/**\n * @deprecated: use {@link tuiIsMir} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport const tuiIsMir = isMir;\n\n/**\n * @deprecated: use {@link tuiIsElectron} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isElectron(four: number): boolean {\n switch (four) {\n case 4026:\n case 4175:\n case 4405:\n case 4508:\n case 4844:\n case 4913:\n case 4917:\n return true;\n default:\n return false;\n }\n}\n\nexport const tuiIsElectron = isElectron;\n\n/**\n * @deprecated: use {@link tuiIsVisa} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isVisa(one: number): boolean {\n return one === 4;\n}\n\nexport const tuiIsVisa = isVisa;\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nimport {getPaymentSystem} from './get-payment-system';\n\n/**\n * @deprecated: use {@link tuiIsCardLengthValid} instead\n * Validates card number length using payment system dictionary\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = getPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case TuiPaymentSystem.Electron:\n return length === 16;\n case TuiPaymentSystem.Maestro:\n return length > 11 && length < 20;\n case TuiPaymentSystem.Mastercard:\n case TuiPaymentSystem.Mir:\n return length > 15 && length < 20;\n case TuiPaymentSystem.Visa:\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n\nexport const tuiIsCardLengthValid = isCardLengthValid;\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/core';\n\n/**\n * @deprecated: use {@link tuiIsCardNumberValid} instead\n * Validates card number using Luhn algorithm\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardNumberValid(value: string | number): boolean {\n const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, '');\n\n const {length} = cardNumber;\n const arr = cardNumber.split('').map((char, index) => {\n const digit = parseInt(char, 10);\n\n if ((index + length) % 2 === 0) {\n const digitX2 = digit * 2;\n\n return digitX2 > 9 ? digitX2 - 9 : digitX2;\n }\n\n return digit;\n });\n\n return !(arr.reduce((a, b) => a + b, 0) % 10);\n}\n\nexport const tuiIsCardNumberValid = isCardNumberValid;\n","/**\n * @deprecated: use {@link tuiIsExpireValid} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isExpireValid(expire: string): boolean {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear() - 2000;\n const month = parseInt(expire.slice(0, 2), 0);\n const year = parseInt(expire.slice(-2), 0);\n\n return year > currentYear || (year === currentYear && month >= currentMonth);\n}\n\nexport const tuiIsExpireValid = isExpireValid;\n"],"names":["TUI_NON_DIGIT_REGEXP","padStart","TUI_NON_DIGITS_REGEXP"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-commerce-utils.umd.js","sources":["ng://@taiga-ui/addon-commerce/utils/create-auto-corrected-expire-pipe.ts","ng://@taiga-ui/addon-commerce/utils/get-currency-symbol.ts","ng://@taiga-ui/addon-commerce/utils/format-currency.ts","ng://@taiga-ui/addon-commerce/utils/get-payment-system.ts","ng://@taiga-ui/addon-commerce/utils/is-card-length-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-card-number-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-expire-valid.ts"],"sourcesContent":["import {TUI_NON_DIGIT_REGEXP, TuiTextMaskPipeHandler} from '@taiga-ui/core';\n\nconst TUI_EXP_YEAR_MONTH = /^\\d{2}[/|.]\\d{4}$/;\nconst TUI_EXP_SAFARI = /^\\d{1,4}.\\d{1,2}.\\d{1,4}$/;\n\n/**\n * Correct expiration date text allowing only valid months\n * @internal\n *\n * @returns MM/YY\n */\nexport function tuiCreateAutoCorrectedExpirePipe(): TuiTextMaskPipeHandler {\n return (conformedValue, {rawValue}) => {\n // Autofilled with MM/YYYY format\n if (TUI_EXP_YEAR_MONTH.test(rawValue)) {\n conformedValue = `${rawValue.slice(0, 2)}/${rawValue.slice(5)}`;\n }\n\n // Autofilled with Safari crazy format\n if (\n rawValue.length > 7 &&\n rawValue.length < 11 &&\n TUI_EXP_SAFARI.test(rawValue)\n ) {\n const array = rawValue.split(TUI_NON_DIGIT_REGEXP);\n const month = array[1];\n const year = array.find(({length}) => length === 4);\n\n conformedValue = `${`0`.repeat(2 - month.length)}${month}/${\n year ? year.slice(2) : ``\n }`;\n }\n\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split(``);\n\n if (parseInt(conformedValueArr[0], 10) > 1) {\n conformedValueArr[2] = `/`;\n conformedValueArr[1] = conformedValueArr[0];\n conformedValueArr[0] = `0`;\n indexesOfPipedChars.push(0);\n }\n\n return {\n value: conformedValueArr.join(``),\n indexesOfPipedChars,\n };\n };\n}\n","import {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\n\n/**\n * @deprecated: use {@link tuiGetCurrencySymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return `₽`;\n case TuiCurrency.Dollar:\n case TuiCurrencyCode.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.MexicanPeso:\n return `$`;\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return `S$`;\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return `A$`;\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return `HK$`;\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return `C$`;\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return `€`;\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return `£`;\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return `฿`;\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return `₺`;\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return `CN¥`;\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return `¥`;\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return `₪`;\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return `₹`;\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return `₣`;\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return `֏`;\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return `₩`;\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return `₸`;\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return `₴`;\n default:\n return null;\n }\n}\n\nexport const tuiGetCurrencySymbol = getCurrencySymbol;\n","import {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {padStart} from '@taiga-ui/cdk';\n\nimport {getCurrencySymbol} from './get-currency-symbol';\n\n/**\n * @deprecated: use {@link tuiFormatCurrency} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n\nexport const tuiFormatCurrency = formatCurrency;\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || typeof currency === `string`\n ? currency || ``\n : padStart(String(currency), 3, `0`);\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\n/**\n * @deprecated: use {@link tuiGetPaymentSystem} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null {\n if (cardNumber === ``) {\n return null;\n }\n\n const one = Number.parseInt(cardNumber[0], 10);\n const two = Number.parseInt(cardNumber.slice(0, 2), 10);\n const three = Number.parseInt(cardNumber.slice(0, 3), 10);\n const four = Number.parseInt(cardNumber.slice(0, 4), 10);\n\n if (isMaestro(three, two, one)) {\n return TuiPaymentSystem.Maestro;\n }\n\n if (isMastercard(four, two, one)) {\n return TuiPaymentSystem.Mastercard;\n }\n\n if (isMir(four)) {\n return TuiPaymentSystem.Mir;\n }\n\n if (isElectron(four)) {\n return TuiPaymentSystem.Electron;\n }\n\n if (isVisa(one)) {\n return TuiPaymentSystem.Visa;\n }\n\n return null;\n}\n\nexport const tuiGetPaymentSystem = getPaymentSystem;\n\n/**\n * @deprecated: use {@link tuiIsMaestro} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMaestro(three: number, two: number, one: number): boolean {\n if (one === 6) {\n return true;\n }\n\n if (two === 50 || (two > 55 && two < 59)) {\n return true;\n }\n\n if (three < 500) {\n return false;\n }\n\n return three < 510;\n}\n\nexport const tuiIsMaestro = isMaestro;\n\n/**\n * @deprecated: use {@link tuiIsMastercard} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMastercard(four: number, two: number, one: number): boolean {\n if (one === 5) {\n return true;\n }\n\n if (two < 10) {\n return false;\n }\n\n if (two > 50 && two < 56) {\n return true;\n }\n\n if (four < 1000) {\n return false;\n }\n\n return four > 2220 && four < 2721;\n}\n\nexport const tuiIsMastercard = isMastercard;\n\n/**\n * @deprecated: use {@link tuiIsMir} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport const tuiIsMir = isMir;\n\n/**\n * @deprecated: use {@link tuiIsElectron} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isElectron(four: number): boolean {\n switch (four) {\n case 4026:\n case 4175:\n case 4405:\n case 4508:\n case 4844:\n case 4913:\n case 4917:\n return true;\n default:\n return false;\n }\n}\n\nexport const tuiIsElectron = isElectron;\n\n/**\n * @deprecated: use {@link tuiIsVisa} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isVisa(one: number): boolean {\n return one === 4;\n}\n\nexport const tuiIsVisa = isVisa;\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nimport {getPaymentSystem} from './get-payment-system';\n\n/**\n * @deprecated: use {@link tuiIsCardLengthValid} instead\n * Validates card number length using payment system dictionary\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = getPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case TuiPaymentSystem.Electron:\n return length === 16;\n case TuiPaymentSystem.Maestro:\n return length > 11 && length < 20;\n case TuiPaymentSystem.Mastercard:\n case TuiPaymentSystem.Mir:\n return length > 15 && length < 20;\n case TuiPaymentSystem.Visa:\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n\nexport const tuiIsCardLengthValid = isCardLengthValid;\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/core';\n\n/**\n * @deprecated: use {@link tuiIsCardNumberValid} instead\n * Validates card number using Luhn algorithm\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardNumberValid(value: string | number): boolean {\n const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, ``);\n\n const {length} = cardNumber;\n const arr = cardNumber.split(``).map((char, index) => {\n const digit = parseInt(char, 10);\n\n if ((index + length) % 2 === 0) {\n const digitX2 = digit * 2;\n\n return digitX2 > 9 ? digitX2 - 9 : digitX2;\n }\n\n return digit;\n });\n\n return !(arr.reduce((a, b) => a + b, 0) % 10);\n}\n\nexport const tuiIsCardNumberValid = isCardNumberValid;\n","/**\n * @deprecated: use {@link tuiIsExpireValid} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isExpireValid(expire: string): boolean {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear() - 2000;\n const month = parseInt(expire.slice(0, 2), 0);\n const year = parseInt(expire.slice(-2), 0);\n\n return year > currentYear || (year === currentYear && month >= currentMonth);\n}\n\nexport const tuiIsExpireValid = isExpireValid;\n"],"names":["TUI_NON_DIGIT_REGEXP","padStart","TUI_NON_DIGITS_REGEXP"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ng://@taiga-ui/addon-commerce/utils/create-auto-corrected-expire-pipe.ts","ng://@taiga-ui/addon-commerce/utils/get-currency-symbol.ts","ng://@taiga-ui/addon-commerce/utils/format-currency.ts","ng://@taiga-ui/addon-commerce/utils/get-payment-system.ts","ng://@taiga-ui/addon-commerce/utils/is-card-length-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-card-number-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-expire-valid.ts"],"names":["TUI_EXP_YEAR_MONTH","TUI_EXP_SAFARI","getCurrencySymbol","currency","tuiGetCurrencySymbol","formatCurrency","stringifiedCurrency","padStart","String","stringifyCurrency","tuiFormatCurrency","getPaymentSystem","cardNumber","one","Number","parseInt","two","slice","three","four","isMaestro","isMastercard","isMir","isElectron","isVisa","tuiGetPaymentSystem","tuiIsMaestro","tuiIsMastercard","tuiIsMir","tuiIsElectron","tuiIsVisa","isCardLengthValid","length","tuiIsCardLengthValid","isCardNumberValid","value","replace","TUI_NON_DIGITS_REGEXP","split","map","char","index","digit","digitX2","reduce","a","b","tuiIsCardNumberValid","isExpireValid","expire","today","Date","currentMonth","getMonth","currentYear","getFullYear","month","year","tuiIsExpireValid","conformedValue","_a","rawValue","test","array","TUI_NON_DIGIT_REGEXP","find","repeat","indexesOfPipedChars","conformedValueArr","push","join"],"mappings":"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","sourcesContent":["import {TUI_NON_DIGIT_REGEXP, TuiTextMaskPipeHandler} from '@taiga-ui/core';\n\nconst TUI_EXP_YEAR_MONTH = /^\\d{2}[/|.]\\d{4}$/;\nconst TUI_EXP_SAFARI = /^\\d{1,4}.\\d{1,2}.\\d{1,4}$/;\n\n/**\n * Correct expiration date text allowing only valid months\n * @internal\n *\n * @returns MM/YY\n */\nexport function tuiCreateAutoCorrectedExpirePipe(): TuiTextMaskPipeHandler {\n return (conformedValue, {rawValue}) => {\n // Autofilled with MM/YYYY format\n if (TUI_EXP_YEAR_MONTH.test(rawValue)) {\n conformedValue = `${rawValue.slice(0, 2)}/${rawValue.slice(5)}`;\n }\n\n // Autofilled with Safari crazy format\n if (\n rawValue.length > 7 &&\n rawValue.length < 11 &&\n TUI_EXP_SAFARI.test(rawValue)\n ) {\n const array = rawValue.split(TUI_NON_DIGIT_REGEXP);\n const month = array[1];\n const year = array.find(({length}) => length === 4);\n\n conformedValue = `${'0'.repeat(2 - month.length)}${month}/${\n year ? year.slice(2) : ''\n }`;\n }\n\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split('');\n\n if (parseInt(conformedValueArr[0], 10) > 1) {\n conformedValueArr[2] = '/';\n conformedValueArr[1] = conformedValueArr[0];\n conformedValueArr[0] = '0';\n indexesOfPipedChars.push(0);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars,\n };\n };\n}\n","import {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\n\n/**\n * @deprecated: use {@link tuiGetCurrencySymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return '₽';\n case TuiCurrency.Dollar:\n case TuiCurrencyCode.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.MexicanPeso:\n return '$';\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return 'S$';\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return 'A$';\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return 'HK$';\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return 'C$';\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return '€';\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return '£';\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return '฿';\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return '₺';\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return 'CN¥';\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return '¥';\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return '₪';\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return '₹';\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return '₣';\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return '֏';\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return '₩';\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return '₸';\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return '₴';\n default:\n return null;\n }\n}\n\nexport const tuiGetCurrencySymbol = getCurrencySymbol;\n","import {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {padStart} from '@taiga-ui/cdk';\n\nimport {getCurrencySymbol} from './get-currency-symbol';\n\n/**\n * @deprecated: use {@link tuiFormatCurrency} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n\nexport const tuiFormatCurrency = formatCurrency;\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || typeof currency === 'string'\n ? currency || ''\n : padStart(String(currency), 3, '0');\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\n/**\n * @deprecated: use {@link tuiGetPaymentSystem} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null {\n if (cardNumber === '') {\n return null;\n }\n\n const one = Number.parseInt(cardNumber[0], 10);\n const two = Number.parseInt(cardNumber.slice(0, 2), 10);\n const three = Number.parseInt(cardNumber.slice(0, 3), 10);\n const four = Number.parseInt(cardNumber.slice(0, 4), 10);\n\n if (isMaestro(three, two, one)) {\n return TuiPaymentSystem.Maestro;\n }\n\n if (isMastercard(four, two, one)) {\n return TuiPaymentSystem.Mastercard;\n }\n\n if (isMir(four)) {\n return TuiPaymentSystem.Mir;\n }\n\n if (isElectron(four)) {\n return TuiPaymentSystem.Electron;\n }\n\n if (isVisa(one)) {\n return TuiPaymentSystem.Visa;\n }\n\n return null;\n}\n\nexport const tuiGetPaymentSystem = getPaymentSystem;\n\n/**\n * @deprecated: use {@link tuiIsMaestro} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMaestro(three: number, two: number, one: number): boolean {\n if (one === 6) {\n return true;\n }\n\n if (two === 50 || (two > 55 && two < 59)) {\n return true;\n }\n\n if (three < 500) {\n return false;\n }\n\n return three < 510;\n}\n\nexport const tuiIsMaestro = isMaestro;\n\n/**\n * @deprecated: use {@link tuiIsMastercard} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMastercard(four: number, two: number, one: number): boolean {\n if (one === 5) {\n return true;\n }\n\n if (two < 10) {\n return false;\n }\n\n if (two > 50 && two < 56) {\n return true;\n }\n\n if (four < 1000) {\n return false;\n }\n\n return four > 2220 && four < 2721;\n}\n\nexport const tuiIsMastercard = isMastercard;\n\n/**\n * @deprecated: use {@link tuiIsMir} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport const tuiIsMir = isMir;\n\n/**\n * @deprecated: use {@link tuiIsElectron} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isElectron(four: number): boolean {\n switch (four) {\n case 4026:\n case 4175:\n case 4405:\n case 4508:\n case 4844:\n case 4913:\n case 4917:\n return true;\n default:\n return false;\n }\n}\n\nexport const tuiIsElectron = isElectron;\n\n/**\n * @deprecated: use {@link tuiIsVisa} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isVisa(one: number): boolean {\n return one === 4;\n}\n\nexport const tuiIsVisa = isVisa;\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nimport {getPaymentSystem} from './get-payment-system';\n\n/**\n * @deprecated: use {@link tuiIsCardLengthValid} instead\n * Validates card number length using payment system dictionary\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = getPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case TuiPaymentSystem.Electron:\n return length === 16;\n case TuiPaymentSystem.Maestro:\n return length > 11 && length < 20;\n case TuiPaymentSystem.Mastercard:\n case TuiPaymentSystem.Mir:\n return length > 15 && length < 20;\n case TuiPaymentSystem.Visa:\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n\nexport const tuiIsCardLengthValid = isCardLengthValid;\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/core';\n\n/**\n * @deprecated: use {@link tuiIsCardNumberValid} instead\n * Validates card number using Luhn algorithm\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardNumberValid(value: string | number): boolean {\n const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, '');\n\n const {length} = cardNumber;\n const arr = cardNumber.split('').map((char, index) => {\n const digit = parseInt(char, 10);\n\n if ((index + length) % 2 === 0) {\n const digitX2 = digit * 2;\n\n return digitX2 > 9 ? digitX2 - 9 : digitX2;\n }\n\n return digit;\n });\n\n return !(arr.reduce((a, b) => a + b, 0) % 10);\n}\n\nexport const tuiIsCardNumberValid = isCardNumberValid;\n","/**\n * @deprecated: use {@link tuiIsExpireValid} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isExpireValid(expire: string): boolean {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear() - 2000;\n const month = parseInt(expire.slice(0, 2), 0);\n const year = parseInt(expire.slice(-2), 0);\n\n return year > currentYear || (year === currentYear && month >= currentMonth);\n}\n\nexport const tuiIsExpireValid = isExpireValid;\n"]}
|
|
1
|
+
{"version":3,"sources":["ng://@taiga-ui/addon-commerce/utils/create-auto-corrected-expire-pipe.ts","ng://@taiga-ui/addon-commerce/utils/get-currency-symbol.ts","ng://@taiga-ui/addon-commerce/utils/format-currency.ts","ng://@taiga-ui/addon-commerce/utils/get-payment-system.ts","ng://@taiga-ui/addon-commerce/utils/is-card-length-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-card-number-valid.ts","ng://@taiga-ui/addon-commerce/utils/is-expire-valid.ts"],"names":["TUI_EXP_YEAR_MONTH","TUI_EXP_SAFARI","getCurrencySymbol","currency","tuiGetCurrencySymbol","formatCurrency","stringifiedCurrency","padStart","String","stringifyCurrency","tuiFormatCurrency","getPaymentSystem","cardNumber","one","Number","parseInt","two","slice","three","four","isMaestro","isMastercard","isMir","isElectron","isVisa","tuiGetPaymentSystem","tuiIsMaestro","tuiIsMastercard","tuiIsMir","tuiIsElectron","tuiIsVisa","isCardLengthValid","length","tuiIsCardLengthValid","isCardNumberValid","value","replace","TUI_NON_DIGITS_REGEXP","split","map","char","index","digit","digitX2","reduce","a","b","tuiIsCardNumberValid","isExpireValid","expire","today","Date","currentMonth","getMonth","currentYear","getFullYear","month","year","tuiIsExpireValid","conformedValue","_a","rawValue","test","array","TUI_NON_DIGIT_REGEXP","find","repeat","indexesOfPipedChars","conformedValueArr","push","join"],"mappings":"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","sourcesContent":["import {TUI_NON_DIGIT_REGEXP, TuiTextMaskPipeHandler} from '@taiga-ui/core';\n\nconst TUI_EXP_YEAR_MONTH = /^\\d{2}[/|.]\\d{4}$/;\nconst TUI_EXP_SAFARI = /^\\d{1,4}.\\d{1,2}.\\d{1,4}$/;\n\n/**\n * Correct expiration date text allowing only valid months\n * @internal\n *\n * @returns MM/YY\n */\nexport function tuiCreateAutoCorrectedExpirePipe(): TuiTextMaskPipeHandler {\n return (conformedValue, {rawValue}) => {\n // Autofilled with MM/YYYY format\n if (TUI_EXP_YEAR_MONTH.test(rawValue)) {\n conformedValue = `${rawValue.slice(0, 2)}/${rawValue.slice(5)}`;\n }\n\n // Autofilled with Safari crazy format\n if (\n rawValue.length > 7 &&\n rawValue.length < 11 &&\n TUI_EXP_SAFARI.test(rawValue)\n ) {\n const array = rawValue.split(TUI_NON_DIGIT_REGEXP);\n const month = array[1];\n const year = array.find(({length}) => length === 4);\n\n conformedValue = `${`0`.repeat(2 - month.length)}${month}/${\n year ? year.slice(2) : ``\n }`;\n }\n\n const indexesOfPipedChars: number[] = [];\n const conformedValueArr = conformedValue.split(``);\n\n if (parseInt(conformedValueArr[0], 10) > 1) {\n conformedValueArr[2] = `/`;\n conformedValueArr[1] = conformedValueArr[0];\n conformedValueArr[0] = `0`;\n indexesOfPipedChars.push(0);\n }\n\n return {\n value: conformedValueArr.join(``),\n indexesOfPipedChars,\n };\n };\n}\n","import {TuiCurrency, TuiCurrencyCode} from '@taiga-ui/addon-commerce/enums';\nimport {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\n\n/**\n * @deprecated: use {@link tuiGetCurrencySymbol} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getCurrencySymbol(currency: TuiCurrencyVariants): string | null {\n switch (currency) {\n case TuiCurrency.Ruble:\n case TuiCurrencyCode.Ruble:\n return `₽`;\n case TuiCurrency.Dollar:\n case TuiCurrencyCode.Dollar:\n case TuiCurrency.MexicanPeso:\n case TuiCurrencyCode.MexicanPeso:\n return `$`;\n case TuiCurrency.SingaporeDollar:\n case TuiCurrencyCode.SingaporeDollar:\n return `S$`;\n case TuiCurrency.AustralianDollar:\n case TuiCurrencyCode.AustralianDollar:\n return `A$`;\n case TuiCurrency.HongKongDollar:\n case TuiCurrencyCode.HongKongDollar:\n return `HK$`;\n case TuiCurrency.CanadianDollar:\n case TuiCurrencyCode.CanadianDollar:\n return `C$`;\n case TuiCurrency.Euro:\n case TuiCurrencyCode.Euro:\n return `€`;\n case TuiCurrency.Pound:\n case TuiCurrencyCode.Pound:\n return `£`;\n case TuiCurrency.Baht:\n case TuiCurrencyCode.Baht:\n return `฿`;\n case TuiCurrency.TurkishLira:\n case TuiCurrencyCode.TurkishLira:\n return `₺`;\n case TuiCurrency.YuanRenminbi:\n case TuiCurrencyCode.YuanRenminbi:\n return `CN¥`;\n case TuiCurrency.Yen:\n case TuiCurrencyCode.Yen:\n return `¥`;\n case TuiCurrency.IsraeliShekel:\n case TuiCurrencyCode.IsraeliShekel:\n return `₪`;\n case TuiCurrency.IndianRupee:\n case TuiCurrencyCode.IndianRupee:\n return `₹`;\n case TuiCurrency.SwissFranc:\n case TuiCurrencyCode.SwissFranc:\n return `₣`;\n case TuiCurrency.ArmenianDram:\n case TuiCurrencyCode.ArmenianDram:\n return `֏`;\n case TuiCurrency.Won:\n case TuiCurrencyCode.Won:\n return `₩`;\n case TuiCurrency.Tenge:\n case TuiCurrencyCode.Tenge:\n return `₸`;\n case TuiCurrency.Hryvnia:\n case TuiCurrencyCode.Hryvnia:\n return `₴`;\n default:\n return null;\n }\n}\n\nexport const tuiGetCurrencySymbol = getCurrencySymbol;\n","import {TuiCurrencyVariants} from '@taiga-ui/addon-commerce/types';\nimport {padStart} from '@taiga-ui/cdk';\n\nimport {getCurrencySymbol} from './get-currency-symbol';\n\n/**\n * @deprecated: use {@link tuiFormatCurrency} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function formatCurrency(currency: TuiCurrencyVariants): string {\n const stringifiedCurrency = stringifyCurrency(currency);\n\n return getCurrencySymbol(stringifiedCurrency) || stringifiedCurrency;\n}\n\nexport const tuiFormatCurrency = formatCurrency;\n\nfunction stringifyCurrency(currency: TuiCurrencyVariants): string {\n return currency === null || typeof currency === `string`\n ? currency || ``\n : padStart(String(currency), 3, `0`);\n}\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\n/**\n * @deprecated: use {@link tuiGetPaymentSystem} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function getPaymentSystem(cardNumber: string): TuiPaymentSystem | null {\n if (cardNumber === ``) {\n return null;\n }\n\n const one = Number.parseInt(cardNumber[0], 10);\n const two = Number.parseInt(cardNumber.slice(0, 2), 10);\n const three = Number.parseInt(cardNumber.slice(0, 3), 10);\n const four = Number.parseInt(cardNumber.slice(0, 4), 10);\n\n if (isMaestro(three, two, one)) {\n return TuiPaymentSystem.Maestro;\n }\n\n if (isMastercard(four, two, one)) {\n return TuiPaymentSystem.Mastercard;\n }\n\n if (isMir(four)) {\n return TuiPaymentSystem.Mir;\n }\n\n if (isElectron(four)) {\n return TuiPaymentSystem.Electron;\n }\n\n if (isVisa(one)) {\n return TuiPaymentSystem.Visa;\n }\n\n return null;\n}\n\nexport const tuiGetPaymentSystem = getPaymentSystem;\n\n/**\n * @deprecated: use {@link tuiIsMaestro} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMaestro(three: number, two: number, one: number): boolean {\n if (one === 6) {\n return true;\n }\n\n if (two === 50 || (two > 55 && two < 59)) {\n return true;\n }\n\n if (three < 500) {\n return false;\n }\n\n return three < 510;\n}\n\nexport const tuiIsMaestro = isMaestro;\n\n/**\n * @deprecated: use {@link tuiIsMastercard} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMastercard(four: number, two: number, one: number): boolean {\n if (one === 5) {\n return true;\n }\n\n if (two < 10) {\n return false;\n }\n\n if (two > 50 && two < 56) {\n return true;\n }\n\n if (four < 1000) {\n return false;\n }\n\n return four > 2220 && four < 2721;\n}\n\nexport const tuiIsMastercard = isMastercard;\n\n/**\n * @deprecated: use {@link tuiIsMir} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isMir(four: number): boolean {\n return four > 2199 && four < 2205;\n}\n\nexport const tuiIsMir = isMir;\n\n/**\n * @deprecated: use {@link tuiIsElectron} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isElectron(four: number): boolean {\n switch (four) {\n case 4026:\n case 4175:\n case 4405:\n case 4508:\n case 4844:\n case 4913:\n case 4917:\n return true;\n default:\n return false;\n }\n}\n\nexport const tuiIsElectron = isElectron;\n\n/**\n * @deprecated: use {@link tuiIsVisa} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isVisa(one: number): boolean {\n return one === 4;\n}\n\nexport const tuiIsVisa = isVisa;\n","import {TuiPaymentSystem} from '@taiga-ui/addon-commerce/enums';\n\nimport {getPaymentSystem} from './get-payment-system';\n\n/**\n * @deprecated: use {@link tuiIsCardLengthValid} instead\n * Validates card number length using payment system dictionary\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardLengthValid(cardNumber: string): boolean {\n const {length} = cardNumber;\n const paymentSystem = getPaymentSystem(cardNumber);\n\n switch (paymentSystem) {\n case TuiPaymentSystem.Electron:\n return length === 16;\n case TuiPaymentSystem.Maestro:\n return length > 11 && length < 20;\n case TuiPaymentSystem.Mastercard:\n case TuiPaymentSystem.Mir:\n return length > 15 && length < 20;\n case TuiPaymentSystem.Visa:\n return length > 12 && length < 20;\n default:\n return length > 8 && length < 20;\n }\n}\n\nexport const tuiIsCardLengthValid = isCardLengthValid;\n","import {TUI_NON_DIGITS_REGEXP} from '@taiga-ui/core';\n\n/**\n * @deprecated: use {@link tuiIsCardNumberValid} instead\n * Validates card number using Luhn algorithm\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isCardNumberValid(value: string | number): boolean {\n const cardNumber = String(value).replace(TUI_NON_DIGITS_REGEXP, ``);\n\n const {length} = cardNumber;\n const arr = cardNumber.split(``).map((char, index) => {\n const digit = parseInt(char, 10);\n\n if ((index + length) % 2 === 0) {\n const digitX2 = digit * 2;\n\n return digitX2 > 9 ? digitX2 - 9 : digitX2;\n }\n\n return digit;\n });\n\n return !(arr.reduce((a, b) => a + b, 0) % 10);\n}\n\nexport const tuiIsCardNumberValid = isCardNumberValid;\n","/**\n * @deprecated: use {@link tuiIsExpireValid} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function isExpireValid(expire: string): boolean {\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear() - 2000;\n const month = parseInt(expire.slice(0, 2), 0);\n const year = parseInt(expire.slice(-2), 0);\n\n return year > currentYear || (year === currentYear && month >= currentMonth);\n}\n\nexport const tuiIsExpireValid = isExpireValid;\n"]}
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
var value = _a.value;
|
|
9
9
|
var _b;
|
|
10
10
|
return ((_b = value === null || value === void 0 ? void 0 : value.expire) === null || _b === void 0 ? void 0 : _b.length) === 5 && !utils.isExpireValid(value === null || value === void 0 ? void 0 : value.expire)
|
|
11
|
-
? { expire: new cdk.TuiValidationError(
|
|
11
|
+
? { expire: new cdk.TuiValidationError("Expire date") }
|
|
12
12
|
: null;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
function tuiCardNumberValidator(_a) {
|
|
16
16
|
var value = _a.value;
|
|
17
17
|
return (value === null || value === void 0 ? void 0 : value.card) && !utils.isCardNumberValid(value.card)
|
|
18
|
-
? { card: new cdk.TuiValidationError(
|
|
18
|
+
? { card: new cdk.TuiValidationError("Invalid card number") }
|
|
19
19
|
: null;
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-commerce-validators.umd.js","sources":["ng://@taiga-ui/addon-commerce/validators/card-expire.validator.ts","ng://@taiga-ui/addon-commerce/validators/card-number.validator.ts","ng://@taiga-ui/addon-commerce/validators/luhn.validator.ts"],"sourcesContent":["import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isExpireValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardExpireValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.expire?.length === 5 && !isExpireValid(value?.expire)\n ? {expire: new TuiValidationError(
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-commerce-validators.umd.js","sources":["ng://@taiga-ui/addon-commerce/validators/card-expire.validator.ts","ng://@taiga-ui/addon-commerce/validators/card-number.validator.ts","ng://@taiga-ui/addon-commerce/validators/luhn.validator.ts"],"sourcesContent":["import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isExpireValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardExpireValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.expire?.length === 5 && !isExpireValid(value?.expire)\n ? {expire: new TuiValidationError(`Expire date`)}\n : null;\n}\n","import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isCardNumberValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardNumberValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.card && !isCardNumberValid(value.card)\n ? {card: new TuiValidationError(`Invalid card number`)}\n : null;\n}\n","import {AbstractControl, ValidatorFn} from '@angular/forms';\nimport {isCardNumberValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport function tuiCreateLuhnValidator(message: PolymorpheusContent): ValidatorFn {\n return ({value}: AbstractControl) => {\n return isCardNumberValid(value) ? null : {luhn: new TuiValidationError(message)};\n };\n}\n"],"names":["isExpireValid","TuiValidationError","isCardNumberValid"],"mappings":";;;;;;aAIgB,sBAAsB,CAAC,EAErB;YADd,gBAAK;;QAEL,OAAO,OAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,MAAM,MAAK,CAAC,IAAI,CAACA,mBAAa,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC;cAC7D,EAAC,MAAM,EAAE,IAAIC,sBAAkB,CAAC,aAAa,CAAC,EAAC;cAC/C,IAAI,CAAC;IACf;;aCNgB,sBAAsB,CAAC,EAErB;YADd,gBAAK;QAEL,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,CAACC,uBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;cAC9C,EAAC,IAAI,EAAE,IAAID,sBAAkB,CAAC,qBAAqB,CAAC,EAAC;cACrD,IAAI,CAAC;IACf;;aCLgB,sBAAsB,CAAC,OAA4B;QAC/D,OAAO,UAAC,EAAwB;gBAAvB,gBAAK;YACV,OAAOC,uBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAC,IAAI,EAAE,IAAID,sBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC;SACpF,CAAC;IACN;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ng://@taiga-ui/addon-commerce/validators/card-expire.validator.ts","ng://@taiga-ui/addon-commerce/validators/card-number.validator.ts","ng://@taiga-ui/addon-commerce/validators/luhn.validator.ts"],"names":["_a","value","_b","expire","length","isExpireValid","TuiValidationError","card","isCardNumberValid","message","luhn"],"mappings":"wjBAIuCA,SACnCC,EAAAD,EAAAC,MAEA,OAAiC,KAAb,QAAbC,EAAAD,MAAAA,OAAK,EAALA,EAAOE,cAAM,IAAAD,OAAA,EAAAA,EAAEE,SAAiBC,EAAAA,cAAcJ,MAAAA,OAAK,EAALA,EAAOE,QAEtD,KADA,CAACA,OAAQ,IAAIG,EAAAA,mBAAmB,mDCJHN,OACnCC,EAAAD,EAAAC,MAEA,OAAOA,MAAAA,OAAK,EAALA,EAAOM,QAASC,EAAAA,kBAAkBP,EAAMM,MACzC,CAACA,KAAM,IAAID,EAAAA,mBAAmB,wBAC9B,wCCJ6BG,GACnC,OAAO,SAACT,OAACC,EAAAD,EAAAC,MACL,OAAOO,EAAAA,kBAAkBP,GAAS,KAAO,CAACS,KAAM,IAAIJ,EAAAA,mBAAmBG","sourcesContent":["import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isExpireValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardExpireValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.expire?.length === 5 && !isExpireValid(value?.expire)\n ? {expire: new TuiValidationError(
|
|
1
|
+
{"version":3,"sources":["ng://@taiga-ui/addon-commerce/validators/card-expire.validator.ts","ng://@taiga-ui/addon-commerce/validators/card-number.validator.ts","ng://@taiga-ui/addon-commerce/validators/luhn.validator.ts"],"names":["_a","value","_b","expire","length","isExpireValid","TuiValidationError","card","isCardNumberValid","message","luhn"],"mappings":"wjBAIuCA,SACnCC,EAAAD,EAAAC,MAEA,OAAiC,KAAb,QAAbC,EAAAD,MAAAA,OAAK,EAALA,EAAOE,cAAM,IAAAD,OAAA,EAAAA,EAAEE,SAAiBC,EAAAA,cAAcJ,MAAAA,OAAK,EAALA,EAAOE,QAEtD,KADA,CAACA,OAAQ,IAAIG,EAAAA,mBAAmB,mDCJHN,OACnCC,EAAAD,EAAAC,MAEA,OAAOA,MAAAA,OAAK,EAALA,EAAOM,QAASC,EAAAA,kBAAkBP,EAAMM,MACzC,CAACA,KAAM,IAAID,EAAAA,mBAAmB,wBAC9B,wCCJ6BG,GACnC,OAAO,SAACT,OAACC,EAAAD,EAAAC,MACL,OAAOO,EAAAA,kBAAkBP,GAAS,KAAO,CAACS,KAAM,IAAIJ,EAAAA,mBAAmBG","sourcesContent":["import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isExpireValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardExpireValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.expire?.length === 5 && !isExpireValid(value?.expire)\n ? {expire: new TuiValidationError(`Expire date`)}\n : null;\n}\n","import {AbstractControl, ValidationErrors} from '@angular/forms';\nimport {isCardNumberValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\n\nexport function tuiCardNumberValidator({\n value,\n}: AbstractControl): ValidationErrors | null {\n return value?.card && !isCardNumberValid(value.card)\n ? {card: new TuiValidationError(`Invalid card number`)}\n : null;\n}\n","import {AbstractControl, ValidatorFn} from '@angular/forms';\nimport {isCardNumberValid} from '@taiga-ui/addon-commerce/utils';\nimport {TuiValidationError} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport function tuiCreateLuhnValidator(message: PolymorpheusContent): ValidatorFn {\n return ({value}: AbstractControl) => {\n return isCardNumberValid(value) ? null : {luhn: new TuiValidationError(message)};\n };\n}\n"]}
|
|
@@ -5,32 +5,32 @@ import { tuiDefaultProp } from '@taiga-ui/cdk';
|
|
|
5
5
|
export function cardNumberAssertion({ length }) {
|
|
6
6
|
return !length || length === 4;
|
|
7
7
|
}
|
|
8
|
-
export const cardNumberAssertionMessage =
|
|
8
|
+
export const cardNumberAssertionMessage = `cardNumber should contain 4 symbols`;
|
|
9
9
|
const icons = {
|
|
10
|
-
["mir" /* Mir */]:
|
|
11
|
-
["visa" /* Visa */]:
|
|
12
|
-
["electron" /* Electron */]:
|
|
13
|
-
["mastercard" /* Mastercard */]:
|
|
14
|
-
["maestro" /* Maestro */]:
|
|
10
|
+
["mir" /* Mir */]: `tuiIconMirMono`,
|
|
11
|
+
["visa" /* Visa */]: `tuiIconVisaMono`,
|
|
12
|
+
["electron" /* Electron */]: `tuiIconElectronMono`,
|
|
13
|
+
["mastercard" /* Mastercard */]: `tuiIconMastercard`,
|
|
14
|
+
["maestro" /* Maestro */]: `tuiIconMaestro`,
|
|
15
15
|
};
|
|
16
16
|
let TuiCardComponent = class TuiCardComponent {
|
|
17
17
|
constructor() {
|
|
18
18
|
this.active = false;
|
|
19
|
-
this.brandLogo =
|
|
20
|
-
this.cardNumber =
|
|
19
|
+
this.brandLogo = ``;
|
|
20
|
+
this.cardNumber = ``;
|
|
21
21
|
this.paymentSystem = null;
|
|
22
|
-
this.size =
|
|
22
|
+
this.size = `m`;
|
|
23
23
|
}
|
|
24
24
|
get hasBrandLogo() {
|
|
25
|
-
return !!this.brandLogo && this.size ===
|
|
25
|
+
return !!this.brandLogo && this.size === `m`;
|
|
26
26
|
}
|
|
27
27
|
get paymentSystemLogo() {
|
|
28
|
-
return this.paymentSystem ? icons[this.paymentSystem] :
|
|
28
|
+
return this.paymentSystem ? icons[this.paymentSystem] : ``;
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
31
|
__decorate([
|
|
32
32
|
Input(),
|
|
33
|
-
HostBinding(
|
|
33
|
+
HostBinding(`class._active`),
|
|
34
34
|
tuiDefaultProp()
|
|
35
35
|
], TuiCardComponent.prototype, "active", void 0);
|
|
36
36
|
__decorate([
|
|
@@ -47,16 +47,16 @@ __decorate([
|
|
|
47
47
|
], TuiCardComponent.prototype, "paymentSystem", void 0);
|
|
48
48
|
__decorate([
|
|
49
49
|
Input(),
|
|
50
|
-
HostBinding(
|
|
50
|
+
HostBinding(`attr.data-size`),
|
|
51
51
|
tuiDefaultProp()
|
|
52
52
|
], TuiCardComponent.prototype, "size", void 0);
|
|
53
53
|
TuiCardComponent = __decorate([
|
|
54
54
|
Component({
|
|
55
|
-
selector:
|
|
55
|
+
selector: `tui-card`,
|
|
56
56
|
template: "<div class=\"t-front\">\n <tui-svg\n *ngIf=\"hasBrandLogo\"\n class=\"t-brand-logo\"\n [src]=\"brandLogo\"\n ></tui-svg>\n <span class=\"t-number\">{{ cardNumber }}</span>\n <tui-svg\n *ngIf=\"!!paymentSystem\"\n class=\"t-payment-system-logo\"\n [src]=\"paymentSystemLogo\"\n ></tui-svg>\n</div>\n<div class=\"t-back\"></div>\n",
|
|
57
57
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
58
58
|
styles: [":host{position:relative;display:block;color:var(--tui-base-01);transform-style:preserve-3d;cursor:default;border-radius:var(--tui-radius-xs);background-size:100%}:host[data-size='s']{width:2rem;height:1.5rem}:host[data-size='m']{width:3rem;height:2rem}:host._active{box-shadow:0 0 0 1px var(--tui-base-01)}.t-front{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}.t-brand-logo{position:absolute;top:.1875rem;left:.125rem;height:.875rem;width:.875rem}.t-number{position:absolute;right:.25rem;display:flex;justify-content:center;align-items:center}:host[data-size='s'] .t-number{top:.125rem;height:.625rem;width:1.1875rem;font-size:.5rem}:host[data-size='m'] .t-number{top:.1875rem;height:.875rem;width:1.5rem;font-size:.625rem}.t-payment-system-logo{position:absolute;right:.25rem;bottom:-.5rem;width:2rem;height:2rem;transform:scale(.5);transform-origin:right}.t-back{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateY(180deg) translate3d(0,0,1px);background-color:var(--tui-base-05);border-radius:var(--tui-radius-xs)}.t-back:after{content:'';position:absolute;top:20%;left:0;right:0;height:20%;background-color:var(--tui-base-06)}"]
|
|
59
59
|
})
|
|
60
60
|
], TuiCardComponent);
|
|
61
61
|
export { TuiCardComponent };
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvY29tcG9uZW50cy9jYXJkLyIsInNvdXJjZXMiOlsiY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzdDLGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFBQyxNQUFNLEVBQVM7SUFDaEQsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxxQ0FBcUMsQ0FBQztBQUVoRixNQUFNLEtBQUssR0FBRztJQUNWLGlCQUFzQixFQUFFLGdCQUFnQjtJQUN4QyxtQkFBdUIsRUFBRSxpQkFBaUI7SUFDMUMsMkJBQTJCLEVBQUUscUJBQXFCO0lBQ2xELCtCQUE2QixFQUFFLG1CQUFtQjtJQUNsRCx5QkFBMEIsRUFBRSxnQkFBZ0I7Q0FDL0MsQ0FBQztBQVFGLElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWdCO0lBQTdCO1FBSUksV0FBTSxHQUFHLEtBQUssQ0FBQztRQUlmLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFJZixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBSWhCLGtCQUFhLEdBQWdELElBQUksQ0FBQztRQUtsRSxTQUFJLEdBQWEsR0FBRyxDQUFDO0lBU3pCLENBQUM7SUFQRyxJQUFJLFlBQVk7UUFDWixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0NBQ0osQ0FBQTtBQTFCRztJQUhDLEtBQUssRUFBRTtJQUNQLFdBQVcsQ0FBQyxlQUFlLENBQUM7SUFDNUIsY0FBYyxFQUFFO2dEQUNGO0FBSWY7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7bURBQ0Y7QUFJZjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSwwQkFBMEIsQ0FBQztvREFDaEQ7QUFJaEI7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7dURBQ2lEO0FBS2xFO0lBSEMsS0FBSyxFQUFFO0lBQ1AsV0FBVyxDQUFDLGdCQUFnQixDQUFDO0lBQzdCLGNBQWMsRUFBRTs4Q0FDSTtBQXJCWixnQkFBZ0I7SUFONUIsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLFVBQVU7UUFDcEIsNllBQWlDO1FBRWpDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNsRCxDQUFDO0dBQ1csZ0JBQWdCLENBOEI1QjtTQTlCWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aVBheW1lbnRTeXN0ZW0sIFR1aVBheW1lbnRTeXN0ZW1UfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvZW51bXMnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBmdW5jdGlvbiBjYXJkTnVtYmVyQXNzZXJ0aW9uKHtsZW5ndGh9OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWxlbmd0aCB8fCBsZW5ndGggPT09IDQ7XG59XG5cbmV4cG9ydCBjb25zdCBjYXJkTnVtYmVyQXNzZXJ0aW9uTWVzc2FnZSA9IGBjYXJkTnVtYmVyIHNob3VsZCBjb250YWluIDQgc3ltYm9sc2A7XG5cbmNvbnN0IGljb25zID0ge1xuICAgIFtUdWlQYXltZW50U3lzdGVtLk1pcl06IGB0dWlJY29uTWlyTW9ub2AsXG4gICAgW1R1aVBheW1lbnRTeXN0ZW0uVmlzYV06IGB0dWlJY29uVmlzYU1vbm9gLFxuICAgIFtUdWlQYXltZW50U3lzdGVtLkVsZWN0cm9uXTogYHR1aUljb25FbGVjdHJvbk1vbm9gLFxuICAgIFtUdWlQYXltZW50U3lzdGVtLk1hc3RlcmNhcmRdOiBgdHVpSWNvbk1hc3RlcmNhcmRgLFxuICAgIFtUdWlQYXltZW50U3lzdGVtLk1hZXN0cm9dOiBgdHVpSWNvbk1hZXN0cm9gLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktY2FyZGAsXG4gICAgdGVtcGxhdGVVcmw6IGBjYXJkLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2NhcmQuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYXJkQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuX2FjdGl2ZWApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhY3RpdmUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBicmFuZExvZ28gPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKGNhcmROdW1iZXJBc3NlcnRpb24sIGNhcmROdW1iZXJBc3NlcnRpb25NZXNzYWdlKVxuICAgIGNhcmROdW1iZXIgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwYXltZW50U3lzdGVtOiBUdWlQYXltZW50U3lzdGVtVCB8IFR1aVBheW1lbnRTeXN0ZW0gfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBhdHRyLmRhdGEtc2l6ZWApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplUyA9IGBtYDtcblxuICAgIGdldCBoYXNCcmFuZExvZ28oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuYnJhbmRMb2dvICYmIHRoaXMuc2l6ZSA9PT0gYG1gO1xuICAgIH1cblxuICAgIGdldCBwYXltZW50U3lzdGVtTG9nbygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXltZW50U3lzdGVtID8gaWNvbnNbdGhpcy5wYXltZW50U3lzdGVtXSA6IGBgO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -7,16 +7,16 @@ import { getPaymentSystem } from '@taiga-ui/addon-commerce/utils';
|
|
|
7
7
|
import { AbstractTuiControl, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, } from '@taiga-ui/cdk';
|
|
8
8
|
import { TUI_TEXTFIELD_EXAMPLE_TEXT, TuiPrimitiveTextfieldComponent, TuiTextfieldExampleTextDirective, } from '@taiga-ui/core';
|
|
9
9
|
const icons = {
|
|
10
|
-
["mir" /* Mir */]:
|
|
11
|
-
["visa" /* Visa */]:
|
|
12
|
-
["electron" /* Electron */]:
|
|
13
|
-
["mastercard" /* Mastercard */]:
|
|
14
|
-
["maestro" /* Maestro */]:
|
|
10
|
+
["mir" /* Mir */]: `tuiIconMir`,
|
|
11
|
+
["visa" /* Visa */]: `tuiIconVisa`,
|
|
12
|
+
["electron" /* Electron */]: `tuiIconElectron`,
|
|
13
|
+
["mastercard" /* Mastercard */]: `tuiIconMastercard`,
|
|
14
|
+
["maestro" /* Maestro */]: `tuiIconMaestro`,
|
|
15
15
|
};
|
|
16
16
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
17
17
|
export function cardTextfieldControllerFactory(directive) {
|
|
18
18
|
directive = directive || new TuiTextfieldExampleTextDirective();
|
|
19
|
-
directive.exampleText =
|
|
19
|
+
directive.exampleText = `0000 0000 0000 0000`;
|
|
20
20
|
return directive;
|
|
21
21
|
}
|
|
22
22
|
// @dynamic
|
|
@@ -58,12 +58,12 @@ let TuiInputCardComponent = TuiInputCardComponent_1 = class TuiInputCardComponen
|
|
|
58
58
|
}
|
|
59
59
|
get formattedCard() {
|
|
60
60
|
return this.value
|
|
61
|
-
.split(
|
|
61
|
+
.split(``)
|
|
62
62
|
.map((char, index) => (index && index % 4 === 0 ? ` ${char}` : char))
|
|
63
|
-
.join(
|
|
63
|
+
.join(``);
|
|
64
64
|
}
|
|
65
65
|
onValueChange(value) {
|
|
66
|
-
const parsed = value.split(
|
|
66
|
+
const parsed = value.split(` `).join(``);
|
|
67
67
|
const currentBin = this.bin;
|
|
68
68
|
this.updateValue(parsed);
|
|
69
69
|
const newBin = this.bin;
|
|
@@ -86,7 +86,7 @@ let TuiInputCardComponent = TuiInputCardComponent_1 = class TuiInputCardComponen
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
getFallbackValue() {
|
|
89
|
-
return
|
|
89
|
+
return ``;
|
|
90
90
|
}
|
|
91
91
|
};
|
|
92
92
|
TuiInputCardComponent.ctorParameters = () => [
|
|
@@ -109,7 +109,7 @@ __decorate([
|
|
|
109
109
|
], TuiInputCardComponent.prototype, "binChange", void 0);
|
|
110
110
|
TuiInputCardComponent = TuiInputCardComponent_1 = __decorate([
|
|
111
111
|
Component({
|
|
112
|
-
selector:
|
|
112
|
+
selector: `tui-input-card`,
|
|
113
113
|
template: "<tui-primitive-textfield\n tuiValueAccessor\n tuiTextfieldInputMode=\"numeric\"\n class=\"t-input\"\n [tuiTextfieldAutocomplete]=\"autocomplete\"\n [tuiTextfieldCustomContent]=\"icon\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [invalid]=\"computedInvalid\"\n [pseudoHovered]=\"pseudoHovered\"\n [pseudoPressed]=\"pseudoPressed\"\n [pseudoFocused]=\"pseudoFocused\"\n [textMask]=\"textMaskOptions\"\n [value]=\"formattedCard\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (hoveredChange)=\"onHovered($event)\"\n>\n <ng-content></ng-content>\n</tui-primitive-textfield>\n",
|
|
114
114
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
115
115
|
providers: [
|
|
@@ -131,4 +131,4 @@ TuiInputCardComponent = TuiInputCardComponent_1 = __decorate([
|
|
|
131
131
|
__param(1, Inject(ChangeDetectorRef))
|
|
132
132
|
], TuiInputCardComponent);
|
|
133
133
|
export { TuiInputCardComponent };
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvY29tcG9uZW50cy9pbnB1dC1jYXJkLyIsInNvdXJjZXMiOlsiaW5wdXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRWpFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsMkJBQTJCLEVBRTNCLGNBQWMsR0FFakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDBCQUEwQixFQUMxQiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEdBQ25DLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsTUFBTSxLQUFLLEdBQUc7SUFDVixpQkFBc0IsRUFBRSxZQUFZO0lBQ3BDLG1CQUF1QixFQUFFLGFBQWE7SUFDdEMsMkJBQTJCLEVBQUUsaUJBQWlCO0lBQzlDLCtCQUE2QixFQUFFLG1CQUFtQjtJQUNsRCx5QkFBMEIsRUFBRSxnQkFBZ0I7Q0FDL0MsQ0FBQztBQUVGLGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsOEJBQThCLENBQzFDLFNBQWtEO0lBRWxELFNBQVMsR0FBRyxTQUFTLElBQUksSUFBSSxnQ0FBZ0MsRUFBRSxDQUFDO0lBQ2hFLFNBQVMsQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFFOUMsT0FBTyxTQUFTLENBQUM7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RUFBRSw4QkFBOEI7YUFDN0M7U0FDSjs7S0FDSixDQUFDO0lBMEJPLFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtHQTdCckIscUJBQXFCLENBNkdqQztTQTdHWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RVSV9DQVJEX01BU0t9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlQYXltZW50U3lzdGVtfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvZW51bXMnO1xuaW1wb3J0IHtnZXRQYXltZW50U3lzdGVtfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFR1aUNyZWRpdENhcmRBdXRvZmlsbE5hbWUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZEV4YW1wbGVUZXh0RGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RleHRNYXNrQ29uZmlnfSBmcm9tICdhbmd1bGFyMi10ZXh0LW1hc2snO1xuXG5jb25zdCBpY29ucyA9IHtcbiAgICBbVHVpUGF5bWVudFN5c3RlbS5NaXJdOiAndHVpSWNvbk1pcicsXG4gICAgW1R1aVBheW1lbnRTeXN0ZW0uVmlzYV06ICd0dWlJY29uVmlzYScsXG4gICAgW1R1aVBheW1lbnRTeXN0ZW0uRWxlY3Ryb25dOiAndHVpSWNvbkVsZWN0cm9uJyxcbiAgICBbVHVpUGF5bWVudFN5c3RlbS5NYXN0ZXJjYXJkXTogJ3R1aUljb25NYXN0ZXJjYXJkJyxcbiAgICBbVHVpUGF5bWVudFN5c3RlbS5NYWVzdHJvXTogJ3R1aUljb25NYWVzdHJvJyxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBmdW5jdGlvbiBjYXJkVGV4dGZpZWxkQ29udHJvbGxlckZhY3RvcnkoXG4gICAgZGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZSB8IG51bGwsXG4pOiBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZSB7XG4gICAgZGlyZWN0aXZlID0gZGlyZWN0aXZlIHx8IG5ldyBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZSgpO1xuICAgIGRpcmVjdGl2ZS5leGFtcGxlVGV4dCA9ICcwMDAwIDAwMDAgMDAwMCAwMDAwJztcblxuICAgIHJldHVybiBkaXJlY3RpdmU7XG59XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1jYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtY2FyZC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1jYXJkLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRDYXJkQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZV1dLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogY2FyZFRleHRmaWVsZENvbnRyb2xsZXJGYWN0b3J5LFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0Q2FyZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY2FyZFNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYXV0b2NvbXBsZXRlRW5hYmxlZCA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYmluQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUZXh0TWFza0NvbmZpZyA9IHtcbiAgICAgICAgbWFzazogVFVJX0NBUkRfTUFTSyxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICBwaXBlOiBjb25mb3JtZWRWYWx1ZSA9PiBjb25mb3JtZWRWYWx1ZS50cmltKCksXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0ID8gdGhpcy5pbnB1dC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmNhcmRTcmMgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhcmRTcmM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7cGF5bWVudFN5c3RlbX0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBwYXltZW50U3lzdGVtID8gaWNvbnNbcGF5bWVudFN5c3RlbV0gOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGUoKTogVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZUVuYWJsZWRcbiAgICAgICAgICAgID8gVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZS5DY051bWJlclxuICAgICAgICAgICAgOiBUdWlDcmVkaXRDYXJkQXV0b2ZpbGxOYW1lLk9mZjtcbiAgICB9XG5cbiAgICBnZXQgcGF5bWVudFN5c3RlbSgpOiBUdWlQYXltZW50U3lzdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBnZXRQYXltZW50U3lzdGVtKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBiaW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCA8IDYgPyBudWxsIDogdGhpcy52YWx1ZS5zbGljZSgwLCA2KTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybWF0dGVkQ2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcCgoY2hhciwgaW5kZXgpID0+IChpbmRleCAmJiBpbmRleCAlIDQgPT09IDAgPyBgICR7Y2hhcn1gIDogY2hhcikpXG4gICAgICAgICAgICAuam9pbignJyk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHZhbHVlLnNwbGl0KCcgJykuam9pbignJyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRCaW4gPSB0aGlzLmJpbjtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZCk7XG5cbiAgICAgICAgY29uc3QgbmV3QmluID0gdGhpcy5iaW47XG5cbiAgICAgICAgaWYgKGN1cnJlbnRCaW4gIT09IG5ld0Jpbikge1xuICAgICAgICAgICAgdGhpcy5iaW5DaGFuZ2UuZW1pdChuZXdCaW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRCaW4gPSB0aGlzLmJpbjtcblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgICBjb25zdCBuZXdCaW4gPSB0aGlzLmJpbjtcblxuICAgICAgICBpZiAoY3VycmVudEJpbiAhPT0gbmV3QmluKSB7XG4gICAgICAgICAgICB0aGlzLmJpbkNoYW5nZS5lbWl0KG5ld0Jpbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvY29tcG9uZW50cy9pbnB1dC1jYXJkLyIsInNvdXJjZXMiOlsiaW5wdXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRWpFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsMkJBQTJCLEVBRTNCLGNBQWMsR0FFakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDBCQUEwQixFQUMxQiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEdBQ25DLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsTUFBTSxLQUFLLEdBQUc7SUFDVixpQkFBc0IsRUFBRSxZQUFZO0lBQ3BDLG1CQUF1QixFQUFFLGFBQWE7SUFDdEMsMkJBQTJCLEVBQUUsaUJBQWlCO0lBQzlDLCtCQUE2QixFQUFFLG1CQUFtQjtJQUNsRCx5QkFBMEIsRUFBRSxnQkFBZ0I7Q0FDL0MsQ0FBQztBQUVGLGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsOEJBQThCLENBQzFDLFNBQWtEO0lBRWxELFNBQVMsR0FBRyxTQUFTLElBQUksSUFBSSxnQ0FBZ0MsRUFBRSxDQUFDO0lBQ2hFLFNBQVMsQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFFOUMsT0FBTyxTQUFTLENBQUM7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RUFBRSw4QkFBOEI7YUFDN0M7U0FDSjs7S0FDSixDQUFDO0lBMEJPLFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtHQTdCckIscUJBQXFCLENBNkdqQztTQTdHWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RVSV9DQVJEX01BU0t9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlQYXltZW50U3lzdGVtfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvZW51bXMnO1xuaW1wb3J0IHtnZXRQYXltZW50U3lzdGVtfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFR1aUNyZWRpdENhcmRBdXRvZmlsbE5hbWUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZEV4YW1wbGVUZXh0RGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RleHRNYXNrQ29uZmlnfSBmcm9tICdhbmd1bGFyMi10ZXh0LW1hc2snO1xuXG5jb25zdCBpY29ucyA9IHtcbiAgICBbVHVpUGF5bWVudFN5c3RlbS5NaXJdOiBgdHVpSWNvbk1pcmAsXG4gICAgW1R1aVBheW1lbnRTeXN0ZW0uVmlzYV06IGB0dWlJY29uVmlzYWAsXG4gICAgW1R1aVBheW1lbnRTeXN0ZW0uRWxlY3Ryb25dOiBgdHVpSWNvbkVsZWN0cm9uYCxcbiAgICBbVHVpUGF5bWVudFN5c3RlbS5NYXN0ZXJjYXJkXTogYHR1aUljb25NYXN0ZXJjYXJkYCxcbiAgICBbVHVpUGF5bWVudFN5c3RlbS5NYWVzdHJvXTogYHR1aUljb25NYWVzdHJvYCxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBmdW5jdGlvbiBjYXJkVGV4dGZpZWxkQ29udHJvbGxlckZhY3RvcnkoXG4gICAgZGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZSB8IG51bGwsXG4pOiBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZSB7XG4gICAgZGlyZWN0aXZlID0gZGlyZWN0aXZlIHx8IG5ldyBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZSgpO1xuICAgIGRpcmVjdGl2ZS5leGFtcGxlVGV4dCA9IGAwMDAwIDAwMDAgMDAwMCAwMDAwYDtcblxuICAgIHJldHVybiBkaXJlY3RpdmU7XG59XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1pbnB1dC1jYXJkYCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vaW5wdXQtY2FyZC50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9pbnB1dC1jYXJkLnN0eWxlLmxlc3NgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRDYXJkQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBUdWlUZXh0ZmllbGRFeGFtcGxlVGV4dERpcmVjdGl2ZV1dLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogY2FyZFRleHRmaWVsZENvbnRyb2xsZXJGYWN0b3J5LFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0Q2FyZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY2FyZFNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYXV0b2NvbXBsZXRlRW5hYmxlZCA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYmluQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUZXh0TWFza0NvbmZpZyA9IHtcbiAgICAgICAgbWFzazogVFVJX0NBUkRfTUFTSyxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICBwaXBlOiBjb25mb3JtZWRWYWx1ZSA9PiBjb25mb3JtZWRWYWx1ZS50cmltKCksXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0ID8gdGhpcy5pbnB1dC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmNhcmRTcmMgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhcmRTcmM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7cGF5bWVudFN5c3RlbX0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBwYXltZW50U3lzdGVtID8gaWNvbnNbcGF5bWVudFN5c3RlbV0gOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGUoKTogVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZUVuYWJsZWRcbiAgICAgICAgICAgID8gVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZS5DY051bWJlclxuICAgICAgICAgICAgOiBUdWlDcmVkaXRDYXJkQXV0b2ZpbGxOYW1lLk9mZjtcbiAgICB9XG5cbiAgICBnZXQgcGF5bWVudFN5c3RlbSgpOiBUdWlQYXltZW50U3lzdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBnZXRQYXltZW50U3lzdGVtKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBiaW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCA8IDYgPyBudWxsIDogdGhpcy52YWx1ZS5zbGljZSgwLCA2KTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybWF0dGVkQ2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KGBgKVxuICAgICAgICAgICAgLm1hcCgoY2hhciwgaW5kZXgpID0+IChpbmRleCAmJiBpbmRleCAlIDQgPT09IDAgPyBgICR7Y2hhcn1gIDogY2hhcikpXG4gICAgICAgICAgICAuam9pbihgYCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHZhbHVlLnNwbGl0KGAgYCkuam9pbihgYCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRCaW4gPSB0aGlzLmJpbjtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZCk7XG5cbiAgICAgICAgY29uc3QgbmV3QmluID0gdGhpcy5iaW47XG5cbiAgICAgICAgaWYgKGN1cnJlbnRCaW4gIT09IG5ld0Jpbikge1xuICAgICAgICAgICAgdGhpcy5iaW5DaGFuZ2UuZW1pdChuZXdCaW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRCaW4gPSB0aGlzLmJpbjtcblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgICBjb25zdCBuZXdCaW4gPSB0aGlzLmJpbjtcblxuICAgICAgICBpZiAoY3VycmVudEJpbiAhPT0gbmV3QmluKSB7XG4gICAgICAgICAgICB0aGlzLmJpbkNoYW5nZS5lbWl0KG5ld0Jpbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGA7XG4gICAgfVxufVxuIl19
|