{"ast":null,"code":"import { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE } from \"./formatters\";\n\nfunction mergeConfig(c1, c2) {\n  if (!c2) {\n    return c1;\n  }\n\n  return __assign(__assign(__assign({}, c1 || {}), c2 || {}), Object.keys(c1).reduce(function (all, k) {\n    all[k] = __assign(__assign({}, c1[k]), c2[k] || {});\n    return all;\n  }, {}));\n}\n\nfunction mergeConfigs(defaultConfig, configs) {\n  if (!configs) {\n    return defaultConfig;\n  }\n\n  return Object.keys(defaultConfig).reduce(function (all, k) {\n    all[k] = mergeConfig(defaultConfig[k], configs[k]);\n    return all;\n  }, __assign({}, defaultConfig));\n}\n\nfunction createFastMemoizeCache(store) {\n  return {\n    create: function create() {\n      return {\n        get: function get(key) {\n          return store[key];\n        },\n        set: function set(key, value) {\n          store[key] = value;\n        }\n      };\n    }\n  };\n}\n\nfunction createDefaultFormatters(cache) {\n  if (cache === void 0) {\n    cache = {\n      number: {},\n      dateTime: {},\n      pluralRules: {}\n    };\n  }\n\n  return {\n    getNumberFormat: memoize(function () {\n      var _a;\n\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n    }, {\n      cache: createFastMemoizeCache(cache.number),\n      strategy: strategies.variadic\n    }),\n    getDateTimeFormat: memoize(function () {\n      var _a;\n\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n    }, {\n      cache: createFastMemoizeCache(cache.dateTime),\n      strategy: strategies.variadic\n    }),\n    getPluralRules: memoize(function () {\n      var _a;\n\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n    }, {\n      cache: createFastMemoizeCache(cache.pluralRules),\n      strategy: strategies.variadic\n    })\n  };\n}\n\nvar IntlMessageFormat = function () {\n  function IntlMessageFormat(message, locales, overrideFormats, opts) {\n    var _this = this;\n\n    if (locales === void 0) {\n      locales = IntlMessageFormat.defaultLocale;\n    }\n\n    this.formatterCache = {\n      number: {},\n      dateTime: {},\n      pluralRules: {}\n    };\n\n    this.format = function (values) {\n      var parts = _this.formatToParts(values);\n\n      if (parts.length === 1) {\n        return parts[0].value;\n      }\n\n      var result = parts.reduce(function (all, part) {\n        if (!all.length || part.type !== PART_TYPE.literal || typeof all[all.length - 1] !== 'string') {\n          all.push(part.value);\n        } else {\n          all[all.length - 1] += part.value;\n        }\n\n        return all;\n      }, []);\n\n      if (result.length <= 1) {\n        return result[0] || '';\n      }\n\n      return result;\n    };\n\n    this.formatToParts = function (values) {\n      return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n    };\n\n    this.resolvedOptions = function () {\n      return {\n        locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0]\n      };\n    };\n\n    this.getAst = function () {\n      return _this.ast;\n    };\n\n    if (typeof message === 'string') {\n      this.message = message;\n\n      if (!IntlMessageFormat.__parse) {\n        throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n      }\n\n      this.ast = IntlMessageFormat.__parse(message, {\n        ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag\n      });\n    } else {\n      this.ast = message;\n    }\n\n    if (!Array.isArray(this.ast)) {\n      throw new TypeError('A message must be provided as a String or AST.');\n    }\n\n    this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n    this.locales = locales;\n    this.formatters = opts && opts.formatters || createDefaultFormatters(this.formatterCache);\n  }\n\n  Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n    get: function get() {\n      if (!IntlMessageFormat.memoizedDefaultLocale) {\n        IntlMessageFormat.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n      }\n\n      return IntlMessageFormat.memoizedDefaultLocale;\n    },\n    enumerable: false,\n    configurable: true\n  });\n  IntlMessageFormat.memoizedDefaultLocale = null;\n  IntlMessageFormat.__parse = parse;\n  IntlMessageFormat.formats = {\n    number: {\n      integer: {\n        maximumFractionDigits: 0\n      },\n      currency: {\n        style: 'currency'\n      },\n      percent: {\n        style: 'percent'\n      }\n    },\n    date: {\n      short: {\n        month: 'numeric',\n        day: 'numeric',\n        year: '2-digit'\n      },\n      medium: {\n        month: 'short',\n        day: 'numeric',\n        year: 'numeric'\n      },\n      long: {\n        month: 'long',\n        day: 'numeric',\n        year: 'numeric'\n      },\n      full: {\n        weekday: 'long',\n        month: 'long',\n        day: 'numeric',\n        year: 'numeric'\n      }\n    },\n    time: {\n      short: {\n        hour: 'numeric',\n        minute: 'numeric'\n      },\n      medium: {\n        hour: 'numeric',\n        minute: 'numeric',\n        second: 'numeric'\n      },\n      long: {\n        hour: 'numeric',\n        minute: 'numeric',\n        second: 'numeric',\n        timeZoneName: 'short'\n      },\n      full: {\n        hour: 'numeric',\n        minute: 'numeric',\n        second: 'numeric',\n        timeZoneName: 'short'\n      }\n    }\n  };\n  return IntlMessageFormat;\n}();\n\nexport { IntlMessageFormat };","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/node_modules/@react-native-aria/overlays/node_modules/intl-messageformat/lib/src/core.js"],"names":["__assign","__spreadArray","parse","memoize","strategies","formatToParts","PART_TYPE","mergeConfig","c1","c2","Object","keys","reduce","all","k","mergeConfigs","defaultConfig","configs","createFastMemoizeCache","store","create","get","key","set","value","createDefaultFormatters","cache","number","dateTime","pluralRules","getNumberFormat","_a","args","_i","arguments","length","Intl","NumberFormat","bind","apply","strategy","variadic","getDateTimeFormat","DateTimeFormat","getPluralRules","PluralRules","IntlMessageFormat","message","locales","overrideFormats","opts","_this","defaultLocale","formatterCache","format","values","parts","result","part","type","literal","push","ast","formatters","formats","undefined","resolvedOptions","locale","supportedLocalesOf","getAst","__parse","TypeError","ignoreTag","Array","isArray","defineProperty","memoizedDefaultLocale","enumerable","configurable","integer","maximumFractionDigits","currency","style","percent","date","short","month","day","year","medium","long","full","weekday","time","hour","minute","second","timeZoneName"],"mappings":"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","sourcesContent":["/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n    if (!c2) {\n        return c1;\n    }\n    return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n        all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n        return all;\n    }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n    if (!configs) {\n        return defaultConfig;\n    }\n    return Object.keys(defaultConfig).reduce(function (all, k) {\n        all[k] = mergeConfig(defaultConfig[k], configs[k]);\n        return all;\n    }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n    return {\n        create: function () {\n            return {\n                get: function (key) {\n                    return store[key];\n                },\n                set: function (key, value) {\n                    store[key] = value;\n                },\n            };\n        },\n    };\n}\nfunction createDefaultFormatters(cache) {\n    if (cache === void 0) { cache = {\n        number: {},\n        dateTime: {},\n        pluralRules: {},\n    }; }\n    return {\n        getNumberFormat: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.number),\n            strategy: strategies.variadic,\n        }),\n        getDateTimeFormat: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.dateTime),\n            strategy: strategies.variadic,\n        }),\n        getPluralRules: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.pluralRules),\n            strategy: strategies.variadic,\n        }),\n    };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n    function IntlMessageFormat(message, locales, overrideFormats, opts) {\n        var _this = this;\n        if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n        this.formatterCache = {\n            number: {},\n            dateTime: {},\n            pluralRules: {},\n        };\n        this.format = function (values) {\n            var parts = _this.formatToParts(values);\n            // Hot path for straight simple msg translations\n            if (parts.length === 1) {\n                return parts[0].value;\n            }\n            var result = parts.reduce(function (all, part) {\n                if (!all.length ||\n                    part.type !== PART_TYPE.literal ||\n                    typeof all[all.length - 1] !== 'string') {\n                    all.push(part.value);\n                }\n                else {\n                    all[all.length - 1] += part.value;\n                }\n                return all;\n            }, []);\n            if (result.length <= 1) {\n                return result[0] || '';\n            }\n            return result;\n        };\n        this.formatToParts = function (values) {\n            return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n        };\n        this.resolvedOptions = function () { return ({\n            locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n        }); };\n        this.getAst = function () { return _this.ast; };\n        if (typeof message === 'string') {\n            this.message = message;\n            if (!IntlMessageFormat.__parse) {\n                throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n            }\n            // Parse string messages into an AST.\n            this.ast = IntlMessageFormat.__parse(message, {\n                ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n            });\n        }\n        else {\n            this.ast = message;\n        }\n        if (!Array.isArray(this.ast)) {\n            throw new TypeError('A message must be provided as a String or AST.');\n        }\n        // Creates a new object with the specified `formats` merged with the default\n        // formats.\n        this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n        // Defined first because it's used to build the format pattern.\n        this.locales = locales;\n        this.formatters =\n            (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n    }\n    Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n        get: function () {\n            if (!IntlMessageFormat.memoizedDefaultLocale) {\n                IntlMessageFormat.memoizedDefaultLocale =\n                    new Intl.NumberFormat().resolvedOptions().locale;\n            }\n            return IntlMessageFormat.memoizedDefaultLocale;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    IntlMessageFormat.memoizedDefaultLocale = null;\n    IntlMessageFormat.__parse = parse;\n    // Default format options used as the prototype of the `formats` provided to the\n    // constructor. These are used when constructing the internal Intl.NumberFormat\n    // and Intl.DateTimeFormat instances.\n    IntlMessageFormat.formats = {\n        number: {\n            integer: {\n                maximumFractionDigits: 0,\n            },\n            currency: {\n                style: 'currency',\n            },\n            percent: {\n                style: 'percent',\n            },\n        },\n        date: {\n            short: {\n                month: 'numeric',\n                day: 'numeric',\n                year: '2-digit',\n            },\n            medium: {\n                month: 'short',\n                day: 'numeric',\n                year: 'numeric',\n            },\n            long: {\n                month: 'long',\n                day: 'numeric',\n                year: 'numeric',\n            },\n            full: {\n                weekday: 'long',\n                month: 'long',\n                day: 'numeric',\n                year: 'numeric',\n            },\n        },\n        time: {\n            short: {\n                hour: 'numeric',\n                minute: 'numeric',\n            },\n            medium: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n            },\n            long: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n                timeZoneName: 'short',\n            },\n            full: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n                timeZoneName: 'short',\n            },\n        },\n    };\n    return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n"]},"metadata":{},"sourceType":"module"}