{"version":3,"file":"6882.esm.js","mappings":"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","sources":["webpack:///../../node_modules/@paypalcorp/pp-react-flag/dist/@paypalcorp/pp-react-flag.esm.js","webpack:///../../node_modules/@paypalcorp/pp-react-flag/dist/@paypalcorp/styles.css.js","webpack:///../../node_modules/@paypalcorp/pp-react-intl/dist/@paypalcorp/pp-react-intl.esm.js","webpack:///./experiments/amountHeroCurrency.js","webpack:///../../node_modules/@paypalcorp/pp-react-masked-text-input/dist/@paypalcorp/pp-react-masked-text-input.esm.js","webpack:///../../node_modules/@paypalcorp/pp-react-currency-input/dist/@paypalcorp/pp-react-currency-input.esm.js","webpack:///../../node_modules/@paypalcorp/pp-react-hero-currency/dist/@paypalcorp/styles.css.js","webpack:///../../node_modules/@paypalcorp/pp-react-hero-currency/dist/@paypalcorp/pp-react-hero-currency.esm.js","webpack:///./transfer/components/currency/currencyInput.js","webpack:///./react-components/amount-and-currency/index.js","webpack:///./react-components/currency-selector/currencyListForSelector.js","webpack:///./react-components/currency-selector/currencySelectionOverpanel.js","webpack:///./transfer/utils/currencySelectorUtils.js","webpack:///../../node_modules/@paypalcorp/pp-react-text-display/dist/@paypalcorp/pp-react-text-display.esm.js","webpack:///../../node_modules/@paypalcorp/pp-react-text-display/dist/@paypalcorp/styles.css.js","webpack:///./react-components/buttonSelectionMenu.js","webpack:///./react-components/currency-selector/currencySelectorWithOverpanel.js","webpack:///./react-components/currency-selector/index.js","webpack:///./react-components/new-amount-fields/amount-field.js","webpack:///./transfer/components/currency/currencyInputProvider.js","webpack:///../../node_modules/@paypalcorp/pp-react-text-area/dist/@paypalcorp/pp-react-text-area.esm.js","webpack:///../../node_modules/@paypalcorp/pp-react-text-area/dist/@paypalcorp/styles.css.js","webpack:///./transfer/components/note-redux-pp.js","webpack:///./transfer/components/preview/note-with-gift.js","webpack:///./transfer/components/purchaseConsentCheckBox.js"],"sourcesContent":["import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React from 'react';\nimport { cx } from '@paypalcorp/pp-react-utils';\nimport * as styles from './styles.css';\nexport { styles as flagStyles };\n\nvar _excluded = [\"countryCode\", \"size\", \"noRoundCorners\", \"className\"];\nvar Flag = function (_ref) {\n var countryCode = _ref.countryCode,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 'sm' : _ref$size,\n _ref$noRoundCorners = _ref.noRoundCorners,\n noRoundCorners = _ref$noRoundCorners === void 0 ? false : _ref$noRoundCorners,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: cx(styles.base, size === 'sm' && styles.sizeSm, size === 'md' && styles.sizeMd, className)\n }, rest, {\n \"data-ppui\": \"true\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: cx(styles.scaleBase, styles.flagSelector, countryCode && \"flag_\".concat(countryCode.toLowerCase()), size === 'sm' && styles.scaleSm, size === 'md' && styles.scaleMd, noRoundCorners && styles.noRoundedCorners),\n \"data-ppui\": \"true\"\n }));\n};\n\nexport { Flag };\n","import \"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-flag/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-flag/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nexport var base = '_3jnjr90';\nexport var flagSelector = '_3jnjr97';\nexport var noRoundedCorners = '_3jnjr96';\nexport var scaleBase = '_3jnjr93';\nexport var scaleMd = '_3jnjr95';\nexport var scaleSm = '_3jnjr94';\nexport var sizeMd = '_3jnjr92';\nexport var sizeSm = '_3jnjr91';","'use client';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React from 'react';\n\nvar _excluded = [\"locale\", \"messageFormatter\", \"currencyFormatter\", \"getDisplayNamesObject\", \"phoneFormatter\", \"addressFormatter\", \"exampleGenerator\", \"dateTimeFormatter\", \"children\"];\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar IntlContext = React.createContext(null);\nvar IntlProvider = function (_ref) {\n var locale = _ref.locale,\n messageFormatter = _ref.messageFormatter,\n currencyFormatter = _ref.currencyFormatter,\n getDisplayNamesObject = _ref.getDisplayNamesObject,\n phoneFormatter = _ref.phoneFormatter,\n addressFormatter = _ref.addressFormatter,\n exampleGenerator = _ref.exampleGenerator,\n dateTimeFormatter = _ref.dateTimeFormatter,\n children = _ref.children,\n rest = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(IntlContext.Provider, {\n value: _objectSpread$1({\n locale: locale,\n messageFormatter: messageFormatter,\n currencyFormatter: currencyFormatter,\n getDisplayNamesObject: getDisplayNamesObject,\n phoneFormatter: phoneFormatter,\n addressFormatter: addressFormatter,\n exampleGenerator: exampleGenerator,\n dateTimeFormatter: dateTimeFormatter\n }, rest)\n }, children);\n};\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar getFormattedMessage = function (intlContext, defaultMessage, id, variables) {\n if (!id) {\n return defaultMessage;\n }\n if (!(intlContext && intlContext.messageFormatter)) {\n return id;\n }\n return intlContext.messageFormatter({\n id: id\n }).format(variables);\n};\nvar getCurrencyMaskOptions = function (intlContext, maskOptions, currencyType) {\n if (intlContext && intlContext.currencyFormatter) {\n var currencyFormat = intlContext.currencyFormatter({\n currency: currencyType\n });\n var currencyPartsArr = currencyFormat.formatToParts(1000);\n var _getIntlCurrencyPatte = getIntlCurrencyPattern(currencyPartsArr),\n intlMaskOptions = _getIntlCurrencyPatte.intlMaskOptions,\n intlCurrencyPrefix = _getIntlCurrencyPatte.intlCurrencyPrefix,\n intlCurrencySuffix = _getIntlCurrencyPatte.intlCurrencySuffix;\n\n //set mask-options padFractionalZeros to false and scale to 0 if currency does not support fractional values\n var currencyFormatOptions = currencyFormat.resolvedOptions();\n if (currencyFormatOptions.maximumFractionDigits === 0) {\n intlMaskOptions.padFractionalZeros = false;\n intlMaskOptions.scale = 0;\n }\n return {\n currencyMaskOptions: _objectSpread(_objectSpread({\n padFractionalZeros: true\n }, intlMaskOptions), maskOptions),\n intlCurrencyPrefix: intlCurrencyPrefix,\n intlCurrencySuffix: intlCurrencySuffix\n };\n }\n return {\n currencyMaskOptions: maskOptions\n };\n};\nfunction getIntlCurrencyPattern(currencyPartsArr) {\n var intlMaskOptions = {\n mask: Number\n };\n var intlCurrencyPrefix = '';\n var intlCurrencySuffix = '';\n currencyPartsArr.forEach(function (_ref, idx) {\n var type = _ref.type,\n value = _ref.value;\n switch (type) {\n case 'currencySymbol':\n if (idx === 0) {\n intlCurrencyPrefix = value;\n } else {\n intlCurrencySuffix = value;\n }\n break;\n case 'currency':\n if (idx === 0) {\n intlCurrencyPrefix = value;\n } else {\n intlCurrencySuffix = value;\n }\n break;\n case 'group':\n intlMaskOptions.thousandsSeparator = value;\n break;\n case 'fraction':\n intlMaskOptions.scale = value.length;\n break;\n case 'decimal':\n intlMaskOptions.radix = value;\n break;\n }\n });\n return {\n intlMaskOptions: intlMaskOptions,\n intlCurrencyPrefix: intlCurrencyPrefix,\n intlCurrencySuffix: intlCurrencySuffix\n };\n}\n\nexport { IntlContext, IntlProvider, getCurrencyMaskOptions, getFormattedMessage };\n","// https://www.msmaster.qa.paypal.com/elmo/experiment/131004\n\nimport * as pxp from '../lib/pxp'\n\nexport function hasHeroCurrencyTrmt() {\n return pxp.isTreatment('Trmt_p2p_web_amount_hero_currency')\n}\n","'use client';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { forwardRef, useRef, useEffect } from 'react';\nimport { TextInput } from '@paypalcorp/pp-react-text-input';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\n/**\n * Applies mask on element.\n * @constructor\n * @param {HTMLInputElement|HTMLTextAreaElement|MaskElement} el - Element to apply mask\n * @param {Object} opts - Custom mask options\n * @return {InputMask}\n */\nfunction IMask(el) {\n let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // currently available only for input-like elements\n return new IMask.InputMask(el, opts);\n}\n\n/**\n Provides details of changing model value\n @param {Object} [details]\n @param {string} [details.inserted] - Inserted symbols\n @param {boolean} [details.skip] - Can skip chars\n @param {number} [details.removeCount] - Removed symbols count\n @param {number} [details.tailShift] - Additional offset if any changes occurred before tail\n*/\nclass ChangeDetails {\n /** Inserted symbols */\n\n /** Can skip chars */\n\n /** Additional offset if any changes occurred before tail */\n\n /** Raw inserted is used by dynamic mask */\n\n constructor(details) {\n Object.assign(this, {\n inserted: '',\n rawInserted: '',\n skip: false,\n tailShift: 0\n }, details);\n }\n\n /**\n Aggregate changes\n @returns {ChangeDetails} `this`\n */\n aggregate(details) {\n this.rawInserted += details.rawInserted;\n this.skip = this.skip || details.skip;\n this.inserted += details.inserted;\n this.tailShift += details.tailShift;\n return this;\n }\n\n /** Total offset considering all changes */\n get offset() {\n return this.tailShift + this.inserted.length;\n }\n}\nIMask.ChangeDetails = ChangeDetails;\n\n/** Checks if value is string */\nfunction isString(str) {\n return typeof str === 'string' || str instanceof String;\n}\n\n/**\n Direction\n @prop {string} NONE\n @prop {string} LEFT\n @prop {string} FORCE_LEFT\n @prop {string} RIGHT\n @prop {string} FORCE_RIGHT\n*/\nconst DIRECTION = {\n NONE: 'NONE',\n LEFT: 'LEFT',\n FORCE_LEFT: 'FORCE_LEFT',\n RIGHT: 'RIGHT',\n FORCE_RIGHT: 'FORCE_RIGHT'\n};\n\n/** */\nfunction forceDirection(direction) {\n switch (direction) {\n case DIRECTION.LEFT:\n return DIRECTION.FORCE_LEFT;\n case DIRECTION.RIGHT:\n return DIRECTION.FORCE_RIGHT;\n default:\n return direction;\n }\n}\n\n/** Escapes regular expression control chars */\nfunction escapeRegExp(str) {\n return str.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n}\nfunction normalizePrepare(prep) {\n return Array.isArray(prep) ? prep : [prep, new ChangeDetails()];\n}\n\n// cloned from https://github.com/epoberezkin/fast-deep-equal with small changes\nfunction objectIncludes(b, a) {\n if (a === b) return true;\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i;\n if (arrA && arrB) {\n if (a.length != b.length) return false;\n for (i = 0; i < a.length; i++) if (!objectIncludes(a[i], b[i])) return false;\n return true;\n }\n if (arrA != arrB) return false;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA && dateB) return a.getTime() == b.getTime();\n if (dateA != dateB) return false;\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA && regexpB) return a.toString() == b.toString();\n if (regexpA != regexpB) return false;\n var keys = Object.keys(a);\n // if (keys.length !== Object.keys(b).length) return false;\n\n for (i = 0; i < keys.length; i++)\n // $FlowFixMe ... ???\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = 0; i < keys.length; i++) if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;\n return true;\n } else if (a && b && typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n return false;\n}\n\n/** Provides details of changing input */\nclass ActionDetails {\n /** Current input value */\n\n /** Current cursor position */\n\n /** Old input value */\n\n /** Old selection */\n\n constructor(value, cursorPos, oldValue, oldSelection) {\n this.value = value;\n this.cursorPos = cursorPos;\n this.oldValue = oldValue;\n this.oldSelection = oldSelection;\n\n // double check if left part was changed (autofilling, other non-standard input triggers)\n while (this.value.slice(0, this.startChangePos) !== this.oldValue.slice(0, this.startChangePos)) {\n --this.oldSelection.start;\n }\n }\n\n /**\n Start changing position\n @readonly\n */\n get startChangePos() {\n return Math.min(this.cursorPos, this.oldSelection.start);\n }\n\n /**\n Inserted symbols count\n @readonly\n */\n get insertedCount() {\n return this.cursorPos - this.startChangePos;\n }\n\n /**\n Inserted symbols\n @readonly\n */\n get inserted() {\n return this.value.substr(this.startChangePos, this.insertedCount);\n }\n\n /**\n Removed symbols count\n @readonly\n */\n get removedCount() {\n // Math.max for opposite operation\n return Math.max(this.oldSelection.end - this.startChangePos ||\n // for Delete\n this.oldValue.length - this.value.length, 0);\n }\n\n /**\n Removed symbols\n @readonly\n */\n get removed() {\n return this.oldValue.substr(this.startChangePos, this.removedCount);\n }\n\n /**\n Unchanged head symbols\n @readonly\n */\n get head() {\n return this.value.substring(0, this.startChangePos);\n }\n\n /**\n Unchanged tail symbols\n @readonly\n */\n get tail() {\n return this.value.substring(this.startChangePos + this.insertedCount);\n }\n\n /**\n Remove direction\n @readonly\n */\n get removeDirection() {\n if (!this.removedCount || this.insertedCount) return DIRECTION.NONE;\n\n // align right if delete at right\n return (this.oldSelection.end === this.cursorPos || this.oldSelection.start === this.cursorPos) &&\n // if not range removed (event with backspace)\n this.oldSelection.end === this.oldSelection.start ? DIRECTION.RIGHT : DIRECTION.LEFT;\n }\n}\n\n/** Provides details of continuous extracted tail */\nclass ContinuousTailDetails {\n /** Tail value as string */\n\n /** Tail start position */\n\n /** Start position */\n\n constructor() {\n let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let stop = arguments.length > 2 ? arguments[2] : undefined;\n this.value = value;\n this.from = from;\n this.stop = stop;\n }\n toString() {\n return this.value;\n }\n extend(tail) {\n this.value += String(tail);\n }\n appendTo(masked) {\n return masked.append(this.toString(), {\n tail: true\n }).aggregate(masked._appendPlaceholder());\n }\n get state() {\n return {\n value: this.value,\n from: this.from,\n stop: this.stop\n };\n }\n set state(state) {\n Object.assign(this, state);\n }\n unshift(beforePos) {\n if (!this.value.length || beforePos != null && this.from >= beforePos) return '';\n const shiftChar = this.value[0];\n this.value = this.value.slice(1);\n return shiftChar;\n }\n shift() {\n if (!this.value.length) return '';\n const shiftChar = this.value[this.value.length - 1];\n this.value = this.value.slice(0, -1);\n return shiftChar;\n }\n}\n\n/** Supported mask type */\n\n/** Append flags */\n\n/** Extract flags */\n\n/** Provides common masking stuff */\nclass Masked {\n // $Shape; TODO after fix https://github.com/facebook/flow/issues/4773\n\n /** @type {Mask} */\n\n /** */ // $FlowFixMe no ideas\n /** Transforms value before mask processing */\n /** Validates if value is acceptable */\n /** Does additional processing in the end of editing */\n /** Format typed value to string */\n /** Parse strgin to get typed value */\n /** Enable characters overwriting */\n /** */\n /** */\n /** */\n constructor(opts) {\n this._value = '';\n this._update(Object.assign({}, Masked.DEFAULTS, opts));\n this.isInitialized = true;\n }\n\n /** Sets and applies new options */\n updateOptions(opts) {\n if (!Object.keys(opts).length) return;\n // $FlowFixMe\n this.withValueRefresh(this._update.bind(this, opts));\n }\n\n /**\n Sets new options\n @protected\n */\n _update(opts) {\n Object.assign(this, opts);\n }\n\n /** Mask state */\n get state() {\n return {\n _value: this.value\n };\n }\n set state(state) {\n this._value = state._value;\n }\n\n /** Resets value */\n reset() {\n this._value = '';\n }\n\n /** */\n get value() {\n return this._value;\n }\n set value(value) {\n this.resolve(value);\n }\n\n /** Resolve new value */\n resolve(value) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n input: true\n };\n this.reset();\n this.append(value, flags, '');\n this.doCommit();\n return this.value;\n }\n\n /** */\n get unmaskedValue() {\n return this.value;\n }\n set unmaskedValue(value) {\n this.reset();\n this.append(value, {}, '');\n this.doCommit();\n }\n\n /** */\n get typedValue() {\n return this.doParse(this.value);\n }\n set typedValue(value) {\n this.value = this.doFormat(value);\n }\n\n /** Value that includes raw user input */\n get rawInputValue() {\n return this.extractInput(0, this.value.length, {\n raw: true\n });\n }\n set rawInputValue(value) {\n this.reset();\n this.append(value, {\n raw: true\n }, '');\n this.doCommit();\n }\n get displayValue() {\n return this.value;\n }\n\n /** */\n get isComplete() {\n return true;\n }\n\n /** */\n get isFilled() {\n return this.isComplete;\n }\n\n /** Finds nearest input position in direction */\n nearestInputPos(cursorPos, direction) {\n return cursorPos;\n }\n totalInputPositions() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n return Math.min(this.value.length, toPos - fromPos);\n }\n\n /** Extracts value in range considering flags */\n extractInput() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n return this.value.slice(fromPos, toPos);\n }\n\n /** Extracts tail in range */\n extractTail() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n return new ContinuousTailDetails(this.extractInput(fromPos, toPos), fromPos);\n }\n\n /** Appends tail */\n // $FlowFixMe no ideas\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n\n /** Appends char */\n _appendCharRaw(ch) {\n if (!ch) return new ChangeDetails();\n this._value += ch;\n return new ChangeDetails({\n inserted: ch,\n rawInserted: ch\n });\n }\n\n /** Appends char */\n _appendChar(ch) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let checkTail = arguments.length > 2 ? arguments[2] : undefined;\n const consistentState = this.state;\n let details;\n [ch, details] = normalizePrepare(this.doPrepare(ch, flags));\n details = details.aggregate(this._appendCharRaw(ch, flags));\n if (details.inserted) {\n let consistentTail;\n let appended = this.doValidate(flags) !== false;\n if (appended && checkTail != null) {\n // validation ok, check tail\n const beforeTailState = this.state;\n if (this.overwrite === true) {\n consistentTail = checkTail.state;\n checkTail.unshift(this.value.length - details.tailShift);\n }\n let tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted === checkTail.toString();\n\n // not ok, try shift\n if (!(appended && tailDetails.inserted) && this.overwrite === 'shift') {\n this.state = beforeTailState;\n consistentTail = checkTail.state;\n checkTail.shift();\n tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted === checkTail.toString();\n }\n\n // if ok, rollback state after tail\n if (appended && tailDetails.inserted) this.state = beforeTailState;\n }\n\n // revert all if something went wrong\n if (!appended) {\n details = new ChangeDetails();\n this.state = consistentState;\n if (checkTail && consistentTail) checkTail.state = consistentTail;\n }\n }\n return details;\n }\n\n /** Appends optional placeholder at end */\n _appendPlaceholder() {\n return new ChangeDetails();\n }\n\n /** Appends optional eager placeholder at end */\n _appendEager() {\n return new ChangeDetails();\n }\n\n /** Appends symbols considering flags */\n // $FlowFixMe no ideas\n append(str, flags, tail) {\n if (!isString(str)) throw new Error('value should be string');\n const details = new ChangeDetails();\n const checkTail = isString(tail) ? new ContinuousTailDetails(String(tail)) : tail;\n if (flags !== null && flags !== void 0 && flags.tail) flags._beforeTailState = this.state;\n for (let ci = 0; ci < str.length; ++ci) {\n const d = this._appendChar(str[ci], flags, checkTail);\n if (!d.rawInserted && !this.doSkipInvalid(str[ci], flags, checkTail)) break;\n details.aggregate(d);\n }\n if ((this.eager === true || this.eager === 'append') && flags !== null && flags !== void 0 && flags.input && str) {\n details.aggregate(this._appendEager());\n }\n\n // append tail but aggregate only tailShift\n if (checkTail != null) {\n details.tailShift += this.appendTail(checkTail).tailShift;\n // TODO it's a good idea to clear state after appending ends\n // but it causes bugs when one append calls another (when dynamic dispatch set rawInputValue)\n // this._resetBeforeTailState();\n }\n\n return details;\n }\n\n /** */\n remove() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n this._value = this.value.slice(0, fromPos) + this.value.slice(toPos);\n return new ChangeDetails();\n }\n\n /** Calls function and reapplies current value */\n withValueRefresh(fn) {\n if (this._refreshing || !this.isInitialized) return fn();\n this._refreshing = true;\n const rawInput = this.rawInputValue;\n const value = this.value;\n const ret = fn();\n this.rawInputValue = rawInput;\n // append lost trailing chars at end\n if (this.value && this.value !== value && value.indexOf(this.value) === 0) {\n this.append(value.slice(this.value.length), {}, '');\n }\n delete this._refreshing;\n return ret;\n }\n\n /** */\n runIsolated(fn) {\n if (this._isolated || !this.isInitialized) return fn(this);\n this._isolated = true;\n const state = this.state;\n const ret = fn(this);\n this.state = state;\n delete this._isolated;\n return ret;\n }\n\n /** */\n doSkipInvalid(ch) {\n return this.skipInvalid;\n }\n\n /**\n Prepares string before mask processing\n @protected\n */\n doPrepare(str) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.prepare ? this.prepare(str, this, flags) : str;\n }\n\n /**\n Validates if value is acceptable\n @protected\n */\n doValidate(flags) {\n return (!this.validate || this.validate(this.value, this, flags)) && (!this.parent || this.parent.doValidate(flags));\n }\n\n /**\n Does additional processing in the end of editing\n @protected\n */\n doCommit() {\n if (this.commit) this.commit(this.value, this);\n }\n\n /** */\n doFormat(value) {\n return this.format ? this.format(value, this) : value;\n }\n\n /** */\n doParse(str) {\n return this.parse ? this.parse(str, this) : str;\n }\n\n /** */\n splice(start, deleteCount, inserted, removeDirection) {\n let flags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n input: true\n };\n const tailPos = start + deleteCount;\n const tail = this.extractTail(tailPos);\n const eagerRemove = this.eager === true || this.eager === 'remove';\n let oldRawValue;\n if (eagerRemove) {\n removeDirection = forceDirection(removeDirection);\n oldRawValue = this.extractInput(0, tailPos, {\n raw: true\n });\n }\n let startChangePos = start;\n const details = new ChangeDetails();\n\n // if it is just deletion without insertion\n if (removeDirection !== DIRECTION.NONE) {\n startChangePos = this.nearestInputPos(start, deleteCount > 1 && start !== 0 && !eagerRemove ? DIRECTION.NONE : removeDirection);\n\n // adjust tailShift if start was aligned\n details.tailShift = startChangePos - start;\n }\n details.aggregate(this.remove(startChangePos));\n if (eagerRemove && removeDirection !== DIRECTION.NONE && oldRawValue === this.rawInputValue) {\n if (removeDirection === DIRECTION.FORCE_LEFT) {\n let valLength;\n while (oldRawValue === this.rawInputValue && (valLength = this.value.length)) {\n details.aggregate(new ChangeDetails({\n tailShift: -1\n })).aggregate(this.remove(valLength - 1));\n }\n } else if (removeDirection === DIRECTION.FORCE_RIGHT) {\n tail.unshift();\n }\n }\n return details.aggregate(this.append(inserted, flags, tail));\n }\n maskEquals(mask) {\n return this.mask === mask;\n }\n typedValueEquals(value) {\n const tval = this.typedValue;\n return value === tval || Masked.EMPTY_VALUES.includes(value) && Masked.EMPTY_VALUES.includes(tval) || this.doFormat(value) === this.doFormat(this.typedValue);\n }\n}\nMasked.DEFAULTS = {\n format: String,\n parse: v => v,\n skipInvalid: true\n};\nMasked.EMPTY_VALUES = [undefined, null, ''];\nIMask.Masked = Masked;\n\n/** Get Masked class by mask type */\nfunction maskedClass(mask) {\n if (mask == null) {\n throw new Error('mask property should be defined');\n }\n\n // $FlowFixMe\n if (mask instanceof RegExp) return IMask.MaskedRegExp;\n // $FlowFixMe\n if (isString(mask)) return IMask.MaskedPattern;\n // $FlowFixMe\n if (mask instanceof Date || mask === Date) return IMask.MaskedDate;\n // $FlowFixMe\n if (mask instanceof Number || typeof mask === 'number' || mask === Number) return IMask.MaskedNumber;\n // $FlowFixMe\n if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;\n // $FlowFixMe\n if (IMask.Masked && mask.prototype instanceof IMask.Masked) return mask;\n // $FlowFixMe\n if (mask instanceof IMask.Masked) return mask.constructor;\n // $FlowFixMe\n if (mask instanceof Function) return IMask.MaskedFunction;\n console.warn('Mask not found for mask', mask); // eslint-disable-line no-console\n // $FlowFixMe\n return IMask.Masked;\n}\n\n/** Creates new {@link Masked} depending on mask type */\nfunction createMask(opts) {\n // $FlowFixMe\n if (IMask.Masked && opts instanceof IMask.Masked) return opts;\n opts = Object.assign({}, opts);\n const mask = opts.mask;\n\n // $FlowFixMe\n if (IMask.Masked && mask instanceof IMask.Masked) return mask;\n const MaskedClass = maskedClass(mask);\n if (!MaskedClass) throw new Error('Masked class is not found for provided mask, appropriate module needs to be import manually before creating mask.');\n return new MaskedClass(opts);\n}\nIMask.createMask = createMask;\n\nconst _excluded$4 = [\"parent\", \"isOptional\", \"placeholderChar\", \"displayChar\", \"lazy\", \"eager\"];\n\n/** */\n\nconst DEFAULT_INPUT_DEFINITIONS = {\n '0': /\\d/,\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // http://stackoverflow.com/a/22075070\n '*': /./\n};\n\n/** */\nclass PatternInputDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n const {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager\n } = opts,\n maskOpts = _objectWithoutPropertiesLoose(opts, _excluded$4);\n this.masked = createMask(maskOpts);\n Object.assign(this, {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager\n });\n }\n reset() {\n this.isFilled = false;\n this.masked.reset();\n }\n remove() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n if (fromPos === 0 && toPos >= 1) {\n this.isFilled = false;\n return this.masked.remove(fromPos, toPos);\n }\n return new ChangeDetails();\n }\n get value() {\n return this.masked.value || (this.isFilled && !this.isOptional ? this.placeholderChar : '');\n }\n get unmaskedValue() {\n return this.masked.unmaskedValue;\n }\n get displayValue() {\n return this.masked.value && this.displayChar || this.value;\n }\n get isComplete() {\n return Boolean(this.masked.value) || this.isOptional;\n }\n _appendChar(ch) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.isFilled) return new ChangeDetails();\n const state = this.masked.state;\n // simulate input\n const details = this.masked._appendChar(ch, flags);\n if (details.inserted && this.doValidate(flags) === false) {\n details.inserted = details.rawInserted = '';\n this.masked.state = state;\n }\n if (!details.inserted && !this.isOptional && !this.lazy && !flags.input) {\n details.inserted = this.placeholderChar;\n }\n details.skip = !details.inserted && !this.isOptional;\n this.isFilled = Boolean(details.inserted);\n return details;\n }\n append() {\n // TODO probably should be done via _appendChar\n return this.masked.append(...arguments);\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled || this.isOptional) return details;\n this.isFilled = true;\n details.inserted = this.placeholderChar;\n return details;\n }\n _appendEager() {\n return new ChangeDetails();\n }\n extractTail() {\n return this.masked.extractTail(...arguments);\n }\n appendTail() {\n return this.masked.appendTail(...arguments);\n }\n extractInput() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n let flags = arguments.length > 2 ? arguments[2] : undefined;\n return this.masked.extractInput(fromPos, toPos, flags);\n }\n nearestInputPos(cursorPos) {\n let direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DIRECTION.NONE;\n const minPos = 0;\n const maxPos = this.value.length;\n const boundPos = Math.min(Math.max(cursorPos, minPos), maxPos);\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return this.isComplete ? boundPos : minPos;\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n return this.isComplete ? boundPos : maxPos;\n case DIRECTION.NONE:\n default:\n return boundPos;\n }\n }\n totalInputPositions() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n return this.value.slice(fromPos, toPos).length;\n }\n doValidate() {\n return this.masked.doValidate(...arguments) && (!this.parent || this.parent.doValidate(...arguments));\n }\n doCommit() {\n this.masked.doCommit();\n }\n get state() {\n return {\n masked: this.masked.state,\n isFilled: this.isFilled\n };\n }\n set state(state) {\n this.masked.state = state.masked;\n this.isFilled = state.isFilled;\n }\n}\n\n/** */\n\nclass PatternFixedDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n Object.assign(this, opts);\n this._value = '';\n this.isFixed = true;\n }\n get value() {\n return this._value;\n }\n get unmaskedValue() {\n return this.isUnmasking ? this.value : '';\n }\n get displayValue() {\n return this.value;\n }\n reset() {\n this._isRawInput = false;\n this._value = '';\n }\n remove() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._value.length;\n this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);\n if (!this._value) this._isRawInput = false;\n return new ChangeDetails();\n }\n nearestInputPos(cursorPos) {\n let direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DIRECTION.NONE;\n const minPos = 0;\n const maxPos = this._value.length;\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return minPos;\n case DIRECTION.NONE:\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n default:\n return maxPos;\n }\n }\n totalInputPositions() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._value.length;\n return this._isRawInput ? toPos - fromPos : 0;\n }\n extractInput() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._value.length;\n let flags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return flags.raw && this._isRawInput && this._value.slice(fromPos, toPos) || '';\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return Boolean(this._value);\n }\n _appendChar(ch) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n const appendEager = this.eager === true || this.eager === 'append';\n const appended = this.char === ch;\n const isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && (!flags.raw || !appendEager) && !flags.tail;\n if (isResolved) details.rawInserted = this.char;\n this._value = details.inserted = this.char;\n this._isRawInput = isResolved && (flags.raw || flags.input);\n return details;\n }\n _appendEager() {\n return this._appendChar(this.char, {\n tail: true\n });\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n this._value = details.inserted = this.char;\n return details;\n }\n extractTail() {\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n return new ContinuousTailDetails('');\n }\n\n // $FlowFixMe no ideas\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n append(str, flags, tail) {\n const details = this._appendChar(str[0], flags);\n if (tail != null) {\n details.tailShift += this.appendTail(tail).tailShift;\n }\n return details;\n }\n doCommit() {}\n get state() {\n return {\n _value: this._value,\n _isRawInput: this._isRawInput\n };\n }\n set state(state) {\n Object.assign(this, state);\n }\n}\n\nconst _excluded$3 = [\"chunks\"];\nclass ChunksTailDetails {\n /** */\n\n constructor() {\n let chunks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.chunks = chunks;\n this.from = from;\n }\n toString() {\n return this.chunks.map(String).join('');\n }\n\n // $FlowFixMe no ideas\n extend(tailChunk) {\n if (!String(tailChunk)) return;\n if (isString(tailChunk)) tailChunk = new ContinuousTailDetails(String(tailChunk));\n const lastChunk = this.chunks[this.chunks.length - 1];\n const extendLast = lastChunk && (\n // if stops are same or tail has no stop\n lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&\n // if tail chunk goes just after last chunk\n tailChunk.from === lastChunk.from + lastChunk.toString().length;\n if (tailChunk instanceof ContinuousTailDetails) {\n // check the ability to extend previous chunk\n if (extendLast) {\n // extend previous chunk\n lastChunk.extend(tailChunk.toString());\n } else {\n // append new chunk\n this.chunks.push(tailChunk);\n }\n } else if (tailChunk instanceof ChunksTailDetails) {\n if (tailChunk.stop == null) {\n // unwrap floating chunks to parent, keeping `from` pos\n let firstTailChunk;\n while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {\n firstTailChunk = tailChunk.chunks.shift();\n firstTailChunk.from += tailChunk.from;\n this.extend(firstTailChunk);\n }\n }\n\n // if tail chunk still has value\n if (tailChunk.toString()) {\n // if chunks contains stops, then popup stop to container\n tailChunk.stop = tailChunk.blockIndex;\n this.chunks.push(tailChunk);\n }\n }\n }\n appendTo(masked) {\n // $FlowFixMe\n if (!(masked instanceof IMask.MaskedPattern)) {\n const tail = new ContinuousTailDetails(this.toString());\n return tail.appendTo(masked);\n }\n const details = new ChangeDetails();\n for (let ci = 0; ci < this.chunks.length && !details.skip; ++ci) {\n const chunk = this.chunks[ci];\n const lastBlockIter = masked._mapPosToBlock(masked.value.length);\n const stop = chunk.stop;\n let chunkBlock;\n if (stop != null && (\n // if block not found or stop is behind lastBlock\n !lastBlockIter || lastBlockIter.index <= stop)) {\n if (chunk instanceof ChunksTailDetails ||\n // for continuous block also check if stop is exist\n masked._stops.indexOf(stop) >= 0) {\n const phDetails = masked._appendPlaceholder(stop);\n details.aggregate(phDetails);\n }\n chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop];\n }\n if (chunkBlock) {\n const tailDetails = chunkBlock.appendTail(chunk);\n tailDetails.skip = false; // always ignore skip, it will be set on last\n details.aggregate(tailDetails);\n masked._value += tailDetails.inserted;\n\n // get not inserted chars\n const remainChars = chunk.toString().slice(tailDetails.rawInserted.length);\n if (remainChars) details.aggregate(masked.append(remainChars, {\n tail: true\n }));\n } else {\n details.aggregate(masked.append(chunk.toString(), {\n tail: true\n }));\n }\n }\n return details;\n }\n get state() {\n return {\n chunks: this.chunks.map(c => c.state),\n from: this.from,\n stop: this.stop,\n blockIndex: this.blockIndex\n };\n }\n set state(state) {\n const {\n chunks\n } = state,\n props = _objectWithoutPropertiesLoose(state, _excluded$3);\n Object.assign(this, props);\n this.chunks = chunks.map(cstate => {\n const chunk = \"chunks\" in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();\n // $FlowFixMe already checked above\n chunk.state = cstate;\n return chunk;\n });\n }\n unshift(beforePos) {\n if (!this.chunks.length || beforePos != null && this.from >= beforePos) return '';\n const chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;\n let ci = 0;\n while (ci < this.chunks.length) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.unshift(chunkShiftPos);\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n ++ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n shift() {\n if (!this.chunks.length) return '';\n let ci = this.chunks.length - 1;\n while (0 <= ci) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.shift();\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n --ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n}\n\nclass PatternCursor {\n constructor(masked, pos) {\n this.masked = masked;\n this._log = [];\n const {\n offset,\n index\n } = masked._mapPosToBlock(pos) || (pos < 0 ?\n // first\n {\n index: 0,\n offset: 0\n } :\n // last\n {\n index: this.masked._blocks.length,\n offset: 0\n });\n this.offset = offset;\n this.index = index;\n this.ok = false;\n }\n get block() {\n return this.masked._blocks[this.index];\n }\n get pos() {\n return this.masked._blockStartPos(this.index) + this.offset;\n }\n get state() {\n return {\n index: this.index,\n offset: this.offset,\n ok: this.ok\n };\n }\n set state(s) {\n Object.assign(this, s);\n }\n pushState() {\n this._log.push(this.state);\n }\n popState() {\n const s = this._log.pop();\n this.state = s;\n return s;\n }\n bindBlock() {\n if (this.block) return;\n if (this.index < 0) {\n this.index = 0;\n this.offset = 0;\n }\n if (this.index >= this.masked._blocks.length) {\n this.index = this.masked._blocks.length - 1;\n this.offset = this.block.value.length;\n }\n }\n _pushLeft(fn) {\n this.pushState();\n for (this.bindBlock(); 0 <= this.index; --this.index, this.offset = ((_this$block = this.block) === null || _this$block === void 0 ? void 0 : _this$block.value.length) || 0) {\n var _this$block;\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n _pushRight(fn) {\n this.pushState();\n for (this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0) {\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n pushLeftBeforeFilled() {\n return this._pushLeft(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_LEFT);\n if (this.offset !== 0) return true;\n });\n }\n pushLeftBeforeInput() {\n // cases:\n // filled input: 00|\n // optional empty input: 00[]|\n // nested block: XX<[]>|\n return this._pushLeft(() => {\n if (this.block.isFixed) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushLeftBeforeRequired() {\n return this._pushLeft(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushRightBeforeFilled() {\n return this._pushRight(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_RIGHT);\n if (this.offset !== this.block.value.length) return true;\n });\n }\n pushRightBeforeInput() {\n return this._pushRight(() => {\n if (this.block.isFixed) return;\n\n // const o = this.offset;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n // HACK cases like (STILL DOES NOT WORK FOR NESTED)\n // aa|X\n // aaX_ - this will not work\n // if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;\n return true;\n });\n }\n pushRightBeforeRequired() {\n return this._pushRight(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n\n // TODO check |[*]XX_\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n return true;\n });\n }\n}\n\n/** Masking by RegExp */\nclass MaskedRegExp extends Masked {\n /**\n @override\n @param {Object} opts\n */\n _update(opts) {\n if (opts.mask) opts.validate = value => value.search(opts.mask) >= 0;\n super._update(opts);\n }\n}\nIMask.MaskedRegExp = MaskedRegExp;\n\nconst _excluded$2 = [\"_blocks\"];\n\n/**\n Pattern mask\n @param {Object} opts\n @param {Object} opts.blocks\n @param {Object} opts.definitions\n @param {string} opts.placeholderChar\n @param {string} opts.displayChar\n @param {boolean} opts.lazy\n*/\nclass MaskedPattern extends Masked {\n /** */\n\n /** */\n\n /** Single char for empty input */\n\n /** Single char for filled input */\n\n /** Show placeholder only when needed */\n\n constructor() {\n let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO type $Shape={} does not work\n opts.definitions = Object.assign({}, DEFAULT_INPUT_DEFINITIONS, opts.definitions);\n super(Object.assign({}, MaskedPattern.DEFAULTS, opts));\n }\n\n /**\n @override\n @param {Object} opts\n */\n _update() {\n let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n opts.definitions = Object.assign({}, this.definitions, opts.definitions);\n super._update(opts);\n this._rebuildMask();\n }\n\n /** */\n _rebuildMask() {\n const defs = this.definitions;\n this._blocks = [];\n this._stops = [];\n this._maskedBlocks = {};\n let pattern = this.mask;\n if (!pattern || !defs) return;\n let unmaskingBlock = false;\n let optionalBlock = false;\n for (let i = 0; i < pattern.length; ++i) {\n var _defs$char, _defs$char2;\n if (this.blocks) {\n const p = pattern.slice(i);\n const bNames = Object.keys(this.blocks).filter(bName => p.indexOf(bName) === 0);\n // order by key length\n bNames.sort((a, b) => b.length - a.length);\n // use block name with max length\n const bName = bNames[0];\n if (bName) {\n // $FlowFixMe no ideas\n const maskedBlock = createMask(Object.assign({\n parent: this,\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n overwrite: this.overwrite\n }, this.blocks[bName]));\n if (maskedBlock) {\n this._blocks.push(maskedBlock);\n\n // store block index\n if (!this._maskedBlocks[bName]) this._maskedBlocks[bName] = [];\n this._maskedBlocks[bName].push(this._blocks.length - 1);\n }\n i += bName.length - 1;\n continue;\n }\n }\n let char = pattern[i];\n let isInput = (char in defs);\n if (char === MaskedPattern.STOP_CHAR) {\n this._stops.push(this._blocks.length);\n continue;\n }\n if (char === '{' || char === '}') {\n unmaskingBlock = !unmaskingBlock;\n continue;\n }\n if (char === '[' || char === ']') {\n optionalBlock = !optionalBlock;\n continue;\n }\n if (char === MaskedPattern.ESCAPE_CHAR) {\n ++i;\n char = pattern[i];\n if (!char) break;\n isInput = false;\n }\n const maskOpts = (_defs$char = defs[char]) !== null && _defs$char !== void 0 && _defs$char.mask && !(((_defs$char2 = defs[char]) === null || _defs$char2 === void 0 ? void 0 : _defs$char2.mask.prototype) instanceof IMask.Masked) ? defs[char] : {\n mask: defs[char]\n };\n const def = isInput ? new PatternInputDefinition(Object.assign({\n parent: this,\n isOptional: optionalBlock,\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar\n }, maskOpts)) : new PatternFixedDefinition({\n char,\n eager: this.eager,\n isUnmasking: unmaskingBlock\n });\n this._blocks.push(def);\n }\n }\n\n /**\n @override\n */\n get state() {\n return Object.assign({}, super.state, {\n _blocks: this._blocks.map(b => b.state)\n });\n }\n set state(state) {\n const {\n _blocks\n } = state,\n maskedState = _objectWithoutPropertiesLoose(state, _excluded$2);\n this._blocks.forEach((b, bi) => b.state = _blocks[bi]);\n super.state = maskedState;\n }\n\n /**\n @override\n */\n reset() {\n super.reset();\n this._blocks.forEach(b => b.reset());\n }\n\n /**\n @override\n */\n get isComplete() {\n return this._blocks.every(b => b.isComplete);\n }\n\n /**\n @override\n */\n get isFilled() {\n return this._blocks.every(b => b.isFilled);\n }\n get isFixed() {\n return this._blocks.every(b => b.isFixed);\n }\n get isOptional() {\n return this._blocks.every(b => b.isOptional);\n }\n\n /**\n @override\n */\n doCommit() {\n this._blocks.forEach(b => b.doCommit());\n super.doCommit();\n }\n\n /**\n @override\n */\n get unmaskedValue() {\n return this._blocks.reduce((str, b) => str += b.unmaskedValue, '');\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n\n /**\n @override\n */\n get value() {\n // TODO return _value when not in change?\n return this._blocks.reduce((str, b) => str += b.value, '');\n }\n set value(value) {\n super.value = value;\n }\n get displayValue() {\n return this._blocks.reduce((str, b) => str += b.displayValue, '');\n }\n\n /**\n @override\n */\n appendTail(tail) {\n return super.appendTail(tail).aggregate(this._appendPlaceholder());\n }\n\n /**\n @override\n */\n _appendEager() {\n var _this$_mapPosToBlock;\n const details = new ChangeDetails();\n let startBlockIndex = (_this$_mapPosToBlock = this._mapPosToBlock(this.value.length)) === null || _this$_mapPosToBlock === void 0 ? void 0 : _this$_mapPosToBlock.index;\n if (startBlockIndex == null) return details;\n\n // TODO test if it works for nested pattern masks\n if (this._blocks[startBlockIndex].isFilled) ++startBlockIndex;\n for (let bi = startBlockIndex; bi < this._blocks.length; ++bi) {\n const d = this._blocks[bi]._appendEager();\n if (!d.inserted) break;\n details.aggregate(d);\n }\n return details;\n }\n\n /**\n @override\n */\n _appendCharRaw(ch) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const blockIter = this._mapPosToBlock(this.value.length);\n const details = new ChangeDetails();\n if (!blockIter) return details;\n for (let bi = blockIter.index;; ++bi) {\n var _flags$_beforeTailSta, _flags$_beforeTailSta2;\n const block = this._blocks[bi];\n if (!block) break;\n const blockDetails = block._appendChar(ch, Object.assign({}, flags, {\n _beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) === null || _flags$_beforeTailSta === void 0 ? void 0 : (_flags$_beforeTailSta2 = _flags$_beforeTailSta._blocks) === null || _flags$_beforeTailSta2 === void 0 ? void 0 : _flags$_beforeTailSta2[bi]\n }));\n const skip = blockDetails.skip;\n details.aggregate(blockDetails);\n if (skip || blockDetails.rawInserted) break; // go next char\n }\n\n return details;\n }\n\n /**\n @override\n */\n extractTail() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n const chunkTail = new ChunksTailDetails();\n if (fromPos === toPos) return chunkTail;\n this._forEachBlocksInRange(fromPos, toPos, (b, bi, bFromPos, bToPos) => {\n const blockChunk = b.extractTail(bFromPos, bToPos);\n blockChunk.stop = this._findStopBefore(bi);\n blockChunk.from = this._blockStartPos(bi);\n if (blockChunk instanceof ChunksTailDetails) blockChunk.blockIndex = bi;\n chunkTail.extend(blockChunk);\n });\n return chunkTail;\n }\n\n /**\n @override\n */\n extractInput() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n let flags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (fromPos === toPos) return '';\n let input = '';\n this._forEachBlocksInRange(fromPos, toPos, (b, _, fromPos, toPos) => {\n input += b.extractInput(fromPos, toPos, flags);\n });\n return input;\n }\n _findStopBefore(blockIndex) {\n let stopBefore;\n for (let si = 0; si < this._stops.length; ++si) {\n const stop = this._stops[si];\n if (stop <= blockIndex) stopBefore = stop;else break;\n }\n return stopBefore;\n }\n\n /** Appends placeholder depending on laziness */\n _appendPlaceholder(toBlockIndex) {\n const details = new ChangeDetails();\n if (this.lazy && toBlockIndex == null) return details;\n const startBlockIter = this._mapPosToBlock(this.value.length);\n if (!startBlockIter) return details;\n const startBlockIndex = startBlockIter.index;\n const endBlockIndex = toBlockIndex != null ? toBlockIndex : this._blocks.length;\n this._blocks.slice(startBlockIndex, endBlockIndex).forEach(b => {\n if (!b.lazy || toBlockIndex != null) {\n // $FlowFixMe `_blocks` may not be present\n const args = b._blocks != null ? [b._blocks.length] : [];\n const bDetails = b._appendPlaceholder(...args);\n this._value += bDetails.inserted;\n details.aggregate(bDetails);\n }\n });\n return details;\n }\n\n /** Finds block in pos */\n _mapPosToBlock(pos) {\n let accVal = '';\n for (let bi = 0; bi < this._blocks.length; ++bi) {\n const block = this._blocks[bi];\n const blockStartPos = accVal.length;\n accVal += block.value;\n if (pos <= accVal.length) {\n return {\n index: bi,\n offset: pos - blockStartPos\n };\n }\n }\n }\n\n /** */\n _blockStartPos(blockIndex) {\n return this._blocks.slice(0, blockIndex).reduce((pos, b) => pos += b.value.length, 0);\n }\n\n /** */\n _forEachBlocksInRange(fromPos) {\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n let fn = arguments.length > 2 ? arguments[2] : undefined;\n const fromBlockIter = this._mapPosToBlock(fromPos);\n if (fromBlockIter) {\n const toBlockIter = this._mapPosToBlock(toPos);\n // process first block\n const isSameBlock = toBlockIter && fromBlockIter.index === toBlockIter.index;\n const fromBlockStartPos = fromBlockIter.offset;\n const fromBlockEndPos = toBlockIter && isSameBlock ? toBlockIter.offset : this._blocks[fromBlockIter.index].value.length;\n fn(this._blocks[fromBlockIter.index], fromBlockIter.index, fromBlockStartPos, fromBlockEndPos);\n if (toBlockIter && !isSameBlock) {\n // process intermediate blocks\n for (let bi = fromBlockIter.index + 1; bi < toBlockIter.index; ++bi) {\n fn(this._blocks[bi], bi, 0, this._blocks[bi].value.length);\n }\n\n // process last block\n fn(this._blocks[toBlockIter.index], toBlockIter.index, 0, toBlockIter.offset);\n }\n }\n }\n\n /**\n @override\n */\n remove() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n const removeDetails = super.remove(fromPos, toPos);\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n removeDetails.aggregate(b.remove(bFromPos, bToPos));\n });\n return removeDetails;\n }\n\n /**\n @override\n */\n nearestInputPos(cursorPos) {\n let direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DIRECTION.NONE;\n if (!this._blocks.length) return 0;\n const cursor = new PatternCursor(this, cursorPos);\n if (direction === DIRECTION.NONE) {\n // -------------------------------------------------\n // NONE should only go out from fixed to the right!\n // -------------------------------------------------\n if (cursor.pushRightBeforeInput()) return cursor.pos;\n cursor.popState();\n if (cursor.pushLeftBeforeInput()) return cursor.pos;\n return this.value.length;\n }\n\n // FORCE is only about a|* otherwise is 0\n if (direction === DIRECTION.LEFT || direction === DIRECTION.FORCE_LEFT) {\n // try to break fast when *|a\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeFilled();\n if (cursor.ok && cursor.pos === cursorPos) return cursorPos;\n cursor.popState();\n }\n\n // forward flow\n cursor.pushLeftBeforeInput();\n cursor.pushLeftBeforeRequired();\n cursor.pushLeftBeforeFilled();\n\n // backward flow\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n }\n if (cursor.ok) return cursor.pos;\n if (direction === DIRECTION.FORCE_LEFT) return 0;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n\n // cursor.popState();\n // if (\n // cursor.pushRightBeforeInput() &&\n // // TODO HACK for lazy if has aligned left inside fixed and has came to the start - use start position\n // (!this.lazy || this.extractInput())\n // ) return cursor.pos;\n\n return 0;\n }\n if (direction === DIRECTION.RIGHT || direction === DIRECTION.FORCE_RIGHT) {\n // forward flow\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.pushRightBeforeFilled()) return cursor.pos;\n if (direction === DIRECTION.FORCE_RIGHT) return this.value.length;\n\n // backward flow\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return this.nearestInputPos(cursorPos, DIRECTION.LEFT);\n }\n return cursorPos;\n }\n\n /**\n @override\n */\n totalInputPositions() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n let total = 0;\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n total += b.totalInputPositions(bFromPos, bToPos);\n });\n return total;\n }\n\n /** Get block by name */\n maskedBlock(name) {\n return this.maskedBlocks(name)[0];\n }\n\n /** Get all blocks by name */\n maskedBlocks(name) {\n const indices = this._maskedBlocks[name];\n if (!indices) return [];\n return indices.map(gi => this._blocks[gi]);\n }\n}\nMaskedPattern.DEFAULTS = {\n lazy: true,\n placeholderChar: '_'\n};\nMaskedPattern.STOP_CHAR = '`';\nMaskedPattern.ESCAPE_CHAR = '\\\\';\nMaskedPattern.InputDefinition = PatternInputDefinition;\nMaskedPattern.FixedDefinition = PatternFixedDefinition;\nIMask.MaskedPattern = MaskedPattern;\n\n/** Pattern which accepts ranges */\nclass MaskedRange extends MaskedPattern {\n /**\n Optionally sets max length of pattern.\n Used when pattern length is longer then `to` param length. Pads zeros at start in this case.\n */\n\n /** Min bound */\n\n /** Max bound */\n\n /** */\n\n get _matchFrom() {\n return this.maxLength - String(this.from).length;\n }\n\n /**\n @override\n */\n _update(opts) {\n // TODO type\n opts = Object.assign({\n to: this.to || 0,\n from: this.from || 0,\n maxLength: this.maxLength || 0\n }, opts);\n let maxLength = String(opts.to).length;\n if (opts.maxLength != null) maxLength = Math.max(maxLength, opts.maxLength);\n opts.maxLength = maxLength;\n const fromStr = String(opts.from).padStart(maxLength, '0');\n const toStr = String(opts.to).padStart(maxLength, '0');\n let sameCharsCount = 0;\n while (sameCharsCount < toStr.length && toStr[sameCharsCount] === fromStr[sameCharsCount]) ++sameCharsCount;\n opts.mask = toStr.slice(0, sameCharsCount).replace(/0/g, '\\\\0') + '0'.repeat(maxLength - sameCharsCount);\n super._update(opts);\n }\n\n /**\n @override\n */\n get isComplete() {\n return super.isComplete && Boolean(this.value);\n }\n boundaries(str) {\n let minstr = '';\n let maxstr = '';\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/) || [];\n if (num) {\n minstr = '0'.repeat(placeholder.length) + num;\n maxstr = '9'.repeat(placeholder.length) + num;\n }\n minstr = minstr.padEnd(this.maxLength, '0');\n maxstr = maxstr.padEnd(this.maxLength, '9');\n return [minstr, maxstr];\n }\n\n // TODO str is a single char everytime\n /**\n @override\n */\n doPrepare(ch) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let details;\n [ch, details] = normalizePrepare(super.doPrepare(ch.replace(/\\D/g, ''), flags));\n if (!this.autofix || !ch) return ch;\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n let nextVal = this.value + ch;\n if (nextVal.length > this.maxLength) return '';\n const [minstr, maxstr] = this.boundaries(nextVal);\n if (Number(maxstr) < this.from) return fromStr[nextVal.length - 1];\n if (Number(minstr) > this.to) {\n if (this.autofix === 'pad' && nextVal.length < this.maxLength) {\n return ['', details.aggregate(this.append(fromStr[nextVal.length - 1] + ch, flags))];\n }\n return toStr[nextVal.length - 1];\n }\n return ch;\n }\n\n /**\n @override\n */\n doValidate() {\n const str = this.value;\n const firstNonZero = str.search(/[^0]/);\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\n const [minstr, maxstr] = this.boundaries(str);\n return this.from <= Number(maxstr) && Number(minstr) <= this.to && super.doValidate(...arguments);\n }\n}\nIMask.MaskedRange = MaskedRange;\n\n/** Date mask */\nclass MaskedDate extends MaskedPattern {\n /** Pattern mask for date according to {@link MaskedDate#format} */\n\n /** Start date */\n\n /** End date */\n\n /** */\n\n /**\n @param {Object} opts\n */\n constructor(opts) {\n super(Object.assign({}, MaskedDate.DEFAULTS, opts));\n }\n\n /**\n @override\n */\n _update(opts) {\n if (opts.mask === Date) delete opts.mask;\n if (opts.pattern) opts.mask = opts.pattern;\n const blocks = opts.blocks;\n opts.blocks = Object.assign({}, MaskedDate.GET_DEFAULT_BLOCKS());\n // adjust year block\n if (opts.min) opts.blocks.Y.from = opts.min.getFullYear();\n if (opts.max) opts.blocks.Y.to = opts.max.getFullYear();\n if (opts.min && opts.max && opts.blocks.Y.from === opts.blocks.Y.to) {\n opts.blocks.m.from = opts.min.getMonth() + 1;\n opts.blocks.m.to = opts.max.getMonth() + 1;\n if (opts.blocks.m.from === opts.blocks.m.to) {\n opts.blocks.d.from = opts.min.getDate();\n opts.blocks.d.to = opts.max.getDate();\n }\n }\n Object.assign(opts.blocks, this.blocks, blocks);\n\n // add autofix\n Object.keys(opts.blocks).forEach(bk => {\n const b = opts.blocks[bk];\n if (!('autofix' in b) && 'autofix' in opts) b.autofix = opts.autofix;\n });\n super._update(opts);\n }\n\n /**\n @override\n */\n doValidate() {\n const date = this.date;\n return super.doValidate(...arguments) && (!this.isComplete || this.isDateExist(this.value) && date != null && (this.min == null || this.min <= date) && (this.max == null || date <= this.max));\n }\n\n /** Checks if date is exists */\n isDateExist(str) {\n return this.format(this.parse(str, this), this).indexOf(str) >= 0;\n }\n\n /** Parsed Date */\n get date() {\n return this.typedValue;\n }\n set date(date) {\n this.typedValue = date;\n }\n\n /**\n @override\n */\n get typedValue() {\n return this.isComplete ? super.typedValue : null;\n }\n set typedValue(value) {\n super.typedValue = value;\n }\n\n /**\n @override\n */\n maskEquals(mask) {\n return mask === Date || super.maskEquals(mask);\n }\n}\nMaskedDate.DEFAULTS = {\n pattern: 'd{.}`m{.}`Y',\n format: date => {\n if (!date) return '';\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n return [day, month, year].join('.');\n },\n parse: str => {\n const [day, month, year] = str.split('.');\n return new Date(year, month - 1, day);\n }\n};\nMaskedDate.GET_DEFAULT_BLOCKS = () => ({\n d: {\n mask: MaskedRange,\n from: 1,\n to: 31,\n maxLength: 2\n },\n m: {\n mask: MaskedRange,\n from: 1,\n to: 12,\n maxLength: 2\n },\n Y: {\n mask: MaskedRange,\n from: 1900,\n to: 9999\n }\n});\nIMask.MaskedDate = MaskedDate;\n\n/**\n Generic element API to use with mask\n @interface\n*/\nclass MaskElement {\n /** */\n\n /** */\n\n /** */\n\n /** Safely returns selection start */\n get selectionStart() {\n let start;\n try {\n start = this._unsafeSelectionStart;\n } catch (e) {}\n return start != null ? start : this.value.length;\n }\n\n /** Safely returns selection end */\n get selectionEnd() {\n let end;\n try {\n end = this._unsafeSelectionEnd;\n } catch (e) {}\n return end != null ? end : this.value.length;\n }\n\n /** Safely sets element selection */\n select(start, end) {\n if (start == null || end == null || start === this.selectionStart && end === this.selectionEnd) return;\n try {\n this._unsafeSelect(start, end);\n } catch (e) {}\n }\n\n /** Should be overriden in subclasses */\n _unsafeSelect(start, end) {}\n /** Should be overriden in subclasses */\n get isActive() {\n return false;\n }\n /** Should be overriden in subclasses */\n bindEvents(handlers) {}\n /** Should be overriden in subclasses */\n unbindEvents() {}\n}\nIMask.MaskElement = MaskElement;\n\n/** Bridge between HTMLElement and {@link Masked} */\nclass HTMLMaskElement extends MaskElement {\n /** Mapping between HTMLElement events and mask internal events */\n\n /** HTMLElement to use mask on */\n\n /**\n @param {HTMLInputElement|HTMLTextAreaElement} input\n */\n constructor(input) {\n super();\n this.input = input;\n this._handlers = {};\n }\n\n /** */\n // $FlowFixMe https://github.com/facebook/flow/issues/2839\n get rootElement() {\n var _this$input$getRootNo, _this$input$getRootNo2, _this$input;\n return (_this$input$getRootNo = (_this$input$getRootNo2 = (_this$input = this.input).getRootNode) === null || _this$input$getRootNo2 === void 0 ? void 0 : _this$input$getRootNo2.call(_this$input)) !== null && _this$input$getRootNo !== void 0 ? _this$input$getRootNo : document;\n }\n\n /**\n Is element in focus\n @readonly\n */\n get isActive() {\n //$FlowFixMe\n return this.input === this.rootElement.activeElement;\n }\n\n /**\n Returns HTMLElement selection start\n @override\n */\n get _unsafeSelectionStart() {\n return this.input.selectionStart;\n }\n\n /**\n Returns HTMLElement selection end\n @override\n */\n get _unsafeSelectionEnd() {\n return this.input.selectionEnd;\n }\n\n /**\n Sets HTMLElement selection\n @override\n */\n _unsafeSelect(start, end) {\n this.input.setSelectionRange(start, end);\n }\n\n /**\n HTMLElement value\n @override\n */\n get value() {\n return this.input.value;\n }\n set value(value) {\n this.input.value = value;\n }\n\n /**\n Binds HTMLElement events to mask internal events\n @override\n */\n bindEvents(handlers) {\n Object.keys(handlers).forEach(event => this._toggleEventHandler(HTMLMaskElement.EVENTS_MAP[event], handlers[event]));\n }\n\n /**\n Unbinds HTMLElement events to mask internal events\n @override\n */\n unbindEvents() {\n Object.keys(this._handlers).forEach(event => this._toggleEventHandler(event));\n }\n\n /** */\n _toggleEventHandler(event, handler) {\n if (this._handlers[event]) {\n this.input.removeEventListener(event, this._handlers[event]);\n delete this._handlers[event];\n }\n if (handler) {\n this.input.addEventListener(event, handler);\n this._handlers[event] = handler;\n }\n }\n}\nHTMLMaskElement.EVENTS_MAP = {\n selectionChange: 'keydown',\n input: 'input',\n drop: 'drop',\n click: 'click',\n focus: 'focus',\n commit: 'blur'\n};\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nclass HTMLContenteditableMaskElement extends HTMLMaskElement {\n /**\n Returns HTMLElement selection start\n @override\n */\n get _unsafeSelectionStart() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset < focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /**\n Returns HTMLElement selection end\n @override\n */\n get _unsafeSelectionEnd() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset > focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /**\n Sets HTMLElement selection\n @override\n */\n _unsafeSelect(start, end) {\n if (!this.rootElement.createRange) return;\n const range = this.rootElement.createRange();\n range.setStart(this.input.firstChild || this.input, start);\n range.setEnd(this.input.lastChild || this.input, end);\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n /**\n HTMLElement value\n @override\n */\n get value() {\n // $FlowFixMe\n return this.input.textContent;\n }\n set value(value) {\n this.input.textContent = value;\n }\n}\nIMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;\n\nconst _excluded$1 = [\"mask\"];\n\n/** Listens to element events and controls changes between element and {@link Masked} */\nclass InputMask {\n /**\n View element\n @readonly\n */\n\n /**\n Internal {@link Masked} model\n @readonly\n */\n\n /**\n @param {MaskElement|HTMLInputElement|HTMLTextAreaElement} el\n @param {Object} opts\n */\n constructor(el, opts) {\n this.el = el instanceof MaskElement ? el : el.isContentEditable && el.tagName !== 'INPUT' && el.tagName !== 'TEXTAREA' ? new HTMLContenteditableMaskElement(el) : new HTMLMaskElement(el);\n this.masked = createMask(opts);\n this._listeners = {};\n this._value = '';\n this._unmaskedValue = '';\n this._saveSelection = this._saveSelection.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onChange = this._onChange.bind(this);\n this._onDrop = this._onDrop.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onClick = this._onClick.bind(this);\n this.alignCursor = this.alignCursor.bind(this);\n this.alignCursorFriendly = this.alignCursorFriendly.bind(this);\n this._bindEvents();\n\n // refresh\n this.updateValue();\n this._onChange();\n }\n\n /** Read or update mask */\n get mask() {\n return this.masked.mask;\n }\n maskEquals(mask) {\n var _this$masked;\n return mask == null || ((_this$masked = this.masked) === null || _this$masked === void 0 ? void 0 : _this$masked.maskEquals(mask));\n }\n set mask(mask) {\n if (this.maskEquals(mask)) return;\n\n // $FlowFixMe No ideas ... after update\n if (!(mask instanceof IMask.Masked) && this.masked.constructor === maskedClass(mask)) {\n this.masked.updateOptions({\n mask\n });\n return;\n }\n const masked = createMask({\n mask\n });\n masked.unmaskedValue = this.masked.unmaskedValue;\n this.masked = masked;\n }\n\n /** Raw value */\n get value() {\n return this._value;\n }\n set value(str) {\n if (this.value === str) return;\n this.masked.value = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Unmasked value */\n get unmaskedValue() {\n return this._unmaskedValue;\n }\n set unmaskedValue(str) {\n if (this.unmaskedValue === str) return;\n this.masked.unmaskedValue = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Typed unmasked value */\n get typedValue() {\n return this.masked.typedValue;\n }\n set typedValue(val) {\n if (this.masked.typedValueEquals(val)) return;\n this.masked.typedValue = val;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Display value */\n get displayValue() {\n return this.masked.displayValue;\n }\n\n /**\n Starts listening to element events\n @protected\n */\n _bindEvents() {\n this.el.bindEvents({\n selectionChange: this._saveSelection,\n input: this._onInput,\n drop: this._onDrop,\n click: this._onClick,\n focus: this._onFocus,\n commit: this._onChange\n });\n }\n\n /**\n Stops listening to element events\n @protected\n */\n _unbindEvents() {\n if (this.el) this.el.unbindEvents();\n }\n\n /**\n Fires custom event\n @protected\n */\n _fireEvent(ev) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n const listeners = this._listeners[ev];\n if (!listeners) return;\n listeners.forEach(l => l(...args));\n }\n\n /**\n Current selection start\n @readonly\n */\n get selectionStart() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart;\n }\n\n /** Current cursor position */\n get cursorPos() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd;\n }\n set cursorPos(pos) {\n if (!this.el || !this.el.isActive) return;\n this.el.select(pos, pos);\n this._saveSelection();\n }\n\n /**\n Stores current selection\n @protected\n */\n _saveSelection( /* ev */\n ) {\n if (this.displayValue !== this.el.value) {\n console.warn('Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly.'); // eslint-disable-line no-console\n }\n\n this._selection = {\n start: this.selectionStart,\n end: this.cursorPos\n };\n }\n\n /** Syncronizes model value from view */\n updateValue() {\n this.masked.value = this.el.value;\n this._value = this.masked.value;\n }\n\n /** Syncronizes view from model value, fires change events */\n updateControl() {\n const newUnmaskedValue = this.masked.unmaskedValue;\n const newValue = this.masked.value;\n const newDisplayValue = this.displayValue;\n const isChanged = this.unmaskedValue !== newUnmaskedValue || this.value !== newValue;\n this._unmaskedValue = newUnmaskedValue;\n this._value = newValue;\n if (this.el.value !== newDisplayValue) this.el.value = newDisplayValue;\n if (isChanged) this._fireChangeEvents();\n }\n\n /** Updates options with deep equal check, recreates @{link Masked} model if mask type changes */\n updateOptions(opts) {\n const {\n mask\n } = opts,\n restOpts = _objectWithoutPropertiesLoose(opts, _excluded$1);\n const updateMask = !this.maskEquals(mask);\n const updateOpts = !objectIncludes(this.masked, restOpts);\n if (updateMask) this.mask = mask;\n if (updateOpts) this.masked.updateOptions(restOpts);\n if (updateMask || updateOpts) this.updateControl();\n }\n\n /** Updates cursor */\n updateCursor(cursorPos) {\n if (cursorPos == null) return;\n this.cursorPos = cursorPos;\n\n // also queue change cursor for mobile browsers\n this._delayUpdateCursor(cursorPos);\n }\n\n /**\n Delays cursor update to support mobile browsers\n @private\n */\n _delayUpdateCursor(cursorPos) {\n this._abortUpdateCursor();\n this._changingCursorPos = cursorPos;\n this._cursorChanging = setTimeout(() => {\n if (!this.el) return; // if was destroyed\n this.cursorPos = this._changingCursorPos;\n this._abortUpdateCursor();\n }, 10);\n }\n\n /**\n Fires custom events\n @protected\n */\n _fireChangeEvents() {\n this._fireEvent('accept', this._inputEvent);\n if (this.masked.isComplete) this._fireEvent('complete', this._inputEvent);\n }\n\n /**\n Aborts delayed cursor update\n @private\n */\n _abortUpdateCursor() {\n if (this._cursorChanging) {\n clearTimeout(this._cursorChanging);\n delete this._cursorChanging;\n }\n }\n\n /** Aligns cursor to nearest available position */\n alignCursor() {\n this.cursorPos = this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos, DIRECTION.LEFT));\n }\n\n /** Aligns cursor only if selection is empty */\n alignCursorFriendly() {\n if (this.selectionStart !== this.cursorPos) return; // skip if range is selected\n this.alignCursor();\n }\n\n /** Adds listener on custom event */\n on(ev, handler) {\n if (!this._listeners[ev]) this._listeners[ev] = [];\n this._listeners[ev].push(handler);\n return this;\n }\n\n /** Removes custom event listener */\n off(ev, handler) {\n if (!this._listeners[ev]) return this;\n if (!handler) {\n delete this._listeners[ev];\n return this;\n }\n const hIndex = this._listeners[ev].indexOf(handler);\n if (hIndex >= 0) this._listeners[ev].splice(hIndex, 1);\n return this;\n }\n\n /** Handles view input event */\n _onInput(e) {\n this._inputEvent = e;\n this._abortUpdateCursor();\n\n // fix strange IE behavior\n if (!this._selection) return this.updateValue();\n const details = new ActionDetails(\n // new state\n this.el.value, this.cursorPos,\n // old state\n this.displayValue, this._selection);\n const oldRawValue = this.masked.rawInputValue;\n const offset = this.masked.splice(details.startChangePos, details.removed.length, details.inserted, details.removeDirection, {\n input: true,\n raw: true\n }).offset;\n\n // force align in remove direction only if no input chars were removed\n // otherwise we still need to align with NONE (to get out from fixed symbols for instance)\n const removeDirection = oldRawValue === this.masked.rawInputValue ? details.removeDirection : DIRECTION.NONE;\n let cursorPos = this.masked.nearestInputPos(details.startChangePos + offset, removeDirection);\n if (removeDirection !== DIRECTION.NONE) cursorPos = this.masked.nearestInputPos(cursorPos, DIRECTION.NONE);\n this.updateControl();\n this.updateCursor(cursorPos);\n delete this._inputEvent;\n }\n\n /** Handles view change event and commits model value */\n _onChange() {\n if (this.displayValue !== this.el.value) {\n this.updateValue();\n }\n this.masked.doCommit();\n this.updateControl();\n this._saveSelection();\n }\n\n /** Handles view drop event, prevents by default */\n _onDrop(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n /** Restore last selection on focus */\n _onFocus(ev) {\n this.alignCursorFriendly();\n }\n\n /** Restore last selection on focus */\n _onClick(ev) {\n this.alignCursorFriendly();\n }\n\n /** Unbind view events and removes element reference */\n destroy() {\n this._unbindEvents();\n // $FlowFixMe why not do so?\n this._listeners.length = 0;\n // $FlowFixMe\n delete this.el;\n }\n}\nIMask.InputMask = InputMask;\n\n/**\n Number mask\n @param {Object} opts\n @param {string} opts.radix - Single char\n @param {string} opts.thousandsSeparator - Single char\n @param {Array} opts.mapToRadix - Array of single chars\n @param {number} opts.min\n @param {number} opts.max\n @param {number} opts.scale - Digits after point\n @param {boolean} opts.signed - Allow negative\n @param {boolean} opts.normalizeZeros - Flag to remove leading and trailing zeros in the end of editing\n @param {boolean} opts.padFractionalZeros - Flag to pad trailing zeros after point in the end of editing\n*/\nclass MaskedNumber extends Masked {\n /** Single char */\n\n /** Single char */\n\n /** Array of single chars */\n\n /** */\n\n /** */\n\n /** Digits after point */\n\n /** */\n\n /** Flag to remove leading and trailing zeros in the end of editing */\n\n /** Flag to pad trailing zeros after point in the end of editing */\n\n constructor(opts) {\n super(Object.assign({}, MaskedNumber.DEFAULTS, opts));\n }\n\n /**\n @override\n */\n _update(opts) {\n super._update(opts);\n this._updateRegExps();\n }\n\n /** */\n _updateRegExps() {\n let start = '^' + (this.allowNegative ? '[+|\\\\-]?' : '');\n let mid = '\\\\d*';\n let end = (this.scale ? \"(\".concat(escapeRegExp(this.radix), \"\\\\d{0,\").concat(this.scale, \"})?\") : '') + '$';\n this._numberRegExp = new RegExp(start + mid + end);\n this._mapToRadixRegExp = new RegExp(\"[\".concat(this.mapToRadix.map(escapeRegExp).join(''), \"]\"), 'g');\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(this.thousandsSeparator), 'g');\n }\n\n /** */\n _removeThousandsSeparators(value) {\n return value.replace(this._thousandsSeparatorRegExp, '');\n }\n\n /** */\n _insertThousandsSeparators(value) {\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n const parts = value.split(this.radix);\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\n return parts.join(this.radix);\n }\n\n /**\n @override\n */\n doPrepare(ch) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n ch = this._removeThousandsSeparators(this.scale && this.mapToRadix.length && (\n /*\n radix should be mapped when\n 1) input is done from keyboard = flags.input && flags.raw\n 2) unmasked value is set = !flags.input && !flags.raw\n and should not be mapped when\n 1) value is set = flags.input && !flags.raw\n 2) raw value is set = !flags.input && flags.raw\n */\n flags.input && flags.raw || !flags.input && !flags.raw) ? ch.replace(this._mapToRadixRegExp, this.radix) : ch);\n const [prepCh, details] = normalizePrepare(super.doPrepare(ch, flags));\n if (ch && !prepCh) details.skip = true;\n return [prepCh, details];\n }\n\n /** */\n _separatorsCount(to) {\n let extendOnSeparators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let count = 0;\n for (let pos = 0; pos < to; ++pos) {\n if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {\n ++count;\n if (extendOnSeparators) to += this.thousandsSeparator.length;\n }\n }\n return count;\n }\n\n /** */\n _separatorsCountFromSlice() {\n let slice = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._value;\n return this._separatorsCount(this._removeThousandsSeparators(slice).length, true);\n }\n\n /**\n @override\n */\n extractInput() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n let flags = arguments.length > 2 ? arguments[2] : undefined;\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n return this._removeThousandsSeparators(super.extractInput(fromPos, toPos, flags));\n }\n\n /**\n @override\n */\n _appendCharRaw(ch) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.thousandsSeparator) return super._appendCharRaw(ch, flags);\n const prevBeforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const prevBeforeTailSeparatorsCount = this._separatorsCountFromSlice(prevBeforeTailValue);\n this._value = this._removeThousandsSeparators(this.value);\n const appendDetails = super._appendCharRaw(ch, flags);\n this._value = this._insertThousandsSeparators(this._value);\n const beforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(beforeTailValue);\n appendDetails.tailShift += (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length;\n appendDetails.skip = !appendDetails.rawInserted && ch === this.thousandsSeparator;\n return appendDetails;\n }\n\n /** */\n _findSeparatorAround(pos) {\n if (this.thousandsSeparator) {\n const searchFrom = pos - this.thousandsSeparator.length + 1;\n const separatorPos = this.value.indexOf(this.thousandsSeparator, searchFrom);\n if (separatorPos <= pos) return separatorPos;\n }\n return -1;\n }\n _adjustRangeWithSeparators(from, to) {\n const separatorAroundFromPos = this._findSeparatorAround(from);\n if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;\n const separatorAroundToPos = this._findSeparatorAround(to);\n if (separatorAroundToPos >= 0) to = separatorAroundToPos + this.thousandsSeparator.length;\n return [from, to];\n }\n\n /**\n @override\n */\n remove() {\n let fromPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let toPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.value.length;\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n const valueBeforePos = this.value.slice(0, fromPos);\n const valueAfterPos = this.value.slice(toPos);\n const prevBeforeTailSeparatorsCount = this._separatorsCount(valueBeforePos.length);\n this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(valueBeforePos + valueAfterPos));\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(valueBeforePos);\n return new ChangeDetails({\n tailShift: (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length\n });\n }\n\n /**\n @override\n */\n nearestInputPos(cursorPos, direction) {\n if (!this.thousandsSeparator) return cursorPos;\n switch (direction) {\n case DIRECTION.NONE:\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n {\n const separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);\n if (separatorAtLeftPos >= 0) {\n const separatorAtLeftEndPos = separatorAtLeftPos + this.thousandsSeparator.length;\n if (cursorPos < separatorAtLeftEndPos || this.value.length <= separatorAtLeftEndPos || direction === DIRECTION.FORCE_LEFT) {\n return separatorAtLeftPos;\n }\n }\n break;\n }\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n {\n const separatorAtRightPos = this._findSeparatorAround(cursorPos);\n if (separatorAtRightPos >= 0) {\n return separatorAtRightPos + this.thousandsSeparator.length;\n }\n }\n }\n return cursorPos;\n }\n\n /**\n @override\n */\n doValidate(flags) {\n // validate as string\n let valid = Boolean(this._removeThousandsSeparators(this.value).match(this._numberRegExp));\n if (valid) {\n // validate as number\n const number = this.number;\n valid = valid && !isNaN(number) && (\n // check min bound for negative values\n this.min == null || this.min >= 0 || this.min <= this.number) && (\n // check max bound for positive values\n this.max == null || this.max <= 0 || this.number <= this.max);\n }\n return valid && super.doValidate(flags);\n }\n\n /**\n @override\n */\n doCommit() {\n if (this.value) {\n const number = this.number;\n let validnum = number;\n\n // check bounds\n if (this.min != null) validnum = Math.max(validnum, this.min);\n if (this.max != null) validnum = Math.min(validnum, this.max);\n if (validnum !== number) this.unmaskedValue = this.doFormat(validnum);\n let formatted = this.value;\n if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);\n if (this.padFractionalZeros && this.scale > 0) formatted = this._padFractionalZeros(formatted);\n this._value = formatted;\n }\n super.doCommit();\n }\n\n /** */\n _normalizeZeros(value) {\n const parts = this._removeThousandsSeparators(value).split(this.radix);\n\n // remove leading zeros\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\n // add leading zero\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\n if (parts.length > 1) {\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\n if (!parts[1].length) parts.length = 1; // remove fractional\n }\n\n return this._insertThousandsSeparators(parts.join(this.radix));\n }\n\n /** */\n _padFractionalZeros(value) {\n if (!value) return value;\n const parts = value.split(this.radix);\n if (parts.length < 2) parts.push('');\n parts[1] = parts[1].padEnd(this.scale, '0');\n return parts.join(this.radix);\n }\n\n /** */\n doSkipInvalid(ch) {\n let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let checkTail = arguments.length > 2 ? arguments[2] : undefined;\n const dropFractional = this.scale === 0 && ch !== this.thousandsSeparator && (ch === this.radix || ch === MaskedNumber.UNMASKED_RADIX || this.mapToRadix.includes(ch));\n return super.doSkipInvalid(ch, flags, checkTail) && !dropFractional;\n }\n\n /**\n @override\n */\n get unmaskedValue() {\n return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, MaskedNumber.UNMASKED_RADIX);\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n\n /**\n @override\n */\n get typedValue() {\n return this.doParse(this.unmaskedValue);\n }\n set typedValue(n) {\n this.rawInputValue = this.doFormat(n).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n }\n\n /** Parsed Number */\n get number() {\n return this.typedValue;\n }\n set number(number) {\n this.typedValue = number;\n }\n\n /**\n Is negative allowed\n @readonly\n */\n get allowNegative() {\n return this.signed || this.min != null && this.min < 0 || this.max != null && this.max < 0;\n }\n\n /**\n @override\n */\n typedValueEquals(value) {\n // handle 0 -> '' case (typed = 0 even if value = '')\n // for details see https://github.com/uNmAnNeR/imaskjs/issues/134\n return (super.typedValueEquals(value) || MaskedNumber.EMPTY_VALUES.includes(value) && MaskedNumber.EMPTY_VALUES.includes(this.typedValue)) && !(value === 0 && this.value === '');\n }\n}\nMaskedNumber.UNMASKED_RADIX = '.';\nMaskedNumber.DEFAULTS = {\n radix: ',',\n thousandsSeparator: '',\n mapToRadix: [MaskedNumber.UNMASKED_RADIX],\n scale: 2,\n signed: false,\n normalizeZeros: true,\n padFractionalZeros: false,\n parse: Number,\n format: n => n.toLocaleString('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20\n })\n};\nMaskedNumber.EMPTY_VALUES = [...Masked.EMPTY_VALUES, 0];\nIMask.MaskedNumber = MaskedNumber;\n\nvar _excluded = [\"name\", \"maskOptions\", \"onAccept\", \"onComplete\", \"value\"];\nvar MaskType = {\n Range: IMask.MaskedRange\n};\nvar MaskedTextInput = forwardRef(function (_ref, ref) {\n var name = _ref.name,\n _ref$maskOptions = _ref.maskOptions,\n maskOptions = _ref$maskOptions === void 0 ? {\n mask: Number\n } : _ref$maskOptions,\n onAccept = _ref.onAccept,\n onComplete = _ref.onComplete,\n value = _ref.value,\n rest = _objectWithoutProperties(_ref, _excluded);\n var internalRef = useRef();\n var inputRef = ref || internalRef;\n var maskedRef = useRef(null);\n useEffect(function () {\n var masked = maskedRef.current;\n /* istanbul ignore else */\n if (masked) {\n masked.updateOptions(maskOptions);\n }\n }, [maskOptions]);\n useEffect(function () {\n var masked = maskedRef.current;\n /* istanbul ignore else */\n if (masked) {\n masked.unmaskedValue = value;\n }\n }, [value]);\n useEffect(function () {\n var elm = inputRef.current;\n /* istanbul ignore else */\n if (elm && !maskedRef.current) {\n // eslint-disable-next-line\n maskedRef.current = IMask(elm, maskOptions);\n var masked = maskedRef.current;\n masked.on('accept', function () {\n /* istanbul ignore else */\n if (onAccept) {\n onAccept(masked.value, masked.unmaskedValue, masked.typedValue);\n }\n });\n masked.on('complete', function () {\n /* istanbul ignore else */\n if (onComplete) {\n onComplete(masked.value, masked.unmaskedValue, masked.typedValue);\n }\n });\n }\n return function () {\n /* istanbul ignore else */\n if (maskedRef.current) {\n var _masked = maskedRef.current;\n _masked.off('accept');\n _masked.off('complete');\n _masked.destroy();\n maskedRef.current = null;\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(TextInput, _extends({\n name: name,\n value: value,\n ref: inputRef,\n \"data-ppui-info\": \"masked-text-input_3.1.7__8.6.0\"\n }, rest));\n});\n\nexport { MaskType, MaskedTextInput };\n","'use client';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { forwardRef, useContext } from 'react';\nimport { MaskedTextInput } from '@paypalcorp/pp-react-masked-text-input';\nimport { IntlContext, getCurrencyMaskOptions } from '@paypalcorp/pp-react-intl';\n\nvar _excluded = [\"name\", \"maskOptions\", \"prefix\", \"suffix\", \"currencyType\", \"value\"];\nvar CurrencyInput = forwardRef(function (_ref, ref) {\n var name = _ref.name,\n maskOptions = _ref.maskOptions,\n prefix = _ref.prefix,\n suffix = _ref.suffix,\n _ref$currencyType = _ref.currencyType,\n currencyType = _ref$currencyType === void 0 ? 'USD' : _ref$currencyType,\n value = _ref.value,\n rest = _objectWithoutProperties(_ref, _excluded);\n var intlContext = useContext(IntlContext);\n var _getCurrencyMaskOptio = getCurrencyMaskOptions(intlContext, maskOptions, currencyType),\n currencyMaskOptions = _getCurrencyMaskOptio.currencyMaskOptions,\n intlCurrencyPrefix = _getCurrencyMaskOptio.intlCurrencyPrefix,\n intlCurrencySuffix = _getCurrencyMaskOptio.intlCurrencySuffix;\n var inputMode = 'decimal';\n var computedValue = value;\n if (currencyMaskOptions) {\n //istanbul ignore next\n if (currencyMaskOptions.scale === 0) {\n inputMode = 'numeric';\n }\n if (computedValue) {\n var _computedValue$split = computedValue.split('.'),\n _computedValue$split2 = _slicedToArray(_computedValue$split, 2),\n wholePart = _computedValue$split2[0],\n fractionalPart = _computedValue$split2[1];\n if (fractionalPart) {\n var fractionValue = fractionalPart.substring(0, currencyMaskOptions.scale);\n computedValue = wholePart + (fractionValue ? '.' + fractionValue : '');\n }\n }\n }\n return /*#__PURE__*/React.createElement(MaskedTextInput, _extends({\n name: name,\n value: computedValue,\n maskOptions: currencyMaskOptions,\n prefix: prefix ? prefix : intlCurrencyPrefix,\n suffix: suffix ? suffix : intlCurrencySuffix,\n inputMode: inputMode,\n ref: ref,\n \"data-ppui-info\": \"currency-input_3.1.7__8.6.0\"\n }, rest));\n});\n\nexport { CurrencyInput };\n","import \"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA42a224ruRFF3+crCBgBMoCOQXbzPm/zPsggPzAgm92yraslS7IU5N8Dts9BQnLX6diAH3bTxcUqbhZ1ef5L3DZTdBNn//qFsW/f/lKP5LYH7pl4Fp06jbvf/lcXWW/UzrOu1nrP+lqTnslaU57pWtOe2XYW45ngtWghkANAAQBFADQAoORZ92yaaUYQcgIh1wDnJYdsIr56xsFEb56JWtvkocK2g7f5QVu6XZb7dvg+6416AEs7gqW9e9Y1azt51jc5PHsmTS1+eKabmBfPTBPz6plrqn/zrNE+57y067/jtDyItAgO8yIErpDoQIlEn3cncJGEu1aoLIPYGuwfYfIGArEt3FjCgYKK7AkwFtlCDJ5JMDZ51oqjZwqMnYC1xJqol3jBBROvuDBvRGE2qDBbXIAdSvRsEK4ByWF+YkvxSHC8U+s8zQ9K7Zw14G3xQUW5gChX6hS/eVYN/fTsWyXNhkHLni0jVNkCZrvwrhRFPU/XecZLpW8UmUO5UlOzTUtNN9HNTMbPpWrnjVSrbt5GtRrmeWo15kQ26uCZeea1muBsI4w7QYY1XMULjPsK1TeobuBsc7uwtbqDY/cwDweYh9wtWjW7YJV/q8rNJuBqxZ/Nij+L+vH5549nV/Q5av3k8uMJf7ardtdef/74NucR8X6ST+7kkwf1pOdfWanpe0EdPX1HnAN9T10Lekl0ul5RsTQ+gXtDRbLwaO4dPhL7AI7mPqLL5OCZ4n8rteTZn+H+Z9j+4zjuv/1+2Kby+Qi6WD95Znh53vTr3AVRkl88+8afuaz116+2XopvBc4fY3q9VP+2QUDbvLIKaEcB7QmgAwI6FkD/HNeXbTiVQ94R0ckzWROdKaIPguiCiK4LFbvBq0v/CWp2xzfyPnusftXBAYsUS+WSHaSRfVswKTGNVIBGIxqzWCuJ73XStdWSgcCJAGdAOAvWkiPwqATWkmt8SZXfndXV+uysCmbRWHKDcICx5I7A2RM4B4CzbCv5jniAreSZ4PkgeC6AZ8FU8gavuhKYSt4R9wOzKN6yqEVTqQ7SKGAqJQGNUgSNBjTLplL47QMFTKUCwokEzgBwFkylRtANFTCVWuNXleq7qUStv3pW3svVoqUUetWkgKXUjoDZEzCHBmbZUOod0QBDqTNB80HQXBqaBTupG/HKTAFDqTvxAkwRptK85tGLltIdQaSBqbQkiDRhLK0bomVbaUshAWPpQCER5tJDg7RgLT3iC6gG7tJrsNc0YS3dWEsvWktvCBjgLr1DMIS1dGMtvWwt/U7QAHfpM6IhrKUba+nrYmooc+lPkBvKXJowl+GefZwuYymKGtN0S5imxzkzsqU0CuTMaJwzYxChbQjdz7e7CcQ7Nya2+90MCDARgGPDMi1ma03RvIB0vSKaN4Jm09BsFze82VE4+3bHmwPCORI47w3OaaFQZ4rlAxTqQuy6K4Fza3A+F2tFvednHm2tLMdAVmAg29VAtl8sl5UEkVVtuawmiAxB1FjLuqUU2UCcUTaCFA3EGWUTPqNsYzC7aDC7JlYN/GWRvyzhL9v4yy77y+6o/AB/2QO8f9sjkZ3GYfa0DHQm0vMBeC74/mgJj9nGY/ZzGegOX8nbR8vjOH4l7wROkOva1x1u2WQOfx7lgMUc+izKGQKn8ZdzyzCUwVwEOAMmJ+zlGnu56edHtKO6l3tpj2hHfHzr5vfjeV/Ljb/cdsnsjmpfbt+63R0IniPmaezllu3lqB7mgL8c0cPcFQM19nKfC+W6ExM82moFDs7CQDSv0DSv0C/VKkgME1RbqqARDNG3QuOrsOyrEAgaYKuALoWBuBSGxlRhgp8DhLVnTxOfuqn8cC+8ZF1NZoql/pr1+afU34jxGyL+1rMnPv+U+s6zJ2110OUmCvs8XikRy5M0HDx7EkKLIZT6cY7fc2tK/Z3gP3n2FMZkav3s2ZPpo6v1jzm+4WPFfyHGXwmeG8HzSYy/E/l8ePYUh0EM5fjIPXtKaRyr+FHgOLEj4vQzZxKyXG+UX/pkyrpHlXURa4NHjdcVDc5ntDif0eH9EAPOZ4y4vnEg8pOIeUdi3omIsybmfSHivxLx34g4G2LeLRF/R8TfE3EOxLxHIv47Ef9E7KszsQ+zv5xwLlT7IftLDjLJ8nyIV3yexBvBSfgr3vF5Eh84zsBxnEHgfTh0OJ9DT8SXmGdQxLyaGG8I3RJxHMEfCP5I8Gd/KamSLr+SMyRCn/3FhezL/TNMnp3WMfxdrZhaMb3KzUz9Wo5Zt2NkNeSlHWKqIUSHG96+/2un1Ir9908bYEMN5DXNlhopqoE7vLuHPVHVA7GG7NqRd0lVcYiuOGTX9tYO9bxnYnx2relUNwylfiHGZ9cmxUX1JaVh7oqjUabaBdm11nDByy9lDHci/mPWRzuWPInPuhtCmbf05VpV3z5ShznTV1eMo6ziEF0xZdcO3Ogqn0kT+twVQ/4tdfu1rnGoeBwxb8DdO81dsVdSlvlM2bV80KOo9OxaOyUuqvzMrg3K8EqfcF1S7oqjnuxYnjopd0Un0+TKUyFlT8pu6FS1rjeCc4NPkbT96iq26ipph0+jtCf4s7+GKfWpGn+cbz1TN5Vfi0vZX7GLJlb5ORGcZ+yjNHdFY6ZUdsuU/aVib2PFeSX4s7/GNLqq66ZPIv6d4HngeUc+dwMTrSx1gfM2du2xXB2BY7Yad2aaylSNcvHQHxW+Y4waV300/+dJP1p8LI/uRwDuVqzr8h/pcgBXBQg/BnZyxaRaMcvntetff/vl3/8BT6b53QkwAAA=\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-hero-currency/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-hero-currency/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA7VV227bMAx991cIBYY2GFTYufSiYMP+YxgK2aYStbJkSEyadMi/D5ZdR0qcdNhS5MFARPKQh+ThjxfYCssrcOQpU2geN9mY/E4ImaVf/JeQ3NgSLLVysURaGGUsI2i5djW3oHGeELJLdsntu3/KuECw3jv0ZWTN7Q2lT7O38lGZyXhEnFGynCd/gbFLfpbSfru2qK5/kQArB2EsXBqsB8h85MJoBI2MXF01AWrjJEqjGeG5M2qF0PyLpj5A3Y5aOERTDTwFMJP/LiCy5sojcy0r3ia6b27miEOoqUNukUgtpJZNAUE20zCbwfQnWZdORxwcETfzMRA2SLmSC81IARrBRkZ33qjidiF1D1RwVdxEaNl0RL7GCbyNYgLvfaRSulrxLSNSK6mBCgWbhghhNFIn3+CgjCz3PHnbJbS0D8DnR/DbkXf0xQtjK2qsXEjNiALhN8IVXAEj6e3dw/2snRnZlE9hDRodI9po6EN00+SdyDhNK0eAO6BSU7M6Pf1t0cdJ+MGI6HkYpCdXpniJO8+WZg12D/HoHftqmloCc34igX2rB/P+2K03zb3pe2/Sg7fvpJRrJqR1SI2guK1bJTA1LyRuDx2KsJgseiovJFoXWMNByspLCd0ldQI6cRwIXI36vXvtmqeNrbiKAojTAVS834uPLAdZW8TTELd8eT7kiexD9begOMp1TMoymKTPuhuDxbb1+JYzMpn7fbdQtIAKT6/jYMatPp30CKbx04+j/Kfey5COcRTwOTw7nRb6MT88D2m7Hs39og6U2EvUsaDzFZpA+bPb6Sz63Z07GLuECVOs3D7950iQNtQteWle93cj7yo726fn8weip2c6T3Z/AMWJ9YQKCgAA\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nexport var animateCursor = '_1lto9x13';\nexport var base = '_1lto9x14';\nexport var blinker = '_1lto9x12';\nexport var borderRightColor = '_1lto9x10';\nexport var centerAlign = '_1lto9x15';\nexport var currencyPart = '_1lto9x18';\nexport var cursorPosition = '_1lto9x11';\nexport var editIcon = '_1lto9x1j';\nexport var entered = '_1lto9x1h';\nexport var errorTextSpacing = '_1lto9x16';\nexport var focusEntered = '_1lto9x1d';\nexport var focusedView = '_1lto9x1c';\nexport var symbol = '_1lto9x1g';\nexport var textInput = '_1lto9x1b';\nexport var trailingZeroesFocusedDefault = '_1lto9x1f';\nexport var trailingZerosDefault = '_1lto9x1i';\nexport var trailingZerosFocused = '_1lto9x1e';\nexport var view = '_1lto9x17';\nexport var viewCenter = '_1lto9x1a';\nexport var viewNoFocus = '_1lto9x19';","'use client';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { forwardRef, useRef, useState, useContext, useMemo, useEffect } from 'react';\nimport { CurrencyInput } from '@paypalcorp/pp-react-currency-input';\nimport { IntlContext, getCurrencyMaskOptions } from '@paypalcorp/pp-react-intl';\nimport { IconButton } from '@paypalcorp/pp-react-icon-button';\nimport { EditIcon } from '@paypalcorp/pp-react-icons';\nimport { cx, KeyboardCode, devWarning } from '@paypalcorp/pp-react-utils';\nimport * as styles from './styles.css';\nexport { styles as heroCurrencyStyles };\n\nvar _excluded = [\"name\", \"id\", \"maskOptions\", \"currencyType\", \"prefix\", \"onAccept\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"value\", \"className\", \"inputClassName\", \"label\", \"showEditIcon\", \"align\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar HeroCurrency = forwardRef(function (_ref, ref) {\n var _ref$name = _ref.name,\n name = _ref$name === void 0 ? 'heroCurrency' : _ref$name,\n _ref$id = _ref.id,\n id = _ref$id === void 0 ? name : _ref$id,\n maskOptions = _ref.maskOptions,\n currencyType = _ref.currencyType,\n prefix = _ref.prefix,\n onAccept = _ref.onAccept,\n _ref$onFocus = _ref.onFocus,\n onFocus = _ref$onFocus === void 0 ? null : _ref$onFocus,\n _ref$onBlur = _ref.onBlur,\n onBlur = _ref$onBlur === void 0 ? null : _ref$onBlur,\n _ref$onKeyDown = _ref.onKeyDown,\n onKeyDown = _ref$onKeyDown === void 0 ? null : _ref$onKeyDown,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value;\n _ref.className;\n var inputClassName = _ref.inputClassName,\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? 'Enter amount' : _ref$label,\n showEditIcon = _ref.showEditIcon,\n _ref$align = _ref.align,\n align = _ref$align === void 0 ? 'left' : _ref$align,\n rest = _objectWithoutProperties(_ref, _excluded);\n /* istanbul ignore next */\n if (!onAccept) {\n onAccept = function () {\n return devWarning('Required prop `onAccept` is missing');\n };\n }\n var internalRef = useRef();\n var _useState = useState(''),\n _useState2 = _slicedToArray(_useState, 2),\n entered = _useState2[0],\n setEntered = _useState2[1];\n var _useState3 = useState(''),\n _useState4 = _slicedToArray(_useState3, 2),\n trailingZeros = _useState4[0],\n setTrailingZeroes = _useState4[1];\n var computedRef = ref || internalRef;\n var intlContext = useContext(IntlContext);\n var currencyParts = useMemo(function () {\n return getCurrencyMaskOptions(intlContext, maskOptions, currencyType);\n }, [intlContext, maskOptions, currencyType]);\n var currencyMaskOptions = currencyParts.currencyMaskOptions,\n intlCurrencyPrefix = currencyParts.intlCurrencyPrefix,\n intlCurrencySuffix = currencyParts.intlCurrencySuffix;\n function handleChange() {\n if (computedRef === null || computedRef === void 0 ? void 0 : computedRef.current) {\n var result = transformDisplayValue(computedRef.current.value, currencyMaskOptions.radix, currencyMaskOptions.scale);\n setEntered(result.entered);\n setTrailingZeroes(result.trailingZeros);\n }\n }\n useEffect(function () {\n handleChange();\n }, [value]);\n var currencySymbol = prefix || intlCurrencyPrefix || intlCurrencySuffix || '$';\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n inputFocused = _useState6[0],\n setInputFocus = _useState6[1];\n var containerStyles = cx(styles.base, align === 'center' && styles.centerAlign, (rest.errorText || rest.helperText || rest.successText) && styles.errorTextSpacing);\n var viewStyles = cx(styles.view, inputFocused && styles.focusedView, !inputFocused && styles.viewNoFocus, align === 'center' && styles.viewCenter);\n var enteredStyles = cx(styles.entered, !inputFocused && styles.borderRightColor, inputFocused && styles.focusEntered, styles.currencyPart);\n var trailingZerosStyles = cx(!inputFocused && styles.trailingZerosDefault, inputFocused && styles.trailingZerosFocused, inputFocused && !value && styles.trailingZeroesFocusedDefault, styles.currencyPart);\n\n /* istanbul ignore next */\n function transformDisplayValue(str) {\n var decimal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';\n var scale = arguments.length > 2 ? arguments[2] : undefined;\n if (!str) {\n return {\n entered: '',\n trailingZeros: inputFocused ? '' : '0'\n };\n }\n if (str.charAt(0) === decimal) {\n // If first char is decimal then prepend '0'\n str = \"0\".concat(str);\n }\n var parts = str.split(decimal);\n return {\n entered: str,\n trailingZeros: parts.length > 1 ? new Array(scale + 1).join('0').substring(parts[1].length, scale) : ''\n };\n }\n var handleBlur = function (event) {\n setInputFocus(false);\n /* istanbul ignore if */\n if (entered !== '') {\n var computedUnmaskedValue = entered.replaceAll(currencyMaskOptions.thousandsSeparator, '').replace(currencyMaskOptions.radix, '.');\n onAccept(entered === null || entered === void 0 ? void 0 : entered.concat(trailingZeros), computedUnmaskedValue === null || computedUnmaskedValue === void 0 ? void 0 : computedUnmaskedValue.concat(trailingZeros), computedUnmaskedValue === null || computedUnmaskedValue === void 0 ? void 0 : computedUnmaskedValue.concat(trailingZeros));\n }\n if (onBlur) {\n onBlur(event);\n }\n };\n\n // skipping this since keyDown does not call onChange on input\n // so could not find way to test a backspace and generate change in value.\n // even tested with cursor selection, but a keyDown, keyPress nor keyUp of LeftArrow does not move the cursor\n /* istanbul ignore next */\n\n var options = _objectSpread(_objectSpread({}, currencyMaskOptions), {}, {\n normalizeZeros: false,\n padFractionalZeros: false\n });\n\n /* istanbul ignore next */\n var inputMode = (currencyMaskOptions === null || currencyMaskOptions === void 0 ? void 0 : currencyMaskOptions.scale) === 0 ? 'numeric' : 'decimal';\n return /*#__PURE__*/React.createElement(\"div\", {\n className: containerStyles,\n id: id,\n \"data-ppui-info\": \"hero-currency_3.1.7__8.6.0\"\n }, /*#__PURE__*/React.createElement(CurrencyInput, _extends({\n name: name,\n label: label,\n inputMode: inputMode,\n value: value,\n maskOptions: options,\n inputClassName: inputClassName,\n className: styles.textInput,\n onFocus: function handleFocus(event) {\n setInputFocus(true);\n var target = event.target;\n var val = target.value;\n /* istanbul ignore next */\n if (val) {\n // move the cursor to end for cases when user clicks on the middle of hidden input\n // setTimeout is necessary unfortunately\n setTimeout(function () {\n return target.setSelectionRange(val.length, val.length);\n }, 100);\n }\n if (onFocus) {\n onFocus(event);\n }\n },\n onBlur: handleBlur,\n onAccept: onAccept,\n onKeyDown: function handleKeys(event) {\n /* istanbul ignore next */\n var KeyCode = new KeyboardCode(event.key || event.keyCode);\n if (KeyCode.IS_SIDE_NAVIGATION) {\n event.preventDefault();\n event.stopPropagation();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n onInput: handleChange,\n prefix: currencySymbol,\n autoComplete: \"off\",\n ref: computedRef\n }, rest, {\n \"data-ppui\": \"true\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: viewStyles,\n \"aria-hidden\": \"true\",\n \"data-ppui\": \"true\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: cx(styles.symbol, styles.currencyPart),\n \"data-ppui\": \"true\"\n }, currencySymbol), /*#__PURE__*/React.createElement(\"span\", {\n className: enteredStyles,\n \"data-ppui\": \"true\"\n }, entered), /*#__PURE__*/React.createElement(\"span\", {\n className: trailingZerosStyles,\n \"data-ppui\": \"true\"\n }, trailingZeros), !inputFocused && showEditIcon && value && /*#__PURE__*/React.createElement(IconButton, {\n buttonType: \"tertiary\",\n svgIconComponent: EditIcon,\n className: styles.editIcon,\n onClick: function focusViaButton() {\n /* istanbul ignore next */\n if (computedRef === null || computedRef === void 0 ? void 0 : computedRef.current) {\n computedRef.current.focus();\n }\n },\n tabIndex: \"-1\",\n \"data-ppui\": \"true\"\n })));\n});\n\nexport { HeroCurrency };\n","// @flow\nimport React, { useMemo } from 'react'\nimport { HeroCurrency, LoadingSpinner } from '@paypalcorp/pp-react'\nimport content from 'pp-react-l10n'\nimport {\n getNonZeroValue,\n moveDecimal,\n} from '../../../../../shared/amount-utils'\nimport { useCallbackRef, useStickyKey } from '../../utils/customHooks'\nimport styled from '@emotion/styled'\nimport {\n largeAndSmaller,\n mediumAndSmaller,\n mobileAndSmaller,\n smallAndSmaller,\n} from '../../../lib/styles/media-queries'\nimport { getUSNumberFormatter } from '../../../lib/amountUtils'\n\nconst i18n = content('transfer/page/preview')\n\ntype CurrencyInputProps = {\n id: string,\n value: string,\n name: string,\n onChange: (val: number) => void,\n currencySymbol: string,\n dataNemo: string,\n showCurrencySymbol?: boolean,\n currencyPrecision: number,\n currencySeparator: CurrencySeparator,\n currencyDecimal: CurrencySeparator,\n amountLabel: string,\n showSpinner: boolean,\n isReadOnly: boolean,\n setFocus?: boolean,\n onFocus?: Function,\n inputRef: any,\n isComputedValue: boolean,\n errorText?: string,\n}\n\nconst getValueLengthIndicator = value => {\n const valueDigits = value.length\n // 1-3 chars\n if (valueDigits < 4) {\n return 'xsmall'\n // 4 to 5 chars\n } else if (valueDigits >= 4 && valueDigits <= 5) {\n return 'small'\n // 6 to 7 chars\n } else if (valueDigits > 5 && valueDigits <= 7) {\n return 'medium'\n }\n return 'large'\n}\n\nconst stylesFromValueLength = {\n xsmall: {},\n small: {\n [mobileAndSmaller]: {\n fontSize: '2.875rem',\n },\n },\n medium: {\n fontSize: '3.5rem',\n [largeAndSmaller]: {\n fontSize: '3.125rem',\n },\n [mediumAndSmaller]: {\n fontSize: '3.125rem',\n },\n [smallAndSmaller]: {\n fontSize: '3rem',\n },\n [mobileAndSmaller]: {\n fontSize: '2.25rem',\n },\n },\n large: {\n fontSize: '3rem',\n [largeAndSmaller]: {\n fontSize: '2.875rem',\n },\n [smallAndSmaller]: {\n fontSize: '2.75rem',\n },\n [mobileAndSmaller]: {\n fontSize: '2rem',\n },\n },\n}\n\nconst getStylesBasedOnValueLength = value => {\n const lengthIndicator = getValueLengthIndicator(value)\n return stylesFromValueLength[lengthIndicator]\n}\n\nconst StyledHeroCurrency = styled(HeroCurrency)(\n {\n label: 'hero-currency',\n textAlign: 'left',\n /**\n * This is a workaround for a PPUI bug where HeroCurrency doesn't support\n * \"readonly\" because they recommend using text elements (,\n * ) inside forms for readonly or disabled attributes instead,\n * which isn't semantically correct and when screen readers encounter a form\n * they switch into \"forms-mode\", skipping plain text elements (or input\n * [type=hidden] elements, in the case of ), forcing the screen\n * reader users to explicitly change the reading mode to find the missing\n * content: https://paypal.atlassian.net/browse/DTPAYPALUI-14677.\n */\n '&:has(input[readonly])': {\n '& [data-component=hero_currency--view] span::after': {\n content: 'none', // hide the text cursor when read only\n },\n },\n },\n ({ defaultValue }) => {\n /**\n * Customizations needed for HeroCurrency for our specific layouts.\n * We need to change the font size depending on the input size.\n * Important: Needed to play with some specific lengths\n * Since the \".00\" suffix appended by heroCurrency component is not\n * trackable as part of the defaultValue\n */\n\n return {\n '& [data-component=hero_currency--view]': {\n // Make the text scale from the top left corner instead\n // of the center of it.\n ...getStylesBasedOnValueLength(defaultValue),\n },\n }\n }\n)\n\nconst StyledLoadingSpinner = styled(LoadingSpinner)({\n alignSelf: 'center',\n})\n\nexport function CurrencyInput({\n value: upstreamValue,\n name = 'text-input-heroCurrency',\n showCurrencySymbol = true,\n currencySymbol = '',\n currencyDecimal,\n amountLabel = i18n('label.enterAmount'),\n currencySeparator,\n currencyPrecision,\n isReadOnly = false,\n showSpinner = false,\n id,\n dataNemo,\n setFocus = true,\n onFocus = () => {},\n onChange,\n inputRef,\n isComputedValue, // cross-currency computed input\n errorText,\n}: CurrencyInputProps) {\n const autoFocus = setFocus && !isComputedValue && !isReadOnly\n\n // Refresh HeroCurrency inner references; for readonly and cross-currency.\n const key = useStickyKey(upstreamValue, isComputedValue || isReadOnly)\n const formatUSNumber = useMemo(() => getUSNumberFormatter(currencyDecimal), [\n currencyDecimal,\n ])\n\n // Use reference since HeroCurrency's iMask keeps a closure to handlers.\n const onAcceptHandler = useCallbackRef((value, unmaskedValue) => {\n const upstreamValueUS = upstreamValue && formatUSNumber(upstreamValue)\n // Update value only if it changed since `onAccept` also runs when blurred.\n // - Note: \"1,000.00\" = \"1000\" unmasked.\n if (\n value !== upstreamValue &&\n Number(unmaskedValue) !== Number(upstreamValueUS)\n ) {\n onChange(value)\n }\n })\n\n // Use reference since HeroCurrency's iMask keeps a closure to handlers.\n const handleFocus = useCallbackRef(onFocus)\n\n // Only show spinner for cross-currency computed value\n if (isComputedValue && showSpinner) {\n return (\n \n )\n }\n\n return (\n \n )\n}\n\nexport default CurrencyInput\n","// @flow\nimport React from 'react'\nimport CurrencyInput from '../../transfer/components/currency/currencyInput'\nimport CurrencySelector from '../currency-selector'\nimport { getCurrencyPrecision } from '../../../../lib/utils/currencyShared'\nimport styled from '@emotion/styled'\nimport { useCurrencyLastUsedContext } from '../../transfer/components/currency/currencyInputProvider'\n\ntype AmountAndCurrencyProps = {\n amountId: string,\n amountLabel: string,\n amountValue: string,\n currencyCode: string,\n currencyCodeList: Array,\n currencyDecimal: CurrencySeparator,\n currencySeparator: CurrencySeparator,\n currencySymbol: string,\n dataNemo: string,\n isAmountReadOnly: boolean,\n isCurrencyDisabled?: boolean,\n isLoading: boolean,\n name: string,\n onAmountFocus: Function,\n onChange: Function,\n onCurrencyChange: Function,\n onAmountChange: Function,\n selectorLabel?: string,\n showCurrencySymbol?: boolean,\n setFocus?: boolean,\n onFocus?: Function,\n currencyCodeSelectorName?: string,\n errorText?: string,\n}\n\nconst AmountAndCurrencyWrapper = styled.div({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: '16px',\n})\n\nconst AmountAndCurrency = (props: AmountAndCurrencyProps) => {\n const {\n currencyCode,\n currencyDecimal,\n amountId,\n amountLabel,\n selectorLabel,\n currencySeparator,\n currencySymbol,\n dataNemo,\n amountValue,\n showCurrencySymbol,\n currencyCodeList,\n onAmountChange,\n onCurrencyChange,\n isAmountReadOnly,\n isCurrencyDisabled,\n isLoading,\n name,\n setFocus,\n onFocus,\n currencyCodeSelectorName,\n errorText,\n } = props\n\n const [inputRef, lastUsed, markAsLastUsed] = useCurrencyLastUsedContext()\n\n const handleAmountFocus = e => {\n markAsLastUsed()\n if (onFocus) {\n onFocus(e)\n }\n }\n\n const handleCurrencySelection = selectedCode => {\n markAsLastUsed()\n onCurrencyChange(selectedCode)\n }\n\n return (\n \n \n \n \n )\n}\n\nexport default AmountAndCurrency\n","// @flow\nimport React from 'react'\nimport { List, Flag } from '@paypalcorp/pp-react'\n\ntype CurrencyListProps = {\n id: string,\n focusedIndex: number,\n currencyOptions: Array,\n onSelection: Function,\n}\n\nconst CurrencyListForSelector = ({\n id,\n focusedIndex,\n currencyOptions,\n onSelection,\n ...rest\n}: CurrencyListProps) => {\n const optionsWithFlag = currencyOptions.map(option => {\n const countryCode = option.value.slice(0, 2)\n\n return {\n ...option,\n decoration: {\n thumbnail: ,\n align: 'center',\n },\n }\n })\n\n return (\n \n )\n}\n\nexport default CurrencyListForSelector\n","// @flow\nimport React, { useMemo, useRef, useState, useCallback } from 'react'\nimport styled from '@emotion/styled'\nimport {\n ArrowLeftIcon,\n IconButton,\n SearchInput,\n Sheet,\n} from '@paypalcorp/pp-react'\nimport Portal from '../overpanel/portal'\nimport CurrencyListForSelector from './currencyListForSelector'\nimport {\n filterCurrencyOptions,\n getCurrencyOptions,\n} from '../../transfer/utils/currencySelectorUtils'\nimport content from 'pp-react-l10n'\nconst overpanelL10n = content('inc/overpanel')\n\nexport const CurrencyOverpanelContent = styled.div({\n paddingTop: '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '30px',\n})\n\ntype CurrencyOverpanelProps = {\n id: string,\n value: string,\n label: string,\n currencyCodeList: Array,\n name?: string,\n onSelection: Function,\n show: boolean,\n handleClose: Function,\n}\n\nconst CurrencySelectionOverpanel = ({\n id,\n value,\n label,\n name,\n currencyCodeList,\n onSelection,\n show,\n handleClose,\n ...rest\n}: CurrencyOverpanelProps) => {\n // initialize the properties\n const initializeSelectedCurrency = () => ({\n id: `${id}__${value}`,\n value,\n isSelected: true,\n })\n\n const [searchValue, setSearchValue] = useState('')\n const [focusedIndex, setFocusedIndex] = useState(-1)\n const [selectedCurrency, setSelectedCurrency] = useState(() =>\n initializeSelectedCurrency()\n )\n const searchRef = useRef(null)\n\n // Get a localized list of currency options.\n // Each option has currency code, name and a country flag.\n const currencyOptions = useMemo(() => getCurrencyOptions(currencyCodeList), [\n currencyCodeList,\n ])\n\n // Filter options based on a search and update them to show the selected one.\n // The isSelected property is used to add a checkmark to the list item.\n const filteredCurrencies = filterCurrencyOptions(\n currencyOptions,\n searchValue\n ).map(option => ({\n ...option,\n isSelected: option.value === value,\n }))\n\n // Resets the focus index when user goes back to Search Input. It's needed\n // because List component keeps memory of last focused index, even after\n // focusing other elements.\n const onSearchFocus = () => {\n setFocusedIndex(-1)\n }\n\n const updateSearch = useCallback(event => {\n setSearchValue(event.target.value)\n }, [])\n\n const clearSearch = () => {\n setSearchValue('')\n\n // Bring focus back to Search Input\n if (searchRef.current) {\n searchRef.current.focus()\n }\n }\n\n const closeOverpanel = useCallback(event => {\n clearSearch()\n /* istanbul ignore next */\n if (typeof handleClose === 'function') {\n handleClose(event)\n }\n }, [])\n\n const handleSelection = (event, newSelectedIndex) => {\n const newSelectedCurrency = filteredCurrencies[newSelectedIndex]\n setSelectedCurrency(newSelectedCurrency)\n\n /* istanbul ignore next */\n if (typeof onSelection === 'function') {\n onSelection(newSelectedCurrency.value, newSelectedCurrency)\n }\n closeOverpanel(event)\n }\n\n // Handles key presses for Search Input. When Arrow Down key is pressed,\n // The focus shifts to the list. This mimics the behavior of a Selection menu.\n const handleKeyPress = event => {\n if (event.key !== 'ArrowDown' || filteredCurrencies.length === 0) {\n return\n }\n\n // Focus the selected currency if it exists.\n if (selectedCurrency?.id) {\n const selectedOption = document.getElementById(selectedCurrency.id)\n if (selectedOption) {\n const filteredSelectedIndex = filteredCurrencies.findIndex(\n option => option.isSelected\n )\n setFocusedIndex(filteredSelectedIndex)\n selectedOption.focus()\n return\n }\n }\n\n // If no currency is selected, focus the first one.\n if (filteredCurrencies.length > 0 && filteredCurrencies[0]?.id) {\n const firstOption = document.getElementById(filteredCurrencies[0].id)\n if (firstOption) {\n setFocusedIndex(0)\n firstOption.focus()\n }\n }\n }\n\n return (\n \n \n }\n mobileFixedHeight=\"90\"\n >\n \n \n \n \n \n \n )\n}\n\nexport default CurrencySelectionOverpanel\n","// @flow\n/**\n * Utilities for currency selectors.\n */\nimport { getCurrencyNames } from './currencyUtils'\n\ntype CurrencyOptionsType = {\n id: string,\n value: string,\n label: string,\n labelDescription: string,\n}\n\n/**\n * Get an array of currency options to be used by pp-react List.\n * Each option contains the currency code, it's name and a pp-react Flag\n * showing default country.\n * @param {Array} currencyCodeList currency list\n * @param {string} selectorId a unique id for parent selector\n * @return {Array} currency ListItems for a List\n */\nexport function getCurrencyOptions(\n currencyCodeList: Array\n): Array {\n const currencyCodes = currencyCodeList.map(list => list.currencyCode)\n const currencyNames = getCurrencyNames(currencyCodes)\n\n return currencyCodeList.map(\n (item: Object, idx: number): CurrencyOptionsType => {\n const currencyCode = item.currencyCode\n const description = currencyNames[idx]\n const selectorId = item.id ? item.id : `${idx}`\n\n /**\n * According to ISO 4217. \"The first two letters of the ISO 4217\n * three-letter code are the same as the code for the country name\"\n * There a few currencies that are not issued by a single country,\n * but by an international organization (for example the Eastern\n * Caribbean dollar XCD). There is no corresponding flag for those\n * currencies and Flag component will display it's defaul icon (a gray globe).\n * See https://paypal.stackenterprise.co/questions/8770 for more\n * information and a list of exceptions.\n * We've confirmed with the WorldReady team that there isn't an API\n * for getting country codes from currencies, so this is the only way\n * of getting flags for now.\n */\n\n return {\n id: selectorId,\n value: currencyCode,\n label: description,\n labelDescription: currencyCode,\n countryCode: item.countryCode,\n }\n }\n )\n}\n\n/**\n * Get a filtered array based on an array of currency options and a search.\n * Function startsWith() used to match search with options is case sensitive,\n * so comparsissons are done in upper case. If the searched value causes an error,\n * an empty array is returned.\n * @param {Array} currencyOptions options list\n * @param {string} searchValue search\n * @return {Array} filtered options list\n */\nexport function filterCurrencyOptions(\n currencyOptions: Array,\n searchValue: string\n): Array {\n try {\n // Check if either the currency code or any word in its name starts with the searched value.\n const regExpSearch = getRegExpSearch(searchValue)\n const startsWithRegex = new RegExp(\n `^${regExpSearch}|\\\\b${regExpSearch}`,\n 'i'\n )\n return currencyOptions.filter(\n option =>\n startsWithRegex.test(option.value) || startsWithRegex.test(option.label)\n )\n } catch (error) {\n return []\n }\n}\n\n/**\n * For a search value, replace common special RegExp characters by their escaped literals\n * so they don't affect the currency filter. Without replacement, a search for '.d..'\n * would match with 'Dollar' and so on.\n * @param {string} searchValue search\n * @return {string} cleaned search\n */\nexport function getRegExpSearch(searchValue: string) {\n return searchValue.replace(/[\\.\\*\\+\\^\\$\\?]/g, match => {\n return '\\\\' + match\n })\n}\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React from 'react';\nimport { cx } from '@paypalcorp/pp-react-utils';\nimport { screenReaderStyles } from '@paypalcorp/pp-react-screen-reader';\nimport { textInputStyles, TextInputWrapper } from '@paypalcorp/pp-react-text-input';\nimport * as styles from './styles.css';\nexport { styles as textDisplayStyles };\n\nvar _excluded = [\"className\", \"valueClassName\", \"labelClassName\", \"name\", \"id\", \"label\", \"value\", \"rightIcon\", \"helperText\", \"isLabelHidden\"];\nvar TextDisplay = function (_ref) {\n var className = _ref.className,\n valueClassName = _ref.valueClassName,\n labelClassName = _ref.labelClassName,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? 'textDisplay' : _ref$name,\n id = _ref.id,\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? 'TextDisplay' : _ref$label,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value,\n rightIcon = _ref.rightIcon,\n helperText = _ref.helperText,\n isLabelHidden = _ref.isLabelHidden,\n rest = _objectWithoutProperties(_ref, _excluded);\n var controlStyles = cx(textInputStyles.control, styles.textDisplayControl, rightIcon && styles.textDisplayControlIconRight, valueClassName);\n var labelStyles = cx(textInputStyles.label, styles.textDisplayLabel, rightIcon && styles.textDisplaylabelIconRight, isLabelHidden && styles.textDisplayNoLabelControl, isLabelHidden && screenReaderStyles.screenReader, labelClassName);\n var labelId = \"txtDsplyLbl_\".concat(name);\n var valueId = \"txtDsplyVlu_\".concat(name);\n return /*#__PURE__*/React.createElement(TextInputWrapper, _extends({\n className: cx(styles.textDisplayIconRight, className),\n label: label,\n name: name,\n isLabelHidden: isLabelHidden,\n helperText: helperText,\n renderContent: function renderContent() {\n return /*#__PURE__*/React.createElement(\"div\", {\n \"aria-labelledby\": \"\".concat(labelId, \" \").concat(valueId),\n id: id,\n \"data-ppui-info\": \"text-display_1.1.6__8.6.0\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"hidden\",\n name: name,\n value: value,\n \"data-ppui\": \"true\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: controlStyles,\n id: valueId,\n \"data-ppui\": \"true\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: labelStyles,\n id: labelId,\n \"data-ppui\": \"true\"\n }, label));\n },\n rightIcon: rightIcon\n }, rest, {\n \"data-ppui\": \"true\"\n }));\n};\n\nexport { TextDisplay };\n","import \"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-text-display/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-text-display/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"Lml0aTMzYzAgewogIHBhZGRpbmctdG9wOiB2YXIoLS1fNXpkOWxvMTEpOwogIHBhZGRpbmctYm90dG9tOiB2YXIoLS1fNXpkOWxvMTEpOwogIHBhZGRpbmctbGVmdDogMDsKfQpbZGlyPSdydGwnXSAuaXRpMzNjMCAgewogIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1fNXpkOWxvZSkgKyB2YXIoLS1fNXpkOWxvMTEpKTsKfQouaXRpMzNjMSB7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmctbGVmdDogMDsKICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1fNXpkOWxvNnMpICsgdmFyKC0tXzV6ZDlsb3opKTsKICBwYWRkaW5nLWJvdHRvbTogMDsKICBtaW4taGVpZ2h0OiAyLjg3NXJlbTsKICBkaXNwbGF5OiBibG9jazsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOwp9CltkaXI9J3J0bCddIC5pdGkzM2MxICB7CiAgcGFkZGluZy1yaWdodDogMDsKfQouaXRpMzNjMiB7CiAgdG9wOiAwOwogIGxlZnQ6IDA7Cn0KW2Rpcj0ncnRsJ10gLml0aTMzYzIgIHsKICBsZWZ0OiBjYWxjKHZhcigtLV81emQ5bG9lKSArIHZhcigtLV81emQ5bG8xMSkpOwogIHJpZ2h0OiAwOwp9Ci5pdGkzM2MzIHsKICB0b3A6IDA7Cn0KLml0aTMzYzQgewogIHJpZ2h0OiBjYWxjKHZhcigtLV81emQ5bG9lKSArIHZhcigtLV81emQ5bG8xMSkpOwp9Ci5pdGkzM2M1IHsKICBwYWRkaW5nLXJpZ2h0OiBjYWxjKGNhbGModmFyKC0tXzV6ZDlsb2UpICsgdmFyKC0tXzV6ZDlsbzExKSkgLSB2YXIoLS1fNXpkOWxvMzEpKTsKfQpbZGlyPSdydGwnXSAuaXRpMzNjNSAgewogIHBhZGRpbmctbGVmdDogY2FsYyhjYWxjKHZhcigtLV81emQ5bG9lKSArIHZhcigtLV81emQ5bG8xMSkpIC0gdmFyKC0tXzV6ZDlsbzMxKSk7Cn0=\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nexport var textDisplayControl = 'iti33c1';\nexport var textDisplayControlIconRight = 'iti33c5';\nexport var textDisplayIconRight = 'iti33c3';\nexport var textDisplayLabel = 'iti33c2';\nexport var textDisplayNoLabelControl = 'iti33c0';\nexport var textDisplaylabelIconRight = 'iti33c4';","import React, { useRef, useState } from 'react'\nimport { Button, SelectionMenu, TextDisplay } from '@paypalcorp/pp-react'\nimport styled from '@emotion/styled'\nimport { useUniqueId } from '../transfer/utils/customHooks'\n\nconst StyledTextDisplay = styled(TextDisplay)({\n [`& .read-only-value`]: {\n padding: 0,\n pointerEvents: 'none', // bug inside TextDisplay\n alignContent: 'center',\n },\n})\n\ntype ButtonSelectionProps = {\n id?: string,\n name: string,\n onSelection: Function,\n options: Array,\n mobileTitle?: string,\n onClose?: Function,\n isReadOnly?: boolean,\n label: string,\n size?: string,\n value?: string,\n fullWidthOnMobile?: boolean,\n}\n\nconst ButtonSelectionMenu = ({\n id,\n name,\n onSelection,\n options,\n mobileTitle = name,\n onClose,\n isReadOnly = false,\n label,\n size = 'sm',\n value = '',\n fullWidthOnMobile = true, // PPUI default\n ...rest\n}: ButtonSelectionProps) => {\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const selectedIndex = options.findIndex(option => option.label === value)\n\n const selectorId = useUniqueId(id || 'selector')\n const buttonRef = useRef(null)\n\n const toggleMenu = () => {\n if (!isReadOnly) {\n setIsMenuOpen(currentlyOpen => !currentlyOpen)\n }\n }\n\n const handleSelection = index => {\n setIsMenuOpen(false)\n /* istanbul ignore next */\n if (typeof onSelection === 'function') {\n onSelection(options[index], index)\n }\n if (buttonRef.current) {\n buttonRef.current.focus() // bring focus back to the button\n }\n }\n\n const handleClose = evt => {\n setIsMenuOpen(false)\n /* istanbul ignore next */\n if (typeof onClose === 'function') {\n onClose(evt)\n }\n if (buttonRef.current) {\n buttonRef.current.focus() // bring focus back to the button\n }\n }\n\n const getPrefix = () => {\n return rest['data-testid'] ? String(rest['data-testid']) : ''\n }\n\n if (isReadOnly) {\n return (\n \n )\n }\n\n return (\n
\n \n {value}\n \n \n
\n )\n}\n\nexport default ButtonSelectionMenu\n","// @flow\nimport React, { useRef, useState } from 'react'\nimport { Button, TextDisplay } from '@paypalcorp/pp-react'\nimport styled from '@emotion/styled'\nimport CurrencySelectionOverpanel from './currencySelectionOverpanel'\nimport { useUniqueId } from '../../transfer/utils/customHooks'\n\nexport const ReadOnlyTextDisplay = styled(TextDisplay)({\n [`& .read-only-value`]: {\n padding: 0,\n pointerEvents: 'none', // bug inside TextDisplay\n alignContent: 'center',\n },\n})\n\nexport type CurrencySelectorWithOverpanelProps = {\n label: string,\n value: string,\n currencyCodeList: Array,\n onClose?: Function,\n onSelection: Function,\n isReadOnly?: boolean,\n size?: string,\n fullWidthOnMobile?: boolean,\n id?: string,\n name: string,\n}\n\nconst CurrencySelectorWithOverpanel = ({\n id,\n name,\n onSelection,\n currencyCodeList,\n isReadOnly = false,\n label,\n size = 'sm',\n value = '',\n fullWidthOnMobile = true, // PPUI default\n ...rest\n}: CurrencySelectorWithOverpanelProps) => {\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const buttonRef = useRef(null)\n\n // Used to keep track of different selectors for cross currency transactions.\n const selectorId = useUniqueId(id || 'currency-selector')\n\n // set data-set to constant to avoid SQ error\n const dataSetId = 'data-testid'\n\n const toggleMenu = () => {\n if (!isReadOnly) {\n setIsMenuOpen(currentlyOpen => !currentlyOpen)\n }\n }\n\n const handleClose = event => {\n setIsMenuOpen(false)\n // Bring focus back to the button\n if (buttonRef.current) {\n buttonRef.current.focus()\n }\n }\n\n // If selector is disabled or read only, display its currency code as text.\n if (isReadOnly) {\n return (\n \n )\n }\n\n return (\n <>\n \n {value}\n \n\n \n \n )\n}\n\nexport default CurrencySelectorWithOverpanel\n","// @flow\nimport React from 'react'\nimport styled from '@emotion/styled'\nimport content from 'pp-react-l10n'\nimport ButtonSelectionMenu from '../buttonSelectionMenu'\nimport CurrencySelectorWithOverpanel from './currencySelectorWithOverpanel'\nimport { hasCurrencyOverpanelTrmt } from '../../experiments/hasCurrencyOverpanel'\nimport { mapCurrencyCodeList } from '../../transfer/utils/currencyUtils'\n\nconst i18n = content('transfer/page/preview')\n\nconst SelectorWrapper = styled.div({\n maxWidth: 'fit-content',\n alignSelf: 'center',\n})\n\ntype SelectorProps = {\n currencyCode: string,\n currencyCodeList: Array,\n name?: string,\n isReadOnly?: boolean,\n label?: string,\n onChange: Function,\n}\n\nconst CurrencySelector = ({\n currencyCode,\n currencyCodeList = [],\n name = 'currencies',\n isReadOnly = false,\n label = i18n('label.selectCurrency'),\n onChange,\n}: SelectorProps) => {\n const options = currencyCodeList.map(code => ({ label: code }))\n const hasOnlyOneValue = options.length === 1\n\n const handleSelection = ({ label: selectedCode }) => {\n onChange(selectedCode)\n }\n\n return (\n \n {hasCurrencyOverpanelTrmt() ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default CurrencySelector\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport glamorous from 'glamorous'\nimport * as amountUtils from '../../lib/amountUtils'\nimport { moveCursorToTheEnd } from '../../lib/dom-utils'\nimport { MAX_AMOUNT_LENGTH } from 'transfer/constants'\nimport _ from 'lodash'\nimport {\n getAmountParts,\n sortCurrencyList,\n} from '../../transfer/utils/currencyUtils'\nimport { colors } from '../../lib/styles/variables'\nimport { getCurrencyPrecision } from '../../../../lib/utils/currencyShared'\n\nimport content from 'pp-react-l10n'\nimport { PRIMARY_TEXT_FONT_FAMILY } from '../../lib/styles/styles'\nimport cssTokens from '../../lib/styles/tokens'\nimport { tracking } from '../../lib/analytics/mParticle'\nimport Events from '../../lib/analytics/eventTags'\n\nconst { sysColorSecondaryMain } = cssTokens\nconst i18n = content('transfer/page/preview')\n\nconst INPUT_LINE_HEIGHT = 1.4\nconst SELECT_FONT_SIZE = 18\n\nconst Label = glamorous.label({\n fontSize: 13,\n lineHeight: 1.62,\n color: '#7f868b',\n marginBottom: 14,\n})\n\nconst InputWrapper = glamorous.div(\n {\n display: 'flex',\n justifyContent: 'center',\n },\n ({ isInvalid }) => {\n if (isInvalid) {\n return 'animated shake'\n }\n }\n)\n\nconst Input = glamorous.input(\n {\n background: 'none',\n border: 'none',\n color: colors.inputText,\n textAlign: 'center',\n padding: '0',\n margin: '0',\n textOverflow: 'clip',\n outline: 0,\n cursor: 'pointer',\n letterSpacing: 'normal', // overrides vxpattern-lib-paypal letter-spacing value on all inputs\n lineHeight: INPUT_LINE_HEIGHT,\n fontWeight: 500,\n ...PRIMARY_TEXT_FONT_FAMILY,\n },\n ({ hideCursor, readOnly, isInvalid }) => {\n let style = {}\n if (hideCursor) {\n style = {\n ...style,\n color: 'transparent',\n textShadow: `${colors.inputText} 0 0 0`,\n }\n }\n if (readOnly) {\n style = {\n ...style,\n cursor: 'default',\n }\n }\n if (isInvalid) {\n style = {\n ...style,\n color: '#D20000',\n }\n }\n return style\n }\n)\n\nconst SelectWrapper = glamorous.div(\n {\n textAlign: 'center',\n margin: '20px auto',\n color: sysColorSecondaryMain,\n fontSize: SELECT_FONT_SIZE,\n position: 'relative',\n height: 32,\n // width: set dynamically based on width of selected option\n },\n ({ isCurrencyCodeReadOnly, selectColor }) => {\n if (selectColor) {\n return {\n color: selectColor,\n }\n }\n if (isCurrencyCodeReadOnly) {\n return {\n color: colors.inputText,\n }\n }\n },\n ({ isLoading }) => {\n if (isLoading) {\n return {\n opacity: 0.5,\n }\n }\n }\n)\n\nconst Select = glamorous.select(\n {\n fontWeight: 600,\n appearance: 'none', // remove browser styles\n '::-ms-expand': { display: 'none' }, // remove browser styles for IE 11\n backgroundColor: 'transparent',\n zIndex: 2,\n cursor: 'pointer',\n border: 'none',\n ...PRIMARY_TEXT_FONT_FAMILY,\n },\n ({ isCurrencyCodeReadOnly, hasMoreThanOneCurrency }) => {\n if (isCurrencyCodeReadOnly || !hasMoreThanOneCurrency) {\n return {\n cursor: 'default',\n color: '#3a3c3e',\n border: 0,\n }\n }\n },\n ({ disabled }) => {\n if (disabled) {\n return {\n cursor: 'default',\n }\n }\n }\n)\n\nconst CurrencySymbol = glamorous.div(\n {\n marginRight: 4,\n marginTop: 10,\n textAlign: 'right',\n color: colors.inputText,\n fontSize: 18,\n fontWeight: 400,\n ...PRIMARY_TEXT_FONT_FAMILY,\n },\n ({ isInvalid }) => {\n if (isInvalid) {\n return {\n color: '#D20000',\n }\n }\n }\n)\n\nexport default class AmountField extends PureComponent {\n static propTypes = {\n name: PropTypes.string,\n dataNemo: PropTypes.string,\n id: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n currencyDecimal: PropTypes.string.isRequired,\n currencySymbolMap: PropTypes.object.isRequired,\n currencyCode: PropTypes.string.isRequired,\n currencyCodeList: PropTypes.array,\n value: PropTypes.string.isRequired,\n isAmountReadOnly: PropTypes.bool.isRequired,\n label: PropTypes.string,\n isCurrencyCodeReadOnly: PropTypes.bool,\n inputColor: PropTypes.string,\n selectColor: PropTypes.string,\n showInvalid: PropTypes.bool,\n focusAmountField: PropTypes.bool,\n onFocus: PropTypes.func,\n inputFontSize: PropTypes.number,\n isLoading: PropTypes.bool,\n }\n\n static defaultProps = {\n isAmountReadOnly: false,\n isCurrencyReadOnly: false,\n }\n\n state = {}\n\n constructor(props) {\n super(props)\n\n this.sortedCurrencyCodeList = sortCurrencyList(\n props.currencyCodeList,\n props.currencySymbolMap\n )\n }\n\n componentDidMount() {\n this._isMounted = true\n\n if (!this.props.isAmountReadOnly && this._input) {\n this._input.focus()\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false\n }\n\n componentDidUpdate() {\n if (this.props.showInvalid) {\n this.showInvalid()\n }\n\n if (this.props.focusAmountField && this._input) {\n this._input.focus()\n }\n }\n\n /**\n * This handles the value and currency change. Because a change in currency can cause a change in the value (due to\n * differences in precision), this will be called when the value or the currency is changed.\n *\n * We first strip out all non-digits then validate that the result is a real number. If it's not, then we don't do\n * anything (and the input value is not updated). If the result is equal to 0, then we'll call onAmountChange with an\n * empty string. Otherwise, we'll format it and if it's not the same as it was before, we'll call onAmountChange with\n * that.\n * @param {Object} changes holds the new value and the currencyCode\n */\n handleChange({\n value = this.props.value,\n currencyCode = this.props.currencyCode,\n }) {\n const normalizedValue = amountUtils.normalizeNumberInputs(value)\n const cleanValue = amountUtils.replaceNonDigits(normalizedValue)\n\n // convert value to number to remove leading zeros\n const numberValue = Number(cleanValue)\n\n if (_.isNaN(numberValue) || cleanValue.length >= MAX_AMOUNT_LENGTH) {\n this.showInvalid()\n return\n } else if (numberValue === 0) {\n const newValue = ''\n this.props.onChange(newValue, currencyCode)\n return\n }\n\n const formattedValue = amountUtils.formatUserCentsInput(\n currencyCode,\n this.props.currencyDecimal,\n numberValue.toString()\n )\n if (\n formattedValue !== this.props.value ||\n currencyCode !== this.props.currencyCode\n ) {\n this.props.onChange(formattedValue, currencyCode)\n }\n }\n\n handleSelectClick = () => {\n tracking(Events.p2p_amount_currency_dropdown_pressed({}))\n }\n\n handleSelectChange = ({ target: { value: currencyCode } }) =>\n this.handleChange({ currencyCode })\n handleInputChange = ({ target: { value } }, inputFontSize) =>\n this.handleChange({ value, inputFontSize })\n handleFocus = ({ target }) => {\n moveCursorToTheEnd(target)\n if (this.props.onFocus) {\n this.props.onFocus(target)\n }\n }\n handleClick = ({ target }) => moveCursorToTheEnd(target)\n handleMouseDown = () => this.setState({ hideCursor: true })\n handleMouseUp = () => this.setState({ hideCursor: false })\n\n /**\n * This function sets the isInvalid state which results in a rerender which will add css classes to cause a shake\n * effect on the input wrapper. It also sets a timeout and sets isInvalid to false so the shake effect doesn't go on\n * forever.\n */\n showInvalid() {\n this.setState({ isInvalid: true }, () => {\n setTimeout(\n () =>\n this.setState({ isInvalid: false }, () => {\n if (this.props.focusAmountField) {\n this._input.focus()\n }\n }),\n 300\n )\n })\n }\n\n render() {\n const { hideCursor, isInvalid } = this.state\n const {\n label,\n value,\n currencyCode,\n currencySymbolMap,\n currencyDecimal,\n } = this.props\n const currencySymbol = currencySymbolMap[currencyCode]\n\n // non-decimal currencies should have the digits after the decimal removed\n let adjustedValue = value\n if (getCurrencyPrecision(currencyCode) === 0) {\n adjustedValue = parseFloat(value || 0).toFixed(0)\n }\n\n const formattedValue = amountUtils.formatUserCentsInput(\n currencyCode,\n currencyDecimal,\n adjustedValue\n )\n const inputFontSize =\n this.props.inputFontSize ||\n amountUtils.updateFontSize(formattedValue, currencySymbol)\n const extraSpaceToAccountForWeirdChromeBug = 5\n const inputWidth =\n amountUtils.measureTextSizeWithStyle(\n inputFontSize,\n this._input,\n formattedValue\n ) + extraSpaceToAccountForWeirdChromeBug\n const selectWidth = amountUtils.measureTextSizeWithStyle(\n SELECT_FONT_SIZE,\n this._select,\n currencyCode\n )\n\n const amountComponents = {\n value: (\n (this._input = c)}\n aria-label={i18n('label.enterAmount')}\n key=\"amount_input\"\n type=\"tel\"\n dir=\"ltr\"\n name={this.props.name}\n data-nemo={this.props.dataNemo}\n id={this.props.id}\n autoComplete=\"off\"\n required\n readOnly={this.props.isAmountReadOnly}\n hideCursor={hideCursor}\n inputColor={this.props.inputColor}\n isInvalid={isInvalid}\n value={formattedValue}\n onChange={this.handleInputChange}\n onFocus={this.handleFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onMouseUp={this.handleMouseUp}\n css={{\n width: inputWidth,\n fontSize: inputFontSize,\n }}\n />\n ),\n symbol: (\n \n {currencySymbol}\n \n ),\n }\n\n // parts gives us an array of each individual elements of the formatted amount\n // e.g. [{ type: 'symbol', value: '$' }, { type: 'value', value: '1,000,000.00' }]\n const parts = getAmountParts(\n this.props.value,\n this.props.currencyCode,\n this.props.currencyDecimal\n )\n\n // since the currency code is fixed below the amount field, we care only about\n // the symbol and value parts\n const amountPartsValueAndSymbol = parts.filter(\n part => part.type === 'symbol' || part.type === 'value'\n )\n\n // create an array of the amount field and currency symbol, in the order that\n // is appropriate based on the `parts()` array\n const amountFieldAndSymbol = amountPartsValueAndSymbol.map(\n part => amountComponents[part.type]\n )\n\n const hasMoreThanOneCurrency = this.sortedCurrencyCodeList.length > 1\n\n const showSpinner =\n this.props.isLoading && document.activeElement !== this._input\n const shouldDisableSelect =\n this.props.isCurrencyCodeReadOnly ||\n !hasMoreThanOneCurrency ||\n this.props.isLoading\n\n const defaultCurrency = this.props.currencyCode\n\n return (\n
\n {label && }\n \n {showSpinner ? (\n \n ) : (\n amountFieldAndSymbol\n )}\n \n \n (this._select = c)}\n >\n {this.sortedCurrencyCodeList.map(code => (\n \n ))}\n \n \n
\n )\n }\n}\n","import React, { createContext, useRef, useContext, useState } from 'react'\nimport PropTypes from 'prop-types'\n\nconst CurrencyInputContext = createContext([])\n\nexport function CurrencyLastUsedContextProvider({ children }) {\n return (\n \n {children}\n \n )\n}\n\nCurrencyLastUsedContextProvider.propTypes = {\n children: PropTypes.object,\n}\n\n/**\n * Custom hook that takes care of cross currency focus issues\n * by understanding which was the input updated by the user.\n */\nexport function useCurrencyLastUsedContext(inputRef = useRef(null)) {\n const [\n lastUsedInputRef = inputRef, // defaults to current for non-cross-currency\n updateLastUsedInputRef = () => {},\n ] = useContext(CurrencyInputContext)\n const isLastUsed = inputRef.current === lastUsedInputRef.current\n const setAsLastUsed = () => {\n updateLastUsedInputRef(inputRef)\n }\n return [inputRef, isLastUsed, setAsLastUsed]\n}\n","'use client';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { forwardRef, useState, useRef, useContext, useEffect } from 'react';\nimport { TextInputWrapper, TextInputContent } from '@paypalcorp/pp-react-text-input';\nimport { IntlContext, getFormattedMessage } from '@paypalcorp/pp-react-intl';\nimport { remToPx, cx } from '@paypalcorp/pp-react-utils';\nimport * as styles from './styles.css';\nexport { styles as textAreaStyles };\n\nvar _excluded = [\"className\", \"minRows\", \"maxRows\", \"showCharacterCounter\", \"maxCharacters\", \"counterStatusText\", \"onChange\", \"onBlur\", \"onFocus\", \"value\", \"errorText\", \"successText\"],\n _excluded2 = [\"inputClassName\", \"name\", \"id\", \"setFocus\", \"hasError\", \"placeholder\", \"label\", \"labelClassName\", \"inputTag\", \"placemat\"];\n\n// A new requirement was added to allow 1 as a min rows\n// The default should still be 2 rows.\nvar MIN_ROWS = 1;\nvar DEFAULT_ROWS = 2;\nvar MAX_ROWS = 6;\nvar TextArea = forwardRef(function (_ref, ref) {\n var className = _ref.className,\n minRows = _ref.minRows,\n maxRows = _ref.maxRows,\n _ref$showCharacterCou = _ref.showCharacterCounter,\n showCharacterCounter = _ref$showCharacterCou === void 0 ? false : _ref$showCharacterCou,\n maxCharacters = _ref.maxCharacters,\n counterStatusText = _ref.counterStatusText,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? null : _ref$onChange,\n _ref$onBlur = _ref.onBlur,\n onBlur = _ref$onBlur === void 0 ? null : _ref$onBlur,\n _ref$onFocus = _ref.onFocus,\n onFocus = _ref$onFocus === void 0 ? null : _ref$onFocus,\n value = _ref.value,\n errorText = _ref.errorText,\n successText = _ref.successText,\n rest = _objectWithoutProperties(_ref, _excluded);\n var textLineHeight = remToPx(1.5);\n var maxAllowedRows = maxRows > MIN_ROWS ? Math.min(maxRows, MAX_ROWS) : MAX_ROWS;\n var minAllowedRows = minRows >= MIN_ROWS ? Math.max(minRows, MIN_ROWS) : DEFAULT_ROWS;\n var _useState = useState(value ? value.length : 0),\n _useState2 = _slicedToArray(_useState, 2),\n charCount = _useState2[0],\n setCharCount = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n isRTL = _useState4[0],\n setRTL = _useState4[1];\n var internalRef = useRef();\n var textAreaRef = ref || internalRef;\n var intlContext = useContext(IntlContext);\n var bordersOffset = useRef(0);\n var maxHeight = useRef(textLineHeight * maxAllowedRows);\n var minHeight = useRef(textLineHeight * minAllowedRows);\n var computeHeight = function () {\n var textAreaElm = textAreaRef.current;\n // reset height to min height before setting it again\n textAreaElm.style.height = \"\".concat(minHeight.current, \"px\");\n var newHeight = textAreaElm.scrollHeight + bordersOffset.current;\n /* istanbul ignore next */\n if (newHeight > maxHeight.current) {\n textAreaElm.style.height = \"\".concat(maxHeight.current, \"px\");\n } else if (newHeight > minHeight.current) {\n textAreaElm.style.height = \"\".concat(newHeight, \"px\");\n } else {\n textAreaElm.style.height = \"\".concat(minHeight.current, \"px\");\n }\n };\n useEffect(function () {\n /* istanbul ignore next */\n if (textAreaRef.current) {\n var textAreaElm = textAreaRef.current;\n var offsetHeight = textAreaElm.offsetHeight,\n clientHeight = textAreaElm.clientHeight;\n var computedStyle = window.getComputedStyle(textAreaElm);\n var lineHeightValue = Number(computedStyle.getPropertyValue('line-height').split('px')[0]);\n var paddingBottomValue = Number(computedStyle.getPropertyValue('padding-bottom').split('px')[0]);\n var paddingTopValue = Number(computedStyle.getPropertyValue('padding-top').split('px')[0]);\n var lineHeight = Number.isNaN(lineHeightValue) ? textLineHeight : lineHeightValue;\n var paddingBottom = Number.isNaN(paddingBottomValue) ? 0 : paddingBottomValue;\n var paddingTop = Number.isNaN(paddingTopValue) ? 0 : paddingTopValue;\n bordersOffset.current = offsetHeight - clientHeight;\n maxHeight.current = bordersOffset.current + paddingTop + paddingBottom + lineHeight * maxAllowedRows;\n minHeight.current = bordersOffset.current + paddingTop + paddingBottom + lineHeight * minAllowedRows;\n computeHeight();\n setRTL(computedStyle.direction === 'rtl');\n }\n }, [minAllowedRows, maxAllowedRows, value]);\n var handleCounterWrapperClick = function () {\n /* istanbul ignore else */\n if (textAreaRef.current) {\n var textAreaElm = textAreaRef.current;\n textAreaElm.focus();\n }\n };\n return /*#__PURE__*/React.createElement(TextInputWrapper, _extends({\n className: className,\n value: value,\n onChange: function handleChange(event) {\n var textAreaElm = event.target;\n setCharCount(textAreaElm.value.length);\n /* istanbul ignore else */\n if (onChange) {\n onChange(event);\n }\n },\n onFocus: function handleFocus(event) {\n /* istanbul ignore else */\n if (onFocus) {\n onFocus(event);\n }\n },\n onBlur: function handleBlur(event) {\n /* istanbul ignore else */\n if (onBlur) {\n onBlur(event);\n }\n },\n renderContent: function renderContent(_ref2) {\n var inputClassName = _ref2.inputClassName,\n name = _ref2.name,\n id = _ref2.id,\n setFocus = _ref2.setFocus,\n hasError = _ref2.hasError,\n placeholder = _ref2.placeholder,\n label = _ref2.label,\n labelClassName = _ref2.labelClassName;\n _ref2.inputTag;\n _ref2.placemat;\n var otherProps = _objectWithoutProperties(_ref2, _excluded2);\n var textInputContent = /*#__PURE__*/React.createElement(TextInputContent, _extends({\n inputClassName: cx(inputClassName, styles.textAreaControl),\n inputTag: \"textarea\",\n name: name,\n id: id,\n setFocus: setFocus,\n inputRef: textAreaRef,\n hasError: hasError,\n placeholder: placeholder,\n label: label,\n labelClassName: cx(labelClassName, styles.textAreaControlLabel, styles.textAreaControlErrorLabel)\n }, otherProps, {\n \"data-ppui\": \"true\"\n }));\n var wrapperClasses = cx(styles.textAreaWrapper, hasError && styles.textAreaErrorCounterWrapper);\n if (showCharacterCounter) {\n var maxCharsText = '';\n if (maxCharacters) {\n maxCharsText = isRTL ? \"\".concat(maxCharacters, \"/\") : \"/\".concat(maxCharacters);\n }\n var counterText = isRTL ? \"\".concat(maxCharsText).concat(charCount) : \"\".concat(charCount).concat(maxCharsText);\n var counterStatusMessage = getFormattedMessage(intlContext, \"\".concat(charCount, \" out of \").concat(maxCharacters, \" characters used\"), counterStatusText, {\n charCount: charCount,\n maxCharacters: maxCharacters\n });\n var counterTextClasses = cx(styles.textAreaCounterText, hasError && styles.textAreaErrorCounterText);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClasses,\n onClick: handleCounterWrapperClick,\n \"data-ppui\": \"true\"\n }, textInputContent, /*#__PURE__*/React.createElement(\"div\", {\n className: counterTextClasses,\n role: \"status\",\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\",\n \"aria-label\": counterStatusMessage,\n \"data-ppui\": \"true\"\n }, counterText));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClasses,\n onClick: handleCounterWrapperClick,\n \"data-ppui\": \"true\"\n }, textInputContent);\n },\n errorText: errorText,\n successText: successText,\n \"data-ppui-info\": \"text-area_1.1.6__8.6.0\"\n }, rest));\n});\n\nexport { TextArea };\n","import \"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/theme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-theme/dist/@paypalcorp/darkTheme.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-utils/dist/@paypalcorp/focusStyles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-utils/dist/@paypalcorp/focusStyles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA8WT227CMAyG7/sUFtIkAgsqZbsge5gpELNGK3GVmMM28e5TC4VSytZKk6ZexHYU+/dnd7J+331sMYavCGBJjtGxgsHgJQLIKVi25BToRaBsw1hEmXIFcWFluOKT6e1bWtkL8ga9AkcOj/5ehlQb2imIy2+ps+UwGZXHVvuhlK/Pn2ae0WwqYAzXoUQIcR3CubjUkV4buwkKrEvRWy5udtZwqmAaxw+Fm+JRXeXnZB2jl7hFx6ESeogmRxbTniyaHVzQtN1UdDo3D4EyaxoEZuJ/yDLuWVpnSjJt7Z3QlwIK3iDvdDqCRIj6dHo8+WWASTnAO3A6IW/CfowAoJ6le6px97Ltw6ANZ9Zh/41hr13ItUfHPw31jG1WYjuXa6bttYc3j68C2tY7k7RaBbzZp0TUtD39obYWjkk7R+sCcifprTlHsvgnDt8rBdhFYwUAAA==\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-icons/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-icons/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"LnRwY2VyaTAgewogIHNwZWFrOiBub25lOwogIGFzcGVjdC1yYXRpbzogMTsKfQoudHBjZXJpMSB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHdpZHRoOiB2YXIoLS1fNXpkOWxvMyk7CiAgaGVpZ2h0OiB2YXIoLS1fNXpkOWxvMyk7Cn0KLnRwY2VyaTIgewogIHdpZHRoOiB2YXIoLS1fNXpkOWxvMCk7CiAgaGVpZ2h0OiB2YXIoLS1fNXpkOWxvMCk7Cn0KLnRwY2VyaTMgewogIHdpZHRoOiB2YXIoLS1fNXpkOWxvMSk7CiAgaGVpZ2h0OiB2YXIoLS1fNXpkOWxvMSk7Cn0KLnRwY2VyaTQgewogIHdpZHRoOiB2YXIoLS1fNXpkOWxvMik7CiAgaGVpZ2h0OiB2YXIoLS1fNXpkOWxvMik7Cn0KLnRwY2VyaTUgewogIHdpZHRoOiB2YXIoLS1fNXpkOWxvMyk7CiAgaGVpZ2h0OiB2YXIoLS1fNXpkOWxvMyk7Cn0KLnRwY2VyaTYgewogIHdpZHRoOiB2YXIoLS1fNXpkOWxvNCk7CiAgaGVpZ2h0OiB2YXIoLS1fNXpkOWxvNCk7Cn0KLnRwY2VyaTcgewogIHNwZWFrOiBub25lOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBhc3BlY3QtcmF0aW86IDE7Cn0KLnRwY2VyaTcgaW1nLCAudHBjZXJpNyBzdmcgewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBkaXNwbGF5OiBibG9jazsKfQ==\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-screen-reader/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-screen-reader/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"Ll8xOG5lMHVpMCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTsKICBwYWRkaW5nOiAwOwogIGJvcmRlcjogMDsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIG92ZXJmbG93OiBoaWRkZW47Cn0=\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-shimmer/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-shimmer/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"QGtleWZyYW1lcyBjYm4wYWcwIHsKICAwJSB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7CiAgfQogIDEwMCUgewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMCUgMDsKICB9Cn0KLmNibjBhZzEgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLV81emQ5bG9lNSk7CiAgYm9yZGVyOiB2YXIoLS1fNXpkOWxvMzEpIHNvbGlkIHRyYW5zcGFyZW50OwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgKICAgIHRvIHJpZ2h0LAogICAgdmFyKC0tXzV6ZDlsb2U1KSAwJSwKICAgIHZhcigtLV81emQ5bG9lNykgNTAlLAogICAgdmFyKC0tXzV6ZDlsb2U1KSAxMDAlCiAgKTsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7CiAgYmFja2dyb3VuZC1zaXplOiAyMDAlOwogIGFuaW1hdGlvbjogY2JuMGFnMCB2YXIoLS1fNXpkOWxvMm4pCiAgICBjdWJpYy1iZXppZXIodmFyKC0tXzV6ZDlsbzMwKSkgaW5maW5pdGU7Cn0KLmNibjBhZzIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLV81emQ5bG9lNik7CiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KAogICAgdG8gcmlnaHQsCiAgICB2YXIoLS1fNXpkOWxvZTYpIDAlLAogICAgdmFyKC0tXzV6ZDlsb2U3KSA1MCUsCiAgICB2YXIoLS1fNXpkOWxvZTYpIDEwMCUKICApOwp9Ci5jYm4wYWczIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1fNXpkOWxvMzkpOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKfQ==\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-text/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-text/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-utils/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-utils/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"QGtleWZyYW1lcyBfMThtYm9xMyB7CiAgMCUgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgfQp9CkBrZXlmcmFtZXMgXzE4bWJvcTQgewogIDAlIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgfQp9Ci5fMThtYm9xMCB7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKHZhcigtLV81emQ5bG8yMyksdmFyKC0tXzV6ZDlsbzI0KSwgdmFyKC0tXzV6ZDlsbzI1KSx2YXIoLS1fNXpkOWxvMjYpKTsKfQouXzE4bWJvcTEgewogIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIodmFyKC0tXzV6ZDlsbzIzKSx2YXIoLS1fNXpkOWxvMjQpLCB2YXIoLS1fNXpkOWxvMjUpLHZhcigtLV81emQ5bG8yNikpOwp9Ci5fMThtYm9xMiB7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICBvdmVyZmxvdzogaGlkZGVuOwp9\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-text-input/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-text-input/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#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\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nimport \"../../node_modules/@paypalcorp/pp-react-text-area/dist/@paypalcorp/styles.css.js.vanilla.css!=!../../../../@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../../node_modules/@paypalcorp/pp-react-text-area/dist/@paypalcorp/styles.css.js.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA51U7W6bMBT9n6e4qlQ1aHMHZFlVR9uLTFNlsAGrji+yTZK16p59wiQNBpomUf4E2/fccz/OuX9K4rS09UMMrzOAjOXPpcFGc5KjQkNhw8yckKflC39UyGS0mgFg45TUgoJGLdqDDHfEVozj9nhmhJUvvTdc2lqxvxQyhfnzavY2u3/PTWvFclGh4sIQW+FWU41uTgvMGxvBP1AsE8ozrBnnUpfEYU0hDmCSC0rw4cHFIvEXAX7OVD4PXiVxBGQUGAU8Us9jIkN6bYZ0kGHhM+SNsW19TuycB0YrnURNwQjFnNyIXrqpavuIlBVOmA4XtRPaUbiBmxCXZRZV4zxuJWRZOQpJHN+231vJXXX8PMwHQInC7f9maLgYTmSRRGBRSR4ei24eXQgxjMvGDiMfuoai1E4YIjZCO3vYuKA4v0hkK10ldbcln8O+b/lwFpNsF9FQCLH/jYJPCIpgUVjhptYmGP4vP3JmBOsK+wrTl30Nvfbaf5DkWTpeM1NK/eG2LiP4EvLdfaCQsXYB1lKTwyJ58BAdI/gG6SjDOSL8PnaLIUafkulxCN8ln5aToXO4vsgtjsGdOi7K286XMCXLVukt79WZtvc2+82l+XlnnLr7A71WdYbVg21ZBe1cBu3sSJ8yt30/Ty7ysuc5084wrbV8E+L82LvWuGr/8rpep9H1+9HZ9X9AeSK6WwcAAA==\\\"}!../../../../@vanilla-extract/webpack-plugin/extracted.js\"\nexport var textAreaControl = '_102gsp70';\nexport var textAreaControlErrorLabel = '_102gsp72';\nexport var textAreaControlLabel = '_102gsp71';\nexport var textAreaCounterText = '_102gsp74 _1jy7t5y1';\nexport var textAreaErrorCounterText = '_102gsp76';\nexport var textAreaErrorCounterWrapper = '_102gsp75';\nexport var textAreaWrapper = '_102gsp73';","import PropTypes from 'prop-types'\nimport React from 'react'\nimport classNames from 'classnames'\nimport { tracking } from '../../lib/analytics/mParticle'\nimport { TextArea } from '@paypalcorp/pp-react'\nimport { connect } from 'transfer/utils/p2p-connect'\nimport content from 'pp-react-l10n'\nimport { StyleSheet, css } from '../../lib/paypalphrodite'\nimport {\n trackAmountPageClick,\n trackClickUnifiedSend,\n} from '../utils/unified-send-analytics'\nimport {\n ActionTypes as types,\n DONATE_MAX_CHAR_LIMIT,\n REQUEST_MAX_CHAR_LIMIT,\n} from '../constants'\nimport Events from '../../lib/analytics/eventTags'\nimport enRTRStrings from '../../../../config/enRTRStrings'\nimport serverProps from '../utils/serverProps'\nimport { ENV_TYPE } from '../../../../lib/constants'\nimport * as media from 'lib/styles/media-queries'\n\nconst styles = StyleSheet.create({\n noteWrapper: {\n boxSizing: 'border-box',\n marginBottom: '1.625rem',\n },\n textArea: {\n border: 'none',\n },\n textAreaOpen: {\n marginTop: '20px',\n },\n textAreaGiftIcon: {\n paddingRight: '2.5rem',\n },\n textAreaLabel: {\n whiteSpace: 'break-spaces',\n marginLeft: '-10px',\n marginTop: '0',\n },\n textAreaPartialWidth: {\n width: '70%',\n [media.mobileAndSmaller]: {\n width: '100%',\n },\n },\n})\n\nconst i18n = content('transfer/page/preview')\nconst i18nDonate = content('transfer/inc/note')\nconst { env = '' } = serverProps\n\nexport class PayPalNote extends React.Component {\n static propTypes = {\n handleChangeNote: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n note: PropTypes.string,\n label: PropTypes.string,\n recipient: PropTypes.string,\n flowType: PropTypes.string,\n isReview: PropTypes.bool,\n hasFetchedFundingOptions: PropTypes.bool,\n showENSubTextRTR: PropTypes.bool,\n isDonate: PropTypes.bool,\n dispatch: PropTypes.func,\n hasGiftIcon: PropTypes.bool,\n isMissingMandatoryNote: PropTypes.bool,\n shouldShowGift: PropTypes.bool,\n themeId: PropTypes.string,\n toCurrencyCode: PropTypes.string,\n fromCurrencyCode: PropTypes.string,\n recipientCountry: PropTypes.string,\n thumbnailUrl: PropTypes.string,\n isGroup: PropTypes.bool,\n }\n\n static defaultProps = {\n hasFetchedFundingOptions: false,\n hasGiftIcon: false,\n disabled: false,\n note: '',\n shouldShowGift: false,\n themeId: '',\n }\n\n state = {\n textAreaIsFocused: false,\n }\n\n showNoteFieldError = () =>\n this.props.dispatch({ type: types.EXTERNAL.SHOW_NOTE_MAX_CHAR_LIMIT_ERROR })\n\n hideNoteFieldError = () =>\n this.props.dispatch({ type: types.EXTERNAL.HIDE_NOTE_MAX_CHAR_LIMIT_ERROR })\n\n hideMandatoryNoteFieldError = () => {\n this.props.dispatch({\n type: types.NOTE.REQUIRED_FIELD_ERROR,\n data: { missing: false },\n })\n }\n\n onTextAreaChange = ({ target: { value: note } }) => {\n const { isDonate, handleChangeNote, isMissingMandatoryNote } = this.props\n const isRequest = this.props.flowType === 'request'\n\n if (\n (isDonate && note.length >= DONATE_MAX_CHAR_LIMIT) ||\n (isRequest && note.length >= REQUEST_MAX_CHAR_LIMIT)\n ) {\n this.showNoteFieldError()\n return false\n }\n\n // hide mandatory message alert if isMissingMandatoryNotes flag is true and a valid note is entered\n if (isMissingMandatoryNote && note.trim().length > 0) {\n this.hideMandatoryNoteFieldError()\n }\n\n this.hideNoteFieldError()\n handleChangeNote(note)\n }\n\n onTextAreaFocus = () => {\n const {\n isReview,\n flowType,\n note,\n recipient,\n recipientCountry,\n toCurrencyCode,\n fromCurrencyCode,\n thumbnailUrl,\n } = this.props\n const noteHasText = Boolean(note && note.length > 0)\n\n if (!noteHasText && isReview) {\n tracking(Events.p2p_review_note_typing_started({}))\n }\n\n if (!noteHasText && !isReview) {\n tracking(\n Events.p2p_amount_story_note_input_field_focused({\n receiver_country: recipientCountry,\n receiver_currency: toCurrencyCode,\n sender_currency: fromCurrencyCode,\n receiver_metadata_shown: thumbnailUrl ? 'profile_photo' : '',\n })\n )\n tracking(Events.p2p_amount_note_typing_started({}))\n }\n\n if (isReview) {\n trackClickUnifiedSend(\n flowType === 'buy' ? 'onGSclickNoteField' : 'onFFclickNoteField'\n )\n } else {\n trackAmountPageClick(flowType, recipient, 'note')\n }\n\n this.setState({ textAreaIsFocused: true })\n }\n\n onBlurTextArea = () => {\n this.setState({ textAreaIsFocused: false })\n tracking(Events.p2p_amount_note_typing_stopped({}))\n }\n\n noteLabelText = () => {\n const { showENSubTextRTR, label } = this.props\n const hasLabelProp = label && label.length > 0\n const notePlaceHolderAndLabelText = i18n('notePlaceHolder')\n\n let labelText\n if (env === ENV_TYPE.DONATE) {\n labelText = hasLabelProp ? label : i18nDonate('note.default')\n } else if (this.props.isGroup) {\n labelText = i18n('label.groupNote')\n } else {\n labelText = hasLabelProp ? label : notePlaceHolderAndLabelText\n }\n if (showENSubTextRTR && !hasLabelProp) {\n labelText = `${labelText} (${enRTRStrings.note})`\n }\n\n return labelText\n }\n\n render() {\n const {\n disabled,\n note,\n hasGiftIcon,\n isReview,\n themeId,\n shouldShowGift,\n } = this.props\n const { textAreaIsFocused } = this.state\n const noteHasText = note && note.length > 0\n\n const labelText = this.noteLabelText()\n\n /* PP-React TextArea doesn't support icons inside the label at this moment, the temporary solution is to\n use `+` ASCII character in the label */\n const textAreaLabel = labelText\n\n const wrapperClassNames = {\n [css(styles.noteWrapper)]: true,\n [css(styles.textAreaPartialWidth)]:\n shouldShowGift && !themeId && !isReview,\n }\n\n const textAreaClassNames = {\n [css(styles.textAreaGiftIcon)]: hasGiftIcon,\n }\n\n const textAreaProps = {\n label: textAreaLabel,\n value: note,\n disabled,\n theme: 'v2',\n minRows: 1,\n 'data-nemo': 'note-field',\n inputClassName: textAreaClassNames,\n id: 'noteField',\n onChange: this.onTextAreaChange,\n onFocus: this.onTextAreaFocus,\n onBlur: this.onBlurTextArea,\n }\n\n const donateTextAreaProps = {\n ...textAreaProps,\n inputClassName: {\n ...textAreaClassNames,\n [css(styles.textAreaOpen)]: noteHasText || textAreaIsFocused,\n },\n }\n\n return (\n \n {env === ENV_TYPE.DONATE ? (\n