ouisys-component-library 3.1.89 → 3.1.91

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.
Files changed (89) hide show
  1. package/dist/{Button-6ff406cf.js → Button-75842042.js} +1 -1
  2. package/dist/{Button-6ff406cf.js.map → Button-75842042.js.map} +1 -1
  3. package/dist/Button.js +1 -1
  4. package/dist/{ChainRedirect-20b0846c.js → ChainRedirect-6fccb6a2.js} +1 -1
  5. package/dist/{ChainRedirect-20b0846c.js.map → ChainRedirect-6fccb6a2.js.map} +1 -1
  6. package/dist/ChainRedirect.js +1 -1
  7. package/dist/ConsentAcceptanceCheck-c1a19654.js +2 -0
  8. package/dist/ConsentAcceptanceCheck-c1a19654.js.map +1 -0
  9. package/dist/ConsentAcceptanceCheck.js +1 -1
  10. package/dist/{CookieConsent-5edf5cbe.js → CookieConsent-1005a559.js} +1 -1
  11. package/dist/{CookieConsent-5edf5cbe.js.map → CookieConsent-1005a559.js.map} +1 -1
  12. package/dist/CookieConsent.js +1 -1
  13. package/dist/{DynamicPricePoint-07c50b57.js → DynamicPricePoint-2431c936.js} +1 -1
  14. package/dist/{DynamicPricePoint-07c50b57.js.map → DynamicPricePoint-2431c936.js.map} +1 -1
  15. package/dist/DynamicPricePoint.js +1 -1
  16. package/dist/Email.js +1 -1
  17. package/dist/{ExtraDisclaimers-35b99ca8.js → ExtraDisclaimers-72ed9a9d.js} +1 -1
  18. package/dist/{ExtraDisclaimers-35b99ca8.js.map → ExtraDisclaimers-72ed9a9d.js.map} +1 -1
  19. package/dist/ExtraDisclaimers.js +1 -1
  20. package/dist/{Features-64795ae1.js → Features-565478ad.js} +1 -1
  21. package/dist/{Features-64795ae1.js.map → Features-565478ad.js.map} +1 -1
  22. package/dist/Features.js +1 -1
  23. package/dist/{Footer-7cf4c744.js → Footer-a33f44c3.js} +2 -2
  24. package/dist/{Footer-7cf4c744.js.map → Footer-a33f44c3.js.map} +1 -1
  25. package/dist/Footer.js +1 -1
  26. package/dist/Header.js +1 -1
  27. package/dist/{Intl-7f854b40.js → Intl-fb258f47.js} +1 -1
  28. package/dist/{Intl-7f854b40.js.map → Intl-fb258f47.js.map} +1 -1
  29. package/dist/IntlProvider.js +1 -1
  30. package/dist/{LanguageSwitcher-cd5ec4d1.js → LanguageSwitcher-d40be813.js} +1 -1
  31. package/dist/{LanguageSwitcher-cd5ec4d1.js.map → LanguageSwitcher-d40be813.js.map} +1 -1
  32. package/dist/LanguageSwitcher.js +1 -1
  33. package/dist/{Link-24192553.js → Link-26a0879c.js} +1 -1
  34. package/dist/{Link-24192553.js.map → Link-26a0879c.js.map} +1 -1
  35. package/dist/Link.js +1 -1
  36. package/dist/MOForm.js +1 -1
  37. package/dist/{MOLink-c0c94f5f.js → MOLink-cdd4fda5.js} +1 -1
  38. package/dist/{MOLink-c0c94f5f.js.map → MOLink-cdd4fda5.js.map} +1 -1
  39. package/dist/MOLink.js +1 -1
  40. package/dist/{Menu-4043875b.js → Menu-864cc1b3.js} +2 -2
  41. package/dist/{Menu-4043875b.js.map → Menu-864cc1b3.js.map} +1 -1
  42. package/dist/Menu.js +1 -1
  43. package/dist/{PageConfig-0b258565.js → PageConfig-7c96dcb7.js} +1 -1
  44. package/dist/{PageConfig-0b258565.js.map → PageConfig-7c96dcb7.js.map} +1 -1
  45. package/dist/PageConfig.js +1 -1
  46. package/dist/PageContent.js +1 -1
  47. package/dist/PhoneEntry.js.map +1 -1
  48. package/dist/PhoneEntryForm.js +1 -1
  49. package/dist/PhoneEntryForm.js.map +1 -1
  50. package/dist/{PhoneInput-dbc93f49.js → PhoneInput-18529ade.js} +1 -1
  51. package/dist/{PhoneInput-dbc93f49.js.map → PhoneInput-18529ade.js.map} +1 -1
  52. package/dist/PhoneInput.js +1 -1
  53. package/dist/PinEntryForm.js +1 -1
  54. package/dist/{PricePoint-48923f42.js → PricePoint-5984ff42.js} +1 -1
  55. package/dist/{PricePoint-48923f42.js.map → PricePoint-5984ff42.js.map} +1 -1
  56. package/dist/PricePoint.js +1 -1
  57. package/dist/{PricingPolicy-e7ed66b1.js → PricingPolicy-0aa382fc.js} +1 -1
  58. package/dist/{PricingPolicy-e7ed66b1.js.map → PricingPolicy-0aa382fc.js.map} +1 -1
  59. package/dist/PricingPolicy.js +1 -1
  60. package/dist/ProductArea.js +1 -1
  61. package/dist/{RefundPolicy-a467d1f0.js → RefundPolicy-acaa1efb.js} +2 -2
  62. package/dist/{RefundPolicy-a467d1f0.js.map → RefundPolicy-acaa1efb.js.map} +1 -1
  63. package/dist/RefundPolicy.js +1 -1
  64. package/dist/RootWrapper.js +1 -1
  65. package/dist/{Showcase-22c6d7e4.js → Showcase-354b9288.js} +1 -1
  66. package/dist/{Showcase-22c6d7e4.js.map → Showcase-354b9288.js.map} +1 -1
  67. package/dist/Showcase.js +1 -1
  68. package/dist/{Testimonials-e4f4b537.js → Testimonials-2d8c431a.js} +1 -1
  69. package/dist/{Testimonials-e4f4b537.js.map → Testimonials-2d8c431a.js.map} +1 -1
  70. package/dist/Testimonials.js +1 -1
  71. package/dist/ThankYou.js +1 -1
  72. package/dist/Translate.js +1 -1
  73. package/dist/{Unsubscription-80bdfbf7.js → Unsubscription-4efc6449.js} +2 -2
  74. package/dist/{Unsubscription-80bdfbf7.js.map → Unsubscription-4efc6449.js.map} +1 -1
  75. package/dist/Unsubscription.js +1 -1
  76. package/dist/defineMessages.js +1 -1
  77. package/dist/{focus-3953bc73.js → focus-95c8e7a5.js} +1 -1
  78. package/dist/{focus-3953bc73.js.map → focus-95c8e7a5.js.map} +1 -1
  79. package/dist/formatSMSLink.js +1 -1
  80. package/dist/injectIntl.js +1 -1
  81. package/dist/{routes-aa68aa81.js → routes-3c360e2d.js} +1 -1
  82. package/dist/{routes-aa68aa81.js.map → routes-3c360e2d.js.map} +1 -1
  83. package/dist/styles.css +1 -1
  84. package/dist/styles.css.map +1 -1
  85. package/dist/types/ConsentAcceptanceCheck/ConsentAcceptanceCheck.types.d.ts +9 -1
  86. package/dist/types/custom-types.d.ts +1 -0
  87. package/package.json +1 -1
  88. package/dist/ConsentAcceptanceCheck-6e63cf8c.js +0 -2
  89. package/dist/ConsentAcceptanceCheck-6e63cf8c.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneEntry.js","sources":["../src/utils/parsePhoneNumber.ts","../src/PhoneEntry/PhoneEntry.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable no-restricted-syntax */\n\n/**\n * These mappings map a character (key) to a specific digit that should\n * replace it for normalization purposes. Non-European digits that\n * may be used in phone numbers are mapped to a European equivalent.\n *\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n */\n\nexport const DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '\\uFF10': '0', // Fullwidth digit 0\n '\\uFF11': '1', // Fullwidth digit 1\n '\\uFF12': '2', // Fullwidth digit 2\n '\\uFF13': '3', // Fullwidth digit 3\n '\\uFF14': '4', // Fullwidth digit 4\n '\\uFF15': '5', // Fullwidth digit 5\n '\\uFF16': '6', // Fullwidth digit 6\n '\\uFF17': '7', // Fullwidth digit 7\n '\\uFF18': '8', // Fullwidth digit 8\n '\\uFF19': '9', // Fullwidth digit 9\n '\\u0660': '0', // Arabic-indic digit 0\n '\\u0661': '1', // Arabic-indic digit 1\n '\\u0662': '2', // Arabic-indic digit 2\n '\\u0663': '3', // Arabic-indic digit 3\n '\\u0664': '4', // Arabic-indic digit 4\n '\\u0665': '5', // Arabic-indic digit 5\n '\\u0666': '6', // Arabic-indic digit 6\n '\\u0667': '7', // Arabic-indic digit 7\n '\\u0668': '8', // Arabic-indic digit 8\n '\\u0669': '9', // Arabic-indic digit 9\n '\\u06F0': '0', // Eastern-Arabic digit 0\n '\\u06F1': '1', // Eastern-Arabic digit 1\n '\\u06F2': '2', // Eastern-Arabic digit 2\n '\\u06F3': '3', // Eastern-Arabic digit 3\n '\\u06F4': '4', // Eastern-Arabic digit 4\n '\\u06F5': '5', // Eastern-Arabic digit 5\n '\\u06F6': '6', // Eastern-Arabic digit 6\n '\\u06F7': '7', // Eastern-Arabic digit 7\n '\\u06F8': '8', // Eastern-Arabic digit 8\n '\\u06F9': '9' // Eastern-Arabic digit 9\n};\n\nexport const parseDigit = (character: string) =>\n character in DIGITS ? DIGITS[character as keyof typeof DIGITS] : undefined;\n\n/**\n * Parses phone number digits from a string.\n * Drops all punctuation leaving only digits.\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n *\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n * parseDigits('8 (800) 555')\n * Outputs '8800555'.\n *\n */\n\nexport const parseDigits = (string: string) => {\n let result = '';\n\n /**\n * Using `.split('')` here instead of normal `for ... of`\n * because the importing application doesn't neccessarily include an ES6 polyfill.\n * The `.split('')` approach discards \"exotic\" UTF-8 characters\n * (the ones consisting of four bytes) but digits\n * (including non-European ones) don't fall into that range\n * so such \"exotic\" characters would be discarded anyway.\n */\n\n for (const character of string.split('')) {\n const digit = parseDigit(character);\n if (digit) {\n result += digit;\n }\n }\n return result;\n};\n\n/**\n * Parses phone number characters from a string.\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n *\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n * Outputs '8800555'.\n * parseIncompletePhoneNumber('8 (800) 555')\n * Outputs '+7800555'.\n * parseIncompletePhoneNumber('+7 800 555')\n *\n */\n\nexport const parseIncompletePhoneNumber = (string: string) => {\n let result = '';\n let _iterator: any;\n let _isArray: boolean;\n let _i: any;\n\n /**\n * Using `.split('')` here instead of normal `for ... of`\n * because the importing application doesn't neccessarily include an ES6 polyfill.\n * The `.split('')` approach discards \"exotic\" UTF-8 characters\n * (the ones consisting of four bytes) but digits\n * (including non-European ones) don't fall into that range\n * so such \"exotic\" characters would be discarded anyway.\n */\n\n for (\n _iterator = string.split(''),\n _isArray = Array.isArray(_iterator),\n _i = 0,\n _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();\n ;\n\n ) {\n let _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[(_i += 1)];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n const character = _ref;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n};\n\n/**\n * Parses next character while parsing phone number digits (including a `+`)\n * from text: discards everything except `+` and digits, and `+` is only allowed\n * at the start of a phone number.\n */\n\nexport const parsePhoneNumberCharacter = (character: string, prevParsedCharacters: string) =>\n character === '+' ? (prevParsedCharacters ? '' : '+') : parseDigit(character);\n\n/**\n * Check if nationalNumber is a valid number by removing `+` if exist\n */\n\nexport const getBupperNumber = (nationalNumber: string) => {\n if (!nationalNumber) {\n return nationalNumber;\n }\n\n const match = nationalNumber.match(/\\d+/g);\n return match ? match.join('') : nationalNumber;\n};\n\n/**\n * Verify string contains a number\n */\n\nexport const hasNumber = (stringToCheck: string) => /\\d/.test(stringToCheck);\n\n/**\n * Used for providing prefix for specific country\n */\n\nconst generateConfig = (countryCode: string, commonPrefix: string, maxLength: number) => ({\n countryCode,\n commonPrefix,\n maxLength\n});\n\nconst configs: any = {\n mx: generateConfig('52', '01', 10),\n my: generateConfig('60', '01', 9),\n za: generateConfig('27', '0', 9),\n ae: generateConfig('971', '05', 10),\n a2: generateConfig('971', '05', 10),\n gr: generateConfig('30', '69', 9),\n g2: generateConfig('30', '69', 9),\n ee: generateConfig('372', '', 10),\n lt: generateConfig('370', '6', 9),\n ps: generateConfig('972', '0', 10),\n kk: generateConfig('7', '0', 10),\n kw: generateConfig('965', '0', 10),\n xx: generateConfig('', '', 10)\n};\n\nexport const getMsisdnPrefix = (countryCode: string) => configs[countryCode] || configs.xx;\n","import { getAsYouType, parsePhoneNumber } from 'awesome-phonenumber';\nimport cn from 'classnames';\nimport React, { useState } from 'react';\nimport { getBupperNumber, hasNumber, parseIncompletePhoneNumber } from '../utils/parsePhoneNumber';\nimport styles from './PhoneEntry.module.scss';\nimport { interfacePhoneEntry } from './PhoneEntry.types';\n\nconst specialCountryCodes: Record<string, string> = {\n s2: 'sa',\n o2: 'om',\n a2: 'ae',\n k2: 'kw',\n c2: 'ch',\n r2: 'rs',\n l2: 'lv',\n s3: 'se',\n b2: 'bh',\n g2: 'gr',\n a3: 'at'\n};\n\nexport const PhoneEntry = ({\n tracker,\n country,\n msisdn,\n setMsisdn,\n internationalNumber,\n setInternationalNumber,\n isMsisdnFilled,\n setIsMsisdnFilled,\n inputElementRef,\n id,\n className = '',\n dataQaId = 'qa-phone-entry',\n minLength = 7,\n placeholder,\n isValid,\n setIsValid,\n userInteract,\n setUserInteract,\n showIconInput = true,\n showIconValid = true,\n showIconInvalid = true,\n onChange,\n onKeyPress,\n onPaste,\n onBlur,\n onFocus,\n isFocused = false,\n msisdnLabel = 'Enter your mobile number to start download now:',\n msisdnLabelToolTip = 'Please insert your mobile number here',\n focusAnimation = ''\n}: interfacePhoneEntry) => {\n const userCountry = hasNumber(country) ? specialCountryCodes[country] : country;\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isLabelVisible, setIsLabelVisible] = useState(true);\n function handleKeyPress(whichKey: React.KeyboardEvent<HTMLInputElement>) {\n const regex = /[0-9]/;\n if (!regex.test(whichKey.key)) {\n whichKey.preventDefault();\n }\n }\n\n function formatMsisdn(unformatMsisdn: string) {\n const asUserType = getAsYouType(userCountry);\n asUserType.addChar(unformatMsisdn);\n return asUserType.number();\n }\n\n function parseMsisdn(_msisdn: string) {\n const currentMsisdn = _msisdn.startsWith('0') ? parseInt(_msisdn, 10).toString() : _msisdn;\n try {\n const parsedPhoneNumber = parsePhoneNumber(currentMsisdn, { regionCode: userCountry.toUpperCase() });\n const nationalPhoneNumber = parsedPhoneNumber.number?.national || '';\n const internationalPhoneNumber = parsedPhoneNumber.number?.international || '';\n const bupperPhoneNumber = getBupperNumber(nationalPhoneNumber);\n const parsedPhoneNumberIsValid =\n userCountry.toLowerCase() === 'ci'\n ? parsedPhoneNumber.possible ||\n parsedPhoneNumber.typeIsMobile ||\n nationalPhoneNumber.length === 8 ||\n nationalPhoneNumber.length === 9\n : parsedPhoneNumber.valid;\n\n return {\n bupperPhoneNumber,\n nationalPhoneNumber,\n internationalPhoneNumber,\n isPhoneNumberValid: parsedPhoneNumberIsValid\n };\n } catch (error) {\n console.warn(error);\n return {\n bupperPhoneNumber: '',\n nationalPhoneNumber: '',\n internationalPhoneNumber: '',\n isPhoneNumberValid: false\n };\n }\n }\n\n const handleTooltipVisibility = () => {\n setIsTooltipVisible(!isTooltipVisible);\n setIsLabelVisible(!isLabelVisible);\n };\n\n return (\n <div\n className={`msisdn-wrapper ${isFocused ? focusAnimation : ''}`}\n data-attr=\"has-subscription-box\"\n onClick={handleTooltipVisibility}\n >\n {isTooltipVisible ? (\n <div className=\"label-msisdn tooltip\">\n {/* <formattedMessage\n id=\"msisdnLabelToolTip\"\n defaultMessage=\"Please insert your mobile number here\"\n /> */}\n {msisdnLabelToolTip}\n </div>\n ) : (\n <></>\n )}\n\n <div id=\"label-msisdn\" className=\"label-msisdn\">\n {/* <formattedMessage\n id=\"msisdnLabel\"\n defaultMessage=\"Enter your mobile number to start download now:\"\n /> */}\n {msisdnLabel}\n </div>\n\n <div\n className={cn(styles.phoneInputWrap, 'phone-input-wrap', {\n [styles.phoneInputWrapIconInput]: showIconInput,\n [styles.phoneInputWrapIconValid]: showIconValid && isValid && userInteract,\n [styles.phoneInputWrapIconInvalid]: showIconInvalid && !isValid && userInteract,\n // for custom css\n 'is-valid': isValid && userInteract,\n 'is-invalid': !isValid && userInteract\n })}\n data-msisdn={msisdn.replace(' ', '')}\n data-international-number={internationalNumber.replace('+', '').replace(' ', '')}\n >\n <input\n autoFocus\n required\n ref={inputElementRef}\n id={id || 'phone-input'}\n className={cn(styles.phoneInput, className, 'phone-input')}\n data-qa-id={dataQaId}\n type=\"tel\"\n placeholder={placeholder || 'Phone number'}\n value={formatMsisdn(msisdn)}\n pattern=\"[0-9]*\"\n inputMode=\"numeric\"\n minLength={minLength}\n autoComplete=\"tel\"\n onChange={(_ev: React.ChangeEvent<HTMLInputElement>) => {\n setUserInteract?.(true);\n\n const inputTargetValue = _ev.target.value;\n let newTargetValue = parseIncompletePhoneNumber(inputTargetValue);\n\n // Workaround for handling the Samsung Galaxy smart caret positioning bug\n if (newTargetValue === inputTargetValue && formatMsisdn(newTargetValue).startsWith(inputTargetValue)) {\n newTargetValue = newTargetValue.slice(0, -1);\n }\n\n // Requested by Aadam and partner for testing Luxembourg\n if (newTargetValue.includes('3522100000012340') && onChange) {\n onChange({\n isValid: true,\n msisdn: newTargetValue,\n nationalNumber: msisdn,\n internationalNumber: msisdn,\n bupperNumber: msisdn\n });\n setIsValid?.(true);\n return;\n }\n\n const { bupperPhoneNumber, internationalPhoneNumber, nationalPhoneNumber, isPhoneNumberValid } =\n parseMsisdn(newTargetValue);\n\n tracker?.customEvent('MSISDN-State', 'valid', 'MsisdnValid', { msisdn });\n setIsValid?.(isPhoneNumberValid);\n setMsisdn?.(_ev.currentTarget.value);\n setInternationalNumber?.(internationalPhoneNumber);\n\n if (onChange) {\n onChange({\n isValid: isPhoneNumberValid,\n msisdn: newTargetValue,\n bupperNumber: bupperPhoneNumber,\n nationalNumber: nationalPhoneNumber,\n internationalNumber: internationalPhoneNumber\n });\n }\n }}\n onKeyPress={(_ev: React.KeyboardEvent<HTMLInputElement>) => {\n handleKeyPress(_ev);\n\n if (!isMsisdnFilled && _ev.currentTarget.value.length >= minLength) {\n tracker?.customEvent('MSISDN-State', 'type', 'MsisdnType');\n setIsMsisdnFilled?.(true);\n }\n\n if (onKeyPress) {\n onKeyPress(_ev);\n }\n }}\n onPaste={(_ev: React.ClipboardEvent<HTMLInputElement>) => {\n if (!isMsisdnFilled && _ev.currentTarget.value.length >= minLength) {\n tracker?.customEvent('MSISDN-State', 'copypaste', 'MsisdnPasted');\n setIsMsisdnFilled?.(true);\n }\n\n if (onPaste) {\n onPaste(_ev);\n }\n }}\n onBlur={(_ev: React.FocusEvent<HTMLInputElement>) => {\n if (!isMsisdnFilled && _ev.currentTarget.value.length >= minLength) {\n tracker?.customEvent('MSISDN-State', 'autofill', 'AutoFill', { msisdn: _ev.target.value });\n setIsMsisdnFilled?.(true);\n }\n\n if (onBlur) {\n onBlur(_ev);\n }\n }}\n onFocus={(_ev: React.FocusEvent<HTMLInputElement>) => {\n if (onFocus) {\n onFocus(_ev);\n }\n }}\n />\n </div>\n </div>\n );\n};\n"],"names":["DIGITS","parsePhoneNumberCharacter","character","prevParsedCharacters","undefined","parseDigit","specialCountryCodes","s2","o2","a2","k2","c2","r2","l2","s3","b2","g2","a3","PhoneEntry","_a","tracker","country","msisdn","setMsisdn","internationalNumber","setInternationalNumber","isMsisdnFilled","setIsMsisdnFilled","inputElementRef","id","_c","className","_d","dataQaId","_e","minLength","placeholder","isValid","setIsValid","userInteract","setUserInteract","_f","showIconInput","_g","showIconValid","_h","showIconInvalid","onChange","onKeyPress","onPaste","onBlur","onFocus","_j","isFocused","_k","msisdnLabel","_l","msisdnLabelToolTip","_m","focusAnimation","userCountry","test","_o","__read","useState","isTooltipVisible","setIsTooltipVisible","_p","isLabelVisible","setIsLabelVisible","formatMsisdn","unformatMsisdn","asUserType","getAsYouType","addChar","number","React","onClick","createElement","cn","styles","_b","replace","autoFocus","required","ref","type","value","pattern","inputMode","autoComplete","_ev","inputTargetValue","target","newTargetValue","string","_iterator","_isArray","_i","result","split","Array","isArray","Symbol","iterator","_ref","length","next","done","parseIncompletePhoneNumber","startsWith","slice","includes","nationalNumber","bupperNumber","_msisdn","currentMsisdn","parseInt","toString","parsedPhoneNumber","parsePhoneNumber","regionCode","toUpperCase","nationalPhoneNumber","national","internationalPhoneNumber","international","bupperPhoneNumber","match","join","getBupperNumber","isPhoneNumberValid","toLowerCase","possible","typeIsMobile","valid","error","console","warn","parseMsisdn","customEvent","currentTarget","whichKey","key","preventDefault"],"mappings":"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"}
1
+ {"version":3,"file":"PhoneEntry.js","sources":["../src/utils/parsePhoneNumber.ts","../src/PhoneEntry/PhoneEntry.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable no-restricted-syntax */\n\n/**\n * These mappings map a character (key) to a specific digit that should\n * replace it for normalization purposes. Non-European digits that\n * may be used in phone numbers are mapped to a European equivalent.\n *\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n */\n\nexport const DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '\\uFF10': '0', // Fullwidth digit 0\n '\\uFF11': '1', // Fullwidth digit 1\n '\\uFF12': '2', // Fullwidth digit 2\n '\\uFF13': '3', // Fullwidth digit 3\n '\\uFF14': '4', // Fullwidth digit 4\n '\\uFF15': '5', // Fullwidth digit 5\n '\\uFF16': '6', // Fullwidth digit 6\n '\\uFF17': '7', // Fullwidth digit 7\n '\\uFF18': '8', // Fullwidth digit 8\n '\\uFF19': '9', // Fullwidth digit 9\n '\\u0660': '0', // Arabic-indic digit 0\n '\\u0661': '1', // Arabic-indic digit 1\n '\\u0662': '2', // Arabic-indic digit 2\n '\\u0663': '3', // Arabic-indic digit 3\n '\\u0664': '4', // Arabic-indic digit 4\n '\\u0665': '5', // Arabic-indic digit 5\n '\\u0666': '6', // Arabic-indic digit 6\n '\\u0667': '7', // Arabic-indic digit 7\n '\\u0668': '8', // Arabic-indic digit 8\n '\\u0669': '9', // Arabic-indic digit 9\n '\\u06F0': '0', // Eastern-Arabic digit 0\n '\\u06F1': '1', // Eastern-Arabic digit 1\n '\\u06F2': '2', // Eastern-Arabic digit 2\n '\\u06F3': '3', // Eastern-Arabic digit 3\n '\\u06F4': '4', // Eastern-Arabic digit 4\n '\\u06F5': '5', // Eastern-Arabic digit 5\n '\\u06F6': '6', // Eastern-Arabic digit 6\n '\\u06F7': '7', // Eastern-Arabic digit 7\n '\\u06F8': '8', // Eastern-Arabic digit 8\n '\\u06F9': '9' // Eastern-Arabic digit 9\n};\n\nexport const parseDigit = (character: string) =>\n character in DIGITS ? DIGITS[character as keyof typeof DIGITS] : undefined;\n\n/**\n * Parses phone number digits from a string.\n * Drops all punctuation leaving only digits.\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n *\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n * parseDigits('8 (800) 555')\n * Outputs '8800555'.\n *\n */\n\nexport const parseDigits = (string: string) => {\n let result = '';\n\n /**\n * Using `.split('')` here instead of normal `for ... of`\n * because the importing application doesn't neccessarily include an ES6 polyfill.\n * The `.split('')` approach discards \"exotic\" UTF-8 characters\n * (the ones consisting of four bytes) but digits\n * (including non-European ones) don't fall into that range\n * so such \"exotic\" characters would be discarded anyway.\n */\n\n for (const character of string.split('')) {\n const digit = parseDigit(character);\n if (digit) {\n result += digit;\n }\n }\n return result;\n};\n\n/**\n * Parses phone number characters from a string.\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n *\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n * Outputs '8800555'.\n * parseIncompletePhoneNumber('8 (800) 555')\n * Outputs '+7800555'.\n * parseIncompletePhoneNumber('+7 800 555')\n *\n */\n\nexport const parseIncompletePhoneNumber = (string: string) => {\n let result = '';\n let _iterator: any;\n let _isArray: boolean;\n let _i: any;\n\n /**\n * Using `.split('')` here instead of normal `for ... of`\n * because the importing application doesn't neccessarily include an ES6 polyfill.\n * The `.split('')` approach discards \"exotic\" UTF-8 characters\n * (the ones consisting of four bytes) but digits\n * (including non-European ones) don't fall into that range\n * so such \"exotic\" characters would be discarded anyway.\n */\n\n for (\n _iterator = string.split(''),\n _isArray = Array.isArray(_iterator),\n _i = 0,\n _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();\n ;\n\n ) {\n let _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[(_i += 1)];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n const character = _ref;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n};\n\n/**\n * Parses next character while parsing phone number digits (including a `+`)\n * from text: discards everything except `+` and digits, and `+` is only allowed\n * at the start of a phone number.\n */\n\nexport const parsePhoneNumberCharacter = (character: string, prevParsedCharacters: string) =>\n character === '+' ? (prevParsedCharacters ? '' : '+') : parseDigit(character);\n\n/**\n * Check if nationalNumber is a valid number by removing `+` if exist\n */\n\nexport const getBupperNumber = (nationalNumber: string) => {\n if (!nationalNumber) {\n return nationalNumber;\n }\n\n const match = nationalNumber.match(/\\d+/g);\n return match ? match.join('') : nationalNumber;\n};\n\n/**\n * Verify string contains a number\n */\n\nexport const hasNumber = (stringToCheck: string) => /\\d/.test(stringToCheck);\n\n/**\n * Used for providing prefix for specific country\n */\n\nconst generateConfig = (countryCode: string, commonPrefix: string, maxLength: number) => ({\n countryCode,\n commonPrefix,\n maxLength\n});\n\nconst configs: any = {\n mx: generateConfig('52', '01', 10),\n my: generateConfig('60', '01', 9),\n za: generateConfig('27', '0', 9),\n ae: generateConfig('971', '05', 10),\n a2: generateConfig('971', '05', 10),\n gr: generateConfig('30', '69', 9),\n g2: generateConfig('30', '69', 9),\n ee: generateConfig('372', '', 10),\n lt: generateConfig('370', '6', 9),\n ps: generateConfig('972', '0', 10),\n kk: generateConfig('7', '0', 10),\n kw: generateConfig('965', '0', 10),\n xx: generateConfig('', '', 10)\n};\n\nexport const getMsisdnPrefix = (countryCode: string) => configs[countryCode] || configs.xx;\n","import { getAsYouType, parsePhoneNumber } from 'awesome-phonenumber';\nimport cn from 'classnames';\nimport React, { useState } from 'react';\nimport { getBupperNumber, hasNumber, parseIncompletePhoneNumber } from '../utils/parsePhoneNumber';\nimport styles from './PhoneEntry.module.scss';\nimport { interfacePhoneEntry } from './PhoneEntry.types';\n\nconst specialCountryCodes: Record<string, string> = {\n s2: 'sa',\n o2: 'om',\n a2: 'ae',\n k2: 'kw',\n c2: 'ch',\n r2: 'rs',\n l2: 'lv',\n s3: 'se',\n b2: 'bh',\n g2: 'gr',\n a3: 'at'\n};\n\nexport const PhoneEntry = ({\n tracker,\n country,\n msisdn,\n setMsisdn,\n internationalNumber,\n setInternationalNumber,\n isMsisdnFilled,\n setIsMsisdnFilled,\n inputElementRef,\n id,\n className = '',\n dataQaId = 'qa-phone-entry',\n minLength = 7,\n placeholder,\n isValid,\n setIsValid,\n userInteract,\n setUserInteract,\n showIconInput = true,\n showIconValid = true,\n showIconInvalid = true,\n onChange,\n onKeyPress,\n onPaste,\n onBlur,\n onFocus,\n isFocused = false,\n msisdnLabel = 'Enter your mobile number to start download now:',\n msisdnLabelToolTip = 'Please insert your mobile number here',\n focusAnimation = ''\n}: interfacePhoneEntry) => {\n const userCountry = hasNumber(country) ? specialCountryCodes[country] : country;\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isLabelVisible, setIsLabelVisible] = useState(true);\n function handleKeyPress(whichKey: React.KeyboardEvent<HTMLInputElement>) {\n const regex = /[0-9]/;\n if (!regex.test(whichKey.key)) {\n whichKey.preventDefault();\n }\n }\n\n function formatMsisdn(unformatMsisdn: string) {\n const asUserType = getAsYouType(userCountry);\n asUserType.addChar(unformatMsisdn);\n return asUserType.number();\n }\n\n function parseMsisdn(_msisdn: string) {\n const currentMsisdn = _msisdn.startsWith('0') ? parseInt(_msisdn, 10).toString() : _msisdn;\n try {\n const parsedPhoneNumber = parsePhoneNumber(currentMsisdn, { regionCode: userCountry.toUpperCase() });\n const nationalPhoneNumber = parsedPhoneNumber.number?.national || '';\n const internationalPhoneNumber = parsedPhoneNumber.number?.international || '';\n const bupperPhoneNumber = getBupperNumber(nationalPhoneNumber);\n const parsedPhoneNumberIsValid =\n userCountry.toLowerCase() === 'ci'\n ? parsedPhoneNumber.possible ||\n parsedPhoneNumber.typeIsMobile ||\n nationalPhoneNumber.length === 8 ||\n nationalPhoneNumber.length === 9\n : parsedPhoneNumber.valid;\n\n return {\n bupperPhoneNumber,\n nationalPhoneNumber,\n internationalPhoneNumber,\n isPhoneNumberValid: parsedPhoneNumberIsValid\n };\n } catch (error) {\n console.warn(error);\n return {\n bupperPhoneNumber: '',\n nationalPhoneNumber: '',\n internationalPhoneNumber: '',\n isPhoneNumberValid: false\n };\n }\n }\n\n const handleTooltipVisibility = () => {\n setIsTooltipVisible(!isTooltipVisible);\n setIsLabelVisible(!isLabelVisible);\n };\n\n return (\n <div\n className={`msisdn-wrapper ${isFocused ? focusAnimation : ''}`}\n data-attr=\"has-subscription-box\"\n onClick={handleTooltipVisibility}\n >\n {isTooltipVisible ? (\n <div className=\"label-msisdn tooltip\">\n {/* <formattedMessage\n id=\"msisdnLabelToolTip\"\n defaultMessage=\"Please insert your mobile number here\"\n /> */}\n {msisdnLabelToolTip}\n </div>\n ) : (\n <></>\n )}\n\n <div id=\"label-msisdn\" className=\"label-msisdn\">\n {/* <formattedMessage\n id=\"msisdnLabel\"\n defaultMessage=\"Enter your mobile number to start download now:\"\n /> */}\n {msisdnLabel}\n </div>\n\n <div\n className={cn(styles.phoneInputWrap, 'phone-input-wrap', {\n [styles.phoneInputWrapIconInput]: showIconInput,\n [styles.phoneInputWrapIconValid]: showIconValid && isValid && userInteract,\n [styles.phoneInputWrapIconInvalid]: showIconInvalid && !isValid && userInteract,\n // for custom css\n 'is-valid': isValid && userInteract,\n 'is-invalid': !isValid && userInteract\n })}\n data-msisdn={msisdn.replace(' ', '')}\n data-international-number={internationalNumber.replace('+', '').replace(' ', '')}\n >\n <input\n autoFocus\n required\n ref={inputElementRef}\n id={id || 'phone-input'}\n className={cn(styles.phoneInput, className, 'phone-input')}\n data-qa-id={dataQaId}\n type=\"tel\"\n placeholder={placeholder || 'Phone number'}\n value={formatMsisdn(msisdn)}\n pattern=\"[0-9]*\"\n inputMode=\"numeric\"\n minLength={minLength}\n autoComplete=\"tel\"\n onChange={(_ev: React.ChangeEvent<HTMLInputElement>) => {\n setUserInteract?.(true);\n\n const inputTargetValue = _ev.target.value;\n let newTargetValue = parseIncompletePhoneNumber(inputTargetValue);\n\n // Workaround for handling the Samsung Galaxy smart caret positioning bug\n if (newTargetValue === inputTargetValue && formatMsisdn(newTargetValue).startsWith(inputTargetValue)) {\n newTargetValue = newTargetValue.slice(0, -1);\n }\n\n // Requested by Aadam and partner for testing Luxembourg\n if (newTargetValue.includes('3522100000012340') && onChange) {\n onChange({\n isValid: true,\n msisdn: newTargetValue,\n nationalNumber: msisdn,\n internationalNumber: msisdn,\n bupperNumber: msisdn\n });\n setIsValid?.(true);\n return;\n }\n\n const { bupperPhoneNumber, internationalPhoneNumber, nationalPhoneNumber, isPhoneNumberValid } =\n parseMsisdn(newTargetValue);\n\n tracker?.customEvent('MSISDN-State', 'valid', 'MsisdnValid', { msisdn });\n setIsValid?.(isPhoneNumberValid);\n setMsisdn?.(_ev.currentTarget.value);\n setInternationalNumber?.(internationalPhoneNumber);\n\n if (onChange) {\n onChange({\n isValid: isPhoneNumberValid,\n msisdn: newTargetValue,\n bupperNumber: bupperPhoneNumber,\n nationalNumber: nationalPhoneNumber,\n internationalNumber: internationalPhoneNumber\n });\n }\n }}\n onKeyPress={(_ev: React.KeyboardEvent<HTMLInputElement>) => {\n handleKeyPress(_ev);\n\n if (!isMsisdnFilled && _ev.currentTarget.value.length >= minLength) {\n tracker?.customEvent('MSISDN-State', 'type', 'MsisdnType');\n setIsMsisdnFilled?.(true);\n }\n\n if (onKeyPress) {\n onKeyPress(_ev);\n }\n }}\n onPaste={(_ev: React.ClipboardEvent<HTMLInputElement>) => {\n if (!isMsisdnFilled && _ev.currentTarget.value.length >= minLength) {\n tracker?.customEvent('MSISDN-State', 'copypaste', 'MsisdnPasted');\n setIsMsisdnFilled?.(true);\n }\n\n if (onPaste) {\n onPaste(_ev);\n }\n }}\n onBlur={(_ev: React.FocusEvent<HTMLInputElement>) => {\n if (!isMsisdnFilled && _ev.currentTarget.value.length >= minLength) {\n tracker?.customEvent('MSISDN-State', 'autofill', 'AutoFill', { msisdn: _ev.target.value });\n setIsMsisdnFilled?.(true);\n }\n\n if (onBlur) {\n onBlur(_ev);\n }\n }}\n onFocus={(_ev: React.FocusEvent<HTMLInputElement>) => {\n if (onFocus) {\n onFocus(_ev);\n }\n }}\n />\n </div>\n </div>\n );\n};\n"],"names":["DIGITS","parsePhoneNumberCharacter","character","prevParsedCharacters","undefined","parseDigit","specialCountryCodes","s2","o2","a2","k2","c2","r2","l2","s3","b2","g2","a3","PhoneEntry","_a","tracker","country","msisdn","setMsisdn","internationalNumber","setInternationalNumber","isMsisdnFilled","setIsMsisdnFilled","inputElementRef","id","_c","className","_d","dataQaId","_e","minLength","placeholder","isValid","setIsValid","userInteract","setUserInteract","_f","showIconInput","_g","showIconValid","_h","showIconInvalid","onChange","onKeyPress","onPaste","onBlur","onFocus","_j","isFocused","_k","msisdnLabel","_l","msisdnLabelToolTip","_m","focusAnimation","userCountry","test","_o","__read","useState","isTooltipVisible","setIsTooltipVisible","_p","isLabelVisible","setIsLabelVisible","formatMsisdn","unformatMsisdn","asUserType","getAsYouType","addChar","number","React","onClick","createElement","cn","styles","_b","replace","autoFocus","required","ref","type","value","pattern","inputMode","autoComplete","_ev","inputTargetValue","target","newTargetValue","string","_iterator","_isArray","_i","result","split","Array","isArray","Symbol","iterator","_ref","length","next","done","parseIncompletePhoneNumber","startsWith","slice","includes","nationalNumber","bupperNumber","_msisdn","currentMsisdn","parseInt","toString","parsedPhoneNumber","parsePhoneNumber","regionCode","toUpperCase","nationalPhoneNumber","national","internationalPhoneNumber","international","bupperPhoneNumber","match","join","getBupperNumber","isPhoneNumberValid","toLowerCase","possible","typeIsMobile","valid","error","console","warn","parseMsisdn","customEvent","currentTarget","whichKey","key","preventDefault"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__read as e}from"tslib";import n,{useState as t,useRef as o,useEffect as s}from"react";import{B as a}from"./Button-6ff406cf.js";import{C as i}from"./ConsentAcceptanceCheck-6e63cf8c.js";import{D as l}from"./DynamicPricePoint-07c50b57.js";import{M as c}from"./PhoneInput-dbc93f49.js";import{P as r}from"./PricePoint-48923f42.js";import"classnames";import"./ExtraDisclaimers-35b99ca8.js";import"awesome-phonenumber";var m=function(m){var u=m.phoneInputRef,d=m.countryCode,f=m.msisdnPrefix,p=m.msisdn,C=m.locale,h=m.legals,b=m.buttonId,v=m.setMsisdn,g=m.onChange,k=m.tracker,E=m.formattedMessage,M=m.toolTipLabel,w=m.renderTopContent,B=m.msisdnLabel,N=m.placeholder,S=m.buttonLabel,P=m.buttonLabel2,x=m.buttonTopComponent,D=m.buttonBottomComponent,I=m.renderBottomContent,y=m.buttonDisabled,F=m.pageConfigs,T=m.customConsentMessage,j=m.msisdnLengthToValidate,L=void 0===j?5:j,A=m.onButtonClick,V=m.buttonAreaId,Y=void 0===V?"button-area":V,R=m.buttonAreaClassName,K=void 0===R?"dcbp":R,O=e(t(!1),2),W=O[0],q=O[1],z=e(n.useState(!1),2),G=z[0],H=z[1],J=e(t(!1),2),Q=J[0],U=J[1],X=e(t(!0),2),Z=X[0],$=X[1],_=e(t(!1),2),ee=_[0],ne=_[1],te=e(t(p),2);te[0];var oe=te[1],se=o(null),ae=e(t(!1),2),ie=ae[0],le=ae[1],ce=e(t((null==F?void 0:F.isConsentCheckByDefault)||!1),2),re=ce[0],me=ce[1],ue=e(t(!1),2),de=ue[0],fe=ue[1];s((function(){p||v(f||""),p&&p.length>=L&&(q(!0),ne(!0),U(!Q))}),[f]),s((function(){re&&fe(!1)}),[re]);var pe=function(e,n){if(!re&&!n&&(null==F?void 0:F.isShowConsentCheckBox))return e.preventDefault(),le(!0),void fe(!0);(null==F?void 0:F.isShowConsentCheckBox)&&(null==k||k.customEvent("Flow","advance","consentForm-accepted"),fe(!1),le(!1)),H((function(e){return!e})),A&&W&&A(e)};return n.createElement("label",{htmlFor:"phone-input"},w,Q&&!W?n.createElement("div",{className:"label-msisdn tooltip"},M):n.createElement(n.Fragment,null),Z?n.createElement("div",{id:"label-msisdn",className:"label-msisdn"},B):null,n.createElement("div",{className:"msisdn-wrapper ".concat(G&&!W?null==F?void 0:F.inputFocusAnimation:""),"data-attr":"has-subscription-box",onClick:function(){window.innerWidth<=640&&(null==F?void 0:F.hasTooltip)&&(U(!0),$(!1))}},n.createElement(c,{showFlag:!0,showMobileIcon:!0,showError:!1,tracker:k,inputElementRef:u||se,placeholder:N||"",msisdn:p,countryCode:d||"MY",onChange:function(e){v(e.msisdn),q(e.isValid),oe(e.internationalNumber),null==g||g(e),e.isValid&&(null==F?void 0:F.isCheckConsentCheckBoxOnValid)&&me(!0)},onKeyPress:function(){!ee&&p&&p.length>=L&&ne(!0)},onPaste:function(){ee||ne(!0),setTimeout((function(){null==k||k.customEvent("MSISDN-State","copypaste","MsisdnPasted",{msisdn:p})}),0)},onBlur:function(){!ee&&p&&p.length>=L&&(ne(!0),null==k||k.customEvent("MSISDN-State","autofill","AutoFill",{msisdn:p}))},onFocus:function(){},onClickCheckMark:function(){},onClickErrorCheckMark:function(){}})),x,n.createElement("div",{id:Y,className:K},n.createElement(a,{type:"submit",className:"btn",id:b||"msisdn-submit-button",disabled:y||(null==F?void 0:F.isDisableButtonIfInvalid)&&!W,onClick:function(e){pe(e)}},S,P&&n.createElement("p",{className:"msisdn-secondary-label"},P))),D,(null==F?void 0:F.isNewLegal)?n.createElement(l,{pageConfigs:F,formattedMessage:E}):n.createElement(r,{className:"price-point",legals:h||[],locale:C||"en"}),(null==F?void 0:F.isShowConsentCheckBox)&&n.createElement(i,{tracker:k,checked:re,locale:C||"en",legals:h,confirmText:"YES",pageConfigs:F,showErrorMessage:de,customConsentMessage:T,showModal:ie,formattedMessage:E,onCheckedChange:function(){me(!re)},onClickYes:function(e){me(!0),pe(e,!0)}}),I)};export{m as PhoneEntryForm};
1
+ import{__read as e}from"tslib";import n,{useState as t,useRef as o,useEffect as s}from"react";import{B as a}from"./Button-75842042.js";import{C as i}from"./ConsentAcceptanceCheck-c1a19654.js";import{D as l}from"./DynamicPricePoint-2431c936.js";import{M as c}from"./PhoneInput-18529ade.js";import{P as r}from"./PricePoint-5984ff42.js";import"classnames";import"./ExtraDisclaimers-72ed9a9d.js";import"awesome-phonenumber";var m=function(m){var u=m.phoneInputRef,d=m.countryCode,p=m.msisdnPrefix,f=m.msisdn,C=m.locale,h=m.legals,b=m.buttonId,v=m.setMsisdn,g=m.onChange,k=m.tracker,E=m.formattedMessage,M=m.toolTipLabel,w=m.renderTopContent,B=m.msisdnLabel,N=m.placeholder,S=m.buttonLabel,P=m.buttonLabel2,x=m.buttonTopComponent,y=m.buttonBottomComponent,D=m.renderBottomContent,I=m.buttonDisabled,F=m.pageConfigs,T=m.customConsentMessage,j=m.msisdnLengthToValidate,L=void 0===j?5:j,A=m.onButtonClick,V=m.buttonAreaId,Y=void 0===V?"button-area":V,R=m.buttonAreaClassName,K=void 0===R?"dcbp":R,O=e(t(!1),2),W=O[0],q=O[1],z=e(n.useState(!1),2),G=z[0],H=z[1],J=e(t(!1),2),Q=J[0],U=J[1],X=e(t(!0),2),Z=X[0],$=X[1],_=e(t(!1),2),ee=_[0],ne=_[1],te=e(t(f),2);te[0];var oe=te[1],se=o(null),ae=e(t(!1),2),ie=ae[0],le=ae[1],ce=e(t((null==F?void 0:F.isConsentCheckByDefault)||!1),2),re=ce[0],me=ce[1],ue=e(t(!1),2),de=ue[0],pe=ue[1];s((function(){f||(null==F?void 0:F.hasCountryCode)?v(""):v(p||""),f&&f.length>=L&&(q(!0),ne(!0),U(!Q))}),[p,F]),s((function(){re&&pe(!1)}),[re]);var fe=function(e,n){if(!re&&!n&&(null==F?void 0:F.isShowConsentCheckBox))return e.preventDefault(),le(!0),void pe(!0);(null==F?void 0:F.isShowConsentCheckBox)&&(null==k||k.customEvent("Flow","advance","consentForm-accepted"),pe(!1),le(!1)),H((function(e){return!e})),A&&W&&A(e)};return n.createElement("label",{htmlFor:"phone-input"},w,Q&&!W?n.createElement("div",{className:"label-msisdn tooltip"},M):n.createElement(n.Fragment,null),Z?n.createElement("div",{id:"label-msisdn",className:"label-msisdn"},B):null,n.createElement("div",{className:"msisdn-wrapper ".concat(G&&!W?null==F?void 0:F.inputFocusAnimation:""),"data-attr":"has-subscription-box",onClick:function(){window.innerWidth<=640&&(null==F?void 0:F.hasTooltip)&&(U(!0),$(!1))}},n.createElement(c,{showFlag:!0,showMobileIcon:!0,showError:!1,tracker:k,inputElementRef:u||se,placeholder:N||"",msisdn:f,countryCode:d||"MY",onChange:function(e){v(e.msisdn),q(e.isValid),oe(e.internationalNumber),null==g||g(e),e.isValid&&(null==F?void 0:F.isCheckConsentCheckBoxOnValid)&&me(!0)},onKeyPress:function(){!ee&&f&&f.length>=L&&ne(!0)},onPaste:function(){ee||ne(!0),setTimeout((function(){null==k||k.customEvent("MSISDN-State","copypaste","MsisdnPasted",{msisdn:f})}),0)},onBlur:function(){!ee&&f&&f.length>=L&&(ne(!0),null==k||k.customEvent("MSISDN-State","autofill","AutoFill",{msisdn:f}))},onFocus:function(){},onClickCheckMark:function(){},onClickErrorCheckMark:function(){}})),x,n.createElement("div",{id:Y,className:K},n.createElement(a,{type:"submit",className:"btn",id:b||"msisdn-submit-button",disabled:I||(null==F?void 0:F.isDisableButtonIfInvalid)&&!W,onClick:function(e){fe(e)}},S,P&&n.createElement("p",{className:"msisdn-secondary-label"},P))),y,(null==F?void 0:F.isNewLegal)?n.createElement(l,{pageConfigs:F,formattedMessage:E}):n.createElement(r,{className:"price-point",legals:h||[],locale:C||"en"}),(null==F?void 0:F.isShowConsentCheckBox)&&n.createElement(i,{tracker:k,checked:re,locale:C||"en",legals:h,confirmText:"YES",pageConfigs:F,showErrorMessage:de,customConsentMessage:T,showModal:ie,formattedMessage:E,onCheckedChange:function(){me(!re)},onClickYes:function(e){me(!0),fe(e,!0)}}),D)};export{m as PhoneEntryForm};
2
2
  //# sourceMappingURL=PhoneEntryForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneEntryForm.js","sources":["../src/PhoneEntryForm/PhoneEntryForm.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Button } from '../Button/Button';\nimport { ConsentAcceptanceCheck } from '../ConsentAcceptanceCheck/ConsentAcceptanceCheck';\nimport { DynamicPricePoint } from '../DynamicPricePoint/DynamicPricePoint';\nimport PhoneInput from '../PhoneInput';\nimport { PricePoint } from '../PricePoint/PricePoint';\nimport { IPhoneEntryFormProps } from './PhoneEntryForm.types';\n\nexport const PhoneEntryForm = (props: IPhoneEntryFormProps) => {\n const {\n phoneInputRef,\n countryCode,\n msisdnPrefix,\n msisdn,\n locale,\n legals,\n buttonId,\n setMsisdn,\n onChange,\n tracker,\n formattedMessage,\n toolTipLabel,\n renderTopContent,\n msisdnLabel,\n placeholder,\n buttonLabel,\n buttonLabel2,\n buttonTopComponent,\n buttonBottomComponent,\n renderBottomContent,\n buttonDisabled,\n pageConfigs,\n customConsentMessage,\n msisdnLengthToValidate = 5,\n onButtonClick,\n buttonAreaId = 'button-area',\n buttonAreaClassName = 'dcbp'\n } = props;\n\n const [isValid, setIsValid] = useState(false);\n const [isFocused, setIsFocused] = React.useState(false);\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isLabelVisible, setIsLabelVisible] = useState(true);\n const [isMsisdnFilled, setIsMsisdnFilled] = useState(false);\n const [internationalNumber, setInternationalNumber] = useState<string>(msisdn);\n const defaultInputRef = useRef<HTMLInputElement>(null);\n const [showModal, setShowModal] = useState<boolean>(false);\n const [checked, setChecked] = useState<boolean>(pageConfigs?.isConsentCheckByDefault || false);\n const [showMessage, setShowMessage] = useState<boolean>(false);\n\n useEffect(() => {\n if (!msisdn) {\n setMsisdn(msisdnPrefix || '');\n }\n if (msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsValid(true);\n setIsMsisdnFilled(true);\n setIsTooltipVisible(!isTooltipVisible);\n }\n }, [msisdnPrefix]);\n\n useEffect(() => {\n if (checked) {\n setShowMessage(false);\n }\n }, [checked]);\n\n const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>, isChecked?: boolean) => {\n if (!(checked || isChecked) && pageConfigs?.isShowConsentCheckBox) {\n e.preventDefault();\n setShowModal(true);\n setShowMessage(true);\n return;\n }\n\n if (pageConfigs?.isShowConsentCheckBox) {\n tracker?.customEvent('Flow', 'advance', 'consentForm-accepted');\n setShowMessage(false);\n setShowModal(false);\n }\n\n setIsFocused((prevState) => !prevState);\n if (onButtonClick && isValid) {\n onButtonClick(e);\n }\n };\n\n const handleTooltipVisibility = () => {\n if (window.innerWidth <= 640 && pageConfigs?.hasTooltip) {\n setIsTooltipVisible(true);\n setIsLabelVisible(false);\n }\n };\n\n return (\n <label htmlFor=\"phone-input\">\n {renderTopContent}\n {isTooltipVisible && !isValid ? <div className=\"label-msisdn tooltip\">{toolTipLabel}</div> : <></>}\n {isLabelVisible ? (\n <div id=\"label-msisdn\" className=\"label-msisdn\">\n {msisdnLabel}\n </div>\n ) : null}\n <div\n className={`msisdn-wrapper ${isFocused && !isValid ? pageConfigs?.inputFocusAnimation : ''}`}\n data-attr=\"has-subscription-box\"\n onClick={handleTooltipVisibility}\n >\n <PhoneInput\n showFlag\n showMobileIcon\n showError={false}\n tracker={tracker}\n inputElementRef={phoneInputRef || defaultInputRef}\n placeholder={placeholder || ''}\n msisdn={msisdn}\n countryCode={countryCode || 'MY'} // Assuming default country code is MY, can be made dynamic\n onChange={(ev: any) => {\n setMsisdn(ev.msisdn);\n setIsValid(ev.isValid);\n setInternationalNumber(ev.internationalNumber);\n onChange?.(ev);\n\n if (ev.isValid && pageConfigs?.isCheckConsentCheckBoxOnValid) {\n setChecked(true);\n }\n }}\n onKeyPress={() => {\n if (!isMsisdnFilled && msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsMsisdnFilled(true);\n }\n }}\n onPaste={() => {\n if (!isMsisdnFilled) {\n setIsMsisdnFilled(true);\n }\n setTimeout(() => {\n tracker?.customEvent('MSISDN-State', 'copypaste', 'MsisdnPasted', {\n msisdn\n });\n }, 0);\n }}\n onBlur={() => {\n if (!isMsisdnFilled && msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsMsisdnFilled(true);\n tracker?.customEvent('MSISDN-State', 'autofill', 'AutoFill', {\n msisdn\n });\n }\n }}\n onFocus={() => {\n // Handle focus event\n }}\n onClickCheckMark={() => {\n // Handle check mark click\n }}\n onClickErrorCheckMark={() => {\n // Handle error check mark click\n }}\n />\n </div>\n {buttonTopComponent}\n <div id={buttonAreaId} className={buttonAreaClassName}>\n <Button\n type=\"submit\"\n className=\"btn\"\n id={buttonId || 'msisdn-submit-button'}\n disabled={buttonDisabled || (pageConfigs?.isDisableButtonIfInvalid && !isValid)}\n onClick={(ev) => {\n handleButtonClick(ev);\n }}\n >\n {buttonLabel}\n {buttonLabel2 && <p className=\"msisdn-secondary-label\">{buttonLabel2}</p>}\n </Button>\n </div>\n {buttonBottomComponent}\n\n {pageConfigs?.isNewLegal ? (\n <DynamicPricePoint pageConfigs={pageConfigs} formattedMessage={formattedMessage} />\n ) : (\n <PricePoint className=\"price-point\" legals={legals || []} locale={locale || 'en'} />\n )}\n\n {pageConfigs?.isShowConsentCheckBox && (\n <ConsentAcceptanceCheck\n tracker={tracker}\n checked={checked}\n locale={locale || 'en'}\n legals={legals}\n confirmText=\"YES\"\n pageConfigs={pageConfigs}\n showErrorMessage={showMessage}\n customConsentMessage={customConsentMessage}\n showModal={showModal}\n formattedMessage={formattedMessage}\n onCheckedChange={() => {\n setChecked(!checked);\n }}\n onClickYes={(e) => {\n setChecked(true);\n handleButtonClick(e, true);\n }}\n />\n )}\n {renderBottomContent}\n </label>\n );\n};\n"],"names":["PhoneEntryForm","props","phoneInputRef","countryCode","msisdnPrefix","msisdn","locale","legals","buttonId","setMsisdn","onChange","tracker","formattedMessage","toolTipLabel","renderTopContent","msisdnLabel","placeholder","buttonLabel","buttonLabel2","buttonTopComponent","buttonBottomComponent","renderBottomContent","buttonDisabled","pageConfigs","customConsentMessage","_a","msisdnLengthToValidate","onButtonClick","_b","buttonAreaId","_c","buttonAreaClassName","_d","__read","useState","isValid","setIsValid","_e","React","isFocused","setIsFocused","_f","isTooltipVisible","setIsTooltipVisible","_g","isLabelVisible","setIsLabelVisible","_h","isMsisdnFilled","setIsMsisdnFilled","_j","setInternationalNumber","defaultInputRef","useRef","_k","showModal","setShowModal","_l","isConsentCheckByDefault","checked","setChecked","_m","showMessage","setShowMessage","useEffect","length","handleButtonClick","e","isChecked","isShowConsentCheckBox","preventDefault","customEvent","prevState","createElement","htmlFor","className","Fragment","id","concat","inputFocusAnimation","onClick","window","innerWidth","hasTooltip","PhoneInput","showFlag","showMobileIcon","showError","inputElementRef","ev","internationalNumber","isCheckConsentCheckBoxOnValid","onKeyPress","onPaste","setTimeout","onBlur","onFocus","onClickCheckMark","onClickErrorCheckMark","Button","type","disabled","isDisableButtonIfInvalid","isNewLegal","DynamicPricePoint","PricePoint","ConsentAcceptanceCheck","confirmText","showErrorMessage","onCheckedChange","onClickYes"],"mappings":"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"}
1
+ {"version":3,"file":"PhoneEntryForm.js","sources":["../src/PhoneEntryForm/PhoneEntryForm.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Button } from '../Button/Button';\nimport { ConsentAcceptanceCheck } from '../ConsentAcceptanceCheck/ConsentAcceptanceCheck';\nimport { DynamicPricePoint } from '../DynamicPricePoint/DynamicPricePoint';\nimport PhoneInput from '../PhoneInput';\nimport { PricePoint } from '../PricePoint/PricePoint';\nimport { IPhoneEntryFormProps } from './PhoneEntryForm.types';\n\nexport const PhoneEntryForm = (props: IPhoneEntryFormProps) => {\n const {\n phoneInputRef,\n countryCode,\n msisdnPrefix,\n msisdn,\n locale,\n legals,\n buttonId,\n setMsisdn,\n onChange,\n tracker,\n formattedMessage,\n toolTipLabel,\n renderTopContent,\n msisdnLabel,\n placeholder,\n buttonLabel,\n buttonLabel2,\n buttonTopComponent,\n buttonBottomComponent,\n renderBottomContent,\n buttonDisabled,\n pageConfigs,\n customConsentMessage,\n msisdnLengthToValidate = 5,\n onButtonClick,\n buttonAreaId = 'button-area',\n buttonAreaClassName = 'dcbp'\n } = props;\n\n const [isValid, setIsValid] = useState(false);\n const [isFocused, setIsFocused] = React.useState(false);\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isLabelVisible, setIsLabelVisible] = useState(true);\n const [isMsisdnFilled, setIsMsisdnFilled] = useState(false);\n const [internationalNumber, setInternationalNumber] = useState<string>(msisdn);\n const defaultInputRef = useRef<HTMLInputElement>(null);\n const [showModal, setShowModal] = useState<boolean>(false);\n const [checked, setChecked] = useState<boolean>(pageConfigs?.isConsentCheckByDefault || false);\n const [showMessage, setShowMessage] = useState<boolean>(false);\n\n useEffect(() => {\n if (!msisdn && !pageConfigs?.hasCountryCode) {\n setMsisdn(msisdnPrefix || '');\n } else {\n setMsisdn(\"\");\n }\n\n if (msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsValid(true);\n setIsMsisdnFilled(true);\n setIsTooltipVisible(!isTooltipVisible);\n }\n }, [msisdnPrefix, pageConfigs]);\n\n useEffect(() => {\n if (checked) {\n setShowMessage(false);\n }\n }, [checked]);\n\n const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>, isChecked?: boolean) => {\n if (!(checked || isChecked) && pageConfigs?.isShowConsentCheckBox) {\n e.preventDefault();\n setShowModal(true);\n setShowMessage(true);\n return;\n }\n\n if (pageConfigs?.isShowConsentCheckBox) {\n tracker?.customEvent('Flow', 'advance', 'consentForm-accepted');\n setShowMessage(false);\n setShowModal(false);\n }\n\n setIsFocused((prevState) => !prevState);\n if (onButtonClick && isValid) {\n onButtonClick(e);\n }\n };\n\n const handleTooltipVisibility = () => {\n if (window.innerWidth <= 640 && pageConfigs?.hasTooltip) {\n setIsTooltipVisible(true);\n setIsLabelVisible(false);\n }\n };\n\n return (\n <label htmlFor=\"phone-input\">\n {renderTopContent}\n {isTooltipVisible && !isValid ? <div className=\"label-msisdn tooltip\">{toolTipLabel}</div> : <></>}\n {isLabelVisible ? (\n <div id=\"label-msisdn\" className=\"label-msisdn\">\n {msisdnLabel}\n </div>\n ) : null}\n <div\n className={`msisdn-wrapper ${isFocused && !isValid ? pageConfigs?.inputFocusAnimation : ''}`}\n data-attr=\"has-subscription-box\"\n onClick={handleTooltipVisibility}\n >\n <PhoneInput\n showFlag\n showMobileIcon\n showError={false}\n tracker={tracker}\n inputElementRef={phoneInputRef || defaultInputRef}\n placeholder={placeholder || ''}\n msisdn={msisdn}\n countryCode={countryCode || 'MY'} // Assuming default country code is MY, can be made dynamic\n onChange={(ev: any) => {\n setMsisdn(ev.msisdn);\n setIsValid(ev.isValid);\n setInternationalNumber(ev.internationalNumber);\n onChange?.(ev);\n\n if (ev.isValid && pageConfigs?.isCheckConsentCheckBoxOnValid) {\n setChecked(true);\n }\n }}\n onKeyPress={() => {\n if (!isMsisdnFilled && msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsMsisdnFilled(true);\n }\n }}\n onPaste={() => {\n if (!isMsisdnFilled) {\n setIsMsisdnFilled(true);\n }\n setTimeout(() => {\n tracker?.customEvent('MSISDN-State', 'copypaste', 'MsisdnPasted', {\n msisdn\n });\n }, 0);\n }}\n onBlur={() => {\n if (!isMsisdnFilled && msisdn && msisdn.length >= msisdnLengthToValidate) {\n setIsMsisdnFilled(true);\n tracker?.customEvent('MSISDN-State', 'autofill', 'AutoFill', {\n msisdn\n });\n }\n }}\n onFocus={() => {\n // Handle focus event\n }}\n onClickCheckMark={() => {\n // Handle check mark click\n }}\n onClickErrorCheckMark={() => {\n // Handle error check mark click\n }}\n />\n </div>\n {buttonTopComponent}\n <div id={buttonAreaId} className={buttonAreaClassName}>\n <Button\n type=\"submit\"\n className=\"btn\"\n id={buttonId || 'msisdn-submit-button'}\n disabled={buttonDisabled || (pageConfigs?.isDisableButtonIfInvalid && !isValid)}\n onClick={(ev) => {\n handleButtonClick(ev);\n }}\n >\n {buttonLabel}\n {buttonLabel2 && <p className=\"msisdn-secondary-label\">{buttonLabel2}</p>}\n </Button>\n </div>\n {buttonBottomComponent}\n\n {pageConfigs?.isNewLegal ? (\n <DynamicPricePoint pageConfigs={pageConfigs} formattedMessage={formattedMessage} />\n ) : (\n <PricePoint className=\"price-point\" legals={legals || []} locale={locale || 'en'} />\n )}\n\n {pageConfigs?.isShowConsentCheckBox && (\n <ConsentAcceptanceCheck\n tracker={tracker}\n checked={checked}\n locale={locale || 'en'}\n legals={legals}\n confirmText=\"YES\"\n pageConfigs={pageConfigs}\n showErrorMessage={showMessage}\n customConsentMessage={customConsentMessage}\n showModal={showModal}\n formattedMessage={formattedMessage}\n onCheckedChange={() => {\n setChecked(!checked);\n }}\n onClickYes={(e) => {\n setChecked(true);\n handleButtonClick(e, true);\n }}\n />\n )}\n {renderBottomContent}\n </label>\n );\n};\n"],"names":["PhoneEntryForm","props","phoneInputRef","countryCode","msisdnPrefix","msisdn","locale","legals","buttonId","setMsisdn","onChange","tracker","formattedMessage","toolTipLabel","renderTopContent","msisdnLabel","placeholder","buttonLabel","buttonLabel2","buttonTopComponent","buttonBottomComponent","renderBottomContent","buttonDisabled","pageConfigs","customConsentMessage","_a","msisdnLengthToValidate","onButtonClick","_b","buttonAreaId","_c","buttonAreaClassName","_d","__read","useState","isValid","setIsValid","_e","React","isFocused","setIsFocused","_f","isTooltipVisible","setIsTooltipVisible","_g","isLabelVisible","setIsLabelVisible","_h","isMsisdnFilled","setIsMsisdnFilled","_j","setInternationalNumber","defaultInputRef","useRef","_k","showModal","setShowModal","_l","isConsentCheckByDefault","checked","setChecked","_m","showMessage","setShowMessage","useEffect","hasCountryCode","length","handleButtonClick","e","isChecked","isShowConsentCheckBox","preventDefault","customEvent","prevState","createElement","htmlFor","className","Fragment","id","concat","inputFocusAnimation","onClick","window","innerWidth","hasTooltip","PhoneInput","showFlag","showMobileIcon","showError","inputElementRef","ev","internationalNumber","isCheckConsentCheckBoxOnValid","onKeyPress","onPaste","setTimeout","onBlur","onFocus","onClickCheckMark","onClickErrorCheckMark","Button","type","disabled","isDisableButtonIfInvalid","isNewLegal","DynamicPricePoint","PricePoint","ConsentAcceptanceCheck","confirmText","showErrorMessage","onCheckedChange","onClickYes"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import{__rest as e,__read as n,__assign as o,__awaiter as t,__generator as r}from"tslib";import{getAsYouType as a,parsePhoneNumber as i}from"awesome-phonenumber";import*as l from"react";import u,{memo as c,useState as s,useRef as d,useEffect as m,useCallback as v}from"react";var f={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9"};function p(e){return e.split("").reduce((function(e,n){var o=function(e,n){if("+"===e){if(n)return;return"+"}return function(e){return f[e]}(e)}(n,e);return o?e+o:e}),"")}var h=c((function(t){var r=t.value,i=t.onChange,l=t.onFocus,c=t.onBlur,f=t.country,h=t.inputComponent,g=void 0===h?"input":h,k=e(t,["value","onChange","onFocus","onBlur","country","inputComponent"]),b=n(s(r),2),w=b[0],C=b[1],y=d(null);m((function(){C(r)}),[r]);var N=v((function(e){var n=a(f);return n.addChar(e),n.number()}),[f]),E=v((function(e){var n=p(e.target.value);n===w&&N(n).startsWith(e.target.value)&&(n=n.slice(0,-1)),C(n),i(n)}),[w,N,i]),x=v((function(e){if(c){var n=o(o({},e),{target:o(o({},e.target),{value:w}),stopPropagation:e.stopPropagation,preventDefault:e.preventDefault});c(n)}}),[c,w]);return v((function(){var e;null===(e=y.current)||void 0===e||e.focus()}),[]),u.createElement(g,o({type:"tel",autoComplete:"tel"},k,{ref:y,value:N(w),onChange:E,onFocus:l,onBlur:x}))}));h.displayName="InputBasic";var g="checkmark-module_checkmarkCircle__eLYXC",k="checkmark-module_checkmarkIcon__MB66m",b="checkmark-module_checkmarkCheck__PU1bl";function w(e){var n=e.onClickCheckMark;return l.createElement("svg",{id:"success-check-mark",onClick:function(){return n()},className:k,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 52 52"},l.createElement("circle",{className:g,cx:"26",cy:"26",r:"25",fill:"none"}),l.createElement("path",{className:b,fill:"none",d:"M14.1 27.2l7.1 7.2 16.7-16.8"}))}function C(e,n,o){return{countryCode:e,commonPrefix:n,maxLength:o}}var y={mx:C("52","01",10),my:C("60","01",9),za:C("27","0",9),ae:C("971","05",10),a2:C("971","05",10),gr:C("30","69",9),g2:C("30","69",9),ee:C("372","",10),lt:C("370","6",9),ps:C("972","0",10),xx:C("","",10),lu:C("352","0",10)};function N(e){var n=e.onClickErrorCheckMark;return l.createElement("svg",{id:"error-check-mark",onClick:function(){return n()},xmlns:"http://www.w3.org/2000/svg",className:"errormark__icon",viewBox:"0 0 90.27 90.27"},l.createElement("defs",null,l.createElement("style",{dangerouslySetInnerHTML:{__html:"\n svg {\n fill: red;\n }\n .circle-2 {\n fill: #bcbec4;\n }\n .x {\n opacity: 0.5;\n }\n .x-single {\n fill: #fff;\n }\n "}})),l.createElement("title",null,"icon-error"),l.createElement("circle",{className:"circle-2",cx:"45.14",cy:"45.14",r:"45.14"}),l.createElement("g",{className:"x"},l.createElement("rect",{className:"x-single",x:"21.77",y:"43.49",width:"46.74",height:"3.36",transform:"translate(-18.72 45.15) rotate(-45)"}),l.createElement("rect",{className:"x-single",x:"43.47",y:"21.81",width:"3.36",height:"46.74",transform:"translate(-18.72 45.16) rotate(-45)"})))}function E(e,n){var o,t,r=n.startsWith("0")?parseInt(n,10).toString():n;try{var a=i(r,{regionCode:e.toUpperCase()}),l=(null===(o=a.number)||void 0===o?void 0:o.national)||"",u=(null===(t=a.number)||void 0===t?void 0:t.international)||"",c=function(e){if(!e)return e;var n=e.match(/\d+/g);return n?n.join(""):e}(l),s=a.valid;return"ci"===e.toLowerCase()&&(s=a.possible||a.typeIsMobile||8===l.length||9===l.length),{nationalNumber:l,internationalNumber:u,bupperNumber:c,isValid:s,internationalPrefix:a.countryCode}}catch(e){return console.warn(e),{nationalNumber:"",internationalNumber:"",bupperNumber:"",isValid:!1}}}function x(e){return/\d/.test(e)}var _={s2:"sa",o2:"om",a2:"ae",k2:"kw",c2:"ch",r2:"rs",l2:"lv",s3:"se",b2:"bh",g2:"gr",a3:"at"};var M=function(e){var o,a,i,l,c=n(s(!1),2),d=c[0],v=c[1],f=n(s(!1),2),p=f[0],g=f[1],k=function(){var n=e.id,o=e.inputElementRef,t="#".concat(n||"phone-input"),r=document.querySelector(t);"undefined"!=typeof window&&r&&!r.hasAttribute("autofocus")&&r.setAttribute("autofocus",""),o.current&&setTimeout((function(){var e;null===(e=o.current)||void 0===e||e.focus()}),123)};m((function(){k();t(void 0,void 0,void 0,(function(){var n,o,t,a,i,l,u,c,s,d,m,f,p,h,g,k,b,w;return r(this,(function(r){switch(r.label){case 0:if("undefined"==typeof window||!(null==e?void 0:e.useNumberFromCookie)||!window.msisdnCookieUrl)return[3,6];C="_uuid",y=document.cookie.match("(^|;)\\s*".concat(C,"\\s*=\\s*([^;]+)")),n=y?decodeURIComponent(y.pop()||""):"",o=localStorage.getItem("_uuid"),t="",r.label=1;case 1:return r.trys.push([1,4,,5]),[4,fetch(window.msisdnCookieUrl,{mode:"cors",method:"GET",credentials:"include"})];case 2:return[4,r.sent().json()];case 3:return a=r.sent(),(null===(g=null==a?void 0:a.data)||void 0===g?void 0:g.success)&&(null===(k=null==a?void 0:a.data)||void 0===k?void 0:k._uuid)&&(t=null===(b=null==a?void 0:a.data)||void 0===b?void 0:b._uuid),[3,5];case 4:return i=r.sent(),console.error(null==i?void 0:i.message),[3,5];case 5:l=t||o||n||"",u=window.atob(l),(null==e?void 0:e.tracker)&&(c=t?"msisdnCookieUrl":o?"localStorage":n?"cookie":"none",null===(w=null==e?void 0:e.tracker)||void 0===w||w.customEvent("Flow","advance-auto","msisdn-retrieve-".concat(c),{source:c,msisdn:u})),u&&(s=x(null==e?void 0:e.countryCode)?_[null==e?void 0:e.countryCode]:null==e?void 0:e.countryCode,d=E(s,u),m=d.nationalNumber,f=d.internationalNumber,p=d.bupperNumber,h=d.isValid,null==e||e.onChange({msisdn:u,isValid:h,nationalNumber:m,internationalNumber:f,bupperNumber:p}),v(h),window.msisdn=u),r.label=6;case 6:return[2]}var C,y}))}))}),[]),m((function(){g(null==e?void 0:e.showError)}),[null==e?void 0:e.showError]),m((function(){(null==e?void 0:e.msisdn)&&F(null==e?void 0:e.msisdn)}),[null==e?void 0:e.msisdn]);var b=h,C=x(null==e?void 0:e.countryCode)?_[null==e?void 0:e.countryCode]:null==e?void 0:e.countryCode,M=function(e){return y[e]||y.xx}(C),S=M.countryCode;M.commonPrefix,M.maxLength;var I=null!==(o=null==e?void 0:e.showCountryCode)&&void 0!==o&&o,P=null===(a=null==e?void 0:e.showFlag)||void 0===a||a,U=null===(i=null==e?void 0:e.showMobileIcon)||void 0===i||i,B=null!==(l=null==e?void 0:e.saveValidNumber)&&void 0!==l&&l,F=function(n){var o=E(C,n),a=o.nationalNumber,i=o.internationalNumber,l=o.bupperNumber,u=o.isValid;if(null==e||e.onChange({msisdn:n,isValid:u,nationalNumber:a,internationalNumber:i,bupperNumber:l}),v(u),"undefined"!=typeof window&&(window.msisdn=n,B&&u&&window.msisdnCookieUrl)){var c=window.btoa(n);!function(e,n,o,t){void 0===t&&(t="/");var r="".concat(e,"=").concat(encodeURIComponent(n));if(o){var a=new Date;a.setTime(a.getTime()+24*o*60*60*1e3),r+="; expires=".concat(a.toUTCString())}r+="; path=".concat(t),document.cookie=r}("_uuid",c,30,"/"),localStorage.setItem("_uuid",c),t(void 0,void 0,void 0,(function(){var n,o,t,a;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),[4,fetch(window.msisdnCookieUrl,{mode:"cors",method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({_uuid:c})})];case 1:return[4,r.sent().json()];case 2:return n=r.sent(),(null==e?void 0:e.tracker)&&(o=(null===(a=null==n?void 0:n.data)||void 0===a?void 0:a.success)?"msisdn-stored-success":"msisdn-stored-failed",null==e||e.tracker.customEvent("Flow","advance-auto",o)),[3,4];case 3:return t=r.sent(),null==e||e.tracker.customEvent("Flow","advance-auto","msisdn-stored-error",t),[3,4];case 4:return[2]}}))}))}};return u.createElement("div",{className:"phone-input"},U&&u.createElement("div",{className:"phone",onMouseDown:k,onTouchStart:k}),P&&u.createElement("div",{className:"flag",onMouseDown:k,onTouchStart:k,style:{backgroundImage:"url('https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.1/flags/4x3/".concat(C,".svg')")}}),I&&u.createElement("div",{className:"country-code",onMouseDown:k},"(",S,")"),u.createElement(b,{id:(null==e?void 0:e.id)||"phone-input",name:(null==e?void 0:e.name)||"phone-input-name",smartcaret:"undefined"==typeof navigator?"true":/SamsungBrowser/gi.test(navigator.userAgent)?"false":"true",ref:null==e?void 0:e.inputElementRef,placeholder:(null==e?void 0:e.placeholder)||"Enter phone number",country:C.toUpperCase(),className:"text-input",value:(null==e?void 0:e.msisdn)||"",onChange:function(n){if(g(!1),n.includes("3522100000012340"))return null==e||e.onChange({msisdn:n,isValid:!0,nationalNumber:n,internationalNumber:n,bupperNumber:n}),void v(!0);F(n)},onPaste:null==e?void 0:e.onPaste,onBlur:null==e?void 0:e.onBlur,onFocus:null==e?void 0:e.onFocus,onKeyPress:null==e?void 0:e.onKeyPress,maxLength:null==e?void 0:e.maxLength}),u.createElement("div",{className:"checkmark-container","data-checkmark-container":"true"},p?u.createElement(N,{onClickErrorCheckMark:null==e?void 0:e.onClickErrorCheckMark}):d?u.createElement(w,{onClickCheckMark:null==e?void 0:e.onClickCheckMark}):null))};export{M};
2
- //# sourceMappingURL=PhoneInput-dbc93f49.js.map
2
+ //# sourceMappingURL=PhoneInput-18529ade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneInput-dbc93f49.js","sources":["../src/PhoneInput/BasicInput/parseDigits.ts","../src/PhoneInput/BasicInput/parseIncompletePhoneNumber.ts","../src/PhoneInput/BasicInput/index.tsx","../src/PhoneInput/Checkmark.tsx","../src/PhoneInput/config.ts","../src/PhoneInput/Errormark.tsx","../src/PhoneInput/PhoneInput.tsx"],"sourcesContent":["// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport const DIGITS: { [key: string]: string } = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '\\uFF10': '0', // Fullwidth digit 0\n '\\uFF11': '1', // Fullwidth digit 1\n '\\uFF12': '2', // Fullwidth digit 2\n '\\uFF13': '3', // Fullwidth digit 3\n '\\uFF14': '4', // Fullwidth digit 4\n '\\uFF15': '5', // Fullwidth digit 5\n '\\uFF16': '6', // Fullwidth digit 6\n '\\uFF17': '7', // Fullwidth digit 7\n '\\uFF18': '8', // Fullwidth digit 8\n '\\uFF19': '9', // Fullwidth digit 9\n '\\u0660': '0', // Arabic-indic digit 0\n '\\u0661': '1', // Arabic-indic digit 1\n '\\u0662': '2', // Arabic-indic digit 2\n '\\u0663': '3', // Arabic-indic digit 3\n '\\u0664': '4', // Arabic-indic digit 4\n '\\u0665': '5', // Arabic-indic digit 5\n '\\u0666': '6', // Arabic-indic digit 6\n '\\u0667': '7', // Arabic-indic digit 7\n '\\u0668': '8', // Arabic-indic digit 8\n '\\u0669': '9', // Arabic-indic digit 9\n '\\u06F0': '0', // Eastern-Arabic digit 0\n '\\u06F1': '1', // Eastern-Arabic digit 1\n '\\u06F2': '2', // Eastern-Arabic digit 2\n '\\u06F3': '3', // Eastern-Arabic digit 3\n '\\u06F4': '4', // Eastern-Arabic digit 4\n '\\u06F5': '5', // Eastern-Arabic digit 5\n '\\u06F6': '6', // Eastern-Arabic digit 6\n '\\u06F7': '7', // Eastern-Arabic digit 7\n '\\u06F8': '8', // Eastern-Arabic digit 8\n '\\u06F9': '9' // Eastern-Arabic digit 9\n};\n\nexport function parseDigit(character: string): string | undefined {\n return DIGITS[character];\n}\n\n/**\n * Parses phone number digits from a string.\n * Drops all punctuation leaving only digits.\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n * ```\n * parseDigits('8 (800) 555')\n * // Outputs '8800555'.\n * ```\n */\nexport default function parseDigits(string: string): string {\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n return string.split('').reduce((result, character) => {\n const digit = parseDigit(character);\n return digit ? result + digit : result;\n }, '');\n}\n","import { parseDigit } from './parseDigits';\n/**\n * Parses phone number characters from a string.\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n * ```\n * // Outputs '8800555'.\n * parseIncompletePhoneNumber('8 (800) 555')\n * // Outputs '+7800555'.\n * parseIncompletePhoneNumber('+7 800 555')\n * ```\n */\n\nexport default function parseIncompletePhoneNumber(string: string): string {\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n return string.split('').reduce((result, character) => {\n const parsedChar = parsePhoneNumberCharacter(character, result);\n return parsedChar ? result + parsedChar : result;\n }, '');\n}\n/**\n * Parses next character while parsing phone number digits (including a `+`)\n * from text: discards everything except `+` and digits, and `+` is only allowed\n * at the start of a phone number.\n */\nexport function parsePhoneNumberCharacter(character: string, prevParsedCharacters: string): string | undefined {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n }\n // Allow digits.\n return parseDigit(character);\n}\n","import { getAsYouType } from 'awesome-phonenumber';\nimport React, { ChangeEvent, ComponentType, FocusEvent, memo, useCallback, useEffect, useRef, useState } from 'react';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\n\n// Define props interface (removed state interface as it's not needed for functional component)\ninterface InputBasicProps {\n id?: string;\n name?: string;\n value: string;\n onChange: (value: string) => void;\n onFocus?: () => void;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n country?: string;\n metadata?: Record<string, unknown>; // Specify the type if metadata structure is known\n inputComponent?: ComponentType<any>;\n smartcaret?: string;\n}\n\nconst InputBasic = memo<InputBasicProps>(\n ({ value: propValue, onChange, onFocus, onBlur, country, inputComponent: Input = 'input', ...rest }) => {\n // State to manage internal value\n const [value, setValue] = useState<string>(propValue);\n\n // Create a ref for the input element\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Update internal value when prop value changes (replaces getDerivedStateFromProps)\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n // Format function\n const format = useCallback(\n (inputValue: string): string => {\n const ayt = getAsYouType(country as string);\n ayt.addChar(inputValue);\n return ayt.number();\n },\n [country]\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n let newValue = parseIncompletePhoneNumber(event.target.value);\n\n // Workaround for handling the Samsung Galaxy smart caret positioning bug\n if (newValue === value) {\n if (format(newValue).startsWith(event.target.value)) {\n newValue = newValue.slice(0, -1); // Trim the last digit (or plus sign)\n }\n }\n\n setValue(newValue);\n onChange(newValue);\n },\n [value, format, onChange]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (onBlur) {\n // Clone the event to prevent React's SyntheticEvent from being read-only\n const clonedEvent = {\n ...event,\n target: {\n ...event.target,\n value\n },\n stopPropagation: event.stopPropagation,\n preventDefault: event.preventDefault\n };\n onBlur(clonedEvent as FocusEvent<HTMLInputElement>);\n }\n },\n [onBlur, value]\n );\n\n // Focus function (can be called via ref)\n const focus = useCallback(() => {\n inputRef.current?.focus();\n }, []);\n\n // Expose focus method via useImperativeHandle if needed\n // React.useImperativeHandle(ref, () => ({ focus }), [focus]);\n\n return (\n <Input\n type=\"tel\"\n autoComplete=\"tel\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n ref={inputRef}\n value={format(value)}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={handleBlur}\n />\n );\n }\n);\n\n// Set display name for debugging\nInputBasic.displayName = 'InputBasic';\n\nexport function createInput() {\n return InputBasic;\n}\n","import * as React from 'react';\nimport styles from './checkmark.module.scss';\n\nexport default function Checkmark({ onClickCheckMark }: { onClickCheckMark: () => void }): JSX.Element {\n return (\n <svg\n id=\"success-check-mark\"\n onClick={() => onClickCheckMark()}\n className={styles.checkmarkIcon}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle className={styles.checkmarkCircle} cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path className={styles.checkmarkCheck} fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n );\n}\n","function mkConfig(countryCode: string, commonPrefix: string, maxLength: number) {\n return { countryCode, commonPrefix, maxLength };\n}\n\nconst configs: { [key: string]: ReturnType<typeof mkConfig> } = {\n mx: mkConfig('52', '01', 10),\n my: mkConfig('60', '01', 9),\n za: mkConfig('27', '0', 9),\n ae: mkConfig('971', '05', 10),\n a2: mkConfig('971', '05', 10),\n gr: mkConfig('30', '69', 9),\n g2: mkConfig('30', '69', 9),\n ee: mkConfig('372', '', 10),\n lt: mkConfig('370', '6', 9),\n ps: mkConfig('972', '0', 10),\n xx: mkConfig('', '', 10),\n lu: mkConfig('352', '0', 10),\n};\n\nexport default (countryCode: string) => configs[countryCode] || configs.xx;\n","import * as React from 'react';\n\nexport default function Checkmark({\n onClickErrorCheckMark\n}: {\n onClickErrorCheckMark: () => void;\n}): React.ReactElement {\n return (\n <svg\n id=\"error-check-mark\"\n onClick={() => onClickErrorCheckMark()}\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"errormark__icon\"\n viewBox=\"0 0 90.27 90.27\"\n >\n <defs>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n svg {\n fill: red;\n }\n .circle-2 {\n fill: #bcbec4;\n }\n .x {\n opacity: 0.5;\n }\n .x-single {\n fill: #fff;\n }\n `\n }}\n />\n </defs>\n <title>icon-error</title>\n <circle className=\"circle-2\" cx=\"45.14\" cy=\"45.14\" r=\"45.14\" />\n <g className=\"x\">\n <rect\n className=\"x-single\"\n x=\"21.77\"\n y=\"43.49\"\n width=\"46.74\"\n height=\"3.36\"\n transform=\"translate(-18.72 45.15) rotate(-45)\"\n />\n <rect\n className=\"x-single\"\n x=\"43.47\"\n y=\"21.81\"\n width=\"3.36\"\n height=\"46.74\"\n transform=\"translate(-18.72 45.16) rotate(-45)\"\n />\n </g>\n </svg>\n );\n}\n","/* eslint-disable no-underscore-dangle */\nimport { parsePhoneNumber } from 'awesome-phonenumber';\nimport React, { RefObject, useEffect, useState } from 'react';\nimport { createInput } from './BasicInput';\nimport Checkmark from './Checkmark';\nimport getConfig from './config';\nimport Errormark from './Errormark';\n// import styles from './PhoneInput.module.scss';\n\ninterface IPropsChange {\n msisdn: string;\n isValid: boolean;\n nationalNumber: string;\n internationalNumber: string;\n bupperNumber: string;\n}\n\ninterface IProps {\n countryCode: string;\n msisdn?: string;\n placeholder: string;\n onChange: (args: IPropsChange) => void;\n showCountryCode?: boolean;\n showFlag?: boolean;\n showMobileIcon?: boolean;\n showError: boolean;\n inputElementRef: RefObject<HTMLInputElement>;\n onClickCheckMark: () => void;\n onClickErrorCheckMark: () => void;\n onBlur: () => void;\n onFocus: () => void;\n onPaste: () => void;\n onKeyPress: () => void;\n id?: string;\n name?: string;\n maxLength?: string | number;\n saveValidNumber?: boolean;\n useNumberFromCookie?: boolean;\n tracker?: any;\n}\n\nexport function parseMSISDN(country: string, msisdnOriginal: string) {\n const msisdn = msisdnOriginal.startsWith('0') ? parseInt(msisdnOriginal, 10).toString() : msisdnOriginal;\n try {\n const parsedPhoneNumber = parsePhoneNumber(msisdn, { regionCode: country.toUpperCase() });\n const nationalNumber = parsedPhoneNumber.number?.national || '';\n const internationalNumber = parsedPhoneNumber.number?.international || '';\n const bupperNumber = getBupperNumber(nationalNumber);\n let isValid = parsedPhoneNumber.valid;\n if (country.toLowerCase() === 'ci') {\n isValid =\n parsedPhoneNumber.possible ||\n parsedPhoneNumber.typeIsMobile ||\n nationalNumber.length === 8 ||\n nationalNumber.length === 9;\n }\n\n return {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid,\n internationalPrefix: parsedPhoneNumber.countryCode\n };\n } catch (ex) {\n console.warn(ex);\n return {\n nationalNumber: '',\n internationalNumber: '',\n bupperNumber: '',\n isValid: false\n };\n }\n}\n\nfunction getBupperNumber(nationalNumber: string) {\n if (!nationalNumber) {\n return nationalNumber;\n }\n const match = nationalNumber.match(/\\d+/g);\n return match ? match.join('') : nationalNumber;\n}\n\nfunction hasNumber(myString: string) {\n return /\\d/.test(myString);\n}\n\nconst specialCountryCodes: Record<string, string> = {\n s2: 'sa',\n o2: 'om',\n a2: 'ae',\n k2: 'kw',\n c2: 'ch',\n r2: 'rs',\n l2: 'lv',\n s3: 'se',\n b2: 'bh',\n g2: 'gr',\n a3: 'at'\n};\n\nfunction setCookie(name: string, value: string, daysToExpire?: number, path = '/') {\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n if (daysToExpire) {\n const date = new Date();\n date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);\n cookieString += `; expires=${date.toUTCString()}`;\n }\n cookieString += `; path=${path}`;\n document.cookie = cookieString;\n}\n\nfunction getCookie(name: string) {\n const cookieValue = document.cookie.match(`(^|;)\\\\s*${name}\\\\s*=\\\\s*([^;]+)`);\n return cookieValue ? decodeURIComponent(cookieValue.pop() || '') : '';\n}\n\nconst MsisdnComponent: React.FC<IProps> = (props) => {\n const [isValid, setIsValid] = useState(false);\n const [showError, setShowError] = useState(false);\n\n const focusOnInputElement = () => {\n const { id, inputElementRef } = props;\n const phoneInputId = `#${id || 'phone-input'}`;\n const phoneInput = document.querySelector<HTMLInputElement>(phoneInputId);\n if (typeof window !== 'undefined' && phoneInput && !phoneInput.hasAttribute('autofocus')) {\n phoneInput.setAttribute('autofocus', '');\n }\n\n if (inputElementRef.current) {\n setTimeout(() => {\n inputElementRef.current?.focus();\n }, 123);\n }\n };\n\n useEffect(() => {\n focusOnInputElement();\n\n const fetchMsisdnFromStorage = async () => {\n if (typeof window !== 'undefined' && props?.useNumberFromCookie && (window as any).msisdnCookieUrl) {\n const msisdnFromCookie = getCookie('_uuid');\n const msisdnFromLocalStorage = localStorage.getItem('_uuid');\n let msisdnFromZurch = '';\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'GET',\n credentials: 'include'\n });\n const data: any = await response.json();\n if (data?.data?.success && data?.data?._uuid) {\n msisdnFromZurch = data?.data?._uuid;\n }\n } catch (error: any) {\n console.error(error?.message);\n }\n\n const msisdnFromAnyStorage = msisdnFromZurch || msisdnFromLocalStorage || msisdnFromCookie || '';\n const decryptedMsisdn = window.atob(msisdnFromAnyStorage);\n\n if (props?.tracker) {\n const source = msisdnFromZurch\n ? 'msisdnCookieUrl'\n : msisdnFromLocalStorage\n ? 'localStorage'\n : msisdnFromCookie\n ? 'cookie'\n : 'none';\n props?.tracker?.customEvent('Flow', 'advance-auto', `msisdn-retrieve-${source}`, {\n source,\n msisdn: decryptedMsisdn\n });\n }\n\n if (decryptedMsisdn) {\n const country = hasNumber(props?.countryCode) ? specialCountryCodes[props?.countryCode] : props?.countryCode;\n const {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid: validNumber\n } = parseMSISDN(country, decryptedMsisdn);\n props?.onChange({\n msisdn: decryptedMsisdn,\n isValid: validNumber,\n nationalNumber,\n internationalNumber,\n bupperNumber\n });\n setIsValid(validNumber);\n (window as any).msisdn = decryptedMsisdn;\n }\n }\n };\n\n fetchMsisdnFromStorage();\n }, []);\n\n useEffect(() => {\n setShowError(props?.showError);\n }, [props?.showError]);\n\n useEffect(() => {\n if (props?.msisdn) {\n handleChange(props?.msisdn);\n }\n }, [props?.msisdn]);\n\n const BasicInput = createInput();\n\n const country = hasNumber(props?.countryCode) ? specialCountryCodes[props?.countryCode] : props?.countryCode;\n const { countryCode, commonPrefix, maxLength } = getConfig(country);\n const showCountryCode = props?.showCountryCode ?? false;\n const showFlag = props?.showFlag ?? true;\n const showMobileIcon = props?.showMobileIcon ?? true;\n const saveValidNumber = props?.saveValidNumber ?? false;\n\n const handleChange = (msisdn: string) => {\n const {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid: validNumber\n } = parseMSISDN(country, msisdn);\n props?.onChange({ msisdn, isValid: validNumber, nationalNumber, internationalNumber, bupperNumber });\n setIsValid(validNumber);\n\n if (typeof window !== 'undefined') {\n (window as any).msisdn = msisdn;\n if (saveValidNumber && validNumber && (window as any).msisdnCookieUrl) {\n const encryptedMsisdn = window.btoa(msisdn);\n setCookie('_uuid', encryptedMsisdn, 30, '/');\n localStorage.setItem('_uuid', encryptedMsisdn);\n\n (async () => {\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ _uuid: encryptedMsisdn })\n });\n const responseData: any = await response.json();\n\n if (props?.tracker) {\n const eventType = responseData?.data?.success ? 'msisdn-stored-success' : 'msisdn-stored-failed';\n props?.tracker.customEvent('Flow', 'advance-auto', eventType);\n }\n } catch (error) {\n props?.tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n }\n })();\n }\n }\n\n }\n\n return (\n <div className=\"phone-input\">\n {showMobileIcon && <div className=\"phone\" onMouseDown={focusOnInputElement} onTouchStart={focusOnInputElement} />}\n\n {showFlag && (\n <div\n className=\"flag\"\n onMouseDown={focusOnInputElement}\n onTouchStart={focusOnInputElement}\n style={{\n backgroundImage: `url('https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.1/flags/4x3/${country}.svg')`\n }}\n />\n )}\n\n {showCountryCode && (\n <div className=\"country-code\" onMouseDown={focusOnInputElement}>\n ({countryCode})\n </div>\n )}\n\n <BasicInput\n id={props?.id || 'phone-input'}\n name={props?.name || 'phone-input-name'}\n smartcaret={\n typeof navigator === 'undefined' ? 'true' : /SamsungBrowser/gi.test(navigator.userAgent) ? 'false' : 'true'\n }\n // @ts-ignore\n ref={props?.inputElementRef}\n placeholder={props?.placeholder || 'Enter phone number'}\n country={country.toUpperCase()}\n className=\"text-input\"\n value={props?.msisdn || ''}\n onChange={(msisdn: string) => {\n setShowError(false);\n if (msisdn.includes('3522100000012340')) {\n props?.onChange({\n msisdn,\n isValid: true,\n nationalNumber: msisdn,\n internationalNumber: msisdn,\n bupperNumber: msisdn\n });\n setIsValid(true);\n return;\n }\n\n handleChange(msisdn);\n\n\n }}\n onPaste={props?.onPaste}\n onBlur={props?.onBlur}\n onFocus={props?.onFocus}\n onKeyPress={props?.onKeyPress}\n maxLength={props?.maxLength}\n />\n\n <div className=\"checkmark-container\" data-checkmark-container=\"true\">\n {showError ? (\n <Errormark onClickErrorCheckMark={props?.onClickErrorCheckMark} />\n ) : isValid ? (\n <Checkmark onClickCheckMark={props?.onClickCheckMark} />\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default MsisdnComponent;\n"],"names":["DIGITS","parseIncompletePhoneNumber","string","split","reduce","result","character","parsedChar","prevParsedCharacters","parseDigit","parsePhoneNumberCharacter","InputBasic","memo","_a","propValue","value","onChange","onFocus","onBlur","country","_b","inputComponent","Input","rest","__rest","_c","__read","useState","setValue","inputRef","useRef","useEffect","format","useCallback","inputValue","ayt","getAsYouType","addChar","number","handleChange","event","newValue","target","startsWith","slice","handleBlur","clonedEvent","__assign","stopPropagation","preventDefault","current","focus","React","createElement","type","autoComplete","ref","displayName","Checkmark","onClickCheckMark","id","onClick","className","styles","xmlns","viewBox","cx","cy","r","fill","d","mkConfig","countryCode","commonPrefix","maxLength","configs","mx","my","za","ae","a2","gr","g2","ee","lt","ps","xx","lu","onClickErrorCheckMark","dangerouslySetInnerHTML","__html","x","y","width","height","transform","parseMSISDN","msisdnOriginal","msisdn","parseInt","toString","parsedPhoneNumber","parsePhoneNumber","regionCode","toUpperCase","nationalNumber","national","internationalNumber","international","bupperNumber","match","join","getBupperNumber","isValid","valid","toLowerCase","possible","typeIsMobile","length","internationalPrefix","ex","console","warn","hasNumber","myString","test","specialCountryCodes","s2","o2","k2","c2","r2","l2","s3","b2","a3","MsisdnComponent","props","_e","setIsValid","_f","showError","setShowError","focusOnInputElement","inputElementRef","phoneInputId","concat","phoneInput","document","querySelector","window","hasAttribute","setAttribute","setTimeout","__awaiter","useNumberFromCookie","msisdnCookieUrl","name","cookieValue","cookie","msisdnFromCookie","decodeURIComponent","pop","msisdnFromLocalStorage","localStorage","getItem","msisdnFromZurch","fetch","mode","method","credentials","sent","json","data","success","_uuid","_d","error","error_1","message","msisdnFromAnyStorage","decryptedMsisdn","atob","tracker","source","customEvent","country_1","validNumber","BasicInput","_g","getConfig","showCountryCode","showFlag","showMobileIcon","saveValidNumber","encryptedMsisdn_1","btoa","daysToExpire","path","cookieString","encodeURIComponent","date","Date","setTime","getTime","toUTCString","setCookie","setItem","headers","body","JSON","stringify","responseData","eventType","error_2","onMouseDown","onTouchStart","style","backgroundImage","smartcaret","navigator","userAgent","placeholder","includes","onPaste","onKeyPress","Errormark"],"mappings":"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"}
1
+ {"version":3,"file":"PhoneInput-18529ade.js","sources":["../src/PhoneInput/BasicInput/parseDigits.ts","../src/PhoneInput/BasicInput/parseIncompletePhoneNumber.ts","../src/PhoneInput/BasicInput/index.tsx","../src/PhoneInput/Checkmark.tsx","../src/PhoneInput/config.ts","../src/PhoneInput/Errormark.tsx","../src/PhoneInput/PhoneInput.tsx"],"sourcesContent":["// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport const DIGITS: { [key: string]: string } = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '\\uFF10': '0', // Fullwidth digit 0\n '\\uFF11': '1', // Fullwidth digit 1\n '\\uFF12': '2', // Fullwidth digit 2\n '\\uFF13': '3', // Fullwidth digit 3\n '\\uFF14': '4', // Fullwidth digit 4\n '\\uFF15': '5', // Fullwidth digit 5\n '\\uFF16': '6', // Fullwidth digit 6\n '\\uFF17': '7', // Fullwidth digit 7\n '\\uFF18': '8', // Fullwidth digit 8\n '\\uFF19': '9', // Fullwidth digit 9\n '\\u0660': '0', // Arabic-indic digit 0\n '\\u0661': '1', // Arabic-indic digit 1\n '\\u0662': '2', // Arabic-indic digit 2\n '\\u0663': '3', // Arabic-indic digit 3\n '\\u0664': '4', // Arabic-indic digit 4\n '\\u0665': '5', // Arabic-indic digit 5\n '\\u0666': '6', // Arabic-indic digit 6\n '\\u0667': '7', // Arabic-indic digit 7\n '\\u0668': '8', // Arabic-indic digit 8\n '\\u0669': '9', // Arabic-indic digit 9\n '\\u06F0': '0', // Eastern-Arabic digit 0\n '\\u06F1': '1', // Eastern-Arabic digit 1\n '\\u06F2': '2', // Eastern-Arabic digit 2\n '\\u06F3': '3', // Eastern-Arabic digit 3\n '\\u06F4': '4', // Eastern-Arabic digit 4\n '\\u06F5': '5', // Eastern-Arabic digit 5\n '\\u06F6': '6', // Eastern-Arabic digit 6\n '\\u06F7': '7', // Eastern-Arabic digit 7\n '\\u06F8': '8', // Eastern-Arabic digit 8\n '\\u06F9': '9' // Eastern-Arabic digit 9\n};\n\nexport function parseDigit(character: string): string | undefined {\n return DIGITS[character];\n}\n\n/**\n * Parses phone number digits from a string.\n * Drops all punctuation leaving only digits.\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n * ```\n * parseDigits('8 (800) 555')\n * // Outputs '8800555'.\n * ```\n */\nexport default function parseDigits(string: string): string {\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n return string.split('').reduce((result, character) => {\n const digit = parseDigit(character);\n return digit ? result + digit : result;\n }, '');\n}\n","import { parseDigit } from './parseDigits';\n/**\n * Parses phone number characters from a string.\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n *\n * ```\n * // Outputs '8800555'.\n * parseIncompletePhoneNumber('8 (800) 555')\n * // Outputs '+7800555'.\n * parseIncompletePhoneNumber('+7 800 555')\n * ```\n */\n\nexport default function parseIncompletePhoneNumber(string: string): string {\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n return string.split('').reduce((result, character) => {\n const parsedChar = parsePhoneNumberCharacter(character, result);\n return parsedChar ? result + parsedChar : result;\n }, '');\n}\n/**\n * Parses next character while parsing phone number digits (including a `+`)\n * from text: discards everything except `+` and digits, and `+` is only allowed\n * at the start of a phone number.\n */\nexport function parsePhoneNumberCharacter(character: string, prevParsedCharacters: string): string | undefined {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n }\n // Allow digits.\n return parseDigit(character);\n}\n","import { getAsYouType } from 'awesome-phonenumber';\nimport React, { ChangeEvent, ComponentType, FocusEvent, memo, useCallback, useEffect, useRef, useState } from 'react';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\n\n// Define props interface (removed state interface as it's not needed for functional component)\ninterface InputBasicProps {\n id?: string;\n name?: string;\n value: string;\n onChange: (value: string) => void;\n onFocus?: () => void;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n country?: string;\n metadata?: Record<string, unknown>; // Specify the type if metadata structure is known\n inputComponent?: ComponentType<any>;\n smartcaret?: string;\n}\n\nconst InputBasic = memo<InputBasicProps>(\n ({ value: propValue, onChange, onFocus, onBlur, country, inputComponent: Input = 'input', ...rest }) => {\n // State to manage internal value\n const [value, setValue] = useState<string>(propValue);\n\n // Create a ref for the input element\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Update internal value when prop value changes (replaces getDerivedStateFromProps)\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n // Format function\n const format = useCallback(\n (inputValue: string): string => {\n const ayt = getAsYouType(country as string);\n ayt.addChar(inputValue);\n return ayt.number();\n },\n [country]\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n let newValue = parseIncompletePhoneNumber(event.target.value);\n\n // Workaround for handling the Samsung Galaxy smart caret positioning bug\n if (newValue === value) {\n if (format(newValue).startsWith(event.target.value)) {\n newValue = newValue.slice(0, -1); // Trim the last digit (or plus sign)\n }\n }\n\n setValue(newValue);\n onChange(newValue);\n },\n [value, format, onChange]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (onBlur) {\n // Clone the event to prevent React's SyntheticEvent from being read-only\n const clonedEvent = {\n ...event,\n target: {\n ...event.target,\n value\n },\n stopPropagation: event.stopPropagation,\n preventDefault: event.preventDefault\n };\n onBlur(clonedEvent as FocusEvent<HTMLInputElement>);\n }\n },\n [onBlur, value]\n );\n\n // Focus function (can be called via ref)\n const focus = useCallback(() => {\n inputRef.current?.focus();\n }, []);\n\n // Expose focus method via useImperativeHandle if needed\n // React.useImperativeHandle(ref, () => ({ focus }), [focus]);\n\n return (\n <Input\n type=\"tel\"\n autoComplete=\"tel\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n ref={inputRef}\n value={format(value)}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={handleBlur}\n />\n );\n }\n);\n\n// Set display name for debugging\nInputBasic.displayName = 'InputBasic';\n\nexport function createInput() {\n return InputBasic;\n}\n","import * as React from 'react';\nimport styles from './checkmark.module.scss';\n\nexport default function Checkmark({ onClickCheckMark }: { onClickCheckMark: () => void }): JSX.Element {\n return (\n <svg\n id=\"success-check-mark\"\n onClick={() => onClickCheckMark()}\n className={styles.checkmarkIcon}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle className={styles.checkmarkCircle} cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path className={styles.checkmarkCheck} fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n );\n}\n","function mkConfig(countryCode: string, commonPrefix: string, maxLength: number) {\n return { countryCode, commonPrefix, maxLength };\n}\n\nconst configs: { [key: string]: ReturnType<typeof mkConfig> } = {\n mx: mkConfig('52', '01', 10),\n my: mkConfig('60', '01', 9),\n za: mkConfig('27', '0', 9),\n ae: mkConfig('971', '05', 10),\n a2: mkConfig('971', '05', 10),\n gr: mkConfig('30', '69', 9),\n g2: mkConfig('30', '69', 9),\n ee: mkConfig('372', '', 10),\n lt: mkConfig('370', '6', 9),\n ps: mkConfig('972', '0', 10),\n xx: mkConfig('', '', 10),\n lu: mkConfig('352', '0', 10),\n};\n\nexport default (countryCode: string) => configs[countryCode] || configs.xx;\n","import * as React from 'react';\n\nexport default function Checkmark({\n onClickErrorCheckMark\n}: {\n onClickErrorCheckMark: () => void;\n}): React.ReactElement {\n return (\n <svg\n id=\"error-check-mark\"\n onClick={() => onClickErrorCheckMark()}\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"errormark__icon\"\n viewBox=\"0 0 90.27 90.27\"\n >\n <defs>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n svg {\n fill: red;\n }\n .circle-2 {\n fill: #bcbec4;\n }\n .x {\n opacity: 0.5;\n }\n .x-single {\n fill: #fff;\n }\n `\n }}\n />\n </defs>\n <title>icon-error</title>\n <circle className=\"circle-2\" cx=\"45.14\" cy=\"45.14\" r=\"45.14\" />\n <g className=\"x\">\n <rect\n className=\"x-single\"\n x=\"21.77\"\n y=\"43.49\"\n width=\"46.74\"\n height=\"3.36\"\n transform=\"translate(-18.72 45.15) rotate(-45)\"\n />\n <rect\n className=\"x-single\"\n x=\"43.47\"\n y=\"21.81\"\n width=\"3.36\"\n height=\"46.74\"\n transform=\"translate(-18.72 45.16) rotate(-45)\"\n />\n </g>\n </svg>\n );\n}\n","/* eslint-disable no-underscore-dangle */\nimport { parsePhoneNumber } from 'awesome-phonenumber';\nimport React, { RefObject, useEffect, useState } from 'react';\nimport { createInput } from './BasicInput';\nimport Checkmark from './Checkmark';\nimport getConfig from './config';\nimport Errormark from './Errormark';\n// import styles from './PhoneInput.module.scss';\n\ninterface IPropsChange {\n msisdn: string;\n isValid: boolean;\n nationalNumber: string;\n internationalNumber: string;\n bupperNumber: string;\n}\n\ninterface IProps {\n countryCode: string;\n msisdn?: string;\n placeholder: string;\n onChange: (args: IPropsChange) => void;\n showCountryCode?: boolean;\n showFlag?: boolean;\n showMobileIcon?: boolean;\n showError: boolean;\n inputElementRef: RefObject<HTMLInputElement>;\n onClickCheckMark: () => void;\n onClickErrorCheckMark: () => void;\n onBlur: () => void;\n onFocus: () => void;\n onPaste: () => void;\n onKeyPress: () => void;\n id?: string;\n name?: string;\n maxLength?: string | number;\n saveValidNumber?: boolean;\n useNumberFromCookie?: boolean;\n tracker?: any;\n}\n\nexport function parseMSISDN(country: string, msisdnOriginal: string) {\n const msisdn = msisdnOriginal.startsWith('0') ? parseInt(msisdnOriginal, 10).toString() : msisdnOriginal;\n try {\n const parsedPhoneNumber = parsePhoneNumber(msisdn, { regionCode: country.toUpperCase() });\n const nationalNumber = parsedPhoneNumber.number?.national || '';\n const internationalNumber = parsedPhoneNumber.number?.international || '';\n const bupperNumber = getBupperNumber(nationalNumber);\n let isValid = parsedPhoneNumber.valid;\n if (country.toLowerCase() === 'ci') {\n isValid =\n parsedPhoneNumber.possible ||\n parsedPhoneNumber.typeIsMobile ||\n nationalNumber.length === 8 ||\n nationalNumber.length === 9;\n }\n\n return {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid,\n internationalPrefix: parsedPhoneNumber.countryCode\n };\n } catch (ex) {\n console.warn(ex);\n return {\n nationalNumber: '',\n internationalNumber: '',\n bupperNumber: '',\n isValid: false\n };\n }\n}\n\nfunction getBupperNumber(nationalNumber: string) {\n if (!nationalNumber) {\n return nationalNumber;\n }\n const match = nationalNumber.match(/\\d+/g);\n return match ? match.join('') : nationalNumber;\n}\n\nfunction hasNumber(myString: string) {\n return /\\d/.test(myString);\n}\n\nconst specialCountryCodes: Record<string, string> = {\n s2: 'sa',\n o2: 'om',\n a2: 'ae',\n k2: 'kw',\n c2: 'ch',\n r2: 'rs',\n l2: 'lv',\n s3: 'se',\n b2: 'bh',\n g2: 'gr',\n a3: 'at'\n};\n\nfunction setCookie(name: string, value: string, daysToExpire?: number, path = '/') {\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n if (daysToExpire) {\n const date = new Date();\n date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);\n cookieString += `; expires=${date.toUTCString()}`;\n }\n cookieString += `; path=${path}`;\n document.cookie = cookieString;\n}\n\nfunction getCookie(name: string) {\n const cookieValue = document.cookie.match(`(^|;)\\\\s*${name}\\\\s*=\\\\s*([^;]+)`);\n return cookieValue ? decodeURIComponent(cookieValue.pop() || '') : '';\n}\n\nconst MsisdnComponent: React.FC<IProps> = (props) => {\n const [isValid, setIsValid] = useState(false);\n const [showError, setShowError] = useState(false);\n\n const focusOnInputElement = () => {\n const { id, inputElementRef } = props;\n const phoneInputId = `#${id || 'phone-input'}`;\n const phoneInput = document.querySelector<HTMLInputElement>(phoneInputId);\n if (typeof window !== 'undefined' && phoneInput && !phoneInput.hasAttribute('autofocus')) {\n phoneInput.setAttribute('autofocus', '');\n }\n\n if (inputElementRef.current) {\n setTimeout(() => {\n inputElementRef.current?.focus();\n }, 123);\n }\n };\n\n useEffect(() => {\n focusOnInputElement();\n\n const fetchMsisdnFromStorage = async () => {\n if (typeof window !== 'undefined' && props?.useNumberFromCookie && (window as any).msisdnCookieUrl) {\n const msisdnFromCookie = getCookie('_uuid');\n const msisdnFromLocalStorage = localStorage.getItem('_uuid');\n let msisdnFromZurch = '';\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'GET',\n credentials: 'include'\n });\n const data: any = await response.json();\n if (data?.data?.success && data?.data?._uuid) {\n msisdnFromZurch = data?.data?._uuid;\n }\n } catch (error: any) {\n console.error(error?.message);\n }\n\n const msisdnFromAnyStorage = msisdnFromZurch || msisdnFromLocalStorage || msisdnFromCookie || '';\n const decryptedMsisdn = window.atob(msisdnFromAnyStorage);\n\n if (props?.tracker) {\n const source = msisdnFromZurch\n ? 'msisdnCookieUrl'\n : msisdnFromLocalStorage\n ? 'localStorage'\n : msisdnFromCookie\n ? 'cookie'\n : 'none';\n props?.tracker?.customEvent('Flow', 'advance-auto', `msisdn-retrieve-${source}`, {\n source,\n msisdn: decryptedMsisdn\n });\n }\n\n if (decryptedMsisdn) {\n const country = hasNumber(props?.countryCode) ? specialCountryCodes[props?.countryCode] : props?.countryCode;\n const {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid: validNumber\n } = parseMSISDN(country, decryptedMsisdn);\n props?.onChange({\n msisdn: decryptedMsisdn,\n isValid: validNumber,\n nationalNumber,\n internationalNumber,\n bupperNumber\n });\n setIsValid(validNumber);\n (window as any).msisdn = decryptedMsisdn;\n }\n }\n };\n\n fetchMsisdnFromStorage();\n }, []);\n\n useEffect(() => {\n setShowError(props?.showError);\n }, [props?.showError]);\n\n useEffect(() => {\n if (props?.msisdn) {\n handleChange(props?.msisdn);\n }\n }, [props?.msisdn]);\n\n const BasicInput = createInput();\n\n const country = hasNumber(props?.countryCode) ? specialCountryCodes[props?.countryCode] : props?.countryCode;\n const { countryCode, commonPrefix, maxLength } = getConfig(country);\n const showCountryCode = props?.showCountryCode ?? false;\n const showFlag = props?.showFlag ?? true;\n const showMobileIcon = props?.showMobileIcon ?? true;\n const saveValidNumber = props?.saveValidNumber ?? false;\n\n const handleChange = (msisdn: string) => {\n const {\n nationalNumber,\n internationalNumber,\n bupperNumber,\n isValid: validNumber\n } = parseMSISDN(country, msisdn);\n props?.onChange({ msisdn, isValid: validNumber, nationalNumber, internationalNumber, bupperNumber });\n setIsValid(validNumber);\n\n if (typeof window !== 'undefined') {\n (window as any).msisdn = msisdn;\n if (saveValidNumber && validNumber && (window as any).msisdnCookieUrl) {\n const encryptedMsisdn = window.btoa(msisdn);\n setCookie('_uuid', encryptedMsisdn, 30, '/');\n localStorage.setItem('_uuid', encryptedMsisdn);\n\n (async () => {\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ _uuid: encryptedMsisdn })\n });\n const responseData: any = await response.json();\n\n if (props?.tracker) {\n const eventType = responseData?.data?.success ? 'msisdn-stored-success' : 'msisdn-stored-failed';\n props?.tracker.customEvent('Flow', 'advance-auto', eventType);\n }\n } catch (error) {\n props?.tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n }\n })();\n }\n }\n\n }\n\n return (\n <div className=\"phone-input\">\n {showMobileIcon && <div className=\"phone\" onMouseDown={focusOnInputElement} onTouchStart={focusOnInputElement} />}\n\n {showFlag && (\n <div\n className=\"flag\"\n onMouseDown={focusOnInputElement}\n onTouchStart={focusOnInputElement}\n style={{\n backgroundImage: `url('https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.1/flags/4x3/${country}.svg')`\n }}\n />\n )}\n\n {showCountryCode && (\n <div className=\"country-code\" onMouseDown={focusOnInputElement}>\n ({countryCode})\n </div>\n )}\n\n <BasicInput\n id={props?.id || 'phone-input'}\n name={props?.name || 'phone-input-name'}\n smartcaret={\n typeof navigator === 'undefined' ? 'true' : /SamsungBrowser/gi.test(navigator.userAgent) ? 'false' : 'true'\n }\n // @ts-ignore\n ref={props?.inputElementRef}\n placeholder={props?.placeholder || 'Enter phone number'}\n country={country.toUpperCase()}\n className=\"text-input\"\n value={props?.msisdn || ''}\n onChange={(msisdn: string) => {\n setShowError(false);\n if (msisdn.includes('3522100000012340')) {\n props?.onChange({\n msisdn,\n isValid: true,\n nationalNumber: msisdn,\n internationalNumber: msisdn,\n bupperNumber: msisdn\n });\n setIsValid(true);\n return;\n }\n\n handleChange(msisdn);\n\n\n }}\n onPaste={props?.onPaste}\n onBlur={props?.onBlur}\n onFocus={props?.onFocus}\n onKeyPress={props?.onKeyPress}\n maxLength={props?.maxLength}\n />\n\n <div className=\"checkmark-container\" data-checkmark-container=\"true\">\n {showError ? (\n <Errormark onClickErrorCheckMark={props?.onClickErrorCheckMark} />\n ) : isValid ? (\n <Checkmark onClickCheckMark={props?.onClickCheckMark} />\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default MsisdnComponent;\n"],"names":["DIGITS","parseIncompletePhoneNumber","string","split","reduce","result","character","parsedChar","prevParsedCharacters","parseDigit","parsePhoneNumberCharacter","InputBasic","memo","_a","propValue","value","onChange","onFocus","onBlur","country","_b","inputComponent","Input","rest","__rest","_c","__read","useState","setValue","inputRef","useRef","useEffect","format","useCallback","inputValue","ayt","getAsYouType","addChar","number","handleChange","event","newValue","target","startsWith","slice","handleBlur","clonedEvent","__assign","stopPropagation","preventDefault","current","focus","React","createElement","type","autoComplete","ref","displayName","Checkmark","onClickCheckMark","id","onClick","className","styles","xmlns","viewBox","cx","cy","r","fill","d","mkConfig","countryCode","commonPrefix","maxLength","configs","mx","my","za","ae","a2","gr","g2","ee","lt","ps","xx","lu","onClickErrorCheckMark","dangerouslySetInnerHTML","__html","x","y","width","height","transform","parseMSISDN","msisdnOriginal","msisdn","parseInt","toString","parsedPhoneNumber","parsePhoneNumber","regionCode","toUpperCase","nationalNumber","national","internationalNumber","international","bupperNumber","match","join","getBupperNumber","isValid","valid","toLowerCase","possible","typeIsMobile","length","internationalPrefix","ex","console","warn","hasNumber","myString","test","specialCountryCodes","s2","o2","k2","c2","r2","l2","s3","b2","a3","MsisdnComponent","props","_e","setIsValid","_f","showError","setShowError","focusOnInputElement","inputElementRef","phoneInputId","concat","phoneInput","document","querySelector","window","hasAttribute","setAttribute","setTimeout","__awaiter","useNumberFromCookie","msisdnCookieUrl","name","cookieValue","cookie","msisdnFromCookie","decodeURIComponent","pop","msisdnFromLocalStorage","localStorage","getItem","msisdnFromZurch","fetch","mode","method","credentials","sent","json","data","success","_uuid","_d","error","error_1","message","msisdnFromAnyStorage","decryptedMsisdn","atob","tracker","source","customEvent","country_1","validNumber","BasicInput","_g","getConfig","showCountryCode","showFlag","showMobileIcon","saveValidNumber","encryptedMsisdn_1","btoa","daysToExpire","path","cookieString","encodeURIComponent","date","Date","setTime","getTime","toUTCString","setCookie","setItem","headers","body","JSON","stringify","responseData","eventType","error_2","onMouseDown","onTouchStart","style","backgroundImage","smartcaret","navigator","userAgent","placeholder","includes","onPaste","onKeyPress","Errormark"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export{M as PhoneInput}from"./PhoneInput-dbc93f49.js";import"tslib";import"awesome-phonenumber";import"react";
1
+ export{M as PhoneInput}from"./PhoneInput-18529ade.js";import"tslib";import"awesome-phonenumber";import"react";
2
2
  //# sourceMappingURL=PhoneInput.js.map
@@ -1,2 +1,2 @@
1
- import{__read as e}from"tslib";import t,{useEffect as n}from"react";import{B as o}from"./Button-6ff406cf.js";import{D as i}from"./DynamicPricePoint-07c50b57.js";import{P as l}from"./PricePoint-48923f42.js";import{F as a}from"./focus-3953bc73.js";import"classnames";var r=new(function(){function e(){if(this.storage=null,"undefined"!=typeof window)try{window.localStorage.setItem("test","test"),window.localStorage.removeItem("test"),this.storage=window.localStorage}catch(t){console.warn("localStorage is not available, falling back to in-memory storage:",t),this.storage=e.createFallbackStorage()}}return e.createFallbackStorage=function(){var e={};return{setItem:function(t,n){e[t]=n},getItem:function(t){return e[t]||null},removeItem:function(t){delete e[t]},clear:function(){Object.keys(e).forEach((function(t){return delete e[t]}))}}},e.prototype.setItem=function(e,t){var n;null===(n=this.storage)||void 0===n||n.setItem(e,t)},e.prototype.getItem=function(e){var t;return(null===(t=this.storage)||void 0===t?void 0:t.getItem(e))||null},e.prototype.removeItem=function(e){var t;null===(t=this.storage)||void 0===t||t.removeItem(e)},e.prototype.updatePinList=function(e){var t=this.getItem("pinList")?JSON.parse(this.getItem("pinList")||"[]"):[];t.includes(e)||(t.push(e),this.setItem("pinList",JSON.stringify(t)))},e.prototype.pinExists=function(e){return(this.getItem("pinList")?JSON.parse(this.getItem("pinList")||"[]"):[]).includes(e)},e.prototype.clearPinList=function(){this.removeItem("pinList")},e.prototype.clear=function(){var e;null===(e=this.storage)||void 0===e||e.clear()},e}()),s=function(s){var c,u,m=s.rds,p=s.tracker,v=s.locale,g=s.legals,f=s.buttonId,h=s.buttonClassName,b=s.formattedMessage,C=s.onChange,E=s.pinMaxLength,I=void 0===E?6:E,y=s.pinMinLength,N=void 0===y?4:y,P=s.renderTopContent,L=s.pinEntryLabel,S=s.wrongPinMessage,w=s.placeholder,k=s.buttonLabel,M=s.renderBottomContent,T=s.buttonDisabled,O=s.pageConfigs,x=s.onButtonClick,F=e(t.useState(""),2),B=F[0],D=F[1],W=e(t.useState(""),2),j=W[0],A=W[1],J=e(t.useState(!1),2),U=J[0],R=J[1],_=e(t.useState(!1),2),q=_[0],V=_[1],Y=function(){var e,t,n,o,i,l,a,r;return(null===(t=null===(e=null==O?void 0:O.pin)||void 0===e?void 0:e.shortCodes)||void 0===t?void 0:t.length)?(null===(o=null===(n=null==O?void 0:O.pin)||void 0===n?void 0:n.blockedPin)||void 0===o?void 0:o.includes(j))||(null===(l=null===(i=null==O?void 0:O.pin)||void 0===i?void 0:i.shortCodes)||void 0===l?void 0:l.includes(j)):null===(r=null===(a=null==O?void 0:O.pin)||void 0===a?void 0:a.blockedPin)||void 0===r?void 0:r.includes(j)}(),z=j.length>=N&&j.length<=I&&!Y;n((function(){if("OTPCredential"in window){console.log("WebOTP supported");var e=function(){var e=document.querySelector('input[autocomplete="one-time-code"]');if(e){var t=new AbortController,n=e.closest("form");n&&n.addEventListener("submit",(function(){t.abort()})),navigator.credentials.get({otp:{transport:["sms"]},signal:t.signal}).then((function(t){console.log("WebOTP supported - credential",t);var o=t;console.log("WebOTP supported - otp",o),e.value=o.code,A(o.code),n&&n.submit()})).catch((function(e){console.log("WebOTP supported - err",e)}))}};"loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e()}else console.log("WebOTP not supported")}),[]),n((function(){C&&C(j)}),[j,C]),n((function(){var e;"InvalidPIN"===(null===(e=null==m?void 0:m.error)||void 0===e?void 0:e.errorType)&&r.updatePinList(j)}),[m]),n((function(){var e,t,n,o;(null===(t=null===(e=null==O?void 0:O.pin)||void 0===e?void 0:e.shortCodes)||void 0===t?void 0:t.length)&&(null===(o=null===(n=null==O?void 0:O.pin)||void 0===n?void 0:n.shortCodes)||void 0===o?void 0:o.includes(j))&&V(!0)}),[j]);return t.createElement("label",{htmlFor:"pin-input"},P,t.createElement("p",{className:"pinEntryLabel"},L),B&&t.createElement("p",{className:"wrongPinMessage"},"".concat(B," ")," ",S),t.createElement("div",{className:"pin-wrapper"},t.createElement("div",{className:"pin-input ".concat(U&&!z?null==O?void 0:O.inputFocusAnimation:"")},t.createElement("div",{className:"pin"}),t.createElement("input",{id:"pin-input",className:"text-input",type:"text",placeholder:w,value:j,pattern:"[0-9]*",inputMode:"numeric",maxLength:I,minLength:N,autoComplete:"one-time-code",onChange:function(e){A(e.target.value.replace(/[^0-9]/g,""))}})),(null===(u=null===(c=null==O?void 0:O.pin)||void 0===c?void 0:c.blockedPin)||void 0===u?void 0:u.includes(j))&&t.createElement("p",{className:"blocked-pin-message"},null==b?void 0:b({id:"blockedPinMessage",defaultMessage:"This is not a pin code, check your SMS"}),null==p?void 0:p.recedeInFlow("tallyman.v1-pin","INVALID_PIN_ENTRY",j)),t.createElement(o,{type:"submit",id:f||"pin-submit-button",className:"btn ".concat(h||""),disabled:T||(null==O?void 0:O.isDisableButtonIfInvalid)&&!z,onClick:function(e){R((function(e){return!e})),(null==O?void 0:O.isCheckWrongPinReEntry)&&r.pinExists(j)&&(D(j),setTimeout((function(){a.triggerFocusArea()}),100),A(""),1)||x&&z&&x(e)}},k)),(null==O?void 0:O.isNewLegal)?t.createElement(i,{pageConfigs:O,formattedMessage:b}):t.createElement(l,{className:"price-point",legals:g||[],locale:v||"en"}),M,q&&t.createElement(d,{pageConfigs:O,formattedMessage:b,onConfirm:function(){V(!1)}}))},d=function(e){var n,o,i=e.pageConfigs,l=e.formattedMessage,a=e.onConfirm;return t.createElement("div",{className:"alert-dialog"},t.createElement("div",{className:"alert-dialog-body"},t.createElement("div",{className:"alert-dialog-close",onClick:a},"✕"),t.createElement("div",null,(null===(n=null==i?void 0:i.pin)||void 0===n?void 0:n.shortCodeInstructionUrl)&&t.createElement("img",{src:null===(o=null==i?void 0:i.pin)||void 0===o?void 0:o.shortCodeInstructionUrl,alt:"shortCodeInstructionUrl",className:"alert-dialog-image"}),t.createElement("div",{className:"alert-dialog-title"},null==l?void 0:l({id:"smsCodeErrorTitle",defaultMessage:"This is not a pin code, check your SMS"})),t.createElement("div",{className:"alert-dialog-content"},null==l?void 0:l({id:"smsCodeErrorContent",defaultMessage:"This is not a pin code, check your SMS"})),t.createElement("button",{type:"button",onClick:a,className:"alert-dialog-button"},null==l?void 0:l({id:"smsCodeErrorConfirmButtonText",defaultMessage:"Ok!"})))))};export{s as PinEntryForm};
1
+ import{__read as e}from"tslib";import t,{useEffect as n}from"react";import{B as o}from"./Button-75842042.js";import{D as i}from"./DynamicPricePoint-2431c936.js";import{P as l}from"./PricePoint-5984ff42.js";import{F as a}from"./focus-95c8e7a5.js";import"classnames";var r=new(function(){function e(){if(this.storage=null,"undefined"!=typeof window)try{window.localStorage.setItem("test","test"),window.localStorage.removeItem("test"),this.storage=window.localStorage}catch(t){console.warn("localStorage is not available, falling back to in-memory storage:",t),this.storage=e.createFallbackStorage()}}return e.createFallbackStorage=function(){var e={};return{setItem:function(t,n){e[t]=n},getItem:function(t){return e[t]||null},removeItem:function(t){delete e[t]},clear:function(){Object.keys(e).forEach((function(t){return delete e[t]}))}}},e.prototype.setItem=function(e,t){var n;null===(n=this.storage)||void 0===n||n.setItem(e,t)},e.prototype.getItem=function(e){var t;return(null===(t=this.storage)||void 0===t?void 0:t.getItem(e))||null},e.prototype.removeItem=function(e){var t;null===(t=this.storage)||void 0===t||t.removeItem(e)},e.prototype.updatePinList=function(e){var t=this.getItem("pinList")?JSON.parse(this.getItem("pinList")||"[]"):[];t.includes(e)||(t.push(e),this.setItem("pinList",JSON.stringify(t)))},e.prototype.pinExists=function(e){return(this.getItem("pinList")?JSON.parse(this.getItem("pinList")||"[]"):[]).includes(e)},e.prototype.clearPinList=function(){this.removeItem("pinList")},e.prototype.clear=function(){var e;null===(e=this.storage)||void 0===e||e.clear()},e}()),s=function(s){var c,u,m=s.rds,p=s.tracker,v=s.locale,g=s.legals,f=s.buttonId,h=s.buttonClassName,b=s.formattedMessage,C=s.onChange,E=s.pinMaxLength,I=void 0===E?6:E,y=s.pinMinLength,N=void 0===y?4:y,P=s.renderTopContent,L=s.pinEntryLabel,S=s.wrongPinMessage,w=s.placeholder,k=s.buttonLabel,M=s.renderBottomContent,T=s.buttonDisabled,O=s.pageConfigs,x=s.onButtonClick,F=e(t.useState(""),2),B=F[0],D=F[1],W=e(t.useState(""),2),j=W[0],A=W[1],J=e(t.useState(!1),2),U=J[0],R=J[1],_=e(t.useState(!1),2),q=_[0],V=_[1],Y=function(){var e,t,n,o,i,l,a,r;return(null===(t=null===(e=null==O?void 0:O.pin)||void 0===e?void 0:e.shortCodes)||void 0===t?void 0:t.length)?(null===(o=null===(n=null==O?void 0:O.pin)||void 0===n?void 0:n.blockedPin)||void 0===o?void 0:o.includes(j))||(null===(l=null===(i=null==O?void 0:O.pin)||void 0===i?void 0:i.shortCodes)||void 0===l?void 0:l.includes(j)):null===(r=null===(a=null==O?void 0:O.pin)||void 0===a?void 0:a.blockedPin)||void 0===r?void 0:r.includes(j)}(),z=j.length>=N&&j.length<=I&&!Y;n((function(){if("OTPCredential"in window){console.log("WebOTP supported");var e=function(){var e=document.querySelector('input[autocomplete="one-time-code"]');if(e){var t=new AbortController,n=e.closest("form");n&&n.addEventListener("submit",(function(){t.abort()})),navigator.credentials.get({otp:{transport:["sms"]},signal:t.signal}).then((function(t){console.log("WebOTP supported - credential",t);var o=t;console.log("WebOTP supported - otp",o),e.value=o.code,A(o.code),n&&n.submit()})).catch((function(e){console.log("WebOTP supported - err",e)}))}};"loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e()}else console.log("WebOTP not supported")}),[]),n((function(){C&&C(j)}),[j,C]),n((function(){var e;"InvalidPIN"===(null===(e=null==m?void 0:m.error)||void 0===e?void 0:e.errorType)&&r.updatePinList(j)}),[m]),n((function(){var e,t,n,o;(null===(t=null===(e=null==O?void 0:O.pin)||void 0===e?void 0:e.shortCodes)||void 0===t?void 0:t.length)&&(null===(o=null===(n=null==O?void 0:O.pin)||void 0===n?void 0:n.shortCodes)||void 0===o?void 0:o.includes(j))&&V(!0)}),[j]);return t.createElement("label",{htmlFor:"pin-input"},P,t.createElement("p",{className:"pinEntryLabel"},L),B&&t.createElement("p",{className:"wrongPinMessage"},"".concat(B," ")," ",S),t.createElement("div",{className:"pin-wrapper"},t.createElement("div",{className:"pin-input ".concat(U&&!z?null==O?void 0:O.inputFocusAnimation:"")},t.createElement("div",{className:"pin"}),t.createElement("input",{id:"pin-input",className:"text-input",type:"text",placeholder:w,value:j,pattern:"[0-9]*",inputMode:"numeric",maxLength:I,minLength:N,autoComplete:"one-time-code",onChange:function(e){A(e.target.value.replace(/[^0-9]/g,""))}})),(null===(u=null===(c=null==O?void 0:O.pin)||void 0===c?void 0:c.blockedPin)||void 0===u?void 0:u.includes(j))&&t.createElement("p",{className:"blocked-pin-message"},null==b?void 0:b({id:"blockedPinMessage",defaultMessage:"This is not a pin code, check your SMS"}),null==p?void 0:p.recedeInFlow("tallyman.v1-pin","INVALID_PIN_ENTRY",j)),t.createElement(o,{type:"submit",id:f||"pin-submit-button",className:"btn ".concat(h||""),disabled:T||(null==O?void 0:O.isDisableButtonIfInvalid)&&!z,onClick:function(e){R((function(e){return!e})),(null==O?void 0:O.isCheckWrongPinReEntry)&&r.pinExists(j)&&(D(j),setTimeout((function(){a.triggerFocusArea()}),100),A(""),1)||x&&z&&x(e)}},k)),(null==O?void 0:O.isNewLegal)?t.createElement(i,{pageConfigs:O,formattedMessage:b}):t.createElement(l,{className:"price-point",legals:g||[],locale:v||"en"}),M,q&&t.createElement(d,{pageConfigs:O,formattedMessage:b,onConfirm:function(){V(!1)}}))},d=function(e){var n,o,i=e.pageConfigs,l=e.formattedMessage,a=e.onConfirm;return t.createElement("div",{className:"alert-dialog"},t.createElement("div",{className:"alert-dialog-body"},t.createElement("div",{className:"alert-dialog-close",onClick:a},"✕"),t.createElement("div",null,(null===(n=null==i?void 0:i.pin)||void 0===n?void 0:n.shortCodeInstructionUrl)&&t.createElement("img",{src:null===(o=null==i?void 0:i.pin)||void 0===o?void 0:o.shortCodeInstructionUrl,alt:"shortCodeInstructionUrl",className:"alert-dialog-image"}),t.createElement("div",{className:"alert-dialog-title"},null==l?void 0:l({id:"smsCodeErrorTitle",defaultMessage:"This is not a pin code, check your SMS"})),t.createElement("div",{className:"alert-dialog-content"},null==l?void 0:l({id:"smsCodeErrorContent",defaultMessage:"This is not a pin code, check your SMS"})),t.createElement("button",{type:"button",onClick:a,className:"alert-dialog-button"},null==l?void 0:l({id:"smsCodeErrorConfirmButtonText",defaultMessage:"Ok!"})))))};export{s as PinEntryForm};
2
2
  //# sourceMappingURL=PinEntryForm.js.map
@@ -1,2 +1,2 @@
1
1
  import*as e from"react";var r=function(r){var t=r.locale,a=r.className,n=void 0===a?"":a,o=r.legals,i=r.flow,l=r.dataQaId,c=void 0===l?"price-point":l,p=r.operator,d=o.filter((function(e){return e.flow===i})),s=(i?d:o).reduce((function(e,r){return e[r.language]=r,e}),{}),u=(s[t]||"").price_point,m=(s[t]||"").operator_price_point;return e.createElement("div",{"data-qa-id":c,className:n||"price-point"},m&&p&&e.createElement("div",{dangerouslySetInnerHTML:{__html:m[p.toUpperCase()]}})||e.createElement("div",{dangerouslySetInnerHTML:{__html:u||""}}))};export{r as P};
2
- //# sourceMappingURL=PricePoint-48923f42.js.map
2
+ //# sourceMappingURL=PricePoint-5984ff42.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PricePoint-48923f42.js","sources":["../src/PricePoint/PricePoint.tsx"],"sourcesContent":["/* eslint-disable camelcase */\n/* eslint-disable react/no-danger */\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport { ILegals } from '../Disclaimers/Disclaimers.types';\nimport { PricePointProps } from './PricePoint.types';\n\nexport const PricePoint = ({\n locale,\n className = '',\n legals,\n flow,\n dataQaId = 'price-point',\n operator\n}: PricePointProps) => {\n const filteredLegals = legals.filter((obj) => obj.flow === flow);\n\n const legalsArr = flow ? filteredLegals : legals;\n const arrayToObject = (array: ILegals[]) =>\n array.reduce((obj: { [key: string]: ILegals }, item) => {\n obj[item.language] = item;\n return obj;\n }, {});\n\n const legalsObject = arrayToObject(legalsArr);\n\n const { price_point } = legalsObject[locale] || '';\n const { operator_price_point } = legalsObject[locale] || '';\n return (\n <div data-qa-id={dataQaId} className={className || 'price-point'}>\n {(operator_price_point && operator && (\n <div dangerouslySetInnerHTML={{ __html: operator_price_point[operator.toUpperCase()] }} />\n )) || <div dangerouslySetInnerHTML={{ __html: price_point || '' }} />}\n </div>\n );\n};\n"],"names":["PricePoint","_a","locale","_b","className","legals","flow","_c","dataQaId","operator","filteredLegals","filter","obj","legalsObject","reduce","item","language","price_point","operator_price_point","React","dangerouslySetInnerHTML","__html","toUpperCase","createElement"],"mappings":"wBAOO,IAAMA,EAAa,SAACC,OACzBC,EAAMD,EAAAC,OACNC,EAAcF,EAAAG,UAAdA,OAAY,IAAAD,EAAA,GAAEA,EACdE,EAAMJ,EAAAI,OACNC,EAAIL,EAAAK,KACJC,EAAAN,EAAAO,SAAAA,aAAW,cAAaD,EACxBE,EAAQR,EAAAQ,SAEFC,EAAiBL,EAAOM,QAAO,SAACC,GAAQ,OAAAA,EAAIN,OAASA,CAAb,IASxCO,GAPYP,EAAOI,EAAiBL,GAElCS,QAAO,SAACF,EAAiCG,GAE7C,OADAH,EAAIG,EAAKC,UAAYD,EACdH,CACR,GAAE,CAAE,GAICK,GAAgBJ,EAAaX,IAAW,IAAEe,YAC1CC,GAAyBL,EAAaX,IAAW,IAAEgB,qBAC3D,OACEC,oCAAiBX,EAAUJ,UAAWA,GAAa,eAC/Cc,GAAwBT,GACxBU,uBAAKC,wBAAyB,CAAEC,OAAQH,EAAqBT,EAASa,mBAClEH,EAAKI,cAAA,MAAA,CAAAH,wBAAyB,CAAEC,OAAQJ,GAAe,MAGnE"}
1
+ {"version":3,"file":"PricePoint-5984ff42.js","sources":["../src/PricePoint/PricePoint.tsx"],"sourcesContent":["/* eslint-disable camelcase */\n/* eslint-disable react/no-danger */\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport { ILegals } from '../Disclaimers/Disclaimers.types';\nimport { PricePointProps } from './PricePoint.types';\n\nexport const PricePoint = ({\n locale,\n className = '',\n legals,\n flow,\n dataQaId = 'price-point',\n operator\n}: PricePointProps) => {\n const filteredLegals = legals.filter((obj) => obj.flow === flow);\n\n const legalsArr = flow ? filteredLegals : legals;\n const arrayToObject = (array: ILegals[]) =>\n array.reduce((obj: { [key: string]: ILegals }, item) => {\n obj[item.language] = item;\n return obj;\n }, {});\n\n const legalsObject = arrayToObject(legalsArr);\n\n const { price_point } = legalsObject[locale] || '';\n const { operator_price_point } = legalsObject[locale] || '';\n return (\n <div data-qa-id={dataQaId} className={className || 'price-point'}>\n {(operator_price_point && operator && (\n <div dangerouslySetInnerHTML={{ __html: operator_price_point[operator.toUpperCase()] }} />\n )) || <div dangerouslySetInnerHTML={{ __html: price_point || '' }} />}\n </div>\n );\n};\n"],"names":["PricePoint","_a","locale","_b","className","legals","flow","_c","dataQaId","operator","filteredLegals","filter","obj","legalsObject","reduce","item","language","price_point","operator_price_point","React","dangerouslySetInnerHTML","__html","toUpperCase","createElement"],"mappings":"wBAOO,IAAMA,EAAa,SAACC,OACzBC,EAAMD,EAAAC,OACNC,EAAcF,EAAAG,UAAdA,OAAY,IAAAD,EAAA,GAAEA,EACdE,EAAMJ,EAAAI,OACNC,EAAIL,EAAAK,KACJC,EAAAN,EAAAO,SAAAA,aAAW,cAAaD,EACxBE,EAAQR,EAAAQ,SAEFC,EAAiBL,EAAOM,QAAO,SAACC,GAAQ,OAAAA,EAAIN,OAASA,CAAb,IASxCO,GAPYP,EAAOI,EAAiBL,GAElCS,QAAO,SAACF,EAAiCG,GAE7C,OADAH,EAAIG,EAAKC,UAAYD,EACdH,CACR,GAAE,CAAE,GAICK,GAAgBJ,EAAaX,IAAW,IAAEe,YAC1CC,GAAyBL,EAAaX,IAAW,IAAEgB,qBAC3D,OACEC,oCAAiBX,EAAUJ,UAAWA,GAAa,eAC/Cc,GAAwBT,GACxBU,uBAAKC,wBAAyB,CAAEC,OAAQH,EAAqBT,EAASa,mBAClEH,EAAKI,cAAA,MAAA,CAAAH,wBAAyB,CAAEC,OAAQJ,GAAe,MAGnE"}
@@ -1,2 +1,2 @@
1
- export{P as PricePoint}from"./PricePoint-48923f42.js";import"react";
1
+ export{P as PricePoint}from"./PricePoint-5984ff42.js";import"react";
2
2
  //# sourceMappingURL=PricePoint.js.map