{"version":3,"sources":["webpack:///../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///../node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack:///../node_modules/@babel/runtime/regenerator/index.js","webpack:///../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///../node_modules/@paypalcorp/pp-react-links/dist/@paypalcorp/pp-react-links.esm.js","webpack:///../node_modules/@paypalcorp/pp-react-text/dist/@paypalcorp/pp-react-text.esm.js","webpack:///../node_modules/chain-function/index.js","webpack:///../node_modules/classnames/index.js","webpack:///../node_modules/cldrjs/dist/cldr.js","webpack:///../node_modules/cldrjs/dist/cldr/event.js","webpack:///../node_modules/cldrjs/dist/cldr/supplemental.js","webpack:///../node_modules/cldrjs/dist/cldr/unresolved.js","webpack:///../node_modules/cldrjs/dist/node_main.js","webpack:///../node_modules/consumerweb-sharing/src/index.js","webpack:///../node_modules/copy-to-clipboard/index.js","webpack:///../node_modules/cross-fetch/dist/browser-polyfill.js","webpack:///../node_modules/dom-helpers/class/addClass.js","webpack:///../node_modules/dom-helpers/class/hasClass.js","webpack:///../node_modules/dom-helpers/class/removeClass.js","webpack:///../node_modules/dom-helpers/transition/properties.js","webpack:///../node_modules/dom-helpers/util/inDOM.js","webpack:///../node_modules/dom-helpers/util/requestAnimationFrame.js","webpack:///../node_modules/exif-js/exif.js","webpack:///../node_modules/fontfaceobserver/fontfaceobserver.standalone.js","webpack:///../node_modules/globalize/dist/globalize.js","webpack:///../node_modules/globalize/dist/globalize/number.js","webpack:///../node_modules/graphql-request/dist/src/index.js","webpack:///../node_modules/graphql-request/dist/src/types.js","webpack:///../node_modules/griffin-paypal/lib/client/number.js","webpack:///../node_modules/griffin-paypal/lib/client/utils/assertion.js","webpack:///../node_modules/griffin-paypal/lib/client/utils/basic.js","webpack:///../node_modules/griffin-paypal/lib/client/utils/numberHelpers.js","webpack:///../node_modules/griffin-paypal/number.js","webpack:///../node_modules/lodash/_basePropertyOf.js","webpack:///../node_modules/lodash/_unescapeHtmlChar.js","webpack:///../node_modules/lodash/isNaN.js","webpack:///../node_modules/lodash/isNumber.js","webpack:///../node_modules/lodash/unescape.js","webpack:///../node_modules/pp-amount-field/dist/pp-amount-field.basic.v3.esm.js","webpack:///../node_modules/pp-amount-field/basic/v3.js","webpack:///../node_modules/react-copy-to-clipboard/lib/Component.js","webpack:///../node_modules/react-copy-to-clipboard/lib/index.js","webpack:///../node_modules/react-router-dom/es/Link.js","webpack:///../node_modules/react-transition-group/CSSTransitionGroup.js","webpack:///../node_modules/react-transition-group/CSSTransitionGroupChild.js","webpack:///../node_modules/react-transition-group/TransitionGroup.js","webpack:///../node_modules/react-transition-group/index.js","webpack:///../node_modules/react-transition-group/node_modules/warning/browser.js","webpack:///../node_modules/react-transition-group/utils/ChildMapping.js","webpack:///../node_modules/react-transition-group/utils/PropTypes.js","webpack:///../node_modules/toggle-selection/index.js"],"names":["_arrayLikeToArray","arr","len","length","i","arr2","Array","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_slicedToArray","isArray","Symbol","iterator","Object","_arr","_n","_d","_e","_s","_i","next","push","unsupportedIterableToArray","TypeError","_unsupportedIterableToArray","o","minLen","n","prototype","toString","call","slice","constructor","name","from","test","module","exports","obj","__esModule","runtime","Op","hasOwn","hasOwnProperty","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","defineProperty","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","method","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","result","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","_toConsumableArray","arrayLikeToArray","styles","Link","_ref","_clsx","inverse","secondary","className","leftIcon","children","_ref$as","as","rest","target","rel","attrStr","_len","attrs","_key","Set","concat","split","filter","join","leftIconElm","createElement","cls","HeadingText","size","BodyText","strong","CaptionText","reduce","current","classNames","classes","argType","inner","default","merge","arrayIsArray","pathNormalize","path","attributes","replace","arraySome","array","callback","some","coreLikelySubtags","Cldr","cldr","subtags","options","match","language","script","sep","localeSep","territory","variants","get","force","coreRemoveLikelySubtags","maxLanguageId","coreSubtags","locale","aux","arrayForEach","bundleLookup","minLanguageId","availableBundleMap","_availableBundleMap","availableBundleMapQueue","_availableBundleMapQueue","bundle","existing","maxBundle","minBundle","splice","createError","code","message","JSON","stringify","objectKeys","attribute","validate","check","validatePresence","validateType","expected","validateTypePath","validateTypePlainObject","resourceGet","data","node","coreSetAvailableBundles","json","main","indexOf","alwaysArray","somethingOrArray","jsonMerge","destination","sources","source","prop","coreLoad","jsons","j","itemGetResolved","normalizedPath","_resolved","init","_alwaysArray","_coreLoad","_createError","_itemGetResolved","_jsonMerge","_pathNormalize","_resourceGet","_validatePresence","_validateType","_validateTypePath","_validateTypePlainObject","load","unicodeLocaleExtensions","variant","unicodeLocaleExtensionsRaw","region","EventEmitter","proto","indexOfListener","listeners","listener","alias","getListeners","evt","response","events","_getEvents","RegExp","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","on","addOnceListener","defineEvent","defineEvents","evts","removeListener","index","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","removeEvent","_events","removeAllListeners","emitEvent","_getOnceReturnValue","trigger","emit","setOnceReturnValue","_onceReturnValue","noConflict","originalGlobalValue","superGet","superInit","validateTypeFunction","globalEe","validateTypeEvent","validateThenCall","event","getOverload","ee","_eventInit","supplementalMain","prepend","supplemental","weekData","firstDay","minDays","parseInt","timeData","allowed","preferred","initSuper","lookup","itemLookup","childLocale","parent","_raw","substr","lastIndexOf","bundleParentLookup","resourceSet","getPopupOptionsString","popupWidth","popupHeight","left","document","body","clientWidth","clientHeight","encodeString","string","window","encodeURIComponent","isMobileDevice","navigator","userAgent","MSStream","shareURLByFacebook","url","popHeight","sharerURL","open","shareURLByGooglePlus","languageCode","shareByTwitter","text","sharerUrl","shareByEmail","emailSubject","location","href","shareBySMS","shareByWhatsApp","nativeApp","shareURLByMessenger","appId","redirectUri","deselectCurrent","clipboardToIE11Formatting","debug","reselectPrevious","range","selection","success","createRange","getSelection","textContent","style","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","clearData","setData","onCopy","appendChild","selectNodeContents","addRange","execCommand","copyKey","prompt","removeRange","removeAllRanges","removeChild","fetch","support","Blob","viewClasses","isDataView","DataView","isPrototypeOf","isArrayBufferView","ArrayBuffer","isView","Headers","append","normalizeName","normalizeValue","oldValue","map","has","set","thisArg","items","iteratorFor","entries","methods","Request","clone","_bodyInit","Body","Response","status","statusText","headers","redirectStatuses","redirect","RangeError","input","request","xhr","XMLHttpRequest","onload","rawHeaders","getAllResponseHeaders","line","parts","shift","trim","responseURL","responseText","onerror","ontimeout","credentials","withCredentials","responseType","setRequestHeader","send","polyfill","String","toLowerCase","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","view","Uint8Array","byteLength","buffer","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","chars","fromCharCode","readArrayBufferAsText","formData","decode","parse","upcased","mode","toUpperCase","referrer","form","bytes","decodeURIComponent","bodyInit","ok","_interopRequireDefault","element","classList","add","_hasClass","setAttribute","baseVal","contains","replaceClassName","origClass","classToRemove","animationEnd","animationDelay","animationTiming","animationDuration","animationName","transitionEnd","transitionDuration","transitionDelay","transitionTiming","transitionProperty","transform","prefix","_inDOM","_getTransitionPropert","vendorMap","O","Moz","Webkit","ms","vendors","vendor","getTransitionProperties","_default","end","property","timing","delay","duration","compatRaf","cancel","raf","curr","Date","getTime","Math","max","req","setTimeout","getKey","k","rafKey","cb","id","EXIF","EXIFwrapped","ExifTags","Tags","TiffTags","GPSTags","0","IFD1Tags","StringValues","ExposureProgram","1","2","3","4","5","6","7","8","MeteringMode","255","LightSource","9","10","11","12","13","14","15","17","18","19","20","21","22","23","24","Flash","SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Saturation","Sharpness","SubjectDistanceRange","FileSource","Components","imageHasData","img","getImageData","handleBinaryFile","binFile","findEXIFinJPEG","exifdata","iptcdata","file","dataView","getUint8","offset","isFieldSegmentStart","nameHeaderLength","startOffset","sectionLength","getUint16","readIPTCData","findIPTCinJPEG","isXmpEnabled","xmpdata","dom","DOMParser","getStringFromDB","xmpString","xmpEndIndex","indexOfXmp","substring","xml2Object","parseFromString","findXMPinJPEG","src","base64","contentType","binary","atob","charCodeAt","base64ToArrayBuffer","fileReader","http","objectURLToBlob","File","readEXIFData","IptcFieldMap","fieldValue","fieldName","dataSize","segmentType","segmentStartPos","getInt16","readTags","tiffStart","dirStart","strings","bigEnd","entryOffset","tags","readTagValue","vals","val","numerator","denominator","numValues","getUint32","valueOffset","Number","getInt32","start","outstr","tag","exifData","gpsData","tiffOffset","firstIFDOffset","ExifIFDPointer","GPSInfoIFDPointer","IFD1OffsetPointer","getNextIFDOffset","thumbTags","JpegIFOffset","JpegIFByteCount","tOffset","tLength","log","readThumbnailImage","xml2json","xml","nodeType","item","nodeName","nodeValue","hasChildNodes","childNodes","child","old","idx","itemAtt","dataKey","dataValue","enableXmp","disableXmp","getData","Image","HTMLImageElement","getTag","getIptcTag","getAllTags","a","getAllIptcTags","pretty","strPretty","readFromBinaryFile","l","b","attachEvent","t","createTextNode","c","h","f","g","cssText","u","z","offsetWidth","width","scrollLeft","scrollWidth","A","parentNode","B","family","weight","stretch","C","D","E","F","J","fonts","K","font","L","r","H","exec","G","M","N","race","clearTimeout","removeEventListener","readyState","detachEvent","m","v","w","x","y","d","p","q","dir","I","hidden","formatMessage","variable","objectExtend","partsPush","runtimeStringify","runtimeKey","fnName","argsStr","hash","str","abs","stringOrArray","validateCldr","skipBoolean","skip","pathRe","validateParameterPresence","validateParameterType","validateParameterTypeLocale","isPlainObject","alwaysCldr","localeOrCldr","validateLikelySubtags","Globalize","_formatMessage","_formatMessageToParts","lastOffset","nameIncludingBrackets","part","_isPlainObject","_objectExtend","_partsJoin","_partsPush","_regexpEscape","_runtimeBind","runtimeArgs","matches","functionName","generatorString","_stringPad","count","right","_validate","_validateCldr","_validateDefaultLocale","_validateParameterPresence","_validateParameterRange","minimum","maximum","_validateParameterTypePlainObject","_validateParameterType","factory","partsJoin","regexpEscape","runtimeBind","stringPad","validateDefaultLocale","validateParameterRange","validateParameterTypePlainObject","createErrorUnsupportedFeature","validateParameterTypeNumber","validateParameterTypeString","numberNumberingSystem","numberNumberingSystemDigitsMap","numberPatternRe","numberPatternProperties","numberSymbol","numberSymbolName","numberSymbolMap","numberTruncate","numberFormatProperties","regexpCfG","regexpDashG","regexpZsG","looseMatching","objectMap","removeLiteralQuotes","numberPattern","numberCompactPatternRe","numberToPrecision","numberFormat","numberToPartsFormatterFn","feature","nu","_type","_digits","pattern","aux1","aux2","fractionPattern","integerFractionOrSignificantPattern","integerPattern","maximumFractionDigits","maximumSignificantDigits","minimumFractionDigits","minimumIntegerDigits","minimumSignificantDigits","padding","primaryGroupingSize","roundIncrement","scientificNotation","secondaryGroupingSize","significantPattern","suffix","minimumSignificantDigitsMatch","maximumSignificantDigitsMatch","symbol","symbolMap","NaN","negativePattern","negativePrefix","negativeProperties","negativeSuffix","positivePattern","roundFn","properties","getOptions","propertyIndex","round","incrementOrExp","exp","increment","exponent","toExponential","compact","compactType","maxExponent","newObject","compactKey","numberExponent","pluralForm","numberCompact","useGrouping","min","pair","number","precision","roundOrder","ceil","pluralGenerator","compactMap","infinitySymbol","nanSymbol","nuDigitsMap","stringToParts","compactPattern","compactProperties","divisor","numberType","character","literal","digit","etc","isFinite","floor","other","pow","toFixed","numberFormatIntegerFractionDigits","atMinimum","atMaximum","numberFormatSignificantDigits","garbage","space","currentGroupingSize","ret","switchToSecondary","numberFormatGroupingSeparator","numberFormatter","numberToPartsFormatter","returnFn","numberFormatterFn","fnArgs","raw","validateDigits","numberParser","decimalSymbolRe","digitsRe","groupingSeparatorRe","invertedNuDigitsMap","invertedSymbolMap","numberTokenizer","formatProperties","numberSymbolInvertedMap","localizedDigit","infinity","nan","numberParseProperties","grammar","negative","prefixNSuffix","tokenizer","_value","statement","every","lexeme","Infinity","tokenizeNParse","numberParse","numberParserFn","formatNumber","formatNumberToParts","parseNumber","_createErrorUnsupportedFeature","_numberNumberingSystem","_numberNumberingSystemDigitsMap","_numberPattern","_numberSymbol","_looseMatching","_removeLiteralQuotes","_validateParameterTypeNumber","_validateParameterTypeString","__assign","assign","s","__awaiter","_arguments","P","fulfilled","step","__generator","_","label","trys","ops","verb","op","__rest","getOwnPropertySymbols","types_1","types_2","ClientError","GraphQLClient","rawRequest","query","variables","_a","others","headers_1","status_1","errorResult","_b","getResult","errors","setHeaders","setHeader","startsWith","extendStatics","__extends","__","_super","_this","extractMessage","captureStackTrace","assertion","basic","objectAssign","assert","assertMetadata","assertRange","assertType","getValueOrDefault","numberHelpers","assertCanonicalNumberType","assertLocalizedNumberType","setFractionDigits","NumberHandler","optionsPrototype","outputType","currencyDisplay","NUMBER_FORMAT","CURRENCY_PRESETS","CURRENCY_FORMAT","CURRENCY_FORMAT_ISOCURRENCY","CURRENCY_FORMAT_SYMBOLISOCURRENCY","presetName","presetValue","CURRENCY_PRESET_VALUES","symbolForCurrency","handler","currencyCode","currencyMeta","metadata","cldrCurrencies","currencyStyles","currency","newCurrencyStyles","didCurrencyLevelOverride","currency_override","currencySymbol","svalueA","svalueB","valueA","valueB","equivalency","fuzzyMatch","currencyPatternByStyle","globalize","currencyValue","parameter","parameterValue","currencyDigits","currencyInfo","digits","digitsForCurrency","localeNumberStyles","cldrNumbers","numberStyles","localeCurrencyStyles","formattedCurrency","formatBinder","numberOptions","patternElements","minusSign","separator","createHandler","griffin","griffinNumberMeta","country","cldrLocale","cldrMain","numbers","currencies","assertNumberMeta","listFormat","smarterTypeof","withinRange","condition","errorMessage","errorClass","parameterName","expectedTypes","parameterType","expectedTypesMessage","metadataNode","collection","objectGet","objectSet","objectValues","cloneArray","cloneDate","date","fixedCharCodeAt","hi","low","objectSlice","jsonDeepMerge","isLatin","trimObject","clonedObject","definePrivateProperty","defineProperties","defaultValue","conjunction","invalidCodePointFromString","regex","codePoint","chr","assertCanonicalNumberTypeStrict","unescapeHtmlChar","basePropertyOf","isNumber","baseGetTag","isObjectLike","reEscapedHtml","reHasEscapedHtml","replaceNonDigits","formatUserCentsInput","currencyDecimal","userInput","currencyPrecision","JPY","TWD","HUF","getCurrencyPrecision","stringVal","formattedValue","sliceDigitsBeforeCurrencyDecimal","sliceDigitsAfterCurrencyDecimal","formatInput","stringValue","amount","numOfZeroesToAdd","repeat","prependWithZeroes","calcNewValue","measureTextSizeWithStyle","_ref2","fontSize","hostElement","hostElementStyles","getComputedStyle","spanElem","_hostElementStyles$fo","fontWeight","fontFamily","paddingLeft","paddingRight","borderWidth","innerHTML","_document$body2","_document$body","cssMeasurementToNumber","measurement","moveCursorToTheEnd","setSelectionRange","callAllEventHandlers","fns","_len2","_key2","preventPPAmountFieldDefault","callAll","_len3","_key3","_len4","_key4","Boolean","_Component","SingleAmountField","_getPrototypeOf2","handleChange","_ref2$target","_ref2$target$value","_input","_objectSpread2","props","_props$refKey","refKey","ref","onChange","onFocus","onClick","inputStyles","amountWidth","amountFontSize","autoComplete","autoFocus","readOnly","inputRef","handleInputChange","moveCursor","el","_objectSpread3","_props$refKey2","selectRef","handleSelectChange","currencyCodeWidth","_select","_this2","_isMounted","catch","forceUpdate","onFontLoaded","_ref3","_ref3$value","_ref3$currencyCode","cleanValue","numberValue","onInvalidInput","getInputProps","getSelectProps","_this$props","currencySymbolMap","fontSizeMapping","defaultFontSize","getFormattedValue","digitCount","currencyCharCount","updateFontSize","ua","isFirefox","includes","isIE11","MSInputMethodContext","documentMode","isIE","extraSpaceToAccountForWeirdBrowserIssues","makeCalculations","getStateAndHelpers","_jsxFileName","_React$Component","BasicAmountField","showInvalid","hideCursor","visible","setState","renderTimeoutId","_this3","_this$props$showConde","showCondensedUI","_this$props$renderAft","renderAfterInput","_this$props$arrowProp","arrowProps","_this$props$className","_this$props$inputProp","inputProps","_this$props$selectPro","selectProps","forwardToAmountField","_this$state","currencyCodeList","handleFontLoaded","__source","fileName","lineNumber","__self","inputWrapperClasses","currencySymbolClassNames","inputClassNames","dropdownWrapperClassNames","disabled","dropdownClassNames","visibility","color","required","onMouseDown","handleMouseDown","onMouseUp","handleMouseUp","ArrowIcon","Component","viewBox","preserveAspectRatio","height","fill","stroke","strokeWidth","paddingBottom","AmountFieldWithCSS","version","stylesString","stylesId","head","querySelector","arrowHeight","arrowWidth","CopyToClipboard","_react","_copyToClipboard","_typeof","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","ReferenceError","_setPrototypeOf","_defineProperty","_React$PureComponent","elem","Children","only","protoProps","staticProps","subClass","superClass","_inherits","_this$props2","cloneElement","getOwnPropertyDescriptors","_objectSpread","PureComponent","_extends","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","_temp","handleClick","defaultPrevented","button","history","router","to","render","_props","innerRef","createHref","propTypes","func","bool","oneOfType","isRequired","defaultProps","contextTypes","shape","_react2","_propTypes2","_TransitionGroup2","_CSSTransitionGroupChild2","_PropTypes","nameShape","transitionTimeout","CSSTransitionGroup","_wrapChild","transitionName","appear","transitionAppear","enter","transitionEnter","leave","transitionLeave","appearTimeout","transitionAppearTimeout","enterTimeout","transitionEnterTimeout","leaveTimeout","transitionLeaveTimeout","childFactory","_addClass2","_removeClass2","_requestAnimationFrame2","_properties","_reactDom","CSSTransitionGroupChild","componentWillAppear","transition","componentWillEnter","componentWillLeave","componentWillMount","classNameAndNodeQueue","transitionTimeouts","componentWillUnmount","unmounted","timeout","animationType","finishCallback","findDOMNode","activeClassName","timer","queueClassAndNode","addEndListener","rafHandle","flushClassNameAndNodeQueue","scrollTop","_chainFunction2","_ChildMapping","any","TransitionGroup","performAppear","component","currentlyTransitioningKeys","_handleDoneAppearing","bind","componentDidAppear","currentChildMapping","getChildMapping","performLeave","performEnter","_handleDoneEntering","componentDidEnter","_handleDoneLeaving","componentDidLeave","keysToEnter","newChildren","childRefs","keysToLeave","componentDidMount","initialChildMapping","componentWillReceiveProps","nextProps","nextChildMapping","prevChildMapping","mergeChildMappings","hasPrev","hasNext","componentDidUpdate","childrenToRender","_loop","isCallbackRef","factoryChild","_CSSTransitionGroup2","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","transitionType","timeoutPropName","enabledPropName","active","enterActive","leaveActive","appearActive","rangeCount","activeElement","ranges","getRangeAt","tagName","blur","focus"],"mappings":"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","file":"vendors~ppme-grab~ppme-settings~ppme-slug.bundle.js","sourcesContent":["export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = require(\"regenerator-runtime\");\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React from 'react';\nimport clsx from 'clsx';\nimport '../__generated__/styles/links.css';\n\nvar styles = {\"ppvx_link\":\"ppvx_link___3-4-6\",\"ppvx_icon\":\"ppvx_icon___3-4-6\",\"ppvx_link__left-icon\":\"ppvx_link__left-icon___3-4-6\",\"ppvx_link--inverse\":\"ppvx_link--inverse___3-4-6\",\"ppvx_link--secondary\":\"ppvx_link--secondary___3-4-6\"};\n\nfunction Link(_ref) {\n var _clsx;\n\n var inverse = _ref.inverse,\n secondary = _ref.secondary,\n className = _ref.className,\n leftIcon = _ref.leftIcon,\n children = _ref.children,\n _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'a' : _ref$as,\n rest = _objectWithoutProperties(_ref, [\"inverse\", \"secondary\", \"className\", \"leftIcon\", \"children\", \"as\"]);\n\n if (as === 'a' && rest.target === '_blank') {\n rest.rel = function attrSet(attrStr) {\n for (var _len = arguments.length, attrs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n attrs[_key - 1] = arguments[_key];\n }\n\n return Array.from(new Set([].concat(_toConsumableArray((attrStr || '').split(' ')), attrs))).filter(function (i) {\n return i.length > 0;\n }).join(' ');\n }(rest.rel, 'noreferrer', 'noopener');\n }\n\n var leftIconElm = leftIcon && React.createElement(\"span\", {\n className: styles['ppvx_link__left-icon']\n }, leftIcon);\n var cls = clsx(styles.ppvx_link, (_clsx = {}, _defineProperty(_clsx, styles['ppvx_link--inverse'], inverse), _defineProperty(_clsx, styles['ppvx_link--secondary'], secondary), _clsx), className);\n return React.createElement(as, _extends({\n className: cls\n }, rest), leftIconElm, children);\n}\n\nexport { Link };\n","import '../__generated__/styles/text.css';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React from 'react';\nimport clsx from 'clsx';\n\nvar styles = {\"ppvx_text--xl8\":\"ppvx_text--xl8___5-4-6\",\"ppvx_text--xl7\":\"ppvx_text--xl7___5-4-6\",\"ppvx_text--xl6\":\"ppvx_text--xl6___5-4-6\",\"ppvx_text--xl5\":\"ppvx_text--xl5___5-4-6\",\"ppvx_text--xl4\":\"ppvx_text--xl4___5-4-6\",\"ppvx_text--xl3\":\"ppvx_text--xl3___5-4-6\",\"ppvx_text--xl2\":\"ppvx_text--xl2___5-4-6\",\"ppvx_text--xl\":\"ppvx_text--xl___5-4-6\",\"ppvx_text--lg\":\"ppvx_text--lg___5-4-6\",\"ppvx_text--md\":\"ppvx_text--md___5-4-6\",\"ppvx_text--sm\":\"ppvx_text--sm___5-4-6\",\"ppvx_text--xs\":\"ppvx_text--xs___5-4-6\",\"ppvx_text--regular\":\"ppvx_text--regular___5-4-6\",\"ppvx_text--medium\":\"ppvx_text--medium___5-4-6\",\"ppvx_text--caption\":\"ppvx_text--caption___5-4-6\",\"ppvx_text--caption-strong\":\"ppvx_text--caption-strong___5-4-6\",\"ppvx_text--body\":\"ppvx_text--body___5-4-6\",\"ppvx_text--body-strong\":\"ppvx_text--body-strong___5-4-6\",\"ppvx_text--heading-xs\":\"ppvx_text--heading-xs___5-4-6\",\"ppvx_text--heading-sm\":\"ppvx_text--heading-sm___5-4-6\",\"ppvx_text--heading-md\":\"ppvx_text--heading-md___5-4-6\",\"ppvx_text--heading-lg\":\"ppvx_text--heading-lg___5-4-6\",\"ppvx_text--hero\":\"ppvx_text--hero___5-4-6\",\"ppvx_text--beta-title\":\"ppvx_text--beta-title___5-4-6\",\"ppvx_text--beta-heading-xs\":\"ppvx_text--beta-heading-xs___5-4-6\",\"ppvx_text--beta-heading-sm\":\"ppvx_text--beta-heading-sm___5-4-6\",\"ppvx_text--beta-heading-md\":\"ppvx_text--beta-heading-md___5-4-6\",\"ppvx_text--beta-heading-lg\":\"ppvx_text--beta-heading-lg___5-4-6\",\"ppvx_text--beta-display-lg\":\"ppvx_text--beta-display-lg___5-4-6\"};\n\nfunction Text(_ref) {\n var _clsx;\n\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'p' : _ref$as,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 'md' : _ref$size,\n regular = _ref.regular,\n medium = _ref.medium,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, [\"as\", \"size\", \"regular\", \"medium\", \"className\"]);\n\n return React.createElement(as, _objectSpread({\n className: clsx(styles[\"ppvx_text--\".concat(size)], (_clsx = {}, _defineProperty(_clsx, styles['ppvx_text--regular'], regular), _defineProperty(_clsx, styles['ppvx_text--medium'], medium), _clsx), className)\n }, rest));\n}\n\nfunction HeadingText(_ref) {\n var _clsx;\n\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n size = _ref.size,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, [\"as\", \"size\", \"className\"]);\n\n return React.createElement(as, _objectSpread({\n className: clsx((_clsx = {}, _defineProperty(_clsx, styles[\"ppvx_text--heading-\".concat(size)], size !== 'hero'), _defineProperty(_clsx, styles['ppvx_text--hero'], size === 'hero'), _clsx), className)\n }, rest));\n}\n\nfunction BodyText(_ref) {\n var _clsx;\n\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n strong = _ref.strong,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, [\"as\", \"strong\", \"className\"]);\n\n return React.createElement(as, _objectSpread({\n className: clsx((_clsx = {}, _defineProperty(_clsx, styles['ppvx_text--body'], !strong), _defineProperty(_clsx, styles['ppvx_text--body-strong'], strong), _clsx), className)\n }, rest));\n}\n\nfunction CaptionText(_ref) {\n var _clsx;\n\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n strong = _ref.strong,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, [\"as\", \"strong\", \"className\"]);\n\n return React.createElement(as, _objectSpread({\n className: clsx((_clsx = {}, _defineProperty(_clsx, styles['ppvx_text--caption'], !strong), _defineProperty(_clsx, styles['ppvx_text--caption-strong'], strong), _clsx), className)\n }, rest));\n}\n\nfunction BetaTitleText(_ref) {\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, [\"as\", \"className\"]);\n\n return React.createElement(as, _objectSpread({\n className: clsx(styles['ppvx_text--beta-title'], className)\n }, rest));\n}\n\nfunction BetaHeadingText(_ref) {\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n size = _ref.size,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, [\"as\", \"size\", \"className\"]);\n\n return React.createElement(as, _objectSpread({\n className: clsx(styles[\"ppvx_text--beta-heading-\".concat(size)], className)\n }, rest));\n}\n\nfunction BetaDisplayText(_ref) {\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n size = _ref.size,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, [\"as\", \"size\", \"className\"]);\n\n return React.createElement(as, _objectSpread({\n className: clsx(styles[\"ppvx_text--beta-display-\".concat(size)], className)\n }, rest));\n}\n\n// External import: Generated css available in dist folder after build\n\nexport { BetaDisplayText, BetaHeadingText, BetaTitleText, BodyText, CaptionText, HeadingText, Text };\n","\nmodule.exports = function chain(){\n var len = arguments.length\n var args = [];\n\n for (var i = 0; i < len; i++)\n args[i] = arguments[i]\n\n args = args.filter(function(fn){ return fn != null })\n\n if (args.length === 0) return undefined\n if (args.length === 1) return args[0]\n\n return args.reduce(function(current, next){\n return function chainedFunction() {\n current.apply(this, arguments);\n next.apply(this, arguments);\n };\n })\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * CLDR JavaScript Library v0.5.3\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-08-05T21:43Z\n */\n/*!\n * CLDR JavaScript Library v0.5.3 2020-08-05T21:43Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( root, factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Global\n\t\troot.Cldr = factory();\n\t}\n\n}( this, function() {\n\n\n\tvar arrayIsArray = Array.isArray || function( obj ) {\n\t\treturn Object.prototype.toString.call( obj ) === \"[object Array]\";\n\t};\n\n\n\n\n\tvar pathNormalize = function( path, attributes ) {\n\t\tif ( arrayIsArray( path ) ) {\n\t\t\tpath = path.join( \"/\" );\n\t\t}\n\t\tif ( typeof path !== \"string\" ) {\n\t\t\tthrow new Error( \"invalid path \\\"\" + path + \"\\\"\" );\n\t\t}\n\t\t// 1: Ignore leading slash `/`\n\t\t// 2: Ignore leading `cldr/`\n\t\tpath = path\n\t\t\t.replace( /^\\// , \"\" ) /* 1 */\n\t\t\t.replace( /^cldr\\// , \"\" ); /* 2 */\n\n\t\t// Replace {attribute}'s\n\t\tpath = path.replace( /{[a-zA-Z]+}/g, function( name ) {\n\t\t\tname = name.replace( /^{([^}]*)}$/, \"$1\" );\n\t\t\treturn attributes[ name ];\n\t\t});\n\n\t\treturn path.split( \"/\" );\n\t};\n\n\n\n\n\tvar arraySome = function( array, callback ) {\n\t\tvar i, length;\n\t\tif ( array.some ) {\n\t\t\treturn array.some( callback );\n\t\t}\n\t\tfor ( i = 0, length = array.length; i < length; i++ ) {\n\t\t\tif ( callback( array[ i ], i, array ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\n\n\n\t/**\n\t * Return the maximized language id as defined in\n\t * http://www.unicode.org/reports/tr35/#Likely_Subtags\n\t * 1. Canonicalize.\n\t * 1.1 Make sure the input locale is in canonical form: uses the right\n\t * separator, and has the right casing.\n\t * TODO Right casing? What df? It seems languages are lowercase, scripts are\n\t * Capitalized, territory is uppercase. I am leaving this as an exercise to\n\t * the user.\n\t *\n\t * 1.2 Replace any deprecated subtags with their canonical values using the\n\t * data in supplemental metadata. Use the first value in the\n\t * replacement list, if it exists. Language tag replacements may have multiple\n\t * parts, such as \"sh\" ➞ \"sr_Latn\" or mo\" ➞ \"ro_MD\". In such a case, the\n\t * original script and/or region are retained if there is one. Thus\n\t * \"sh_Arab_AQ\" ➞ \"sr_Arab_AQ\", not \"sr_Latn_AQ\".\n\t * TODO What data?\n\t *\n\t * 1.3 If the tag is grandfathered (see in the supplemental data), then return it.\n\t * TODO grandfathered?\n\t *\n\t * 1.4 Remove the script code 'Zzzz' and the region code 'ZZ' if they occur.\n\t * 1.5 Get the components of the cleaned-up source tag (languages, scripts,\n\t * and regions), plus any variants and extensions.\n\t * 2. Lookup. Lookup each of the following in order, and stop on the first\n\t * match:\n\t * 2.1 languages_scripts_regions\n\t * 2.2 languages_regions\n\t * 2.3 languages_scripts\n\t * 2.4 languages\n\t * 2.5 und_scripts\n\t * 3. Return\n\t * 3.1 If there is no match, either return an error value, or the match for\n\t * \"und\" (in APIs where a valid language tag is required).\n\t * 3.2 Otherwise there is a match = languagem_scriptm_regionm\n\t * 3.3 Let xr = xs if xs is not empty, and xm otherwise.\n\t * 3.4 Return the language tag composed of languager _ scriptr _ regionr +\n\t * variants + extensions.\n\t *\n\t * @subtags [Array] normalized language id subtags tuple (see init.js).\n\t */\n\tvar coreLikelySubtags = function( Cldr, cldr, subtags, options ) {\n\t\tvar match, matchFound,\n\t\t\tlanguage = subtags[ 0 ],\n\t\t\tscript = subtags[ 1 ],\n\t\t\tsep = Cldr.localeSep,\n\t\t\tterritory = subtags[ 2 ],\n\t\t\tvariants = subtags.slice( 3, 4 );\n\t\toptions = options || {};\n\n\t\t// Skip if (language, script, territory) is not empty [3.3]\n\t\tif ( language !== \"und\" && script !== \"Zzzz\" && territory !== \"ZZ\" ) {\n\t\t\treturn [ language, script, territory ].concat( variants );\n\t\t}\n\n\t\t// Skip if no supplemental likelySubtags data is present\n\t\tif ( typeof cldr.get( \"supplemental/likelySubtags\" ) === \"undefined\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// [2]\n\t\tmatchFound = arraySome([\n\t\t\t[ language, script, territory ],\n\t\t\t[ language, territory ],\n\t\t\t[ language, script ],\n\t\t\t[ language ],\n\t\t\t[ \"und\", script ]\n\t\t], function( test ) {\n\t\t\treturn match = !(/\\b(Zzzz|ZZ)\\b/).test( test.join( sep ) ) /* [1.4] */ && cldr.get( [ \"supplemental/likelySubtags\", test.join( sep ) ] );\n\t\t});\n\n\t\t// [3]\n\t\tif ( matchFound ) {\n\t\t\t// [3.2 .. 3.4]\n\t\t\tmatch = match.split( sep );\n\t\t\treturn [\n\t\t\t\tlanguage !== \"und\" ? language : match[ 0 ],\n\t\t\t\tscript !== \"Zzzz\" ? script : match[ 1 ],\n\t\t\t\tterritory !== \"ZZ\" ? territory : match[ 2 ]\n\t\t\t].concat( variants );\n\t\t} else if ( options.force ) {\n\t\t\t// [3.1.2]\n\t\t\treturn cldr.get( \"supplemental/likelySubtags/und\" ).split( sep );\n\t\t} else {\n\t\t\t// [3.1.1]\n\t\t\treturn;\n\t\t}\n\t};\n\n\n\n\t/**\n\t * Given a locale, remove any fields that Add Likely Subtags would add.\n\t * http://www.unicode.org/reports/tr35/#Likely_Subtags\n\t * 1. First get max = AddLikelySubtags(inputLocale). If an error is signaled,\n\t * return it.\n\t * 2. Remove the variants from max.\n\t * 3. Then for trial in {language, language _ region, language _ script}. If\n\t * AddLikelySubtags(trial) = max, then return trial + variants.\n\t * 4. If you do not get a match, return max + variants.\n\t * \n\t * @maxLanguageId [Array] maxLanguageId tuple (see init.js).\n\t */\n\tvar coreRemoveLikelySubtags = function( Cldr, cldr, maxLanguageId ) {\n\t\tvar match, matchFound,\n\t\t\tlanguage = maxLanguageId[ 0 ],\n\t\t\tscript = maxLanguageId[ 1 ],\n\t\t\tterritory = maxLanguageId[ 2 ],\n\t\t\tvariants = maxLanguageId[ 3 ];\n\n\t\t// [3]\n\t\tmatchFound = arraySome([\n\t\t\t[ [ language, \"Zzzz\", \"ZZ\" ], [ language ] ],\n\t\t\t[ [ language, \"Zzzz\", territory ], [ language, territory ] ],\n\t\t\t[ [ language, script, \"ZZ\" ], [ language, script ] ]\n\t\t], function( test ) {\n\t\t\tvar result = coreLikelySubtags( Cldr, cldr, test[ 0 ] );\n\t\t\tmatch = test[ 1 ];\n\t\t\treturn result && result[ 0 ] === maxLanguageId[ 0 ] &&\n\t\t\t\tresult[ 1 ] === maxLanguageId[ 1 ] &&\n\t\t\t\tresult[ 2 ] === maxLanguageId[ 2 ];\n\t\t});\n\n\t\tif ( matchFound ) {\n\t\t\tif ( variants ) {\n\t\t\t\tmatch.push( variants );\n\t\t\t}\n\t\t\treturn match;\n\t\t}\n\n\t\t// [4]\n\t\treturn maxLanguageId;\n\t};\n\n\n\n\n\t/**\n\t * subtags( locale )\n\t *\n\t * @locale [String]\n\t */\n\tvar coreSubtags = function( locale ) {\n\t\tvar aux, unicodeLanguageId,\n\t\t\tsubtags = [];\n\n\t\tlocale = locale.replace( /_/, \"-\" );\n\n\t\t// Unicode locale extensions.\n\t\taux = locale.split( \"-u-\" );\n\t\tif ( aux[ 1 ] ) {\n\t\t\taux[ 1 ] = aux[ 1 ].split( \"-t-\" );\n\t\t\tlocale = aux[ 0 ] + ( aux[ 1 ][ 1 ] ? \"-t-\" + aux[ 1 ][ 1 ] : \"\");\n\t\t\tsubtags[ 4 /* unicodeLocaleExtensions */ ] = aux[ 1 ][ 0 ];\n\t\t}\n\n\t\t// TODO normalize transformed extensions. Currently, skipped.\n\t\t// subtags[ x ] = locale.split( \"-t-\" )[ 1 ];\n\t\tunicodeLanguageId = locale.split( \"-t-\" )[ 0 ];\n\n\t\t// unicode_language_id = \"root\"\n\t\t// | unicode_language_subtag \n\t\t// (sep unicode_script_subtag)? \n\t\t// (sep unicode_region_subtag)?\n\t\t// (sep unicode_variant_subtag)* ;\n\t\t//\n\t\t// Although unicode_language_subtag = alpha{2,8}, I'm using alpha{2,3}. Because, there's no language on CLDR lengthier than 3.\n\t\taux = unicodeLanguageId.match( /^(([a-z]{2,3})(-([A-Z][a-z]{3}))?(-([A-Z]{2}|[0-9]{3}))?)((-([a-zA-Z0-9]{5,8}|[0-9][a-zA-Z0-9]{3}))*)$|^(root)$/ );\n\t\tif ( aux === null ) {\n\t\t\treturn [ \"und\", \"Zzzz\", \"ZZ\" ];\n\t\t}\n\t\tsubtags[ 0 /* language */ ] = aux[ 10 ] /* root */ || aux[ 2 ] || \"und\";\n\t\tsubtags[ 1 /* script */ ] = aux[ 4 ] || \"Zzzz\";\n\t\tsubtags[ 2 /* territory */ ] = aux[ 6 ] || \"ZZ\";\n\t\tif ( aux[ 7 ] && aux[ 7 ].length ) {\n\t\t\tsubtags[ 3 /* variant */ ] = aux[ 7 ].slice( 1 ) /* remove leading \"-\" */;\n\t\t}\n\n\t\t// 0: language\n\t\t// 1: script\n\t\t// 2: territory (aka region)\n\t\t// 3: variant\n\t\t// 4: unicodeLocaleExtensions\n\t\treturn subtags;\n\t};\n\n\n\n\n\tvar arrayForEach = function( array, callback ) {\n\t\tvar i, length;\n\t\tif ( array.forEach ) {\n\t\t\treturn array.forEach( callback );\n\t\t}\n\t\tfor ( i = 0, length = array.length; i < length; i++ ) {\n\t\t\tcallback( array[ i ], i, array );\n\t\t}\n\t};\n\n\n\n\n\t/**\n\t * bundleLookup( minLanguageId )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @cldr [Cldr instance]\n\t *\n\t * @minLanguageId [String] requested languageId after applied remove likely subtags.\n\t */\n\tvar bundleLookup = function( Cldr, cldr, minLanguageId ) {\n\t\tvar availableBundleMap = Cldr._availableBundleMap,\n\t\t\tavailableBundleMapQueue = Cldr._availableBundleMapQueue;\n\n\t\tif ( availableBundleMapQueue.length ) {\n\t\t\tarrayForEach( availableBundleMapQueue, function( bundle ) {\n\t\t\t\tvar existing, maxBundle, minBundle, subtags;\n\t\t\t\tsubtags = coreSubtags( bundle );\n\t\t\t\tmaxBundle = coreLikelySubtags( Cldr, cldr, subtags );\n\t\t\t\tif ( maxBundle === undefined ) {\n\t\t\t\t\tavailableBundleMapQueue.splice( i, 1 );\n\t\t\t\t\tthrow new Error( \"Could not find likelySubtags for \" + bundle );\n\t\t\t\t}\n\t\t\t\tminBundle = coreRemoveLikelySubtags( Cldr, cldr, maxBundle );\n\t\t\t\tminBundle = minBundle.join( Cldr.localeSep );\n\t\t\t\texisting = availableBundleMap[ minBundle ];\n\t\t\t\tif ( existing && existing.length < bundle.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tavailableBundleMap[ minBundle ] = bundle;\n\t\t\t});\n\t\t\tCldr._availableBundleMapQueue = [];\n\t\t}\n\n\t\treturn availableBundleMap[ minLanguageId ] || null;\n\t};\n\n\n\n\n\tvar objectKeys = function( object ) {\n\t\tvar i,\n\t\t\tresult = [];\n\n\t\tif ( Object.keys ) {\n\t\t\treturn Object.keys( object );\n\t\t}\n\n\t\tfor ( i in object ) {\n\t\t\tresult.push( i );\n\t\t}\n\n\t\treturn result;\n\t};\n\n\n\n\n\tvar createError = function( code, attributes ) {\n\t\tvar error, message;\n\n\t\tmessage = code + ( attributes && JSON ? \": \" + JSON.stringify( attributes ) : \"\" );\n\t\terror = new Error( message );\n\t\terror.code = code;\n\n\t\t// extend( error, attributes );\n\t\tarrayForEach( objectKeys( attributes ), function( attribute ) {\n\t\t\terror[ attribute ] = attributes[ attribute ];\n\t\t});\n\n\t\treturn error;\n\t};\n\n\n\n\n\tvar validate = function( code, check, attributes ) {\n\t\tif ( !check ) {\n\t\t\tthrow createError( code, attributes );\n\t\t}\n\t};\n\n\n\n\n\tvar validatePresence = function( value, name ) {\n\t\tvalidate( \"E_MISSING_PARAMETER\", typeof value !== \"undefined\", {\n\t\t\tname: name\n\t\t});\n\t};\n\n\n\n\n\tvar validateType = function( value, name, check, expected ) {\n\t\tvalidate( \"E_INVALID_PAR_TYPE\", check, {\n\t\t\texpected: expected,\n\t\t\tname: name,\n\t\t\tvalue: value\n\t\t});\n\t};\n\n\n\n\n\tvar validateTypePath = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\" || arrayIsArray( value ), \"String or Array\" );\n\t};\n\n\n\n\n\t/**\n\t * Function inspired by jQuery Core, but reduced to our use case.\n\t */\n\tvar isPlainObject = function( obj ) {\n\t\treturn obj !== null && \"\" + obj === \"[object Object]\";\n\t};\n\n\n\n\n\tvar validateTypePlainObject = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"undefined\" || isPlainObject( value ), \"Plain Object\" );\n\t};\n\n\n\n\n\tvar validateTypeString = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\", \"a string\" );\n\t};\n\n\n\n\n\t// @path: normalized path\n\tvar resourceGet = function( data, path ) {\n\t\tvar i,\n\t\t\tnode = data,\n\t\t\tlength = path.length;\n\n\t\tfor ( i = 0; i < length - 1; i++ ) {\n\t\t\tnode = node[ path[ i ] ];\n\t\t\tif ( !node ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t\treturn node[ path[ i ] ];\n\t};\n\n\n\n\n\t/**\n\t * setAvailableBundles( Cldr, json )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @json resolved/unresolved cldr data.\n\t *\n\t * Set available bundles queue based on passed json CLDR data. Considers a bundle as any String at /main/{bundle}.\n\t */\n\tvar coreSetAvailableBundles = function( Cldr, json ) {\n\t\tvar bundle,\n\t\t\tavailableBundleMapQueue = Cldr._availableBundleMapQueue,\n\t\t\tmain = resourceGet( json, [ \"main\" ] );\n\n\t\tif ( main ) {\n\t\t\tfor ( bundle in main ) {\n\t\t\t\tif ( main.hasOwnProperty( bundle ) && bundle !== \"root\" &&\n\t\t\t\t\t\t\tavailableBundleMapQueue.indexOf( bundle ) === -1 ) {\n\t\t\t\t\tavailableBundleMapQueue.push( bundle );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\n\n\tvar alwaysArray = function( somethingOrArray ) {\n\t\treturn arrayIsArray( somethingOrArray ) ? somethingOrArray : [ somethingOrArray ];\n\t};\n\n\n\tvar jsonMerge = (function() {\n\n\t// Returns new deeply merged JSON.\n\t//\n\t// Eg.\n\t// merge( { a: { b: 1, c: 2 } }, { a: { b: 3, d: 4 } } )\n\t// -> { a: { b: 3, c: 2, d: 4 } }\n\t//\n\t// @arguments JSON's\n\t// \n\tvar merge = function() {\n\t\tvar destination = {},\n\t\t\tsources = [].slice.call( arguments, 0 );\n\t\tarrayForEach( sources, function( source ) {\n\t\t\tvar prop;\n\t\t\tfor ( prop in source ) {\n\t\t\t\tif ( prop in destination && typeof destination[ prop ] === \"object\" && !arrayIsArray( destination[ prop ] ) ) {\n\n\t\t\t\t\t// Merge Objects\n\t\t\t\t\tdestination[ prop ] = merge( destination[ prop ], source[ prop ] );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Set new values\n\t\t\t\t\tdestination[ prop ] = source[ prop ];\n\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn destination;\n\t};\n\n\treturn merge;\n\n}());\n\n\n\t/**\n\t * load( Cldr, source, jsons )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @source [Object]\n\t *\n\t * @jsons [arguments]\n\t */\n\tvar coreLoad = function( Cldr, source, jsons ) {\n\t\tvar i, j, json;\n\n\t\tvalidatePresence( jsons[ 0 ], \"json\" );\n\n\t\t// Support arbitrary parameters, e.g., `Cldr.load({...}, {...})`.\n\t\tfor ( i = 0; i < jsons.length; i++ ) {\n\n\t\t\t// Support array parameters, e.g., `Cldr.load([{...}, {...}])`.\n\t\t\tjson = alwaysArray( jsons[ i ] );\n\n\t\t\tfor ( j = 0; j < json.length; j++ ) {\n\t\t\t\tvalidateTypePlainObject( json[ j ], \"json\" );\n\t\t\t\tsource = jsonMerge( source, json[ j ] );\n\t\t\t\tcoreSetAvailableBundles( Cldr, json[ j ] );\n\t\t\t}\n\t\t}\n\n\t\treturn source;\n\t};\n\n\n\n\tvar itemGetResolved = function( Cldr, path, attributes ) {\n\t\t// Resolve path\n\t\tvar normalizedPath = pathNormalize( path, attributes );\n\n\t\treturn resourceGet( Cldr._resolved, normalizedPath );\n\t};\n\n\n\n\n\t/**\n\t * new Cldr()\n\t */\n\tvar Cldr = function( locale ) {\n\t\tthis.init( locale );\n\t};\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tCldr._alwaysArray = alwaysArray;\n\tCldr._coreLoad = coreLoad;\n\tCldr._createError = createError;\n\tCldr._itemGetResolved = itemGetResolved;\n\tCldr._jsonMerge = jsonMerge;\n\tCldr._pathNormalize = pathNormalize;\n\tCldr._resourceGet = resourceGet;\n\tCldr._validatePresence = validatePresence;\n\tCldr._validateType = validateType;\n\tCldr._validateTypePath = validateTypePath;\n\tCldr._validateTypePlainObject = validateTypePlainObject;\n\n\tCldr._availableBundleMap = {};\n\tCldr._availableBundleMapQueue = [];\n\tCldr._resolved = {};\n\n\t// Allow user to override locale separator \"-\" (default) | \"_\". According to http://www.unicode.org/reports/tr35/#Unicode_language_identifier, both \"-\" and \"_\" are valid locale separators (eg. \"en_GB\", \"en-GB\"). According to http://unicode.org/cldr/trac/ticket/6786 its usage must be consistent throughout the data set.\n\tCldr.localeSep = \"-\";\n\n\t/**\n\t * Cldr.load( json [, json, ...] )\n\t *\n\t * @json [JSON] CLDR data or [Array] Array of @json's.\n\t *\n\t * Load resolved cldr data.\n\t */\n\tCldr.load = function() {\n\t\tCldr._resolved = coreLoad( Cldr, Cldr._resolved, arguments );\n\t};\n\n\t/**\n\t * .init() automatically run on instantiation/construction.\n\t */\n\tCldr.prototype.init = function( locale ) {\n\t\tvar attributes, language, maxLanguageId, minLanguageId, script, subtags, territory, unicodeLocaleExtensions, variant,\n\t\t\tsep = Cldr.localeSep,\n\t\t\tunicodeLocaleExtensionsRaw = \"\";\n\n\t\tvalidatePresence( locale, \"locale\" );\n\t\tvalidateTypeString( locale, \"locale\" );\n\n\t\tsubtags = coreSubtags( locale );\n\n\t\tif ( subtags.length === 5 ) {\n\t\t\tunicodeLocaleExtensions = subtags.pop();\n\t\t\tunicodeLocaleExtensionsRaw = sep + \"u\" + sep + unicodeLocaleExtensions;\n\t\t\t// Remove trailing null when there is unicodeLocaleExtensions but no variants.\n\t\t\tif ( !subtags[ 3 ] ) {\n\t\t\t\tsubtags.pop();\n\t\t\t}\n\t\t}\n\t\tvariant = subtags[ 3 ];\n\n\t\t// Normalize locale code.\n\t\t// Get (or deduce) the \"triple subtags\": language, territory (also aliased as region), and script subtags.\n\t\t// Get the variant subtags (calendar, collation, currency, etc).\n\t\t// refs:\n\t\t// - http://www.unicode.org/reports/tr35/#Field_Definitions\n\t\t// - http://www.unicode.org/reports/tr35/#Language_and_Locale_IDs\n\t\t// - http://www.unicode.org/reports/tr35/#Unicode_locale_identifier\n\n\t\t// When a locale id does not specify a language, or territory (region), or script, they are obtained by Likely Subtags.\n\t\tmaxLanguageId = coreLikelySubtags( Cldr, this, subtags, { force: true } ) || subtags;\n\t\tlanguage = maxLanguageId[ 0 ];\n\t\tscript = maxLanguageId[ 1 ];\n\t\tterritory = maxLanguageId[ 2 ];\n\n\t\tminLanguageId = coreRemoveLikelySubtags( Cldr, this, maxLanguageId ).join( sep );\n\n\t\t// Set attributes\n\t\tthis.attributes = attributes = {\n\t\t\tbundle: bundleLookup( Cldr, this, minLanguageId ),\n\n\t\t\t// Unicode Language Id\n\t\t\tminLanguageId: minLanguageId + unicodeLocaleExtensionsRaw,\n\t\t\tmaxLanguageId: maxLanguageId.join( sep ) + unicodeLocaleExtensionsRaw,\n\n\t\t\t// Unicode Language Id Subtabs\n\t\t\tlanguage: language,\n\t\t\tscript: script,\n\t\t\tterritory: territory,\n\t\t\tregion: territory, /* alias */\n\t\t\tvariant: variant\n\t\t};\n\n\t\t// Unicode locale extensions.\n\t\tunicodeLocaleExtensions && ( \"-\" + unicodeLocaleExtensions ).replace( /-[a-z]{3,8}|(-[a-z]{2})-([a-z]{3,8})/g, function( attribute, key, type ) {\n\n\t\t\tif ( key ) {\n\n\t\t\t\t// Extension is in the `keyword` form.\n\t\t\t\tattributes[ \"u\" + key ] = type;\n\t\t\t} else {\n\n\t\t\t\t// Extension is in the `attribute` form.\n\t\t\t\tattributes[ \"u\" + attribute ] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.locale = locale;\n\t};\n\n\t/**\n\t * .get()\n\t */\n\tCldr.prototype.get = function( path ) {\n\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\treturn itemGetResolved( Cldr, path, this.attributes );\n\t};\n\n\t/**\n\t * .main()\n\t */\n\tCldr.prototype.main = function( path ) {\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\tvalidate( \"E_MISSING_BUNDLE\", this.attributes.bundle !== null, {\n\t\t\tlocale: this.locale\n\t\t});\n\n\t\tpath = alwaysArray( path );\n\t\treturn this.get( [ \"main/{bundle}\" ].concat( path ) );\n\t};\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.5.3\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-08-05T21:43Z\n */\n/*!\n * CLDR JavaScript Library v0.5.3 2020-08-05T21:43Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar pathNormalize = Cldr._pathNormalize,\n\t\tvalidatePresence = Cldr._validatePresence,\n\t\tvalidateType = Cldr._validateType;\n\n/*!\n * EventEmitter v4.2.7 - git.io/ee\n * Oliver Caldwell\n * MIT license\n * @preserve\n */\n\nvar EventEmitter;\n/* jshint ignore:start */\nEventEmitter = (function () {\n\n\n\t/**\n\t * Class for managing events.\n\t * Can be extended to provide event functionality in other classes.\n\t *\n\t * @class EventEmitter Manages event registering and emitting.\n\t */\n\tfunction EventEmitter() {}\n\n\t// Shortcuts to improve speed and size\n\tvar proto = EventEmitter.prototype;\n\tvar exports = {};\n\t\n\n\t/**\n\t * Finds the index of the listener for the event in it's storage array.\n\t *\n\t * @param {Function[]} listeners Array of listeners to search through.\n\t * @param {Function} listener Method to look for.\n\t * @return {Number} Index of the specified listener, -1 if not found\n\t * @api private\n\t */\n\tfunction indexOfListener(listeners, listener) {\n\t\tvar i = listeners.length;\n\t\twhile (i--) {\n\t\t\tif (listeners[i].listener === listener) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Alias a method while keeping the context correct, to allow for overwriting of target method.\n\t *\n\t * @param {String} name The name of the target method.\n\t * @return {Function} The aliased method\n\t * @api private\n\t */\n\tfunction alias(name) {\n\t\treturn function aliasClosure() {\n\t\t\treturn this[name].apply(this, arguments);\n\t\t};\n\t}\n\n\t/**\n\t * Returns the listener array for the specified event.\n\t * Will initialise the event object and listener arrays if required.\n\t * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n\t * Each property in the object response is an array of listener functions.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Function[]|Object} All listener functions for the event.\n\t */\n\tproto.getListeners = function getListeners(evt) {\n\t\tvar events = this._getEvents();\n\t\tvar response;\n\t\tvar key;\n\n\t\t// Return a concatenated array of all matching events if\n\t\t// the selector is a regular expression.\n\t\tif (evt instanceof RegExp) {\n\t\t\tresponse = {};\n\t\t\tfor (key in events) {\n\t\t\t\tif (events.hasOwnProperty(key) && evt.test(key)) {\n\t\t\t\t\tresponse[key] = events[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tresponse = events[evt] || (events[evt] = []);\n\t\t}\n\n\t\treturn response;\n\t};\n\n\t/**\n\t * Takes a list of listener objects and flattens it into a list of listener functions.\n\t *\n\t * @param {Object[]} listeners Raw listener objects.\n\t * @return {Function[]} Just the listener functions.\n\t */\n\tproto.flattenListeners = function flattenListeners(listeners) {\n\t\tvar flatListeners = [];\n\t\tvar i;\n\n\t\tfor (i = 0; i < listeners.length; i += 1) {\n\t\t\tflatListeners.push(listeners[i].listener);\n\t\t}\n\n\t\treturn flatListeners;\n\t};\n\n\t/**\n\t * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Object} All listener functions for an event in an object.\n\t */\n\tproto.getListenersAsObject = function getListenersAsObject(evt) {\n\t\tvar listeners = this.getListeners(evt);\n\t\tvar response;\n\n\t\tif (listeners instanceof Array) {\n\t\t\tresponse = {};\n\t\t\tresponse[evt] = listeners;\n\t\t}\n\n\t\treturn response || listeners;\n\t};\n\n\t/**\n\t * Adds a listener function to the specified event.\n\t * The listener will not be added if it is a duplicate.\n\t * If the listener returns true then it will be removed after it is called.\n\t * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addListener = function addListener(evt, listener) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar listenerIsWrapped = typeof listener === 'object';\n\t\tvar key;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n\t\t\t\tlisteners[key].push(listenerIsWrapped ? listener : {\n\t\t\t\t\tlistener: listener,\n\t\t\t\t\tonce: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of addListener\n\t */\n\tproto.on = alias('addListener');\n\n\t/**\n\t * Semi-alias of addListener. It will add a listener that will be\n\t * automatically removed after it's first execution.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addOnceListener = function addOnceListener(evt, listener) {\n\t\treturn this.addListener(evt, {\n\t\t\tlistener: listener,\n\t\t\tonce: true\n\t\t});\n\t};\n\n\t/**\n\t * Alias of addOnceListener.\n\t */\n\tproto.once = alias('addOnceListener');\n\n\t/**\n\t * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n\t * You need to tell it what event names should be matched by a regex.\n\t *\n\t * @param {String} evt Name of the event to create.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.defineEvent = function defineEvent(evt) {\n\t\tthis.getListeners(evt);\n\t\treturn this;\n\t};\n\n\t/**\n\t * Uses defineEvent to define multiple events.\n\t *\n\t * @param {String[]} evts An array of event names to define.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.defineEvents = function defineEvents(evts) {\n\t\tfor (var i = 0; i < evts.length; i += 1) {\n\t\t\tthis.defineEvent(evts[i]);\n\t\t}\n\t\treturn this;\n\t};\n\n\t/**\n\t * Removes a listener function from the specified event.\n\t * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to remove the listener from.\n\t * @param {Function} listener Method to remove from the event.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeListener = function removeListener(evt, listener) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar index;\n\t\tvar key;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key)) {\n\t\t\t\tindex = indexOfListener(listeners[key], listener);\n\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tlisteners[key].splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of removeListener\n\t */\n\tproto.off = alias('removeListener');\n\n\t/**\n\t * Adds listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n\t * You can also pass it a regular expression to add the array of listeners to all events that match it.\n\t * Yeah, this function does quite a bit. That's probably a bad thing.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addListeners = function addListeners(evt, listeners) {\n\t\t// Pass through to manipulateListeners\n\t\treturn this.manipulateListeners(false, evt, listeners);\n\t};\n\n\t/**\n\t * Removes listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be removed.\n\t * You can also pass it a regular expression to remove the listeners from all events that match it.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeListeners = function removeListeners(evt, listeners) {\n\t\t// Pass through to manipulateListeners\n\t\treturn this.manipulateListeners(true, evt, listeners);\n\t};\n\n\t/**\n\t * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n\t * The first argument will determine if the listeners are removed (true) or added (false).\n\t * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be added/removed.\n\t * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n\t *\n\t * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n\t\tvar i;\n\t\tvar value;\n\t\tvar single = remove ? this.removeListener : this.addListener;\n\t\tvar multiple = remove ? this.removeListeners : this.addListeners;\n\n\t\t// If evt is an object then pass each of it's properties to this method\n\t\tif (typeof evt === 'object' && !(evt instanceof RegExp)) {\n\t\t\tfor (i in evt) {\n\t\t\t\tif (evt.hasOwnProperty(i) && (value = evt[i])) {\n\t\t\t\t\t// Pass the single listener straight through to the singular method\n\t\t\t\t\tif (typeof value === 'function') {\n\t\t\t\t\t\tsingle.call(this, i, value);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Otherwise pass back to the multiple function\n\t\t\t\t\t\tmultiple.call(this, i, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// So evt must be a string\n\t\t\t// And listeners must be an array of listeners\n\t\t\t// Loop over it and pass each one to the multiple method\n\t\t\ti = listeners.length;\n\t\t\twhile (i--) {\n\t\t\t\tsingle.call(this, evt, listeners[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Removes all listeners from a specified event.\n\t * If you do not specify an event then all listeners will be removed.\n\t * That means every event will be emptied.\n\t * You can also pass a regex to remove all events that match it.\n\t *\n\t * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeEvent = function removeEvent(evt) {\n\t\tvar type = typeof evt;\n\t\tvar events = this._getEvents();\n\t\tvar key;\n\n\t\t// Remove different things depending on the state of evt\n\t\tif (type === 'string') {\n\t\t\t// Remove all listeners for the specified event\n\t\t\tdelete events[evt];\n\t\t}\n\t\telse if (evt instanceof RegExp) {\n\t\t\t// Remove all events matching the regex.\n\t\t\tfor (key in events) {\n\t\t\t\tif (events.hasOwnProperty(key) && evt.test(key)) {\n\t\t\t\t\tdelete events[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Remove all listeners in all events\n\t\t\tdelete this._events;\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of removeEvent.\n\t *\n\t * Added to mirror the node API.\n\t */\n\tproto.removeAllListeners = alias('removeEvent');\n\n\t/**\n\t * Emits an event of your choice.\n\t * When emitted, every listener attached to that event will be executed.\n\t * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n\t * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n\t * So they will not arrive within the array on the other side, they will be separate.\n\t * You can also pass a regular expression to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {Array} [args] Optional array of arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.emitEvent = function emitEvent(evt, args) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar listener;\n\t\tvar i;\n\t\tvar key;\n\t\tvar response;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key)) {\n\t\t\t\ti = listeners[key].length;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\t// If the listener returns true then it shall be removed from the event\n\t\t\t\t\t// The function is executed either with a basic call or an apply if there is an args array\n\t\t\t\t\tlistener = listeners[key][i];\n\n\t\t\t\t\tif (listener.once === true) {\n\t\t\t\t\t\tthis.removeListener(evt, listener.listener);\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = listener.listener.apply(this, args || []);\n\n\t\t\t\t\tif (response === this._getOnceReturnValue()) {\n\t\t\t\t\t\tthis.removeListener(evt, listener.listener);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of emitEvent\n\t */\n\tproto.trigger = alias('emitEvent');\n\n\t/**\n\t * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n\t * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {...*} Optional additional arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.emit = function emit(evt) {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\t\treturn this.emitEvent(evt, args);\n\t};\n\n\t/**\n\t * Sets the current value to check against when executing listeners. If a\n\t * listeners return value matches the one set here then it will be removed\n\t * after execution. This value defaults to true.\n\t *\n\t * @param {*} value The new value to check for when executing listeners.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.setOnceReturnValue = function setOnceReturnValue(value) {\n\t\tthis._onceReturnValue = value;\n\t\treturn this;\n\t};\n\n\t/**\n\t * Fetches the current value to check against when executing listeners. If\n\t * the listeners return value matches this one then it should be removed\n\t * automatically. It will return true by default.\n\t *\n\t * @return {*|Boolean} The current value to check for or the default, true.\n\t * @api private\n\t */\n\tproto._getOnceReturnValue = function _getOnceReturnValue() {\n\t\tif (this.hasOwnProperty('_onceReturnValue')) {\n\t\t\treturn this._onceReturnValue;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * Fetches the events object and creates one if required.\n\t *\n\t * @return {Object} The events storage object.\n\t * @api private\n\t */\n\tproto._getEvents = function _getEvents() {\n\t\treturn this._events || (this._events = {});\n\t};\n\n\t/**\n\t * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n\t *\n\t * @return {Function} Non conflicting EventEmitter class.\n\t */\n\tEventEmitter.noConflict = function noConflict() {\n\t\texports.EventEmitter = originalGlobalValue;\n\t\treturn EventEmitter;\n\t};\n\n\treturn EventEmitter;\n}());\n/* jshint ignore:end */\n\n\n\n\tvar validateTypeFunction = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"function\", \"Function\" );\n\t};\n\n\n\n\n\tvar superGet, superInit,\n\t\tglobalEe = new EventEmitter();\n\n\tfunction validateTypeEvent( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\" || value instanceof RegExp, \"String or RegExp\" );\n\t}\n\n\tfunction validateThenCall( method, self ) {\n\t\treturn function( event, listener ) {\n\t\t\tvalidatePresence( event, \"event\" );\n\t\t\tvalidateTypeEvent( event, \"event\" );\n\n\t\t\tvalidatePresence( listener, \"listener\" );\n\t\t\tvalidateTypeFunction( listener, \"listener\" );\n\n\t\t\treturn self[ method ].apply( self, arguments );\n\t\t};\n\t}\n\n\tfunction off( self ) {\n\t\treturn validateThenCall( \"off\", self );\n\t}\n\n\tfunction on( self ) {\n\t\treturn validateThenCall( \"on\", self );\n\t}\n\n\tfunction once( self ) {\n\t\treturn validateThenCall( \"once\", self );\n\t}\n\n\tCldr.off = off( globalEe );\n\tCldr.on = on( globalEe );\n\tCldr.once = once( globalEe );\n\n\t/**\n\t * Overload Cldr.prototype.init().\n\t */\n\tsuperInit = Cldr.prototype.init;\n\tCldr.prototype.init = function() {\n\t\tvar ee;\n\t\tthis.ee = ee = new EventEmitter();\n\t\tthis.off = off( ee );\n\t\tthis.on = on( ee );\n\t\tthis.once = once( ee );\n\t\tsuperInit.apply( this, arguments );\n\t};\n\n\t/**\n\t * getOverload is encapsulated, because of cldr/unresolved. If it's loaded\n\t * after cldr/event (and note it overwrites .get), it can trigger this\n\t * overload again.\n\t */\n\tfunction getOverload() {\n\n\t\t/**\n\t\t * Overload Cldr.prototype.get().\n\t\t */\n\t\tsuperGet = Cldr.prototype.get;\n\t\tCldr.prototype.get = function( path ) {\n\t\t\tvar value = superGet.apply( this, arguments );\n\t\t\tpath = pathNormalize( path, this.attributes ).join( \"/\" );\n\t\t\tglobalEe.trigger( \"get\", [ path, value ] );\n\t\t\tthis.ee.trigger( \"get\", [ path, value ] );\n\t\t\treturn value;\n\t\t};\n\t}\n\n\tCldr._eventInit = getOverload;\n\tgetOverload();\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.5.3\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-08-05T21:43Z\n */\n/*!\n * CLDR JavaScript Library v0.5.3 2020-08-05T21:43Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar alwaysArray = Cldr._alwaysArray;\n\n\n\n\tvar supplementalMain = function( cldr ) {\n\n\t\tvar prepend, supplemental;\n\t\t\n\t\tprepend = function( prepend ) {\n\t\t\treturn function( path ) {\n\t\t\t\tpath = alwaysArray( path );\n\t\t\t\treturn cldr.get( [ prepend ].concat( path ) );\n\t\t\t};\n\t\t};\n\n\t\tsupplemental = prepend( \"supplemental\" );\n\n\t\t// Week Data\n\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#Week_Data\n\t\tsupplemental.weekData = prepend( \"supplemental/weekData\" );\n\n\t\tsupplemental.weekData.firstDay = function() {\n\t\t\treturn cldr.get( \"supplemental/weekData/firstDay/{territory}\" ) ||\n\t\t\t\tcldr.get( \"supplemental/weekData/firstDay/001\" );\n\t\t};\n\n\t\tsupplemental.weekData.minDays = function() {\n\t\t\tvar minDays = cldr.get( \"supplemental/weekData/minDays/{territory}\" ) ||\n\t\t\t\tcldr.get( \"supplemental/weekData/minDays/001\" );\n\t\t\treturn parseInt( minDays, 10 );\n\t\t};\n\n\t\t// Time Data\n\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data\n\t\tsupplemental.timeData = prepend( \"supplemental/timeData\" );\n\n\t\tsupplemental.timeData.allowed = function() {\n\t\t\treturn cldr.get( \"supplemental/timeData/{territory}/_allowed\" ) ||\n\t\t\t\tcldr.get( \"supplemental/timeData/001/_allowed\" );\n\t\t};\n\n\t\tsupplemental.timeData.preferred = function() {\n\t\t\treturn cldr.get( \"supplemental/timeData/{territory}/_preferred\" ) ||\n\t\t\t\tcldr.get( \"supplemental/timeData/001/_preferred\" );\n\t\t};\n\n\t\treturn supplemental;\n\n\t};\n\n\n\n\n\tvar initSuper = Cldr.prototype.init;\n\n\t/**\n\t * .init() automatically ran on construction.\n\t *\n\t * Overload .init().\n\t */\n\tCldr.prototype.init = function() {\n\t\tinitSuper.apply( this, arguments );\n\t\tthis.supplemental = supplementalMain( this );\n\t};\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.5.3\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-08-05T21:43Z\n */\n/*!\n * CLDR JavaScript Library v0.5.3 2020-08-05T21:43Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar coreLoad = Cldr._coreLoad;\n\tvar jsonMerge = Cldr._jsonMerge;\n\tvar pathNormalize = Cldr._pathNormalize;\n\tvar resourceGet = Cldr._resourceGet;\n\tvar validatePresence = Cldr._validatePresence;\n\tvar validateTypePath = Cldr._validateTypePath;\n\n\n\n\tvar bundleParentLookup = function( Cldr, locale ) {\n\t\tvar normalizedPath, parent;\n\n\t\tif ( locale === \"root\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// First, try to find parent on supplemental data.\n\t\tnormalizedPath = pathNormalize( [ \"supplemental/parentLocales/parentLocale\", locale ] );\n\t\tparent = resourceGet( Cldr._resolved, normalizedPath ) || resourceGet( Cldr._raw, normalizedPath );\n\t\tif ( parent ) {\n\t\t\treturn parent;\n\t\t}\n\n\t\t// Or truncate locale.\n\t\tparent = locale.substr( 0, locale.lastIndexOf( Cldr.localeSep ) );\n\t\tif ( !parent ) {\n\t\t\treturn \"root\";\n\t\t}\n\n\t\treturn parent;\n\t};\n\n\n\n\n\t// @path: normalized path\n\tvar resourceSet = function( data, path, value ) {\n\t\tvar i,\n\t\t\tnode = data,\n\t\t\tlength = path.length;\n\n\t\tfor ( i = 0; i < length - 1; i++ ) {\n\t\t\tif ( !node[ path[ i ] ] ) {\n\t\t\t\tnode[ path[ i ] ] = {};\n\t\t\t}\n\t\t\tnode = node[ path[ i ] ];\n\t\t}\n\t\tnode[ path[ i ] ] = value;\n\t};\n\n\n\tvar itemLookup = (function() {\n\n\tvar lookup;\n\n\tlookup = function( Cldr, locale, path, attributes, childLocale ) {\n\t\tvar normalizedPath, parent, value;\n\n\t\t// 1: Finish recursion\n\t\t// 2: Avoid infinite loop\n\t\tif ( typeof locale === \"undefined\" /* 1 */ || locale === childLocale /* 2 */ ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Resolve path\n\t\tnormalizedPath = pathNormalize( path, attributes );\n\n\t\t// Check resolved (cached) data first\n\t\t// 1: Due to #16, never use the cached resolved non-leaf nodes. It may not\n\t\t// represent its leafs in its entirety.\n\t\tvalue = resourceGet( Cldr._resolved, normalizedPath );\n\t\tif ( value !== undefined && typeof value !== \"object\" /* 1 */ ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Check raw data\n\t\tvalue = resourceGet( Cldr._raw, normalizedPath );\n\n\t\tif ( value === undefined ) {\n\t\t\t// Or, lookup at parent locale\n\t\t\tparent = bundleParentLookup( Cldr, locale );\n\t\t\tvalue = lookup( Cldr, parent, path, jsonMerge( attributes, { bundle: parent }), locale );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\t// Set resolved (cached)\n\t\t\tresourceSet( Cldr._resolved, normalizedPath, value );\n\t\t}\n\n\t\treturn value;\n\t};\n\n\treturn lookup;\n\n}());\n\n\n\tCldr._raw = {};\n\n\t/**\n\t * Cldr.load( json [, json, ...] )\n\t *\n\t * @json [JSON] CLDR data or [Array] Array of @json's.\n\t *\n\t * Load resolved or unresolved cldr data.\n\t * Overwrite Cldr.load().\n\t */\n\tCldr.load = function() {\n\t\tCldr._raw = coreLoad( Cldr, Cldr._raw, arguments );\n\t};\n\n\t/**\n\t * Overwrite Cldr.prototype.get().\n\t */\n\tCldr.prototype.get = function( path ) {\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\t// 1: use bundle as locale on item lookup for simplification purposes, because no other extended subtag is used anyway on bundle parent lookup.\n\t\t// 2: during init(), this method is called, but bundle is yet not defined. Use \"\" as a workaround in this very specific scenario.\n\t\treturn itemLookup( Cldr, this.attributes && this.attributes.bundle /* 1 */ || \"\" /* 2 */, path, this.attributes );\n\t};\n\n\t// In case cldr/unresolved is loaded after cldr/event, we trigger its overloads again. Because, .get is overwritten in here.\n\tif ( Cldr._eventInit ) {\n\t\tCldr._eventInit();\n\t}\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.5.3\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-08-05T21:43Z\n */\n/*!\n * CLDR JavaScript Library v0.5.3 2020-08-05T21:43Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n\n// Cldr\nmodule.exports = require( \"./cldr\" );\n\n// Extent Cldr with the following modules\nrequire( \"./cldr/event\" );\nrequire( \"./cldr/supplemental\" );\nrequire( \"./cldr/unresolved\" );\n","function getPopupOptionsString(popupWidth, popupHeight) {\n var left = (document.body.clientWidth - popupWidth) * 0.5;\n\tvar top = (document.body.clientHeight - popupHeight) * 0.5;\n return 'width=' + popupWidth + ',height=' + popupHeight + ',top=' + top + ',left=' + left;\n};\n\nfunction encodeString(string) {\n return window.encodeURIComponent(string);\n};\n\nfunction isiOSDevice() {\n return /iPad|iPhone|iPod/.test(window.navigator.userAgent) && !window.MSStream;\n}\n\nfunction isMobileDevice() {\n return /iPad|iPhone|iPod|Android/.test(window.navigator.userAgent) && !window.MSStream;\n}\n\n/**\n * Opens up a Facebook share popup with a URL.\n * @param url String - The URL to share by Facebook.\n * @param popupWidth - Integer The width of the share popup that will be opened.\n * @param popupHeight - Integer The height of the share popup that will be opened.\n */\nmodule.exports.shareURLByFacebook = function(url, popupWidth, popHeight) {\n var sharerURL = 'https://www.facebook.com/sharer/sharer.php?u=' + encodeString(url);\n window.open(sharerURL, 'facebook', getPopupOptionsString(popupWidth, popHeight));\n};\n\n/**\n * Opens up a Google Plus share popup with a URL.\n * @param url String - The URL to share by Facebook.\n * @param popupWidth - Integer The width of the share popup that will be opened.\n * @param popupHeight - Integer The height of the share popup that will be opened.\n * @param languageCode String - the language in which to display the dialog box (e.g. 'en', 'de', etc.)\n */\nmodule.exports.shareURLByGooglePlus = function(url, popupWidth, popHeight, languageCode) {\n var sharerURL = 'https://plus.google.com/share?url=' + encodeString(url) + '&hl=' + languageCode;\n window.open(sharerURL, 'google', getPopupOptionsString(popupWidth, popHeight));\n};\n\n\n\n/**\n * Opens up a Twitter share popup with text.\n * @param text String - The text to share by Twitter.\n * @param popupWidth Integer - The width of the share popup that will be opened.\n * @param popupHeight Integer - The height of the share popup that will be opened.\n */\nmodule.exports.shareByTwitter = function(text, popupWidth, popHeight) {\n var sharerUrl = 'https://twitter.com/intent/tweet?text=' + encodeString(text);\n window.open(sharerUrl, 'twitter', getPopupOptionsString(popupWidth, popHeight));\n};\n\n/**\n * Opens up an email client to send an email with a subject and body.\n * @param emailSubject String - The email's subject.\n * @param text String - The email's body.\n */\nmodule.exports.shareByEmail = function(emailSubject, text) {\n window.location.href = 'mailto:?to=&subject=' + encodeString(emailSubject) + '&body=' + encodeString(text);\n};\n\n/**\n * Opens up an SMS client to send a message with text.\n * Works only on a mobile device.\n * @param text String - The text to share by SMS.\n */\nmodule.exports.shareBySMS = function(text) {\n // SMS URL scheme is different for iOS, hence the condition.\n if (isiOSDevice()) {\n window.location.href = 'sms:&body=' + encodeString(text);\n } else {\n window.location.href = 'sms:?body=' + encodeString(text);\n }\n};\n\n/**\n * Opens up a WhatsApp client (if installed) to send a message with text.\n * Works only on a mobile device.\n * @param text String - The text to share by WhatsApp.\n * @param nativeApp [boolean] - Whether to launch the native app or use the web experience.\n * Defaults to true on mobile, false otherwise.\n */\nmodule.exports.shareByWhatsApp = function(text, nativeApp) {\n if (nativeApp == null) {\n nativeApp = isMobileDevice()\n }\n if (nativeApp) {\n window.location.href = 'whatsapp://send?text=' + encodeString(text);\n } else {\n window.open('https://web.whatsapp.com/send?text=' + text);\n }\n};\n\n/**\n * Opens up a Messenger client (if installed) to send a link.\n * @param url String - The URL to share by Messenger.\n * @param appId Number - App ID required by Facebook.\n * @param nativeApp [boolean] - Whether to launch the native app or use the web experience.\n * Defaults to true if on mobile, false otherwise.\n */\nmodule.exports.shareURLByMessenger = function(url, appId, redirectUri, nativeApp) {\n if (nativeApp == null) {\n nativeApp = isMobileDevice()\n }\n if (nativeApp) {\n window.location.href = 'fb-messenger://share?link=' + encodeURIComponent(url) + '&app_id=' + encodeURIComponent(appId);\n } else {\n window.open('http://www.facebook.com/dialog/send?app_id=' + appId + '&link=' +\n encodeURIComponent(url) + '&redirect_uri=' + encodeURIComponent(redirectUri));\n }\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","(function(self) {\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob();\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n };\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue+','+value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) { items.push(name); });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) { items.push(value); });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) { items.push([name, value]); });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'omit';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n };\n\n function decode(body) {\n var form = new FormData();\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = 'status' in options ? options.status : 200;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n var xhr = new XMLHttpRequest();\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n };\n self.fetch.polyfill = true;\n})(typeof self !== 'undefined' ? self : this);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar transform = 'transform';\nexports.transform = transform;\nvar prefix, transitionEnd, animationEnd;\nexports.animationEnd = animationEnd;\nexports.transitionEnd = transitionEnd;\nvar transitionProperty, transitionDuration, transitionTiming, transitionDelay;\nexports.transitionDelay = transitionDelay;\nexports.transitionTiming = transitionTiming;\nexports.transitionDuration = transitionDuration;\nexports.transitionProperty = transitionProperty;\nvar animationName, animationDuration, animationTiming, animationDelay;\nexports.animationDelay = animationDelay;\nexports.animationTiming = animationTiming;\nexports.animationDuration = animationDuration;\nexports.animationName = animationName;\n\nif (_inDOM.default) {\n var _getTransitionPropert = getTransitionProperties();\n\n prefix = _getTransitionPropert.prefix;\n exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;\n exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;\n exports.transform = transform = prefix + \"-\" + transform;\n exports.transitionProperty = transitionProperty = prefix + \"-transition-property\";\n exports.transitionDuration = transitionDuration = prefix + \"-transition-duration\";\n exports.transitionDelay = transitionDelay = prefix + \"-transition-delay\";\n exports.transitionTiming = transitionTiming = prefix + \"-transition-timing-function\";\n exports.animationName = animationName = prefix + \"-animation-name\";\n exports.animationDuration = animationDuration = prefix + \"-animation-duration\";\n exports.animationTiming = animationTiming = prefix + \"-animation-delay\";\n exports.animationDelay = animationDelay = prefix + \"-animation-timing-function\";\n}\n\nvar _default = {\n transform: transform,\n end: transitionEnd,\n property: transitionProperty,\n timing: transitionTiming,\n delay: transitionDelay,\n duration: transitionDuration\n};\nexports.default = _default;\n\nfunction getTransitionProperties() {\n var style = document.createElement('div').style;\n var vendorMap = {\n O: function O(e) {\n return \"o\" + e.toLowerCase();\n },\n Moz: function Moz(e) {\n return e.toLowerCase();\n },\n Webkit: function Webkit(e) {\n return \"webkit\" + e;\n },\n ms: function ms(e) {\n return \"MS\" + e;\n }\n };\n var vendors = Object.keys(vendorMap);\n var transitionEnd, animationEnd;\n var prefix = '';\n\n for (var i = 0; i < vendors.length; i++) {\n var vendor = vendors[i];\n\n if (vendor + \"TransitionProperty\" in style) {\n prefix = \"-\" + vendor.toLowerCase();\n transitionEnd = vendorMap[vendor]('TransitionEnd');\n animationEnd = vendorMap[vendor]('AnimationEnd');\n break;\n }\n }\n\n if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';\n if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';\n style = null;\n return {\n animationEnd: animationEnd,\n transitionEnd: transitionEnd,\n prefix: prefix\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\n\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancel = 'clearTimeout';\nvar raf = fallback;\nvar compatRaf;\n\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + 'AnimationFrame';\n};\n\nif (_inDOM.default) {\n vendors.some(function (vendor) {\n var rafKey = getKey(vendor, 'request');\n\n if (rafKey in window) {\n cancel = getKey(vendor, 'cancel');\n return raf = function raf(cb) {\n return window[rafKey](cb);\n };\n }\n });\n}\n/* https://github.com/component/raf */\n\n\nvar prev = new Date().getTime();\n\nfunction fallback(fn) {\n var curr = new Date().getTime(),\n ms = Math.max(0, 16 - (curr - prev)),\n req = setTimeout(fn, ms);\n prev = curr;\n return req;\n}\n\ncompatRaf = function compatRaf(cb) {\n return raf(cb);\n};\n\ncompatRaf.cancel = function (id) {\n window[cancel] && typeof window[cancel] === 'function' && window[cancel](id);\n};\n\nvar _default = compatRaf;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","(function() {\n\n var debug = false;\n\n var root = this;\n\n var EXIF = function(obj) {\n if (obj instanceof EXIF) return obj;\n if (!(this instanceof EXIF)) return new EXIF(obj);\n this.EXIFwrapped = obj;\n };\n\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = EXIF;\n }\n exports.EXIF = EXIF;\n } else {\n root.EXIF = EXIF;\n }\n\n var ExifTags = EXIF.Tags = {\n\n // version tags\n 0x9000 : \"ExifVersion\", // EXIF version\n 0xA000 : \"FlashpixVersion\", // Flashpix format version\n\n // colorspace tags\n 0xA001 : \"ColorSpace\", // Color space information tag\n\n // image configuration\n 0xA002 : \"PixelXDimension\", // Valid width of meaningful image\n 0xA003 : \"PixelYDimension\", // Valid height of meaningful image\n 0x9101 : \"ComponentsConfiguration\", // Information about channels\n 0x9102 : \"CompressedBitsPerPixel\", // Compressed bits per pixel\n\n // user information\n 0x927C : \"MakerNote\", // Any desired information written by the manufacturer\n 0x9286 : \"UserComment\", // Comments by user\n\n // related file\n 0xA004 : \"RelatedSoundFile\", // Name of related sound file\n\n // date and time\n 0x9003 : \"DateTimeOriginal\", // Date and time when the original image was generated\n 0x9004 : \"DateTimeDigitized\", // Date and time when the image was stored digitally\n 0x9290 : \"SubsecTime\", // Fractions of seconds for DateTime\n 0x9291 : \"SubsecTimeOriginal\", // Fractions of seconds for DateTimeOriginal\n 0x9292 : \"SubsecTimeDigitized\", // Fractions of seconds for DateTimeDigitized\n\n // picture-taking conditions\n 0x829A : \"ExposureTime\", // Exposure time (in seconds)\n 0x829D : \"FNumber\", // F number\n 0x8822 : \"ExposureProgram\", // Exposure program\n 0x8824 : \"SpectralSensitivity\", // Spectral sensitivity\n 0x8827 : \"ISOSpeedRatings\", // ISO speed rating\n 0x8828 : \"OECF\", // Optoelectric conversion factor\n 0x9201 : \"ShutterSpeedValue\", // Shutter speed\n 0x9202 : \"ApertureValue\", // Lens aperture\n 0x9203 : \"BrightnessValue\", // Value of brightness\n 0x9204 : \"ExposureBias\", // Exposure bias\n 0x9205 : \"MaxApertureValue\", // Smallest F number of lens\n 0x9206 : \"SubjectDistance\", // Distance to subject in meters\n 0x9207 : \"MeteringMode\", // Metering mode\n 0x9208 : \"LightSource\", // Kind of light source\n 0x9209 : \"Flash\", // Flash status\n 0x9214 : \"SubjectArea\", // Location and area of main subject\n 0x920A : \"FocalLength\", // Focal length of the lens in mm\n 0xA20B : \"FlashEnergy\", // Strobe energy in BCPS\n 0xA20C : \"SpatialFrequencyResponse\", //\n 0xA20E : \"FocalPlaneXResolution\", // Number of pixels in width direction per FocalPlaneResolutionUnit\n 0xA20F : \"FocalPlaneYResolution\", // Number of pixels in height direction per FocalPlaneResolutionUnit\n 0xA210 : \"FocalPlaneResolutionUnit\", // Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution\n 0xA214 : \"SubjectLocation\", // Location of subject in image\n 0xA215 : \"ExposureIndex\", // Exposure index selected on camera\n 0xA217 : \"SensingMethod\", // Image sensor type\n 0xA300 : \"FileSource\", // Image source (3 == DSC)\n 0xA301 : \"SceneType\", // Scene type (1 == directly photographed)\n 0xA302 : \"CFAPattern\", // Color filter array geometric pattern\n 0xA401 : \"CustomRendered\", // Special processing\n 0xA402 : \"ExposureMode\", // Exposure mode\n 0xA403 : \"WhiteBalance\", // 1 = auto white balance, 2 = manual\n 0xA404 : \"DigitalZoomRation\", // Digital zoom ratio\n 0xA405 : \"FocalLengthIn35mmFilm\", // Equivalent foacl length assuming 35mm film camera (in mm)\n 0xA406 : \"SceneCaptureType\", // Type of scene\n 0xA407 : \"GainControl\", // Degree of overall image gain adjustment\n 0xA408 : \"Contrast\", // Direction of contrast processing applied by camera\n 0xA409 : \"Saturation\", // Direction of saturation processing applied by camera\n 0xA40A : \"Sharpness\", // Direction of sharpness processing applied by camera\n 0xA40B : \"DeviceSettingDescription\", //\n 0xA40C : \"SubjectDistanceRange\", // Distance to subject\n\n // other tags\n 0xA005 : \"InteroperabilityIFDPointer\",\n 0xA420 : \"ImageUniqueID\" // Identifier assigned uniquely to each image\n };\n\n var TiffTags = EXIF.TiffTags = {\n 0x0100 : \"ImageWidth\",\n 0x0101 : \"ImageHeight\",\n 0x8769 : \"ExifIFDPointer\",\n 0x8825 : \"GPSInfoIFDPointer\",\n 0xA005 : \"InteroperabilityIFDPointer\",\n 0x0102 : \"BitsPerSample\",\n 0x0103 : \"Compression\",\n 0x0106 : \"PhotometricInterpretation\",\n 0x0112 : \"Orientation\",\n 0x0115 : \"SamplesPerPixel\",\n 0x011C : \"PlanarConfiguration\",\n 0x0212 : \"YCbCrSubSampling\",\n 0x0213 : \"YCbCrPositioning\",\n 0x011A : \"XResolution\",\n 0x011B : \"YResolution\",\n 0x0128 : \"ResolutionUnit\",\n 0x0111 : \"StripOffsets\",\n 0x0116 : \"RowsPerStrip\",\n 0x0117 : \"StripByteCounts\",\n 0x0201 : \"JPEGInterchangeFormat\",\n 0x0202 : \"JPEGInterchangeFormatLength\",\n 0x012D : \"TransferFunction\",\n 0x013E : \"WhitePoint\",\n 0x013F : \"PrimaryChromaticities\",\n 0x0211 : \"YCbCrCoefficients\",\n 0x0214 : \"ReferenceBlackWhite\",\n 0x0132 : \"DateTime\",\n 0x010E : \"ImageDescription\",\n 0x010F : \"Make\",\n 0x0110 : \"Model\",\n 0x0131 : \"Software\",\n 0x013B : \"Artist\",\n 0x8298 : \"Copyright\"\n };\n\n var GPSTags = EXIF.GPSTags = {\n 0x0000 : \"GPSVersionID\",\n 0x0001 : \"GPSLatitudeRef\",\n 0x0002 : \"GPSLatitude\",\n 0x0003 : \"GPSLongitudeRef\",\n 0x0004 : \"GPSLongitude\",\n 0x0005 : \"GPSAltitudeRef\",\n 0x0006 : \"GPSAltitude\",\n 0x0007 : \"GPSTimeStamp\",\n 0x0008 : \"GPSSatellites\",\n 0x0009 : \"GPSStatus\",\n 0x000A : \"GPSMeasureMode\",\n 0x000B : \"GPSDOP\",\n 0x000C : \"GPSSpeedRef\",\n 0x000D : \"GPSSpeed\",\n 0x000E : \"GPSTrackRef\",\n 0x000F : \"GPSTrack\",\n 0x0010 : \"GPSImgDirectionRef\",\n 0x0011 : \"GPSImgDirection\",\n 0x0012 : \"GPSMapDatum\",\n 0x0013 : \"GPSDestLatitudeRef\",\n 0x0014 : \"GPSDestLatitude\",\n 0x0015 : \"GPSDestLongitudeRef\",\n 0x0016 : \"GPSDestLongitude\",\n 0x0017 : \"GPSDestBearingRef\",\n 0x0018 : \"GPSDestBearing\",\n 0x0019 : \"GPSDestDistanceRef\",\n 0x001A : \"GPSDestDistance\",\n 0x001B : \"GPSProcessingMethod\",\n 0x001C : \"GPSAreaInformation\",\n 0x001D : \"GPSDateStamp\",\n 0x001E : \"GPSDifferential\"\n };\n\n // EXIF 2.3 Spec\n var IFD1Tags = EXIF.IFD1Tags = {\n 0x0100: \"ImageWidth\",\n 0x0101: \"ImageHeight\",\n 0x0102: \"BitsPerSample\",\n 0x0103: \"Compression\",\n 0x0106: \"PhotometricInterpretation\",\n 0x0111: \"StripOffsets\",\n 0x0112: \"Orientation\",\n 0x0115: \"SamplesPerPixel\",\n 0x0116: \"RowsPerStrip\",\n 0x0117: \"StripByteCounts\",\n 0x011A: \"XResolution\",\n 0x011B: \"YResolution\",\n 0x011C: \"PlanarConfiguration\",\n 0x0128: \"ResolutionUnit\",\n 0x0201: \"JpegIFOffset\", // When image format is JPEG, this value show offset to JPEG data stored.(aka \"ThumbnailOffset\" or \"JPEGInterchangeFormat\")\n 0x0202: \"JpegIFByteCount\", // When image format is JPEG, this value shows data size of JPEG image (aka \"ThumbnailLength\" or \"JPEGInterchangeFormatLength\")\n 0x0211: \"YCbCrCoefficients\",\n 0x0212: \"YCbCrSubSampling\",\n 0x0213: \"YCbCrPositioning\",\n 0x0214: \"ReferenceBlackWhite\"\n };\n\n var StringValues = EXIF.StringValues = {\n ExposureProgram : {\n 0 : \"Not defined\",\n 1 : \"Manual\",\n 2 : \"Normal program\",\n 3 : \"Aperture priority\",\n 4 : \"Shutter priority\",\n 5 : \"Creative program\",\n 6 : \"Action program\",\n 7 : \"Portrait mode\",\n 8 : \"Landscape mode\"\n },\n MeteringMode : {\n 0 : \"Unknown\",\n 1 : \"Average\",\n 2 : \"CenterWeightedAverage\",\n 3 : \"Spot\",\n 4 : \"MultiSpot\",\n 5 : \"Pattern\",\n 6 : \"Partial\",\n 255 : \"Other\"\n },\n LightSource : {\n 0 : \"Unknown\",\n 1 : \"Daylight\",\n 2 : \"Fluorescent\",\n 3 : \"Tungsten (incandescent light)\",\n 4 : \"Flash\",\n 9 : \"Fine weather\",\n 10 : \"Cloudy weather\",\n 11 : \"Shade\",\n 12 : \"Daylight fluorescent (D 5700 - 7100K)\",\n 13 : \"Day white fluorescent (N 4600 - 5400K)\",\n 14 : \"Cool white fluorescent (W 3900 - 4500K)\",\n 15 : \"White fluorescent (WW 3200 - 3700K)\",\n 17 : \"Standard light A\",\n 18 : \"Standard light B\",\n 19 : \"Standard light C\",\n 20 : \"D55\",\n 21 : \"D65\",\n 22 : \"D75\",\n 23 : \"D50\",\n 24 : \"ISO studio tungsten\",\n 255 : \"Other\"\n },\n Flash : {\n 0x0000 : \"Flash did not fire\",\n 0x0001 : \"Flash fired\",\n 0x0005 : \"Strobe return light not detected\",\n 0x0007 : \"Strobe return light detected\",\n 0x0009 : \"Flash fired, compulsory flash mode\",\n 0x000D : \"Flash fired, compulsory flash mode, return light not detected\",\n 0x000F : \"Flash fired, compulsory flash mode, return light detected\",\n 0x0010 : \"Flash did not fire, compulsory flash mode\",\n 0x0018 : \"Flash did not fire, auto mode\",\n 0x0019 : \"Flash fired, auto mode\",\n 0x001D : \"Flash fired, auto mode, return light not detected\",\n 0x001F : \"Flash fired, auto mode, return light detected\",\n 0x0020 : \"No flash function\",\n 0x0041 : \"Flash fired, red-eye reduction mode\",\n 0x0045 : \"Flash fired, red-eye reduction mode, return light not detected\",\n 0x0047 : \"Flash fired, red-eye reduction mode, return light detected\",\n 0x0049 : \"Flash fired, compulsory flash mode, red-eye reduction mode\",\n 0x004D : \"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected\",\n 0x004F : \"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected\",\n 0x0059 : \"Flash fired, auto mode, red-eye reduction mode\",\n 0x005D : \"Flash fired, auto mode, return light not detected, red-eye reduction mode\",\n 0x005F : \"Flash fired, auto mode, return light detected, red-eye reduction mode\"\n },\n SensingMethod : {\n 1 : \"Not defined\",\n 2 : \"One-chip color area sensor\",\n 3 : \"Two-chip color area sensor\",\n 4 : \"Three-chip color area sensor\",\n 5 : \"Color sequential area sensor\",\n 7 : \"Trilinear sensor\",\n 8 : \"Color sequential linear sensor\"\n },\n SceneCaptureType : {\n 0 : \"Standard\",\n 1 : \"Landscape\",\n 2 : \"Portrait\",\n 3 : \"Night scene\"\n },\n SceneType : {\n 1 : \"Directly photographed\"\n },\n CustomRendered : {\n 0 : \"Normal process\",\n 1 : \"Custom process\"\n },\n WhiteBalance : {\n 0 : \"Auto white balance\",\n 1 : \"Manual white balance\"\n },\n GainControl : {\n 0 : \"None\",\n 1 : \"Low gain up\",\n 2 : \"High gain up\",\n 3 : \"Low gain down\",\n 4 : \"High gain down\"\n },\n Contrast : {\n 0 : \"Normal\",\n 1 : \"Soft\",\n 2 : \"Hard\"\n },\n Saturation : {\n 0 : \"Normal\",\n 1 : \"Low saturation\",\n 2 : \"High saturation\"\n },\n Sharpness : {\n 0 : \"Normal\",\n 1 : \"Soft\",\n 2 : \"Hard\"\n },\n SubjectDistanceRange : {\n 0 : \"Unknown\",\n 1 : \"Macro\",\n 2 : \"Close view\",\n 3 : \"Distant view\"\n },\n FileSource : {\n 3 : \"DSC\"\n },\n\n Components : {\n 0 : \"\",\n 1 : \"Y\",\n 2 : \"Cb\",\n 3 : \"Cr\",\n 4 : \"R\",\n 5 : \"G\",\n 6 : \"B\"\n }\n };\n\n function addEvent(element, event, handler) {\n if (element.addEventListener) {\n element.addEventListener(event, handler, false);\n } else if (element.attachEvent) {\n element.attachEvent(\"on\" + event, handler);\n }\n }\n\n function imageHasData(img) {\n return !!(img.exifdata);\n }\n\n\n function base64ToArrayBuffer(base64, contentType) {\n contentType = contentType || base64.match(/^data\\:([^\\;]+)\\;base64,/mi)[1] || ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'\n base64 = base64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, '');\n var binary = atob(base64);\n var len = binary.length;\n var buffer = new ArrayBuffer(len);\n var view = new Uint8Array(buffer);\n for (var i = 0; i < len; i++) {\n view[i] = binary.charCodeAt(i);\n }\n return buffer;\n }\n\n function objectURLToBlob(url, callback) {\n var http = new XMLHttpRequest();\n http.open(\"GET\", url, true);\n http.responseType = \"blob\";\n http.onload = function(e) {\n if (this.status == 200 || this.status === 0) {\n callback(this.response);\n }\n };\n http.send();\n }\n\n function getImageData(img, callback) {\n function handleBinaryFile(binFile) {\n var data = findEXIFinJPEG(binFile);\n img.exifdata = data || {};\n var iptcdata = findIPTCinJPEG(binFile);\n img.iptcdata = iptcdata || {};\n if (EXIF.isXmpEnabled) {\n var xmpdata= findXMPinJPEG(binFile);\n img.xmpdata = xmpdata || {}; \n }\n if (callback) {\n callback.call(img);\n }\n }\n\n if (img.src) {\n if (/^data\\:/i.test(img.src)) { // Data URI\n var arrayBuffer = base64ToArrayBuffer(img.src);\n handleBinaryFile(arrayBuffer);\n\n } else if (/^blob\\:/i.test(img.src)) { // Object URL\n var fileReader = new FileReader();\n fileReader.onload = function(e) {\n handleBinaryFile(e.target.result);\n };\n objectURLToBlob(img.src, function (blob) {\n fileReader.readAsArrayBuffer(blob);\n });\n } else {\n var http = new XMLHttpRequest();\n http.onload = function() {\n if (this.status == 200 || this.status === 0) {\n handleBinaryFile(http.response);\n } else {\n throw \"Could not load image\";\n }\n http = null;\n };\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n }\n } else if (self.FileReader && (img instanceof self.Blob || img instanceof self.File)) {\n var fileReader = new FileReader();\n fileReader.onload = function(e) {\n if (debug) console.log(\"Got file of length \" + e.target.result.byteLength);\n handleBinaryFile(e.target.result);\n };\n\n fileReader.readAsArrayBuffer(img);\n }\n }\n\n function findEXIFinJPEG(file) {\n var dataView = new DataView(file);\n\n if (debug) console.log(\"Got file of length \" + file.byteLength);\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\n if (debug) console.log(\"Not a valid JPEG\");\n return false; // not a valid jpeg\n }\n\n var offset = 2,\n length = file.byteLength,\n marker;\n\n while (offset < length) {\n if (dataView.getUint8(offset) != 0xFF) {\n if (debug) console.log(\"Not a valid marker at offset \" + offset + \", found: \" + dataView.getUint8(offset));\n return false; // not a valid marker, something is wrong\n }\n\n marker = dataView.getUint8(offset + 1);\n if (debug) console.log(marker);\n\n // we could implement handling for other markers here,\n // but we're only looking for 0xFFE1 for EXIF data\n\n if (marker == 225) {\n if (debug) console.log(\"Found 0xFFE1 marker\");\n\n return readEXIFData(dataView, offset + 4, dataView.getUint16(offset + 2) - 2);\n\n // offset += 2 + file.getShortAt(offset+2, true);\n\n } else {\n offset += 2 + dataView.getUint16(offset+2);\n }\n\n }\n\n }\n\n function findIPTCinJPEG(file) {\n var dataView = new DataView(file);\n\n if (debug) console.log(\"Got file of length \" + file.byteLength);\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\n if (debug) console.log(\"Not a valid JPEG\");\n return false; // not a valid jpeg\n }\n\n var offset = 2,\n length = file.byteLength;\n\n\n var isFieldSegmentStart = function(dataView, offset){\n return (\n dataView.getUint8(offset) === 0x38 &&\n dataView.getUint8(offset+1) === 0x42 &&\n dataView.getUint8(offset+2) === 0x49 &&\n dataView.getUint8(offset+3) === 0x4D &&\n dataView.getUint8(offset+4) === 0x04 &&\n dataView.getUint8(offset+5) === 0x04\n );\n };\n\n while (offset < length) {\n\n if ( isFieldSegmentStart(dataView, offset )){\n\n // Get the length of the name header (which is padded to an even number of bytes)\n var nameHeaderLength = dataView.getUint8(offset+7);\n if(nameHeaderLength % 2 !== 0) nameHeaderLength += 1;\n // Check for pre photoshop 6 format\n if(nameHeaderLength === 0) {\n // Always 4\n nameHeaderLength = 4;\n }\n\n var startOffset = offset + 8 + nameHeaderLength;\n var sectionLength = dataView.getUint16(offset + 6 + nameHeaderLength);\n\n return readIPTCData(file, startOffset, sectionLength);\n\n break;\n\n }\n\n\n // Not the marker, continue searching\n offset++;\n\n }\n\n }\n var IptcFieldMap = {\n 0x78 : 'caption',\n 0x6E : 'credit',\n 0x19 : 'keywords',\n 0x37 : 'dateCreated',\n 0x50 : 'byline',\n 0x55 : 'bylineTitle',\n 0x7A : 'captionWriter',\n 0x69 : 'headline',\n 0x74 : 'copyright',\n 0x0F : 'category'\n };\n function readIPTCData(file, startOffset, sectionLength){\n var dataView = new DataView(file);\n var data = {};\n var fieldValue, fieldName, dataSize, segmentType, segmentSize;\n var segmentStartPos = startOffset;\n while(segmentStartPos < startOffset+sectionLength) {\n if(dataView.getUint8(segmentStartPos) === 0x1C && dataView.getUint8(segmentStartPos+1) === 0x02){\n segmentType = dataView.getUint8(segmentStartPos+2);\n if(segmentType in IptcFieldMap) {\n dataSize = dataView.getInt16(segmentStartPos+3);\n segmentSize = dataSize + 5;\n fieldName = IptcFieldMap[segmentType];\n fieldValue = getStringFromDB(dataView, segmentStartPos+5, dataSize);\n // Check if we already stored a value with this name\n if(data.hasOwnProperty(fieldName)) {\n // Value already stored with this name, create multivalue field\n if(data[fieldName] instanceof Array) {\n data[fieldName].push(fieldValue);\n }\n else {\n data[fieldName] = [data[fieldName], fieldValue];\n }\n }\n else {\n data[fieldName] = fieldValue;\n }\n }\n\n }\n segmentStartPos++;\n }\n return data;\n }\n\n\n\n function readTags(file, tiffStart, dirStart, strings, bigEnd) {\n var entries = file.getUint16(dirStart, !bigEnd),\n tags = {},\n entryOffset, tag,\n i;\n\n for (i=0;i 4 ? valueOffset : (entryOffset + 8);\n vals = [];\n for (n=0;n 4 ? valueOffset : (entryOffset + 8);\n return getStringFromDB(file, offset, numValues-1);\n\n case 3: // short, 16 bit int\n if (numValues == 1) {\n return file.getUint16(entryOffset + 8, !bigEnd);\n } else {\n offset = numValues > 2 ? valueOffset : (entryOffset + 8);\n vals = [];\n for (n=0;n dataView.byteLength) { // this should not happen\n // console.log('******** IFD1Offset is outside the bounds of the DataView ********');\n return {};\n }\n // console.log('******* thumbnail IFD offset (IFD1) is: %s', IFD1OffsetPointer);\n\n var thumbTags = readTags(dataView, tiffStart, tiffStart + IFD1OffsetPointer, IFD1Tags, bigEnd)\n\n // EXIF 2.3 specification for JPEG format thumbnail\n\n // If the value of Compression(0x0103) Tag in IFD1 is '6', thumbnail image format is JPEG.\n // Most of Exif image uses JPEG format for thumbnail. In that case, you can get offset of thumbnail\n // by JpegIFOffset(0x0201) Tag in IFD1, size of thumbnail by JpegIFByteCount(0x0202) Tag.\n // Data format is ordinary JPEG format, starts from 0xFFD8 and ends by 0xFFD9. It seems that\n // JPEG format and 160x120pixels of size are recommended thumbnail format for Exif2.1 or later.\n\n if (thumbTags['Compression']) {\n // console.log('Thumbnail image found!');\n\n switch (thumbTags['Compression']) {\n case 6:\n // console.log('Thumbnail image format is JPEG');\n if (thumbTags.JpegIFOffset && thumbTags.JpegIFByteCount) {\n // extract the thumbnail\n var tOffset = tiffStart + thumbTags.JpegIFOffset;\n var tLength = thumbTags.JpegIFByteCount;\n thumbTags['blob'] = new Blob([new Uint8Array(dataView.buffer, tOffset, tLength)], {\n type: 'image/jpeg'\n });\n }\n break;\n\n case 1:\n console.log(\"Thumbnail image format is TIFF, which is not implemented.\");\n break;\n default:\n console.log(\"Unknown thumbnail image format '%s'\", thumbTags['Compression']);\n }\n }\n else if (thumbTags['PhotometricInterpretation'] == 2) {\n console.log(\"Thumbnail image format is RGB, which is not implemented.\");\n }\n return thumbTags;\n }\n\n function getStringFromDB(buffer, start, length) {\n var outstr = \"\";\n for (n = start; n < start+length; n++) {\n outstr += String.fromCharCode(buffer.getUint8(n));\n }\n return outstr;\n }\n\n function readEXIFData(file, start) {\n if (getStringFromDB(file, start, 4) != \"Exif\") {\n if (debug) console.log(\"Not valid EXIF data! \" + getStringFromDB(file, start, 4));\n return false;\n }\n\n var bigEnd,\n tags, tag,\n exifData, gpsData,\n tiffOffset = start + 6;\n\n // test for TIFF validity and endianness\n if (file.getUint16(tiffOffset) == 0x4949) {\n bigEnd = false;\n } else if (file.getUint16(tiffOffset) == 0x4D4D) {\n bigEnd = true;\n } else {\n if (debug) console.log(\"Not valid TIFF data! (no 0x4949 or 0x4D4D)\");\n return false;\n }\n\n if (file.getUint16(tiffOffset+2, !bigEnd) != 0x002A) {\n if (debug) console.log(\"Not valid TIFF data! (no 0x002A)\");\n return false;\n }\n\n var firstIFDOffset = file.getUint32(tiffOffset+4, !bigEnd);\n\n if (firstIFDOffset < 0x00000008) {\n if (debug) console.log(\"Not valid TIFF data! (First offset less than 8)\", file.getUint32(tiffOffset+4, !bigEnd));\n return false;\n }\n\n tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, TiffTags, bigEnd);\n\n if (tags.ExifIFDPointer) {\n exifData = readTags(file, tiffOffset, tiffOffset + tags.ExifIFDPointer, ExifTags, bigEnd);\n for (tag in exifData) {\n switch (tag) {\n case \"LightSource\" :\n case \"Flash\" :\n case \"MeteringMode\" :\n case \"ExposureProgram\" :\n case \"SensingMethod\" :\n case \"SceneCaptureType\" :\n case \"SceneType\" :\n case \"CustomRendered\" :\n case \"WhiteBalance\" :\n case \"GainControl\" :\n case \"Contrast\" :\n case \"Saturation\" :\n case \"Sharpness\" :\n case \"SubjectDistanceRange\" :\n case \"FileSource\" :\n exifData[tag] = StringValues[tag][exifData[tag]];\n break;\n\n case \"ExifVersion\" :\n case \"FlashpixVersion\" :\n exifData[tag] = String.fromCharCode(exifData[tag][0], exifData[tag][1], exifData[tag][2], exifData[tag][3]);\n break;\n\n case \"ComponentsConfiguration\" :\n exifData[tag] =\n StringValues.Components[exifData[tag][0]] +\n StringValues.Components[exifData[tag][1]] +\n StringValues.Components[exifData[tag][2]] +\n StringValues.Components[exifData[tag][3]];\n break;\n }\n tags[tag] = exifData[tag];\n }\n }\n\n if (tags.GPSInfoIFDPointer) {\n gpsData = readTags(file, tiffOffset, tiffOffset + tags.GPSInfoIFDPointer, GPSTags, bigEnd);\n for (tag in gpsData) {\n switch (tag) {\n case \"GPSVersionID\" :\n gpsData[tag] = gpsData[tag][0] +\n \".\" + gpsData[tag][1] +\n \".\" + gpsData[tag][2] +\n \".\" + gpsData[tag][3];\n break;\n }\n tags[tag] = gpsData[tag];\n }\n }\n\n // extract thumbnail\n tags['thumbnail'] = readThumbnailImage(file, tiffOffset, firstIFDOffset, bigEnd);\n\n return tags;\n }\n\n function findXMPinJPEG(file) {\n\n if (!('DOMParser' in self)) {\n // console.warn('XML parsing not supported without DOMParser');\n return;\n }\n var dataView = new DataView(file);\n\n if (debug) console.log(\"Got file of length \" + file.byteLength);\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\n if (debug) console.log(\"Not a valid JPEG\");\n return false; // not a valid jpeg\n }\n\n var offset = 2,\n length = file.byteLength,\n dom = new DOMParser();\n\n while (offset < (length-4)) {\n if (getStringFromDB(dataView, offset, 4) == \"http\") {\n var startOffset = offset - 1;\n var sectionLength = dataView.getUint16(offset - 2) - 1;\n var xmpString = getStringFromDB(dataView, startOffset, sectionLength)\n var xmpEndIndex = xmpString.indexOf('xmpmeta>') + 8;\n xmpString = xmpString.substring( xmpString.indexOf( ' 0) {\n json['@attributes'] = {};\n for (var j = 0; j < xml.attributes.length; j++) {\n var attribute = xml.attributes.item(j);\n json['@attributes'][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType == 3) { // text node\n return xml.nodeValue;\n }\n \n // deal with children\n if (xml.hasChildNodes()) {\n for(var i = 0; i < xml.childNodes.length; i++) {\n var child = xml.childNodes.item(i);\n var nodeName = child.nodeName;\n if (json[nodeName] == null) {\n json[nodeName] = xml2json(child);\n } else {\n if (json[nodeName].push == null) {\n var old = json[nodeName];\n json[nodeName] = [];\n json[nodeName].push(old);\n }\n json[nodeName].push(xml2json(child));\n }\n }\n }\n \n return json;\n }\n\n function xml2Object(xml) {\n try {\n var obj = {};\n if (xml.children.length > 0) {\n for (var i = 0; i < xml.children.length; i++) {\n var item = xml.children.item(i);\n var attributes = item.attributes;\n for(var idx in attributes) {\n var itemAtt = attributes[idx];\n var dataKey = itemAtt.nodeName;\n var dataValue = itemAtt.nodeValue;\n\n if(dataKey !== undefined) {\n obj[dataKey] = dataValue;\n }\n }\n var nodeName = item.nodeName;\n\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = xml2json(item);\n } else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n var old = obj[nodeName];\n\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(xml2json(item));\n }\n }\n } else {\n obj = xml.textContent;\n }\n return obj;\n } catch (e) {\n console.log(e.message);\n }\n }\n\n EXIF.enableXmp = function() {\n EXIF.isXmpEnabled = true;\n }\n\n EXIF.disableXmp = function() {\n EXIF.isXmpEnabled = false;\n }\n\n EXIF.getData = function(img, callback) {\n if (((self.Image && img instanceof self.Image)\n || (self.HTMLImageElement && img instanceof self.HTMLImageElement))\n && !img.complete)\n return false;\n\n if (!imageHasData(img)) {\n getImageData(img, callback);\n } else {\n if (callback) {\n callback.call(img);\n }\n }\n return true;\n }\n\n EXIF.getTag = function(img, tag) {\n if (!imageHasData(img)) return;\n return img.exifdata[tag];\n }\n \n EXIF.getIptcTag = function(img, tag) {\n if (!imageHasData(img)) return;\n return img.iptcdata[tag];\n }\n\n EXIF.getAllTags = function(img) {\n if (!imageHasData(img)) return {};\n var a,\n data = img.exifdata,\n tags = {};\n for (a in data) {\n if (data.hasOwnProperty(a)) {\n tags[a] = data[a];\n }\n }\n return tags;\n }\n \n EXIF.getAllIptcTags = function(img) {\n if (!imageHasData(img)) return {};\n var a,\n data = img.iptcdata,\n tags = {};\n for (a in data) {\n if (data.hasOwnProperty(a)) {\n tags[a] = data[a];\n }\n }\n return tags;\n }\n\n EXIF.pretty = function(img) {\n if (!imageHasData(img)) return \"\";\n var a,\n data = img.exifdata,\n strPretty = \"\";\n for (a in data) {\n if (data.hasOwnProperty(a)) {\n if (typeof data[a] == \"object\") {\n if (data[a] instanceof Number) {\n strPretty += a + \" : \" + data[a] + \" [\" + data[a].numerator + \"/\" + data[a].denominator + \"]\\r\\n\";\n } else {\n strPretty += a + \" : [\" + data[a].length + \" values]\\r\\n\";\n }\n } else {\n strPretty += a + \" : \" + data[a] + \"\\r\\n\";\n }\n }\n }\n return strPretty;\n }\n\n EXIF.readFromBinaryFile = function(file) {\n return findEXIFinJPEG(file);\n }\n\n if (typeof define === 'function' && define.amd) {\n define('exif-js', [], function() {\n return EXIF;\n });\n }\n}.call(this));\n\n","/* Font Face Observer v2.1.0 - © Bram Stein. License: BSD-3-Clause */(function(){function l(a,b){document.addEventListener?a.addEventListener(\"scroll\",b,!1):a.attachEvent(\"scroll\",b)}function m(a){document.body?a():document.addEventListener?document.addEventListener(\"DOMContentLoaded\",function c(){document.removeEventListener(\"DOMContentLoaded\",c);a()}):document.attachEvent(\"onreadystatechange\",function k(){if(\"interactive\"==document.readyState||\"complete\"==document.readyState)document.detachEvent(\"onreadystatechange\",k),a()})};function t(a){this.a=document.createElement(\"div\");this.a.setAttribute(\"aria-hidden\",\"true\");this.a.appendChild(document.createTextNode(a));this.b=document.createElement(\"span\");this.c=document.createElement(\"span\");this.h=document.createElement(\"span\");this.f=document.createElement(\"span\");this.g=-1;this.b.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.c.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\nthis.f.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.h.style.cssText=\"display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;\";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)}\nfunction u(a,b){a.a.style.cssText=\"max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:\"+b+\";\"}function z(a){var b=a.a.offsetWidth,c=b+100;a.f.style.width=c+\"px\";a.c.scrollLeft=c;a.b.scrollLeft=a.b.scrollWidth+100;return a.g!==b?(a.g=b,!0):!1}function A(a,b){function c(){var a=k;z(a)&&a.a.parentNode&&b(a.g)}var k=a;l(a.b,c);l(a.c,c);z(a)};function B(a,b){var c=b||{};this.family=a;this.style=c.style||\"normal\";this.weight=c.weight||\"normal\";this.stretch=c.stretch||\"normal\"}var C=null,D=null,E=null,F=null;function G(){if(null===D)if(J()&&/Apple/.test(window.navigator.vendor)){var a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))(?:\\.([0-9]+))/.exec(window.navigator.userAgent);D=!!a&&603>parseInt(a[1],10)}else D=!1;return D}function J(){null===F&&(F=!!document.fonts);return F}\nfunction K(){if(null===E){var a=document.createElement(\"div\");try{a.style.font=\"condensed 100px sans-serif\"}catch(b){}E=\"\"!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:\"\",\"100px\",b].join(\" \")}\nB.prototype.load=function(a,b){var c=this,k=a||\"BESbswy\",r=0,n=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=n?b(Error(\"\"+n+\"ms timeout exceeded\")):document.fonts.load(L(c,'\"'+c.family+'\"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},b)}e()}),N=new Promise(function(a,c){r=setTimeout(function(){c(Error(\"\"+n+\"ms timeout exceeded\"))},n)});Promise.race([N,M]).then(function(){clearTimeout(r);a(c)},\nb)}else m(function(){function v(){var b;if(b=-1!=f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===C&&(b=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent),C=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=C&&(f==w&&g==w&&h==w||f==x&&g==x&&h==x||f==y&&g==y&&h==y)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(r),a(c))}function I(){if((new Date).getTime()-H>=n)d.parentNode&&d.parentNode.removeChild(d),b(Error(\"\"+\nn+\"ms timeout exceeded\"));else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth,g=p.a.offsetWidth,h=q.a.offsetWidth,v();r=setTimeout(I,50)}}var e=new t(k),p=new t(k),q=new t(k),f=-1,g=-1,h=-1,w=-1,x=-1,y=-1,d=document.createElement(\"div\");d.dir=\"ltr\";u(e,L(c,\"sans-serif\"));u(p,L(c,\"serif\"));u(q,L(c,\"monospace\"));d.appendChild(e.a);d.appendChild(p.a);d.appendChild(q.a);document.body.appendChild(d);w=e.a.offsetWidth;x=p.a.offsetWidth;y=q.a.offsetWidth;I();A(e,function(a){f=a;v()});u(e,\nL(c,'\"'+c.family+'\",sans-serif'));A(p,function(a){g=a;v()});u(p,L(c,'\"'+c.family+'\",serif'));A(q,function(a){h=a;v()});u(q,L(c,'\"'+c.family+'\",monospace'))})})};\"object\"===typeof module?module.exports=B:(window.FontFaceObserver=B,window.FontFaceObserver.prototype.load=B.prototype.load);}());\n","/**\n * Globalize v1.6.0\n *\n * http://github.com/jquery/globalize\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-09-08T11:54Z\n */\n/*!\n * Globalize v1.6.0 2020-09-08T11:54Z Released under the MIT license\n * http://git.io/TrdQbw\n */\n(function( root, factory ) {\n\n\t// UMD returnExports\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD\n\t\tdefine([\n\t\t\t\"cldr\",\n\t\t\t\"cldr/event\"\n\t\t], factory );\n\t} else if ( typeof exports === \"object\" ) {\n\n\t\t// Node, CommonJS\n\t\tmodule.exports = factory( require( \"cldrjs\" ) );\n\t} else {\n\n\t\t// Global\n\t\troot.Globalize = factory( root.Cldr );\n\t}\n}( this, function( Cldr ) {\n\n\n/**\n * A toString method that outputs meaningful values for objects or arrays and\n * still performs as fast as a plain string in case variable is string, or as\n * fast as `\"\" + number` in case variable is a number.\n * Ref: http://jsperf.com/my-stringify\n */\nvar toString = function( variable ) {\n\treturn typeof variable === \"string\" ? variable : ( typeof variable === \"number\" ? \"\" +\n\t\tvariable : JSON.stringify( variable ) );\n};\n\n\n\n\n/**\n * formatMessage( message, data )\n *\n * @message [String] A message with optional {vars} to be replaced.\n *\n * @data [Array or JSON] Object with replacing-variables content.\n *\n * Return the formatted message. For example:\n *\n * - formatMessage( \"{0} second\", [ 1 ] ); // 1 second\n *\n * - formatMessage( \"{0}/{1}\", [\"m\", \"s\"] ); // m/s\n *\n * - formatMessage( \"{name} <{email}>\", {\n * name: \"Foo\",\n * email: \"bar@baz.qux\"\n * }); // Foo \n */\nvar formatMessage = function( message, data ) {\n\n\t// Replace {attribute}'s\n\tmessage = message.replace( /{[0-9a-zA-Z-_. ]+}/g, function( name ) {\n\t\tname = name.replace( /^{([^}]*)}$/, \"$1\" );\n\t\treturn toString( data[ name ] );\n\t});\n\n\treturn message;\n};\n\n\n\n\nvar objectExtend = function() {\n\tvar destination = arguments[ 0 ],\n\t\tsources = [].slice.call( arguments, 1 );\n\n\tsources.forEach(function( source ) {\n\t\tvar prop;\n\t\tfor ( prop in source ) {\n\t\t\tdestination[ prop ] = source[ prop ];\n\t\t}\n\t});\n\n\treturn destination;\n};\n\n\n\n\nvar createError = function( code, message, attributes ) {\n\tvar error;\n\n\tmessage = code + ( message ? \": \" + formatMessage( message, attributes ) : \"\" );\n\terror = new Error( message );\n\terror.code = code;\n\n\tobjectExtend( error, attributes );\n\n\treturn error;\n};\n\n\n\n\n/**\n * Pushes part to parts array, concat two consecutive parts of the same type.\n */\nvar partsPush = function( parts, type, value ) {\n\n\t\t// Concat two consecutive parts of same type\n\t\tif ( parts.length && parts[ parts.length - 1 ].type === type ) {\n\t\t\tparts[ parts.length - 1 ].value += value;\n\t\t\treturn;\n\t\t}\n\n\t\tparts.push( { type: type, value: value } );\n};\n\n\n\n\n/**\n * formatMessage( message, data )\n *\n * @message [String] A message with optional {vars} to be replaced.\n *\n * @data [Array or JSON] Object with replacing-variables content.\n *\n * Return the formatted message. For example:\n *\n * - formatMessage( \"{0} second\", [ 1 ] );\n * > [{type: \"variable\", value: \"1\", name: \"0\"}, {type: \"literal\", value: \" second\"}]\n *\n * - formatMessage( \"{0}/{1}\", [\"m\", \"s\"] );\n * > [\n * { type: \"variable\", value: \"m\", name: \"0\" },\n * { type: \"literal\", value: \" /\" },\n * { type: \"variable\", value: \"s\", name: \"1\" }\n * ]\n */\nvar formatMessageToParts = function( message, data ) {\n\n\tvar lastOffset = 0,\n\t\tparts = [];\n\n\t// Create parts.\n\tmessage.replace( /{[0-9a-zA-Z-_. ]+}/g, function( nameIncludingBrackets, offset ) {\n\t\tvar name = nameIncludingBrackets.slice( 1, -1 );\n\t\tpartsPush( parts, \"literal\", message.slice( lastOffset, offset ));\n\t\tpartsPush( parts, \"variable\", data[ name ] );\n\t\tparts[ parts.length - 1 ].name = name;\n\t\tlastOffset += offset + nameIncludingBrackets.length;\n\t});\n\n\t// Skip empty ones such as `{ type: 'literal', value: '' }`.\n\treturn parts.filter(function( part ) {\n\t\treturn part.value !== \"\";\n\t});\n};\n\n\n\n\n/**\n * Returns joined parts values.\n */\nvar partsJoin = function( parts ) {\n\treturn parts.map( function( part ) {\n\t\treturn part.value;\n\t}).join( \"\" );\n};\n\n\n\n\nvar runtimeStringify = function( args ) {\n\treturn JSON.stringify( args, function( key, value ) {\n\t\tif ( value && value.runtimeKey ) {\n\t\t\treturn value.runtimeKey;\n\t\t}\n\t\treturn value;\n\t} );\n};\n\n\n\n\n// Based on http://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery\nvar stringHash = function( str ) {\n\treturn [].reduce.call( str, function( hash, i ) {\n\t\tvar chr = i.charCodeAt( 0 );\n\t\thash = ( ( hash << 5 ) - hash ) + chr;\n\t\treturn hash | 0;\n\t}, 0 );\n};\n\n\n\n\nvar runtimeKey = function( fnName, locale, args, argsStr ) {\n\tvar hash;\n\targsStr = argsStr || runtimeStringify( args );\n\thash = stringHash( fnName + locale + argsStr );\n\treturn hash > 0 ? \"a\" + hash : \"b\" + Math.abs( hash );\n};\n\n\n\n\nvar functionName = function( fn ) {\n\tif ( fn.name !== undefined ) {\n\t\treturn fn.name;\n\t}\n\n\t// fn.name is not supported by IE.\n\tvar matches = /^function\\s+([\\w\\$]+)\\s*\\(/.exec( fn.toString() );\n\n\tif ( matches && matches.length > 0 ) {\n\t\treturn matches[ 1 ];\n\t}\n};\n\n\n\n\nvar runtimeBind = function( args, cldr, fn, runtimeArgs ) {\n\n\tvar argsStr = runtimeStringify( args ),\n\t\tfnName = functionName( fn ),\n\t\tlocale = cldr.locale;\n\n\t// If name of the function is not available, this is most likely due to uglification,\n\t// which most likely means we are in production, and runtimeBind here is not necessary.\n\tif ( !fnName ) {\n\t\treturn fn;\n\t}\n\n\tfn.runtimeKey = runtimeKey( fnName, locale, null, argsStr );\n\n\tfn.generatorString = function() {\n\t\treturn \"Globalize(\\\"\" + locale + \"\\\").\" + fnName + \"(\" + argsStr.slice( 1, -1 ) + \")\";\n\t};\n\n\tfn.runtimeArgs = runtimeArgs;\n\n\treturn fn;\n};\n\n\n\n\nvar validate = function( code, message, check, attributes ) {\n\tif ( !check ) {\n\t\tthrow createError( code, message, attributes );\n\t}\n};\n\n\n\n\nvar alwaysArray = function( stringOrArray ) {\n\treturn Array.isArray( stringOrArray ) ? stringOrArray : stringOrArray ? [ stringOrArray ] : [];\n};\n\n\n\n\nvar validateCldr = function( path, value, options ) {\n\tvar skipBoolean;\n\toptions = options || {};\n\n\tskipBoolean = alwaysArray( options.skip ).some(function( pathRe ) {\n\t\treturn pathRe.test( path );\n\t});\n\n\tvalidate( \"E_MISSING_CLDR\", \"Missing required CLDR content `{path}`.\", value || skipBoolean, {\n\t\tpath: path\n\t});\n};\n\n\n\n\nvar validateDefaultLocale = function( value ) {\n\tvalidate( \"E_DEFAULT_LOCALE_NOT_DEFINED\", \"Default locale has not been defined.\",\n\t\tvalue !== undefined, {} );\n};\n\n\n\n\nvar validateParameterPresence = function( value, name ) {\n\tvalidate( \"E_MISSING_PARAMETER\", \"Missing required parameter `{name}`.\",\n\t\tvalue !== undefined, { name: name });\n};\n\n\n\n\n/**\n * range( value, name, minimum, maximum )\n *\n * @value [Number].\n *\n * @name [String] name of variable.\n *\n * @minimum [Number]. The lowest valid value, inclusive.\n *\n * @maximum [Number]. The greatest valid value, inclusive.\n */\nvar validateParameterRange = function( value, name, minimum, maximum ) {\n\tvalidate(\n\t\t\"E_PAR_OUT_OF_RANGE\",\n\t\t\"Parameter `{name}` has value `{value}` out of range [{minimum}, {maximum}].\",\n\t\tvalue === undefined || value >= minimum && value <= maximum,\n\t\t{\n\t\t\tmaximum: maximum,\n\t\t\tminimum: minimum,\n\t\t\tname: name,\n\t\t\tvalue: value\n\t\t}\n\t);\n};\n\n\n\n\nvar validateParameterType = function( value, name, check, expected ) {\n\tvalidate(\n\t\t\"E_INVALID_PAR_TYPE\",\n\t\t\"Invalid `{name}` parameter ({value}). {expected} expected.\",\n\t\tcheck,\n\t\t{\n\t\t\texpected: expected,\n\t\t\tname: name,\n\t\t\tvalue: value\n\t\t}\n\t);\n};\n\n\n\n\nvar validateParameterTypeLocale = function( value, name ) {\n\tvalidateParameterType(\n\t\tvalue,\n\t\tname,\n\t\tvalue === undefined || typeof value === \"string\" || value instanceof Cldr,\n\t\t\"String or Cldr instance\"\n\t);\n};\n\n\n\n\n/**\n * Function inspired by jQuery Core, but reduced to our use case.\n */\nvar isPlainObject = function( obj ) {\n\treturn obj !== null && \"\" + obj === \"[object Object]\";\n};\n\n\n\n\nvar validateParameterTypePlainObject = function( value, name ) {\n\tvalidateParameterType(\n\t\tvalue,\n\t\tname,\n\t\tvalue === undefined || isPlainObject( value ),\n\t\t\"Plain Object\"\n\t);\n};\n\n\n\n\nvar alwaysCldr = function( localeOrCldr ) {\n\treturn localeOrCldr instanceof Cldr ? localeOrCldr : new Cldr( localeOrCldr );\n};\n\n\n\n\n// ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions?redirectlocale=en-US&redirectslug=JavaScript%2FGuide%2FRegular_Expressions\nvar regexpEscape = function( string ) {\n\treturn string.replace( /([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\" );\n};\n\n\n\n\nvar stringPad = function( str, count, right ) {\n\tvar length;\n\tif ( typeof str !== \"string\" ) {\n\t\tstr = String( str );\n\t}\n\tfor ( length = str.length; length < count; length += 1 ) {\n\t\tstr = ( right ? ( str + \"0\" ) : ( \"0\" + str ) );\n\t}\n\treturn str;\n};\n\n\n\n\nfunction validateLikelySubtags( cldr ) {\n\tcldr.once( \"get\", validateCldr );\n\tcldr.get( \"supplemental/likelySubtags\" );\n}\n\n/**\n * [new] Globalize( locale|cldr )\n *\n * @locale [String]\n *\n * @cldr [Cldr instance]\n *\n * Create a Globalize instance.\n */\nfunction Globalize( locale ) {\n\tif ( !( this instanceof Globalize ) ) {\n\t\treturn new Globalize( locale );\n\t}\n\n\tvalidateParameterPresence( locale, \"locale\" );\n\tvalidateParameterTypeLocale( locale, \"locale\" );\n\n\tthis.cldr = alwaysCldr( locale );\n\n\tvalidateLikelySubtags( this.cldr );\n}\n\n/**\n * Globalize.load( json, ... )\n *\n * @json [JSON]\n *\n * Load resolved or unresolved cldr data.\n * Somewhat equivalent to previous Globalize.addCultureInfo(...).\n */\nGlobalize.load = function() {\n\n\t// validations are delegated to Cldr.load().\n\tCldr.load.apply( Cldr, arguments );\n};\n\n/**\n * Globalize.locale( [locale|cldr] )\n *\n * @locale [String]\n *\n * @cldr [Cldr instance]\n *\n * Set default Cldr instance if locale or cldr argument is passed.\n *\n * Return the default Cldr instance.\n */\nGlobalize.locale = function( locale ) {\n\tvalidateParameterTypeLocale( locale, \"locale\" );\n\n\tif ( arguments.length ) {\n\t\tthis.cldr = alwaysCldr( locale );\n\t\tvalidateLikelySubtags( this.cldr );\n\t}\n\treturn this.cldr;\n};\n\n/**\n * Optimization to avoid duplicating some internal functions across modules.\n */\nGlobalize._alwaysArray = alwaysArray;\nGlobalize._createError = createError;\nGlobalize._formatMessage = formatMessage;\nGlobalize._formatMessageToParts = formatMessageToParts;\nGlobalize._isPlainObject = isPlainObject;\nGlobalize._objectExtend = objectExtend;\nGlobalize._partsJoin = partsJoin;\nGlobalize._partsPush = partsPush;\nGlobalize._regexpEscape = regexpEscape;\nGlobalize._runtimeBind = runtimeBind;\nGlobalize._stringPad = stringPad;\nGlobalize._validate = validate;\nGlobalize._validateCldr = validateCldr;\nGlobalize._validateDefaultLocale = validateDefaultLocale;\nGlobalize._validateParameterPresence = validateParameterPresence;\nGlobalize._validateParameterRange = validateParameterRange;\nGlobalize._validateParameterTypePlainObject = validateParameterTypePlainObject;\nGlobalize._validateParameterType = validateParameterType;\n\nreturn Globalize;\n\n\n\n\n}));\n","/**\n * Globalize v1.6.0\n *\n * http://github.com/jquery/globalize\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-09-08T11:54Z\n */\n/*!\n * Globalize v1.6.0 2020-09-08T11:54Z Released under the MIT license\n * http://git.io/TrdQbw\n */\n(function( root, factory ) {\n\n\t// UMD returnExports\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD\n\t\tdefine([\n\t\t\t\"cldr\",\n\t\t\t\"../globalize\",\n\t\t\t\"cldr/event\",\n\t\t\t\"cldr/supplemental\"\n\t\t], factory );\n\t} else if ( typeof exports === \"object\" ) {\n\n\t\t// Node, CommonJS\n\t\tmodule.exports = factory( require( \"cldrjs\" ), require( \"../globalize\" ) );\n\t} else {\n\n\t\t// Global\n\t\tfactory( root.Cldr, root.Globalize );\n\t}\n}(this, function( Cldr, Globalize ) {\n\nvar createError = Globalize._createError,\n\tpartsJoin = Globalize._partsJoin,\n\tpartsPush = Globalize._partsPush,\n\tregexpEscape = Globalize._regexpEscape,\n\truntimeBind = Globalize._runtimeBind,\n\tstringPad = Globalize._stringPad,\n\tvalidateCldr = Globalize._validateCldr,\n\tvalidateDefaultLocale = Globalize._validateDefaultLocale,\n\tvalidateParameterPresence = Globalize._validateParameterPresence,\n\tvalidateParameterRange = Globalize._validateParameterRange,\n\tvalidateParameterType = Globalize._validateParameterType,\n\tvalidateParameterTypePlainObject = Globalize._validateParameterTypePlainObject;\n\n\nvar createErrorUnsupportedFeature = function( feature ) {\n\treturn createError( \"E_UNSUPPORTED\", \"Unsupported {feature}.\", {\n\t\tfeature: feature\n\t});\n};\n\n\n\n\nvar validateParameterTypeNumber = function( value, name ) {\n\tvalidateParameterType(\n\t\tvalue,\n\t\tname,\n\t\tvalue === undefined || typeof value === \"number\",\n\t\t\"Number\"\n\t);\n};\n\n\n\n\nvar validateParameterTypeString = function( value, name ) {\n\tvalidateParameterType(\n\t\tvalue,\n\t\tname,\n\t\tvalue === undefined || typeof value === \"string\",\n\t\t\"a string\"\n\t);\n};\n\n\n\n\nvar numberFormatterFn = function( numberToPartsFormatter ) {\n\treturn function numberFormatter( value ) {\n\t\treturn partsJoin( numberToPartsFormatter( value ));\n\t};\n};\n\n\n\n\n/**\n * NumberingSystem( cldr )\n *\n * - http://www.unicode.org/reports/tr35/tr35-numbers.html#otherNumberingSystems\n * - http://cldr.unicode.org/index/bcp47-extension\n * - http://www.unicode.org/reports/tr35/#u_Extension\n */\nvar numberNumberingSystem = function( cldr ) {\n\tvar nu = cldr.attributes[ \"u-nu\" ];\n\n\tif ( nu ) {\n\t\tif ( nu === \"traditio\" ) {\n\t\t\tnu = \"traditional\";\n\t\t}\n\t\tif ( [ \"native\", \"traditional\", \"finance\" ].indexOf( nu ) !== -1 ) {\n\n\t\t\t// Unicode locale extension `u-nu` is set using either (native, traditional or\n\t\t\t// finance). So, lookup the respective locale's numberingSystem and return it.\n\t\t\treturn cldr.main([ \"numbers/otherNumberingSystems\", nu ]);\n\t\t}\n\n\t\t// Unicode locale extension `u-nu` is set with an explicit numberingSystem. Return it.\n\t\treturn nu;\n\t}\n\n\t// Return the default numberingSystem.\n\treturn cldr.main( \"numbers/defaultNumberingSystem\" );\n};\n\n\n\n\n/**\n * Compact( name, cldr )\n *\n * @compactType [String] Compact mode, `short` or `long`.\n *\n * @cldr [Cldr instance].\n *\n * Return the localized compact map for the given compact mode.\n */\nvar numberCompact = function( compactType, cldr ) {\n\tvar maxExponent = 0;\n\n\tvar object = cldr.main([\n\t\t\"numbers/decimalFormats-numberSystem-\" + numberNumberingSystem( cldr ),\n\t\tcompactType,\n\t\t\"decimalFormat\"\n\t]);\n\n\tobject = Object.keys( object ).reduce(function( newObject, compactKey ) {\n\t\tvar numberExponent = compactKey.split( \"0\" ).length - 1;\n\t\tvar pluralForm = compactKey.split( \"-\" )[ 2 ];\n\t\tnewObject[ numberExponent ] = newObject[ numberExponent ] || {};\n\t\tnewObject[ numberExponent ][ pluralForm ] = object[ compactKey ];\n\t\tmaxExponent = Math.max( numberExponent, maxExponent );\n\t\treturn newObject;\n\t}, {});\n\n\tobject.maxExponent = maxExponent;\n\n\treturn object;\n};\n\n\n\n\n/**\n * nuMap( cldr )\n *\n * @cldr [Cldr instance].\n *\n * Return digits map if numbering system is different than `latn`.\n */\nvar numberNumberingSystemDigitsMap = function( cldr ) {\n\tvar aux,\n\t\tnu = numberNumberingSystem( cldr );\n\n\tif ( nu === \"latn\" ) {\n\t\treturn;\n\t}\n\n\taux = cldr.supplemental([ \"numberingSystems\", nu ]);\n\n\tif ( aux._type !== \"numeric\" ) {\n\t\tthrow createErrorUnsupportedFeature( \"`\" + aux._type + \"` numbering system\" );\n\t}\n\n\treturn aux._digits;\n};\n\n\n\n\n/**\n * EBNF representation:\n *\n * number_pattern_re = prefix?\n * padding?\n * (integer_fraction_pattern | significant_pattern)\n * scientific_notation?\n * suffix?\n *\n * prefix = non_number_stuff\n *\n * padding = \"*\" regexp(.)\n *\n * integer_fraction_pattern = integer_pattern\n * fraction_pattern?\n *\n * integer_pattern = regexp([#,]*[0,]*0+)\n *\n * fraction_pattern = \".\" regexp(0*[0-9]*#*)\n *\n * significant_pattern = regexp([#,]*@+#*)\n *\n * scientific_notation = regexp(E\\+?0+)\n *\n * suffix = non_number_stuff\n *\n * non_number_stuff = regexp(('[^']+'|''|[^*#@0,.E])*)\n *\n *\n * Regexp groups:\n *\n * 0: number_pattern_re\n * 1: prefix\n * 2: -\n * 3: -\n * 4: padding\n * 5: (integer_fraction_pattern | significant_pattern)\n * 6: integer_fraction_pattern\n * 7: integer_pattern\n * 8: fraction_pattern\n * 9: significant_pattern\n * 10: scientific_notation\n * 11: suffix\n * 12: -\n */\nvar numberPatternRe = ( /^(('([^']|'')*'|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/ );\n\n\n\n\n/**\n * format( number, pattern )\n *\n * @number [Number].\n *\n * @pattern [String] raw pattern for numbers.\n *\n * Return the formatted number.\n * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html\n */\nvar numberPatternProperties = function( pattern ) {\n\tvar aux1, aux2, fractionPattern, integerFractionOrSignificantPattern, integerPattern,\n\t\tmaximumFractionDigits, maximumSignificantDigits, minimumFractionDigits,\n\t\tminimumIntegerDigits, minimumSignificantDigits, padding, prefix, primaryGroupingSize,\n\t\troundIncrement, scientificNotation, secondaryGroupingSize, significantPattern, suffix;\n\n\tpattern = pattern.match( numberPatternRe );\n\tif ( !pattern ) {\n\t\tthrow new Error( \"Invalid pattern: \" + pattern );\n\t}\n\n\tprefix = pattern[ 1 ];\n\tpadding = pattern[ 4 ];\n\tintegerFractionOrSignificantPattern = pattern[ 5 ];\n\tsignificantPattern = pattern[ 9 ];\n\tscientificNotation = pattern[ 10 ];\n\tsuffix = pattern[ 11 ];\n\n\t// Significant digit format\n\tif ( significantPattern ) {\n\t\tsignificantPattern.replace( /(@+)(#*)/, function( match, minimumSignificantDigitsMatch, maximumSignificantDigitsMatch ) {\n\t\t\tminimumSignificantDigits = minimumSignificantDigitsMatch.length;\n\t\t\tmaximumSignificantDigits = minimumSignificantDigits +\n\t\t\t\tmaximumSignificantDigitsMatch.length;\n\t\t});\n\n\t// Integer and fractional format\n\t} else {\n\t\tfractionPattern = pattern[ 8 ];\n\t\tintegerPattern = pattern[ 7 ];\n\n\t\tif ( fractionPattern ) {\n\n\t\t\t// Minimum fraction digits, and rounding.\n\t\t\tfractionPattern.replace( /[0-9]+/, function( match ) {\n\t\t\t\tminimumFractionDigits = match;\n\t\t\t});\n\t\t\tif ( minimumFractionDigits ) {\n\t\t\t\troundIncrement = +( \"0.\" + minimumFractionDigits );\n\t\t\t\tminimumFractionDigits = minimumFractionDigits.length;\n\t\t\t} else {\n\t\t\t\tminimumFractionDigits = 0;\n\t\t\t}\n\n\t\t\t// Maximum fraction digits\n\t\t\t// 1: ignore decimal character\n\t\t\tmaximumFractionDigits = fractionPattern.length - 1 /* 1 */;\n\t\t} else {\n\t\t\tminimumFractionDigits = 0;\n\t\t\tmaximumFractionDigits = 0;\n\t\t}\n\n\t\t// Minimum integer digits\n\t\tintegerPattern.replace( /0+$/, function( match ) {\n\t\t\tminimumIntegerDigits = match.length;\n\t\t});\n\t}\n\n\t// Scientific notation\n\tif ( scientificNotation ) {\n\t\tthrow createErrorUnsupportedFeature({\n\t\t\tfeature: \"scientific notation (not implemented)\"\n\t\t});\n\t}\n\n\t// Padding\n\tif ( padding ) {\n\t\tthrow createErrorUnsupportedFeature({\n\t\t\tfeature: \"padding (not implemented)\"\n\t\t});\n\t}\n\n\t// Grouping\n\tif ( ( aux1 = integerFractionOrSignificantPattern.lastIndexOf( \",\" ) ) !== -1 ) {\n\n\t\t// Primary grouping size is the interval between the last group separator and the end of\n\t\t// the integer (or the end of the significant pattern).\n\t\taux2 = integerFractionOrSignificantPattern.split( \".\" )[ 0 ];\n\t\tprimaryGroupingSize = aux2.length - aux1 - 1;\n\n\t\t// Secondary grouping size is the interval between the last two group separators.\n\t\tif ( ( aux2 = integerFractionOrSignificantPattern.lastIndexOf( \",\", aux1 - 1 ) ) !== -1 ) {\n\t\t\tsecondaryGroupingSize = aux1 - 1 - aux2;\n\t\t}\n\t}\n\n\t// Return:\n\t// 0: @prefix String\n\t// 1: @padding Array [ , ] TODO\n\t// 2: @minimumIntegerDigits non-negative integer Number value indicating the minimum integer\n\t// digits to be used. Numbers will be padded with leading zeroes if necessary.\n\t// 3: @minimumFractionDigits and\n\t// 4: @maximumFractionDigits are non-negative integer Number values indicating the minimum and\n\t// maximum fraction digits to be used. Numbers will be rounded or padded with trailing\n\t// zeroes if necessary.\n\t// 5: @minimumSignificantDigits and\n\t// 6: @maximumSignificantDigits are positive integer Number values indicating the minimum and\n\t// maximum fraction digits to be shown. Either none or both of these properties are\n\t// present; if they are, they override minimum and maximum integer and fraction digits\n\t// – the formatter uses however many integer and fraction digits are required to display\n\t// the specified number of significant digits.\n\t// 7: @roundIncrement Decimal round increment or null\n\t// 8: @primaryGroupingSize\n\t// 9: @secondaryGroupingSize\n\t// 10: @suffix String\n\treturn [\n\t\tprefix,\n\t\tpadding,\n\t\tminimumIntegerDigits,\n\t\tminimumFractionDigits,\n\t\tmaximumFractionDigits,\n\t\tminimumSignificantDigits,\n\t\tmaximumSignificantDigits,\n\t\troundIncrement,\n\t\tprimaryGroupingSize,\n\t\tsecondaryGroupingSize,\n\t\tsuffix\n\t];\n};\n\n\n\n\n/**\n * Symbol( name, cldr )\n *\n * @name [String] Symbol name.\n *\n * @cldr [Cldr instance].\n *\n * Return the localized symbol given its name.\n */\nvar numberSymbol = function( name, cldr ) {\n\treturn cldr.main([\n\t\t\"numbers/symbols-numberSystem-\" + numberNumberingSystem( cldr ),\n\t\tname\n\t]);\n};\n\n\n\n\nvar numberSymbolName = {\n\t\".\": \"decimal\",\n\t\",\": \"group\",\n\t\"%\": \"percentSign\",\n\t\"+\": \"plusSign\",\n\t\"-\": \"minusSign\",\n\t\"E\": \"exponential\",\n\t\"\\u2030\": \"perMille\"\n};\n\n\n\n\n/**\n * symbolMap( cldr )\n *\n * @cldr [Cldr instance].\n *\n * Return the (localized symbol, pattern symbol) key value pair, eg. {\n * \".\": \"٫\",\n * \",\": \"٬\",\n * \"%\": \"٪\",\n * ...\n * };\n */\nvar numberSymbolMap = function( cldr ) {\n\tvar symbol,\n\t\tsymbolMap = {};\n\n\tfor ( symbol in numberSymbolName ) {\n\t\tsymbolMap[ symbol ] = numberSymbol( numberSymbolName[ symbol ], cldr );\n\t}\n\n\treturn symbolMap;\n};\n\n\n\n\nvar numberTruncate = function( value ) {\n\tif ( isNaN( value ) ) {\n\t\treturn NaN;\n\t}\n\treturn Math[ value < 0 ? \"ceil\" : \"floor\" ]( value );\n};\n\n\n\n\n/**\n * round( method )\n *\n * @method [String] with either \"round\", \"ceil\", \"floor\", or \"truncate\".\n *\n * Return function( value, incrementOrExp ):\n *\n * @value [Number] eg. 123.45.\n *\n * @incrementOrExp [Number] optional, eg. 0.1; or\n * [Object] Either { increment: } or { exponent: }\n *\n * Return the rounded number, eg:\n * - round( \"round\" )( 123.45 ): 123;\n * - round( \"ceil\" )( 123.45 ): 124;\n * - round( \"floor\" )( 123.45 ): 123;\n * - round( \"truncate\" )( 123.45 ): 123;\n * - round( \"round\" )( 123.45, 0.1 ): 123.5;\n * - round( \"round\" )( 123.45, 10 ): 120;\n *\n * Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round\n * Ref: #376\n */\nvar numberRound = function( method ) {\n\tmethod = method || \"round\";\n\tmethod = method === \"truncate\" ? numberTruncate : Math[ method ];\n\n\treturn function( value, incrementOrExp ) {\n\t\tvar exp, increment;\n\n\t\tvalue = +value;\n\n\t\t// If the value is not a number, return NaN.\n\t\tif ( isNaN( value ) ) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\t// Exponent given.\n\t\tif ( typeof incrementOrExp === \"object\" && incrementOrExp.exponent ) {\n\t\t\texp = +incrementOrExp.exponent;\n\t\t\tincrement = 1;\n\n\t\t\tif ( exp === 0 ) {\n\t\t\t\treturn method( value );\n\t\t\t}\n\n\t\t\t// If the exp is not an integer, return NaN.\n\t\t\tif ( !( typeof exp === \"number\" && exp % 1 === 0 ) ) {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t// Increment given.\n\t\t} else {\n\t\t\tincrement = +incrementOrExp || 1;\n\n\t\t\tif ( increment === 1 ) {\n\t\t\t\treturn method( value );\n\t\t\t}\n\n\t\t\t// If the increment is not a number, return NaN.\n\t\t\tif ( isNaN( increment ) ) {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\tincrement = increment.toExponential().split( \"e\" );\n\t\t\texp = +increment[ 1 ];\n\t\t\tincrement = +increment[ 0 ];\n\t\t}\n\n\t\t// Shift & Round\n\t\tvalue = value.toString().split( \"e\" );\n\t\tvalue[ 0 ] = +value[ 0 ] / increment;\n\t\tvalue[ 1 ] = value[ 1 ] ? ( +value[ 1 ] - exp ) : -exp;\n\t\tvalue = method( +( value[ 0 ] + \"e\" + value[ 1 ] ) );\n\n\t\t// Shift back\n\t\tvalue = value.toString().split( \"e\" );\n\t\tvalue[ 0 ] = +value[ 0 ] * increment;\n\t\tvalue[ 1 ] = value[ 1 ] ? ( +value[ 1 ] + exp ) : exp;\n\t\treturn +( value[ 0 ] + \"e\" + value[ 1 ] );\n\t};\n};\n\n\n\n\n/**\n * formatProperties( pattern, cldr [, options] )\n *\n * @pattern [String] raw pattern for numbers.\n *\n * @cldr [Cldr instance].\n *\n * @options [Object]:\n * - minimumIntegerDigits [Number]\n * - minimumFractionDigits, maximumFractionDigits [Number]\n * - minimumSignificantDigits, maximumSignificantDigits [Number]\n * - round [String] \"ceil\", \"floor\", \"round\" (default), or \"truncate\".\n * - useGrouping [Boolean] default true.\n *\n * Return the processed properties that will be used in number/format.\n * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html\n */\nvar numberFormatProperties = function( pattern, cldr, options ) {\n\tvar negativePattern, negativePrefix, negativeProperties, negativeSuffix, positivePattern,\n\t\troundFn, properties;\n\n\tfunction getOptions( attribute, propertyIndex ) {\n\t\tif ( attribute in options ) {\n\t\t\tproperties[ propertyIndex ] = options[ attribute ];\n\t\t}\n\t}\n\n\toptions = options || {};\n\tpattern = pattern.split( \";\" );\n\n\tpositivePattern = pattern[ 0 ];\n\n\tnegativePattern = pattern[ 1 ] || \"-\" + positivePattern;\n\tnegativeProperties = numberPatternProperties( negativePattern );\n\tnegativePrefix = negativeProperties[ 0 ];\n\tnegativeSuffix = negativeProperties[ 10 ];\n\n\t// Have runtime code to refer to numberRound() instead of including it explicitly.\n\troundFn = numberRound( options.round );\n\troundFn.generatorString = function() {\n\t\treturn \"numberRound(\" + ( options.round ? \"\\\"\" + options.round + \"\\\"\" : \"\" ) + \")\";\n\t};\n\n\tproperties = numberPatternProperties( positivePattern ).concat([\n\t\tpositivePattern,\n\t\tnegativePrefix + positivePattern + negativeSuffix,\n\t\tnegativePrefix,\n\t\tnegativeSuffix,\n\t\troundFn,\n\t\tnumberSymbol( \"infinity\", cldr ),\n\t\tnumberSymbol( \"nan\", cldr ),\n\t\tnumberSymbolMap( cldr ),\n\t\tnumberNumberingSystemDigitsMap( cldr )\n\t]);\n\n\tif ( options.compact ) {\n\n\t\t// The compact digits number pattern is always `0+`, so override the following properties.\n\t\t// Note: minimumIntegerDigits would actually range from `0` to `000` based on the scale of\n\t\t// the value to be formatted, though we're always using 1 as a simplification, because the\n\t\t// number won't be zero-padded since we chose the right format based on the scale, i.e.,\n\t\t// we'd never see something like `003M` anyway.\n\t\tproperties[ 2 ] = 1; // minimumIntegerDigits\n\t\tproperties[ 3 ] = 0; // minimumFractionDigits\n\t\tproperties[ 4 ] = 0; // maximumFractionDigits\n\t\tproperties[ 5 ] = // minimumSignificantDigits &\n\t\t\tproperties[ 6 ] = undefined ; // maximumSignificantDigits\n\n\t\tproperties[20] = numberCompact( options.compact, cldr );\n\t}\n\n\tgetOptions( \"minimumIntegerDigits\", 2 );\n\tgetOptions( \"minimumFractionDigits\", 3 );\n\tgetOptions( \"maximumFractionDigits\", 4 );\n\tgetOptions( \"minimumSignificantDigits\", 5 );\n\tgetOptions( \"maximumSignificantDigits\", 6 );\n\n\t// Grouping separators\n\tif ( options.useGrouping === false ) {\n\t\tproperties[ 8 ] = null;\n\t}\n\n\t// Normalize number of digits if only one of either minimumFractionDigits or\n\t// maximumFractionDigits is passed in as an option\n\tif ( \"minimumFractionDigits\" in options && !( \"maximumFractionDigits\" in options ) ) {\n\n\t\t// maximumFractionDigits = Math.max( minimumFractionDigits, maximumFractionDigits );\n\t\tproperties[ 4 ] = Math.max( properties[ 3 ], properties[ 4 ] );\n\t} else if ( !( \"minimumFractionDigits\" in options ) &&\n\t\t\t\"maximumFractionDigits\" in options ) {\n\n\t\t// minimumFractionDigits = Math.min( minimumFractionDigits, maximumFractionDigits );\n\t\tproperties[ 3 ] = Math.min( properties[ 3 ], properties[ 4 ] );\n\t}\n\n\t// Return:\n\t// 0-10: see number/pattern-properties.\n\t// 11: @positivePattern [String] Positive pattern.\n\t// 12: @negativePattern [String] Negative pattern.\n\t// 13: @negativePrefix [String] Negative prefix.\n\t// 14: @negativeSuffix [String] Negative suffix.\n\t// 15: @round [Function] Round function.\n\t// 16: @infinitySymbol [String] Infinity symbol.\n\t// 17: @nanSymbol [String] NaN symbol.\n\t// 18: @symbolMap [Object] A bunch of other symbols.\n\t// 19: @nuDigitsMap [Array] Digits map if numbering system is different than `latn`.\n\t// 20: @compactMap [Object] Map of per-digit-count format patterns for specified compact mode.\n\treturn properties;\n};\n\n\n\n\n/**\n * Generated by:\n *\n * var regenerate = require( \"regenerate\" );\n * var formatSymbols = require( * \"unicode-8.0.0/General_Category/Format/symbols\" );\n * regenerate().add( formatSymbols ).toString();\n *\n * https://github.com/mathiasbynens/regenerate\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\nvar regexpCfG = /[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804\\uDCBD|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/g;\n\n\n\n\n/**\n * Generated by:\n *\n * var regenerate = require( \"regenerate\" );\n * var dashSymbols = require( * \"unicode-8.0.0/General_Category/Dash_Punctuation/symbols\" );\n * regenerate().add( dashSymbols ).toString();\n *\n * https://github.com/mathiasbynens/regenerate\n * https://github.com/mathiasbynens/unicode-8.0.0\n *\n * NOTE: In addition to [:dash:], the below includes MINUS SIGN U+2212.\n */\nvar regexpDashG = /[\\-\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E17\\u2E1A\\u2E3A\\u2E3B\\u2E40\\u301C\\u3030\\u30A0\\uFE31\\uFE32\\uFE58\\uFE63\\uFF0D\\u2212]/g;\n\n\n\n\n/**\n * Generated by:\n *\n * var regenerate = require( \"regenerate\" );\n * var spaceSeparatorSymbols = require( \"unicode-8.0.0/General_Category/Space_Separator/symbols\" );\n * regenerate().add( spaceSeparatorSymbols ).toString();\n *\n * https://github.com/mathiasbynens/regenerate\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\nvar regexpZsG = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/g;\n\n\n\n\n/**\n * Loose Matching:\n * - Ignore all format characters, which includes RLM, LRM or ALM used to control BIDI\n * formatting.\n * - Map all characters in [:Zs:] to U+0020 SPACE;\n * - Map all characters in [:Dash:] to U+002D HYPHEN-MINUS;\n */\nvar looseMatching = function( value ) {\n\treturn value\n\t\t.replace( regexpCfG, \"\" )\n\t\t.replace( regexpDashG, \"-\" )\n\t\t.replace( regexpZsG, \" \" );\n};\n\n\n\n\n/**\n * parse( value, properties )\n *\n * @value [String].\n *\n * @properties [Object] Parser properties is a reduced pre-processed cldr\n * data set returned by numberParserProperties().\n *\n * Return the parsed Number (including Infinity) or NaN when value is invalid.\n * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html\n */\nvar numberParse = function( value, properties ) {\n\tvar grammar, invertedNuDigitsMap, invertedSymbolMap, negative, number, prefix, prefixNSuffix,\n\t\tsuffix, tokenizer, valid;\n\n\t// Grammar:\n\t// - Value <= NaN | PositiveNumber | NegativeNumber\n\t// - PositiveNumber <= PositivePrefix NumberOrInf PositiveSufix\n\t// - NegativeNumber <= NegativePrefix NumberOrInf\n\t// - NumberOrInf <= Number | Inf\n\tgrammar = [\n\t\t[ \"nan\" ],\n\t\t[ \"prefix\", \"infinity\", \"suffix\" ],\n\t\t[ \"prefix\", \"number\", \"suffix\" ],\n\t\t[ \"negativePrefix\", \"infinity\", \"negativeSuffix\" ],\n\t\t[ \"negativePrefix\", \"number\", \"negativeSuffix\" ]\n\t];\n\n\tinvertedSymbolMap = properties[ 0 ];\n\tinvertedNuDigitsMap = properties[ 1 ] || {};\n\ttokenizer = properties[ 2 ];\n\n\tvalue = looseMatching( value );\n\n\tfunction parse( type ) {\n\t\treturn function( lexeme ) {\n\n\t\t\t// Reverse localized symbols and numbering system.\n\t\t\tlexeme = lexeme.split( \"\" ).map(function( character ) {\n\t\t\t\treturn invertedSymbolMap[ character ] ||\n\t\t\t\t\tinvertedNuDigitsMap[ character ] ||\n\t\t\t\t\tcharacter;\n\t\t\t}).join( \"\" );\n\n\t\t\tswitch ( type ) {\n\t\t\t\tcase \"infinity\":\n\t\t\t\t\tnumber = Infinity;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"nan\":\n\t\t\t\t\tnumber = NaN;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"number\":\n\n\t\t\t\t\t// Remove grouping separators.\n\t\t\t\t\tlexeme = lexeme.replace( /,/g, \"\" );\n\n\t\t\t\t\tnumber = +lexeme;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"prefix\":\n\t\t\t\tcase \"negativePrefix\":\n\t\t\t\t\tprefix = lexeme;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"suffix\":\n\t\t\t\t\tsuffix = lexeme;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"negativeSuffix\":\n\t\t\t\t\tsuffix = lexeme;\n\t\t\t\t\tnegative = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t// This should never be reached.\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error( \"Internal error\" );\n\t\t\t}\n\t\t\treturn \"\";\n\t\t};\n\t}\n\n\tfunction tokenizeNParse( _value, grammar ) {\n\t\treturn grammar.some(function( statement ) {\n\t\t\tvar value = _value;\n\n\t\t\t// The whole grammar statement should be used (i.e., .every() return true) and value be\n\t\t\t// entirely consumed (i.e., !value.length).\n\t\t\treturn statement.every(function( type ) {\n\t\t\t\tif ( value.match( tokenizer[ type ] ) === null ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Consume and parse it.\n\t\t\t\tvalue = value.replace( tokenizer[ type ], parse( type ) );\n\t\t\t\treturn true;\n\t\t\t}) && !value.length;\n\t\t});\n\t}\n\n\tvalid = tokenizeNParse( value, grammar );\n\n\t// NaN\n\tif ( !valid || isNaN( number ) ) {\n\t\treturn NaN;\n\t}\n\n\tprefixNSuffix = \"\" + prefix + suffix;\n\n\t// Percent\n\tif ( prefixNSuffix.indexOf( \"%\" ) !== -1 ) {\n\t\tnumber /= 100;\n\n\t// Per mille\n\t} else if ( prefixNSuffix.indexOf( \"\\u2030\" ) !== -1 ) {\n\t\tnumber /= 1000;\n\t}\n\n\t// Negative number\n\tif ( negative ) {\n\t\tnumber *= -1;\n\t}\n\n\treturn number;\n};\n\n\n\n\nvar numberParserFn = function( properties ) {\n\treturn function numberParser( value ) {\n\t\tvalidateParameterPresence( value, \"value\" );\n\t\tvalidateParameterTypeString( value, \"value\" );\n\n\t\treturn numberParse( value, properties );\n\t};\n\n};\n\n\n\n\n/**\n * symbolMap( cldr )\n *\n * @cldr [Cldr instance].\n *\n * Return the (localized symbol, pattern symbol) key value pair, eg. {\n * \"٫\": \".\",\n * \"٬\": \",\",\n * \"٪\": \"%\",\n * ...\n * };\n */\nvar numberSymbolInvertedMap = function( cldr ) {\n\tvar symbol,\n\t\tsymbolMap = {};\n\n\tfor ( symbol in numberSymbolName ) {\n\t\tsymbolMap[ numberSymbol( numberSymbolName[ symbol ], cldr ) ] = symbol;\n\t}\n\n\treturn symbolMap;\n};\n\n\n\n\n/**\n * objectMap( object, fn)\n *\n * - object\n *\n * - fn( pair ) => pair\n */\nvar objectMap = function( object, fn ) {\n\treturn Object.keys( object ).map(function( key ) {\n\t\treturn fn([ key, object[ key ] ]);\n\t}).reduce(function( object, pair ) {\n\t\tobject[ pair[ 0 ] ] = pair[ 1 ];\n\t\treturn object;\n\t}, {});\n};\n\n\n\n\n/**\n * removeLiteralQuotes( string )\n *\n * Return:\n * - `'` if input string is `''`.\n * - `o'clock` if input string is `'o''clock'`.\n * - `foo` if input string is `foo`, i.e., return the same value in case it isn't a single-quoted\n * string.\n */\nvar removeLiteralQuotes = function( string ) {\n\tif ( string[ 0 ] + string[ string.length - 1 ] !== \"''\" ) {\n\t\treturn string;\n\t}\n\tif ( string === \"''\" ) {\n\t\treturn \"'\";\n\t}\n\treturn string.replace( /''/g, \"'\" ).slice( 1, -1 );\n};\n\n\n\n\n/**\n * parseProperties( pattern, cldr )\n *\n * @pattern [String] raw pattern for numbers.\n *\n * @cldr [Cldr instance].\n *\n * Return parser properties, used to feed parser function.\n *\n * TODO:\n * - Scientific_notation;\n * - Padding;\n */\nvar numberParseProperties = function( pattern, cldr, options ) {\n\tvar aux, decimalSymbolRe, digitsRe, groupingSeparatorRe, infinitySymbol, invertedNuDigitsMap,\n\t\tinvertedSymbolMap, maximumFractionDigits, maximumSignificantDigits,\n\t\tminimumSignificantDigits, nanSymbol, negativePrefix, negativeSuffix, nuDigitsMap,\n\t\tnumberTokenizer, prefix, primaryGroupingSize, secondaryGroupingSize, suffix, symbolMap,\n\t\tformatProperties = numberFormatProperties( pattern, cldr, options );\n\n\tprefix = looseMatching( formatProperties[ 0 ] );\n\tmaximumFractionDigits = formatProperties[ 4 ];\n\tminimumSignificantDigits = formatProperties[ 5 ];\n\tmaximumSignificantDigits = formatProperties[ 6 ];\n\tprimaryGroupingSize = formatProperties[ 8 ];\n\tsecondaryGroupingSize = formatProperties[ 9 ];\n\tsuffix = looseMatching( formatProperties[ 10 ] );\n\tnegativePrefix = looseMatching( formatProperties[ 13 ] );\n\tnegativeSuffix = looseMatching( formatProperties[ 14 ] );\n\tinfinitySymbol = looseMatching( formatProperties[ 16 ] );\n\tnanSymbol = looseMatching( formatProperties[ 17 ] );\n\tsymbolMap = objectMap( formatProperties[ 18 ], function( pair ) {\n\t\treturn [ pair[ 0 ], looseMatching( pair[ 1 ] ) ];\n\t});\n\tnuDigitsMap = formatProperties[ 19 ];\n\n\tinvertedSymbolMap = objectMap( numberSymbolInvertedMap( cldr ), function( pair ) {\n\t\treturn [ looseMatching( pair[ 0 ] ), pair[ 1 ] ];\n\t});\n\n\tdigitsRe = nuDigitsMap ? \"[\" + nuDigitsMap + \"]\" : \"\\\\d\";\n\tgroupingSeparatorRe = regexpEscape( symbolMap[ \",\" ] );\n\tdecimalSymbolRe = regexpEscape( symbolMap[ \".\" ] );\n\n\tif ( nuDigitsMap ) {\n\t\tinvertedNuDigitsMap = nuDigitsMap.split( \"\" ).reduce(function( object, localizedDigit, i ) {\n\t\t\tobject[ localizedDigit ] = String( i );\n\t\t\treturn object;\n\t\t}, {} );\n\t}\n\n\taux = [ prefix, suffix, negativePrefix, negativeSuffix ].map(function( value ) {\n\t\treturn value.replace( /('([^']|'')+'|'')|./g, function( character, literal ) {\n\n\t\t\t// Literals\n\t\t\tif ( literal ) {\n\t\t\t\treturn removeLiteralQuotes( literal );\n\t\t\t}\n\n\t\t\t// Symbols\n\t\t\tcharacter = character.replace( /[\\-+E%\\u2030]/, function( symbol ) {\n\t\t\t\treturn symbolMap[ symbol ];\n\t\t\t});\n\n\t\t\treturn character;\n\t\t});\n\t});\n\n\tprefix = aux[ 0 ];\n\tsuffix = aux[ 1 ];\n\tnegativePrefix = aux[ 2 ];\n\tnegativeSuffix = aux[ 3 ];\n\n\t// Number\n\t//\n\t// number_re = integer fraction?\n\t//\n\t// integer = digits | digits_using_grouping_separators\n\t//\n\t// fraction = regexp((.\\d+)?)\n\t//\n\t// digits = regexp(\\d+)\n\t//\n\t// digits_w_grouping_separators = digits_w_1_grouping_separators |\n\t// digits_w_2_grouping_separators\n\t//\n\t// digits_w_1_grouping_separators = regexp(\\d{1,3}(,\\d{3})+)\n\t//\n\t// digits_w_2_grouping_separators = regexp(\\d{1,2}((,\\d{2})*(,\\d{3})))\n\n\t// Integer part\n\tnumberTokenizer = digitsRe + \"+\";\n\n\t// Grouping separators\n\tif ( primaryGroupingSize ) {\n\t\tif ( secondaryGroupingSize ) {\n\t\t\taux = digitsRe + \"{1,\" + secondaryGroupingSize + \"}((\" + groupingSeparatorRe +\n\t\t\t\tdigitsRe + \"{\" + secondaryGroupingSize + \"})*(\" + groupingSeparatorRe +\n\t\t\t\tdigitsRe + \"{\" + primaryGroupingSize + \"}))\";\n\t\t} else {\n\t\t\taux = digitsRe + \"{1,\" + primaryGroupingSize + \"}(\" + groupingSeparatorRe +\n\t\t\t\tdigitsRe + \"{\" + primaryGroupingSize + \"})+\";\n\t\t}\n\t\tnumberTokenizer = \"(\" + aux + \"|\" + numberTokenizer + \")\";\n\t}\n\n\t// Fraction part? Only included if 1 or 2.\n\t// 1: Using significant digit format.\n\t// 2: Using integer and fractional format && it has a maximumFractionDigits.\n\tif ( !isNaN( minimumSignificantDigits * maximumSignificantDigits ) || /* 1 */\n\t\t\t\tmaximumFractionDigits /* 2 */ ) {\n\n\t\t// 1: Handle trailing decimal separator, e.g., `\"1.\" => `1``.\n\t\taux = decimalSymbolRe + digitsRe + \"+\";\n\t\tnumberTokenizer = numberTokenizer + \"(\" + aux + \"|\" + decimalSymbolRe /* 1 */ + \")?\" +\n\n\t\t\t// Handle non-padded decimals, e.g., `\".12\"` => `0.12` by making the integer part\n\t\t\t// optional.\n\t\t\t\"|(\" + numberTokenizer + \")?\" + aux;\n\n\t\tnumberTokenizer = \"(\" + numberTokenizer + \")\";\n\t}\n\n\t// 0: @invertedSymbolMap [Object] Inverted symbol map.\n\t// 1: @invertedNuDigitsMap [Object] Inverted digits map if numbering system is different than\n\t// `latn`.\n\t// 2: @tokenizer [Object] Tokenizer map, used by parser to consume input.\n\treturn [\n\t\tinvertedSymbolMap,\n\t\tinvertedNuDigitsMap,\n\t\t{\n\t\t\tinfinity: new RegExp( \"^\" + regexpEscape( infinitySymbol ) ),\n\t\t\tnan: new RegExp( \"^\" + regexpEscape( nanSymbol ) ),\n\t\t\tnegativePrefix: new RegExp( \"^\" + regexpEscape( negativePrefix ) ),\n\t\t\tnegativeSuffix: new RegExp( \"^\" + regexpEscape( negativeSuffix ) ),\n\t\t\tnumber: new RegExp( \"^\" + numberTokenizer ),\n\t\t\tprefix: new RegExp( \"^\" + regexpEscape( prefix ) ),\n\t\t\tsuffix: new RegExp( \"^\" + regexpEscape( suffix ) )\n\t\t}\n\t];\n\n};\n\n\n\n\n/**\n * Pattern( style )\n *\n * @style [String] \"decimal\" (default) or \"percent\".\n *\n * @cldr [Cldr instance].\n */\nvar numberPattern = function( style, cldr ) {\n\tif ( style !== \"decimal\" && style !== \"percent\" ) {\n\t\tthrow new Error( \"Invalid style\" );\n\t}\n\n\treturn cldr.main([\n\t\t\"numbers\",\n\t\tstyle + \"Formats-numberSystem-\" + numberNumberingSystem( cldr ),\n\t\t\"standard\"\n\t]);\n};\n\n\n\n\n/**\n * EBNF representation:\n *\n * compact_pattern_re = prefix?\n * number_pattern_re\n * suffix?\n *\n * number_pattern_re = 0+\n *\n * Regexp groups:\n *\n * 0: compact_pattern_re\n * 1: prefix\n * 2: number_pattern_re (the number pattern to use in compact mode)\n * 3: suffix\n */\nvar numberCompactPatternRe = ( /^([^0]*)(0+)([^0]*)$/ );\n\n\n\n\n/**\n * goupingSeparator( number, primaryGroupingSize, secondaryGroupingSize )\n *\n * @number [Number].\n *\n * @primaryGroupingSize [Number]\n *\n * @secondaryGroupingSize [Number]\n *\n * Return the formatted number with group separator.\n */\nvar numberFormatGroupingSeparator = function( number, primaryGroupingSize, secondaryGroupingSize ) {\n\tvar index,\n\t\tcurrentGroupingSize = primaryGroupingSize,\n\t\tret = \"\",\n\t\tsep = \",\",\n\t\tswitchToSecondary = secondaryGroupingSize ? true : false;\n\n\tnumber = String( number ).split( \".\" );\n\tindex = number[ 0 ].length;\n\n\twhile ( index > currentGroupingSize ) {\n\t\tret = number[ 0 ].slice( index - currentGroupingSize, index ) +\n\t\t\t( ret.length ? sep : \"\" ) + ret;\n\t\tindex -= currentGroupingSize;\n\t\tif ( switchToSecondary ) {\n\t\t\tcurrentGroupingSize = secondaryGroupingSize;\n\t\t\tswitchToSecondary = false;\n\t\t}\n\t}\n\n\tnumber[ 0 ] = number[ 0 ].slice( 0, index ) + ( ret.length ? sep : \"\" ) + ret;\n\treturn number.join( \".\" );\n};\n\n\n\n\n/**\n * integerFractionDigits( number, minimumIntegerDigits, minimumFractionDigits,\n * maximumFractionDigits, round, roundIncrement )\n *\n * @number [Number]\n *\n * @minimumIntegerDigits [Number]\n *\n * @minimumFractionDigits [Number]\n *\n * @maximumFractionDigits [Number]\n *\n * @round [Function]\n *\n * @roundIncrement [Function]\n *\n * Return the formatted integer and fraction digits.\n */\nvar numberFormatIntegerFractionDigits = function( number, minimumIntegerDigits, minimumFractionDigits, maximumFractionDigits, round,\n\troundIncrement ) {\n\n\t// Fraction\n\tif ( maximumFractionDigits ) {\n\n\t\t// Rounding\n\t\tif ( roundIncrement ) {\n\t\t\tnumber = round( number, roundIncrement );\n\n\t\t// Maximum fraction digits\n\t\t} else {\n\t\t\tnumber = round( number, { exponent: -maximumFractionDigits } );\n\t\t}\n\n\t} else {\n\t\tnumber = round( number );\n\t}\n\n\tnumber = String( number );\n\n\t// Maximum integer digits (post string phase)\n\tif ( maximumFractionDigits && /e-/.test( number ) ) {\n\n\t\t// Use toFixed( maximumFractionDigits ) to make sure small numbers like 1e-7 are\n\t\t// displayed using plain digits instead of scientific notation.\n\t\t// 1: Remove leading decimal zeros.\n\t\t// 2: Remove leading decimal separator.\n\t\t// Note: String() is still preferred so it doesn't mess up with a number precision\n\t\t// unnecessarily, e.g., (123456789.123).toFixed(10) === \"123456789.1229999959\",\n\t\t// String(123456789.123) === \"123456789.123\".\n\t\tnumber = ( +number ).toFixed( maximumFractionDigits )\n\t\t\t.replace( /0+$/, \"\" ) /* 1 */\n\t\t\t.replace( /\\.$/, \"\" ) /* 2 */;\n\t}\n\n\t// Minimum fraction digits (post string phase)\n\tif ( minimumFractionDigits ) {\n\t\tnumber = number.split( \".\" );\n\t\tnumber[ 1 ] = stringPad( number[ 1 ] || \"\", minimumFractionDigits, true );\n\t\tnumber = number.join( \".\" );\n\t}\n\n\t// Minimum integer digits\n\tif ( minimumIntegerDigits ) {\n\t\tnumber = number.split( \".\" );\n\t\tnumber[ 0 ] = stringPad( number[ 0 ], minimumIntegerDigits );\n\t\tnumber = number.join( \".\" );\n\t}\n\n\treturn number;\n};\n\n\n\n\n/**\n * toPrecision( number, precision, round )\n *\n * @number (Number)\n *\n * @precision (Number) significant figures precision (not decimal precision).\n *\n * @round (Function)\n *\n * Return number.toPrecision( precision ) using the given round function.\n */\nvar numberToPrecision = function( number, precision, round ) {\n\tvar roundOrder;\n\n\tif ( number === 0 ) { // Fix #706\n\t\treturn number;\n\t}\n\n\troundOrder = Math.ceil( Math.log( Math.abs( number ) ) / Math.log( 10 ) );\n\troundOrder -= precision;\n\n\treturn round( number, { exponent: roundOrder } );\n};\n\n\n\n\n/**\n * toPrecision( number, minimumSignificantDigits, maximumSignificantDigits, round )\n *\n * @number [Number]\n *\n * @minimumSignificantDigits [Number]\n *\n * @maximumSignificantDigits [Number]\n *\n * @round [Function]\n *\n * Return the formatted significant digits number.\n */\nvar numberFormatSignificantDigits = function( number, minimumSignificantDigits, maximumSignificantDigits, round ) {\n\tvar atMinimum, atMaximum;\n\n\t// Sanity check.\n\tif ( minimumSignificantDigits > maximumSignificantDigits ) {\n\t\tmaximumSignificantDigits = minimumSignificantDigits;\n\t}\n\n\tatMinimum = numberToPrecision( number, minimumSignificantDigits, round );\n\tatMaximum = numberToPrecision( number, maximumSignificantDigits, round );\n\n\t// Use atMaximum only if it has more significant digits than atMinimum.\n\tnumber = +atMinimum === +atMaximum ? atMinimum : atMaximum;\n\n\t// Expand integer numbers, eg. 123e5 to 12300.\n\tnumber = ( +number ).toString( 10 );\n\n\tif ( ( /e/ ).test( number ) ) {\n\t\tthrow createErrorUnsupportedFeature({\n\t\t\tfeature: \"integers out of (1e21, 1e-7)\"\n\t\t});\n\t}\n\n\t// Add trailing zeros if necessary.\n\tif ( minimumSignificantDigits - number.replace( /^0+|\\./g, \"\" ).length > 0 ) {\n\t\tnumber = number.split( \".\" );\n\t\tnumber[ 1 ] = stringPad( number[ 1 ] || \"\", minimumSignificantDigits - number[ 0 ].replace( /^0+/, \"\" ).length, true );\n\t\tnumber = number.join( \".\" );\n\t}\n\n\treturn number;\n};\n\n\n\n\n/**\n * format( number, properties )\n *\n * @number [Number].\n *\n * @properties [Object] Output of number/format-properties.\n *\n * Return the formatted number.\n * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html\n */\nvar numberFormat = function( number, properties, pluralGenerator ) {\n\tvar aux, compactMap, infinitySymbol, maximumFractionDigits, maximumSignificantDigits,\n\t\tminimumFractionDigits, minimumIntegerDigits, minimumSignificantDigits, nanSymbol,\n\t\tnuDigitsMap, padding, prefix, primaryGroupingSize, pattern, round, roundIncrement,\n\t\tsecondaryGroupingSize, stringToParts, suffix, symbolMap;\n\n\tpadding = properties[ 1 ];\n\tminimumIntegerDigits = properties[ 2 ];\n\tminimumFractionDigits = properties[ 3 ];\n\tmaximumFractionDigits = properties[ 4 ];\n\tminimumSignificantDigits = properties[ 5 ];\n\tmaximumSignificantDigits = properties[ 6 ];\n\troundIncrement = properties[ 7 ];\n\tprimaryGroupingSize = properties[ 8 ];\n\tsecondaryGroupingSize = properties[ 9 ];\n\tround = properties[ 15 ];\n\tinfinitySymbol = properties[ 16 ];\n\tnanSymbol = properties[ 17 ];\n\tsymbolMap = properties[ 18 ];\n\tnuDigitsMap = properties[ 19 ];\n\tcompactMap = properties[ 20 ];\n\n\t// NaN\n\tif ( isNaN( number ) ) {\n\t\treturn [ { type: \"nan\", value: nanSymbol } ];\n\t}\n\n\tif ( number < 0 ) {\n\t\tpattern = properties[ 12 ];\n\t\tprefix = properties[ 13 ];\n\t\tsuffix = properties[ 14 ];\n\t} else {\n\t\tpattern = properties[ 11 ];\n\t\tprefix = properties[ 0 ];\n\t\tsuffix = properties[ 10 ];\n\t}\n\n\t// For prefix, suffix, and number parts.\n\tstringToParts = function( string ) {\n\t\tvar numberType = \"integer\",\n\t\t\tparts = [];\n\n\t\t// TODO Move the tokenization of all parts that don't depend on number into\n\t\t// format-properties.\n\t\tstring.replace( /('([^']|'')+'|'')|./g, function( character, literal ) {\n\n\t\t\t// Literals\n\t\t\tif ( literal ) {\n\t\t\t\tpartsPush( parts, \"literal\", removeLiteralQuotes( literal ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Currency symbol\n\t\t\tif ( character === \"\\u00A4\" ) {\n\t\t\t\tpartsPush( parts, \"currency\", character );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Symbols\n\t\t\tcharacter = character.replace( /[.,\\-+E%\\u2030]/, function( symbol ) {\n\t\t\t\tif ( symbol === \".\" ) {\n\t\t\t\t\tnumberType = \"fraction\";\n\t\t\t\t}\n\t\t\t\tpartsPush( parts, numberSymbolName[symbol], symbolMap[ symbol ] );\n\n\t\t\t\t// \"Erase\" handled character.\n\t\t\t\treturn \"\";\n\t\t\t});\n\n\t\t\t// Number\n\t\t\tcharacter = character.replace( /[0-9]/, function( digit ) {\n\n\t\t\t\t// Numbering system\n\t\t\t\tif ( nuDigitsMap ) {\n\t\t\t\t\tdigit = nuDigitsMap[ +digit ];\n\t\t\t\t}\n\t\t\t\tpartsPush( parts, numberType, digit );\n\n\t\t\t\t// \"Erase\" handled character.\n\t\t\t\treturn \"\";\n\t\t\t});\n\n\t\t\t// Etc\n\t\t\tcharacter.replace( /./, function( etc ) {\n\t\t\t\tpartsPush( parts, \"literal\", etc );\n\t\t\t});\n\t\t});\n\t\treturn parts;\n\t};\n\n\tprefix = stringToParts( prefix );\n\tsuffix = stringToParts( suffix );\n\n\t// Infinity\n\tif ( !isFinite( number ) ) {\n\t\treturn prefix.concat(\n\t\t\t{ type: \"infinity\", value: infinitySymbol },\n\t\t\tsuffix\n\t\t);\n\t}\n\n\t// Percent\n\tif ( pattern.indexOf( \"%\" ) !== -1 ) {\n\t\tnumber *= 100;\n\n\t// Per mille\n\t} else if ( pattern.indexOf( \"\\u2030\" ) !== -1 ) {\n\t\tnumber *= 1000;\n\t}\n\n\tvar compactPattern, compactDigits, compactProperties, divisor, numberExponent, pluralForm;\n\n\t// Compact mode: initial number digit processing\n\tif ( compactMap ) {\n\t\tnumberExponent = Math.abs( Math.floor( number ) ).toString().length - 1;\n\t\tnumberExponent = Math.min( numberExponent, compactMap.maxExponent );\n\n\t\t// Use default plural form to perform initial decimal shift\n\t\tif ( numberExponent >= 3 ) {\n\t\t\tcompactPattern = compactMap[ numberExponent ] && compactMap[ numberExponent ].other;\n\t\t}\n\n\t\tif ( compactPattern === \"0\" ) {\n\t\t\tcompactPattern = null;\n\t\t} else if ( compactPattern ) {\n\t\t\tcompactDigits = compactPattern.split( \"0\" ).length - 1;\n\t\t\tdivisor = numberExponent - ( compactDigits - 1 );\n\t\t\tnumber = number / Math.pow( 10, divisor );\n\t\t}\n\t}\n\n\t// Significant digit format\n\tif ( !isNaN( minimumSignificantDigits * maximumSignificantDigits ) ) {\n\t\tnumber = numberFormatSignificantDigits( number, minimumSignificantDigits,\n\t\t\tmaximumSignificantDigits, round );\n\n\t// Integer and fractional format\n\t} else {\n\t\tnumber = numberFormatIntegerFractionDigits( number, minimumIntegerDigits,\n\t\t\tminimumFractionDigits, maximumFractionDigits, round, roundIncrement );\n\t}\n\n\t// Compact mode: apply formatting\n\tif ( compactMap && compactPattern ) {\n\n\t\t// Get plural form after possible roundings\n\t\tpluralForm = pluralGenerator ? pluralGenerator( +number ) : \"other\";\n\n\t\tcompactPattern = compactMap[ numberExponent ][ pluralForm ] || compactPattern;\n\t\tcompactProperties = compactPattern.match( numberCompactPatternRe );\n\n\t\t// TODO Move the tokenization of all parts that don't depend on number into\n\t\t// format-properties.\n\t\taux = function( string ) {\n\t\t\tvar parts = [];\n\t\t\tstring.replace( /(\\s+)|([^\\s0]+)/g, function( garbage, space, compact ) {\n\n\t\t\t\t// Literals\n\t\t\t\tif ( space ) {\n\t\t\t\t\tpartsPush( parts, \"literal\", space );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Compact value\n\t\t\t\tif ( compact ) {\n\t\t\t\t\tpartsPush( parts, \"compact\", compact );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn parts;\n\t\t};\n\n\t\t// update prefix/suffix with compact prefix/suffix\n\t\tprefix = prefix.concat( aux( compactProperties[ 1 ] ) );\n\t\tsuffix = aux( compactProperties[ 3 ] ).concat( suffix );\n\t}\n\n\t// Remove the possible number minus sign\n\tnumber = number.replace( /^-/, \"\" );\n\n\t// Grouping separators\n\tif ( primaryGroupingSize ) {\n\t\tnumber = numberFormatGroupingSeparator( number, primaryGroupingSize,\n\t\t\tsecondaryGroupingSize );\n\t}\n\n\t// Scientific notation\n\t// TODO implement here\n\n\t// Padding/'([^']|'')+'|''|[.,\\-+E%\\u2030]/g\n\t// TODO implement here\n\n\treturn prefix.concat(\n\t\tstringToParts( number ),\n\t\tsuffix\n\t);\n};\n\n\n\n\nvar numberToPartsFormatterFn = function( properties, pluralGenerator ) {\n\treturn function numberToPartsFormatter( value ) {\n\t\tvalidateParameterPresence( value, \"value\" );\n\t\tvalidateParameterTypeNumber( value, \"value\" );\n\n\t\treturn numberFormat( value, properties, pluralGenerator );\n\t};\n};\n\n\n\n\nfunction validateDigits( properties ) {\n\tvar minimumIntegerDigits = properties[ 2 ],\n\t\tminimumFractionDigits = properties[ 3 ],\n\t\tmaximumFractionDigits = properties[ 4 ],\n\t\tminimumSignificantDigits = properties[ 5 ],\n\t\tmaximumSignificantDigits = properties[ 6 ];\n\n\t// Validate significant digit format properties\n\tif ( !isNaN( minimumSignificantDigits * maximumSignificantDigits ) ) {\n\t\tvalidateParameterRange( minimumSignificantDigits, \"minimumSignificantDigits\", 1, 21 );\n\t\tvalidateParameterRange( maximumSignificantDigits, \"maximumSignificantDigits\",\n\t\t\tminimumSignificantDigits, 21 );\n\n\t} else if ( !isNaN( minimumSignificantDigits ) || !isNaN( maximumSignificantDigits ) ) {\n\t\tthrow new Error( \"Neither or both the minimum and maximum significant digits must be \" +\n\t\t\t\"present\" );\n\n\t// Validate integer and fractional format\n\t} else {\n\t\tvalidateParameterRange( minimumIntegerDigits, \"minimumIntegerDigits\", 1, 21 );\n\t\tvalidateParameterRange( minimumFractionDigits, \"minimumFractionDigits\", 0, 20 );\n\t\tvalidateParameterRange( maximumFractionDigits, \"maximumFractionDigits\",\n\t\t\tminimumFractionDigits, 20 );\n\t}\n}\n\n/**\n * .numberFormatter( [options] )\n *\n * @options [Object]:\n * - style: [String] \"decimal\" (default) or \"percent\".\n * - see also number/format options.\n *\n * Return a function that formats a number according to the given options and default/instance\n * locale.\n */\nGlobalize.numberFormatter =\nGlobalize.prototype.numberFormatter = function( options ) {\n\tvar args, numberToPartsFormatter, returnFn;\n\n\tvalidateParameterTypePlainObject( options, \"options\" );\n\n\toptions = options || {};\n\targs = [ options ];\n\n\tnumberToPartsFormatter = this.numberToPartsFormatter( options );\n\treturnFn = numberFormatterFn( numberToPartsFormatter );\n\truntimeBind( args, this.cldr, returnFn, [ numberToPartsFormatter ] );\n\n\treturn returnFn;\n};\n\n/**\n * .numberToPartsFormatter( [options] )\n *\n * @options [Object]:\n * - style: [String] \"symbol\" (default), \"accounting\", \"code\" or \"name\".\n * - see also number/format options.\n *\n * Return a function that formats a number to parts according to the given options and\n * default/instance locale.\n */\nGlobalize.numberToPartsFormatter =\nGlobalize.prototype.numberToPartsFormatter = function( options ) {\n\tvar args, cldr, fnArgs, pattern, properties, returnFn;\n\n\tvalidateParameterTypePlainObject( options, \"options\" );\n\n\toptions = options || {};\n\tcldr = this.cldr;\n\n\targs = [ options ];\n\n\tvalidateDefaultLocale( cldr );\n\n\tcldr.on( \"get\", validateCldr );\n\ttry {\n\t\tif ( options.raw ) {\n\t\t\tpattern = options.raw;\n\t\t} else {\n\t\t\tpattern = numberPattern( options.style || \"decimal\", cldr );\n\t\t}\n\n\t\tproperties = numberFormatProperties( pattern, cldr, options );\n\t\tfnArgs = [ properties ];\n\t} finally {\n\t\tcldr.off( \"get\", validateCldr );\n\t}\n\n\tvalidateDigits( properties );\n\n\tif ( options.compact ) {\n\t\tfnArgs.push( this.pluralGenerator() );\n\t}\n\treturnFn = numberToPartsFormatterFn.apply( null, fnArgs );\n\truntimeBind( args, cldr, returnFn, fnArgs );\n\n\treturn returnFn;\n};\n\n/**\n * .numberParser( [options] )\n *\n * @options [Object]:\n * - style: [String] \"decimal\" (default) or \"percent\".\n *\n * Return the number parser according to the default/instance locale.\n */\nGlobalize.numberParser =\nGlobalize.prototype.numberParser = function( options ) {\n\tvar args, cldr, pattern, properties, returnFn;\n\n\tvalidateParameterTypePlainObject( options, \"options\" );\n\n\toptions = options || {};\n\tcldr = this.cldr;\n\n\targs = [ options ];\n\n\tvalidateDefaultLocale( cldr );\n\tif ( options.compact ) {\n\t\tthrow createErrorUnsupportedFeature({\n\t\t\tfeature: \"compact number parsing (not implemented)\"\n\t\t});\n\t}\n\n\tcldr.on( \"get\", validateCldr );\n\n\tif ( options.raw ) {\n\t\tpattern = options.raw;\n\t} else {\n\t\tpattern = numberPattern( options.style || \"decimal\", cldr );\n\t}\n\n\tproperties = numberParseProperties( pattern, cldr, options );\n\n\tcldr.off( \"get\", validateCldr );\n\n\treturnFn = numberParserFn( properties );\n\n\truntimeBind( args, cldr, returnFn, [ properties ] );\n\n\treturn returnFn;\n};\n\n/**\n * .formatNumber( value [, options] )\n *\n * @value [Number] number to be formatted.\n *\n * @options [Object]: see number/format-properties.\n *\n * Format a number according to the given options and default/instance locale.\n */\nGlobalize.formatNumber =\nGlobalize.prototype.formatNumber = function( value, options ) {\n\tvalidateParameterPresence( value, \"value\" );\n\tvalidateParameterTypeNumber( value, \"value\" );\n\n\treturn this.numberFormatter( options )( value );\n};\n\n/**\n * .formatNumberToParts( value [, options] )\n *\n * @value [Number] number to be formatted.\n *\n * @options [Object]: see number/format-properties.\n *\n * Format a number to pars according to the given options and default/instance locale.\n */\nGlobalize.formatNumberToParts =\nGlobalize.prototype.formatNumberToParts = function( value, options ) {\n\tvalidateParameterPresence( value, \"value\" );\n\tvalidateParameterTypeNumber( value, \"value\" );\n\n\treturn this.numberToPartsFormatter( options )( value );\n};\n\n/**\n * .parseNumber( value [, options] )\n *\n * @value [String]\n *\n * @options [Object]: See numberParser().\n *\n * Return the parsed Number (including Infinity) or NaN when value is invalid.\n */\nGlobalize.parseNumber =\nGlobalize.prototype.parseNumber = function( value, options ) {\n\tvalidateParameterPresence( value, \"value\" );\n\tvalidateParameterTypeString( value, \"value\" );\n\n\treturn this.numberParser( options )( value );\n};\n\n/**\n * Optimization to avoid duplicating some internal functions across modules.\n */\nGlobalize._createErrorUnsupportedFeature = createErrorUnsupportedFeature;\nGlobalize._numberNumberingSystem = numberNumberingSystem;\nGlobalize._numberNumberingSystemDigitsMap = numberNumberingSystemDigitsMap;\nGlobalize._numberPattern = numberPattern;\nGlobalize._numberSymbol = numberSymbol;\nGlobalize._looseMatching = looseMatching;\nGlobalize._removeLiteralQuotes = removeLiteralQuotes;\nGlobalize._stringPad = stringPad;\nGlobalize._validateParameterTypeNumber = validateParameterTypeNumber;\nGlobalize._validateParameterTypeString = validateParameterTypeString;\n\nreturn Globalize;\n\n\n\n\n}));\n","\"use strict\";\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar types_1 = require(\"./types\");\nvar types_2 = require(\"./types\");\nexports.ClientError = types_2.ClientError;\nrequire(\"cross-fetch/polyfill\");\nvar GraphQLClient = /** @class */ (function () {\n function GraphQLClient(url, options) {\n this.url = url;\n this.options = options || {};\n }\n GraphQLClient.prototype.rawRequest = function (query, variables) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, headers, others, body, response, result, headers_1, status_1, errorResult;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.options, headers = _a.headers, others = __rest(_a, [\"headers\"]);\n body = JSON.stringify({\n query: query,\n variables: variables ? variables : undefined,\n });\n return [4 /*yield*/, fetch(this.url, __assign({ method: 'POST', headers: Object.assign({ 'Content-Type': 'application/json' }, headers), body: body }, others))];\n case 1:\n response = _b.sent();\n return [4 /*yield*/, getResult(response)];\n case 2:\n result = _b.sent();\n if (response.ok && !result.errors && result.data) {\n headers_1 = response.headers, status_1 = response.status;\n return [2 /*return*/, __assign({}, result, { headers: headers_1, status: status_1 })];\n }\n else {\n errorResult = typeof result === 'string' ? { error: result } : result;\n throw new types_1.ClientError(__assign({}, errorResult, { status: response.status, headers: response.headers }), { query: query, variables: variables });\n }\n return [2 /*return*/];\n }\n });\n });\n };\n GraphQLClient.prototype.request = function (query, variables) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, headers, others, body, response, result, errorResult;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.options, headers = _a.headers, others = __rest(_a, [\"headers\"]);\n body = JSON.stringify({\n query: query,\n variables: variables ? variables : undefined,\n });\n return [4 /*yield*/, fetch(this.url, __assign({ method: 'POST', headers: Object.assign({ 'Content-Type': 'application/json' }, headers), body: body }, others))];\n case 1:\n response = _b.sent();\n return [4 /*yield*/, getResult(response)];\n case 2:\n result = _b.sent();\n if (response.ok && !result.errors && result.data) {\n return [2 /*return*/, result.data];\n }\n else {\n errorResult = typeof result === 'string' ? { error: result } : result;\n throw new types_1.ClientError(__assign({}, errorResult, { status: response.status }), { query: query, variables: variables });\n }\n return [2 /*return*/];\n }\n });\n });\n };\n GraphQLClient.prototype.setHeaders = function (headers) {\n this.options.headers = headers;\n return this;\n };\n GraphQLClient.prototype.setHeader = function (key, value) {\n var headers = this.options.headers;\n if (headers) {\n headers[key] = value;\n }\n else {\n this.options.headers = (_a = {}, _a[key] = value, _a);\n }\n return this;\n var _a;\n };\n return GraphQLClient;\n}());\nexports.GraphQLClient = GraphQLClient;\nfunction rawRequest(url, query, variables) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n client = new GraphQLClient(url);\n return [2 /*return*/, client.rawRequest(query, variables)];\n });\n });\n}\nexports.rawRequest = rawRequest;\nfunction request(url, query, variables) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n client = new GraphQLClient(url);\n return [2 /*return*/, client.request(query, variables)];\n });\n });\n}\nexports.request = request;\nexports.default = request;\nfunction getResult(response) {\n return __awaiter(this, void 0, void 0, function () {\n var contentType;\n return __generator(this, function (_a) {\n contentType = response.headers.get('Content-Type');\n if (contentType && contentType.startsWith('application/json')) {\n return [2 /*return*/, response.json()];\n }\n else {\n return [2 /*return*/, response.text()];\n }\n return [2 /*return*/];\n });\n });\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ClientError = /** @class */ (function (_super) {\n __extends(ClientError, _super);\n function ClientError(response, request) {\n var _this = this;\n var message = ClientError.extractMessage(response) + \": \" + JSON.stringify({ response: response, request: request });\n _this = _super.call(this, message) || this;\n _this.response = response;\n _this.request = request;\n // this is needed as Safari doesn't support .captureStackTrace\n /* tslint:disable-next-line */\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(_this, ClientError);\n }\n return _this;\n }\n ClientError.extractMessage = function (response) {\n try {\n return response.errors[0].message;\n }\n catch (e) {\n return \"GraphQL Error (Code: \" + response.status + \")\";\n }\n };\n return ClientError;\n}(Error));\nexports.ClientError = ClientError;\n//# sourceMappingURL=types.js.map","\"use strict\";\n\nvar assertion = require(\"./utils/assertion\");\n\n// Load Globalize main module.\nvar Globalize = require(\"globalize/dist/globalize\");\n\n// Extend Globalize with number and currency modules.\nrequire(\"globalize/dist/globalize/number\");\n\nvar basic = require(\"./utils/basic\");\nvar objectAssign = require(\"object-assign\");\n\nvar assert = assertion.assert;\nvar assertMetadata = assertion.assertMetadata;\nvar assertRange = assertion.assertRange;\nvar assertType = assertion.assertType;\nvar getValueOrDefault = basic.getValueOrDefault;\n\n// Load functions shared with Node\nvar numberHelpers = require(\"./utils/numberHelpers\");\nvar assertCanonicalNumberType = numberHelpers.assertCanonicalNumberType;\nvar assertLocalizedNumberType = numberHelpers.assertLocalizedNumberType;\nvar setFractionDigits = numberHelpers.setFractionDigits;\n\nfunction assertRangeCurrencyCode(handler, parameter) {\n assertRange(\n parameter,\n handler.metadata.cldrCurrencies,\n 'The ISO currency code `\"{parameterValue}\"` is invalid',\n { parameterValue: parameter }\n );\n}\n\nvar NumberHandler = function() {};\n\nvar optionsPrototype = {\n parts: function() {\n this.outputType = \"parts\";\n return this;\n },\n currencyDisplay: function(currencyDisplay) {\n this.currencyDisplay = currencyDisplay;\n return this;\n }\n};\n\nObject.defineProperty(NumberHandler.prototype, \"NUMBER_FORMAT\", {\n get: function() {\n return {\n style: \"decimal\",\n maximumFractionDigits: 9,\n minimumFractionDigits: 0\n };\n },\n enumerable: true\n});\nvar NUMBER_FORMAT = NumberHandler.prototype.NUMBER_FORMAT;\n\nObject.defineProperty(NumberHandler.prototype, \"NUMBER_FORMAT_PERCENT\", {\n get: function() {\n return {\n style: \"percent\",\n maximumFractionDigits: 2,\n minimumFractionDigits: 0\n };\n },\n enumerable: true\n});\n\n// define currency presets on handler\nvar CURRENCY_PRESETS = {\n CURRENCY_FORMAT: \"symbol\",\n CURRENCY_FORMAT_ISOCURRENCY: \"code\",\n CURRENCY_FORMAT_SYMBOLISOCURRENCY: \"international\"\n};\nObject.keys(CURRENCY_PRESETS).forEach(function(presetName) {\n Object.defineProperty(NumberHandler.prototype, presetName, {\n get: function() {\n var presetValue = CURRENCY_PRESETS[presetName];\n return Object.create(optionsPrototype).currencyDisplay(presetValue);\n },\n enumerable: true\n });\n});\n// get array of values for assertRange\nvar CURRENCY_PRESET_VALUES = Object.keys(CURRENCY_PRESETS).map(function(\n presetName\n) {\n return CURRENCY_PRESETS[presetName];\n});\n\n/**\n * formatNumber\n */\nObject.defineProperty(NumberHandler.prototype, \"formatNumber\", {\n value: function formatNumber(number, options) {\n options = getValueOrDefault(options, NUMBER_FORMAT);\n number = assertCanonicalNumberType(number, \"number\");\n assertType(options, \"options\", [\"plain object\"]);\n assert(\n options.currencyDisplay === undefined,\n \"Invalid `options` property `currencyDisplay`. Use `.formatCurrency()` instead\"\n );\n options = objectAssign({}, options);\n setFractionDigits(options);\n return this.globalize.formatNumber(number, options);\n },\n enumerable: true\n});\n\n/**\n * normalizeNumber\n */\nObject.defineProperty(NumberHandler.prototype, \"normalizeNumber\", {\n value: function normalizeNumber(number, options) {\n options = getValueOrDefault(options, NUMBER_FORMAT);\n assertLocalizedNumberType(number, \"number\");\n assertType(options, \"options\", [\"plain object\"]);\n if (typeof number === \"number\") {\n return number;\n }\n return this.globalize.parseNumber(number, options);\n },\n enumerable: true\n});\n\nfunction numberStyles(handler) {\n return handler.metadata.cldrNumbers[\"symbols-numberSystem-latn\"];\n}\n\nfunction symbolForCurrency(handler, currencyCode) {\n var currencyMeta = handler.metadata.cldrCurrencies[currencyCode];\n return currencyMeta && currencyMeta.symbol;\n}\n\nfunction currencyStyles(handler, currency) {\n var newCurrencyStyles = {},\n supportedStyles = [\n \"international\",\n \"code\",\n \"plural\",\n \"separator\",\n \"symbol\"\n ];\n supportedStyles.forEach(function(style) {\n newCurrencyStyles[style] = currencyPatternByStyle(\n handler,\n { currencyDisplay: style },\n currency\n );\n });\n return newCurrencyStyles;\n}\n\nfunction currencyPatternByStyle(handler, options, currency) {\n var metadata = handler.metadata,\n currencyStyles = metadata.currencyStyles,\n didCurrencyLevelOverride = false; // set this to true if the style was overriden at the currency level\n\n if (!options) {\n options = { currencyDisplay: \"symbol\" };\n }\n\n var style = options.currencyDisplay;\n var pattern = currencyStyles[style];\n\n // Check if there's an override by currency (e.g. TRY) for this particular style and apply it\n if (\n currencyStyles.currency_override &&\n currencyStyles.currency_override[currency] &&\n currencyStyles.currency_override[currency][style]\n ) {\n pattern = currencyStyles.currency_override[currency][style];\n didCurrencyLevelOverride = true; // set this flag so fuzzyMatch will be skipped\n }\n\n // if there was no override at the currency level\n // and if this is the international style\n // then apply fuzzyMatch\n // basically: only apply fuzzyMatch to the vanilla international style\n if (!didCurrencyLevelOverride && style === \"international\" && currency) {\n var currencySymbol = symbolForCurrency(handler, currency);\n if (!currencySymbol) {\n return;\n }\n if (currencySymbol.length > 1) {\n // call fuzzyMatch passing the currency Code MXN and currency Symbol $MX\n var fuzzy = fuzzyMatch(currency, currencySymbol);\n if (fuzzy >= 66) {\n pattern = pattern.replace(/¤\\s*/g, \"\");\n }\n }\n }\n\n return pattern;\n}\n\n/***\n * @function\n * @name fuzzyMatch\n * @input it takes 2 strings valueA and valueB\n * @returns {number} the percentage of how similar are both\n */\nfunction fuzzyMatch(svalueA, svalueB) {\n if (svalueA === svalueB) {\n return 100;\n } else {\n var valueA = svalueA.split(\"\"),\n valueB = svalueB.split(\"\"),\n equivalency = 0;\n for (var i = 0; i < valueA.length; i++) {\n if (valueB.indexOf(valueA[i]) !== -1) {\n var position = valueB.indexOf(valueA[i]);\n valueB.splice(position, 1);\n equivalency++;\n }\n }\n var weight = equivalency / valueA.length;\n return weight * 100;\n }\n}\n\nfunction digitsForCurrency(handler, currencyCode) {\n return (\n handler.metadata.currencyInfo[currencyCode] &&\n handler.metadata.currencyInfo[currencyCode].digits\n );\n}\n\nObject.defineProperty(NumberHandler.prototype, \"formatCurrency\", {\n value: function formatCurrency(currency, options) {\n var currencyCode, currencyValue;\n options = getValueOrDefault(options, this.CURRENCY_FORMAT);\n\n assertType(currency, \"currency\", [\"plain object\"]);\n assertType(currency.currency, \"currency.currency\", [\"string\"]);\n currencyValue = assertCanonicalNumberType(currency.value, \"currency.value\");\n assertRangeCurrencyCode(this, currency.currency);\n\n assertType(options, \"options\", [\"plain object\"]);\n assertType(options.currencyDisplay, \"options.currencyDisplay\", [\"string\"]);\n assertRange(\n options.currencyDisplay,\n CURRENCY_PRESET_VALUES,\n 'Invalid `options.currencyDisplay`: `\"{parameterValue}\"`',\n { parameterValue: options.currencyDisplay }\n );\n\n currencyCode = currency.currency;\n options = objectAssign({}, options);\n var currencyDigits = digitsForCurrency(this, currencyCode);\n setFractionDigits(options, currencyDigits);\n\n var localeNumberStyles = numberStyles(this),\n localeCurrencyStyles = currencyStyles(this, currencyCode),\n symbol = symbolForCurrency(this, currencyCode),\n formattedCurrency = \"\",\n pattern = localeCurrencyStyles[options.currencyDisplay].split(\";\")[0];\n if (options.outputType === \"parts\") {\n formattedCurrency = [];\n }\n\n var formatBinder = function(key, value) {\n if (options.outputType === \"parts\") {\n var parts = { type: key, value: value };\n formattedCurrency.push(parts);\n } else {\n formattedCurrency += value;\n }\n };\n\n if (currencyValue < 0) {\n pattern = localeCurrencyStyles[options.currencyDisplay].split(\";\")[1];\n currencyValue = currencyValue * -1;\n }\n var numberOptions = NumberHandler.prototype.NUMBER_FORMAT;\n numberOptions.maximumFractionDigits = options.maximumFractionDigits;\n numberOptions.minimumFractionDigits = options.minimumFractionDigits;\n var patternElements = {\n \"-\": { key: \"sign\", value: localeNumberStyles.minusSign },\n \"¤\": { key: \"symbol\", value: symbol },\n \"#\": {\n key: \"value\",\n value: this.formatNumber(currencyValue, numberOptions)\n },\n C: { key: \"code\", value: currencyCode },\n \"\\u00A0\": { key: \"separator\", value: localeCurrencyStyles.separator }\n };\n\n for (var i = 0; i < pattern.length; i++) {\n var part = patternElements[pattern.charAt(i)] || {\n key: \"literal\",\n value: pattern.charAt(i)\n };\n formatBinder(part.key, part.value);\n }\n\n return formattedCurrency;\n },\n enumerable: true\n});\n\nfunction assertNumberMeta(metadata) {\n assertType(metadata, \"metadata\", [\"plain object\"]);\n assertMetadata(metadata.cldr);\n assertMetadata(metadata.cldr.main);\n assertMetadata(metadata.cldr.supplemental);\n assertMetadata(metadata.griffin);\n assertMetadata(metadata.griffin.number);\n\n var griffinNumberMeta = metadata.griffin.number;\n assertMetadata(griffinNumberMeta.country, [\"string\"]);\n assertMetadata(griffinNumberMeta.currencyInfo);\n assertMetadata(griffinNumberMeta.currencyStyles);\n\n // We assume the only key in 'main' is the locale.\n var cldrLocale = Object.keys(metadata.cldr.main)[0];\n assertMetadata(cldrLocale, [\"string\"]);\n var cldrMain = metadata.cldr.main[cldrLocale];\n assertMetadata(cldrMain);\n var cldrNumbers = cldrMain.numbers;\n assertMetadata(cldrNumbers);\n assertMetadata(cldrNumbers[\"symbols-numberSystem-latn\"]);\n var cldrCurrencies = cldrNumbers.currencies;\n assertMetadata(cldrCurrencies);\n // assertMetadata(cldrCurrencies.styles); // now in griffin section\n}\n\nmodule.exports = {\n // common createHandler code can be factored out and put in core\n createHandler: function createHandler(metadata) {\n // TODO validate metadata based on schema.\n assertNumberMeta(metadata);\n\n var handler = new NumberHandler();\n\n // We assume the only key in 'main' is the locale.\n var cldrLocale = Object.keys(metadata.cldr.main)[0];\n var cldrMain = metadata.cldr.main[cldrLocale];\n var cldrNumbers = cldrMain.numbers;\n var cldrCurrencies = cldrNumbers.currencies;\n\n var griffinNumberMeta = metadata.griffin.number;\n\n // store particular parts of client metadata for use in the module\n handler.metadata = {\n country: griffinNumberMeta.country,\n currencyStyles: griffinNumberMeta.currencyStyles,\n currencyInfo: griffinNumberMeta.currencyInfo, // includes digits information\n cldrNumbers: cldrNumbers,\n cldrCurrencies: cldrCurrencies\n };\n\n // pass the cldr portion to Globalize\n Globalize.load(metadata.cldr);\n handler.globalize = Globalize(cldrLocale);\n\n return handler;\n }\n};\n","/**\n * Assertion utilities module.\n * @module utils/assertion\n *\n * @example\n *\n * function myFunction(foo, bar) {\n * assertType(foo, 'foo', ['string']);\n * assertType(bar, 'bar', ['plain object']);\n * }\n *\n * myFunction(1);\n * // > TypeError: Parameter `foo` must be a string, not number `1`\n *\n * myFunction(\"1\", []);\n * // > TypeError: Parameter `bar` must be a plain object, not array `[]`\n */\n\"use strict\";\n\nvar basic = require(\"./basic\");\nvar objectAssign = require(\"object-assign\");\n\nvar formatMessage = basic.formatMessage;\nvar listFormat = basic.listFormat;\nvar smarterTypeof = basic.smarterTypeof;\nvar withinRange = basic.withinRange;\n\n/**\n * Asserts values that are assumed to be true.\n * @param {boolean} condition - Won't throw if true, will throw if false.\n * @param {string} errorMessage - The error message. Can contain placeholders for variable\n * replacement, e.g., 'Hello {name}' where the value for name comes from `options.name`.\n * @param {Object} [options]\n * @param {Object} [options.errorClass=Error] The class of the error to throw.\n * @param {string} [options.*] Any other option will be used for variable replacement in\n * errorMessage.\n * @returns Returns `true` if *condition* if `true`.\n * @throws Will throw *option.errorClass* if *condition* if `false`.\n *\n * @example\n *\n * // This will not throw and return true.\n * assert(truthyValue, 'error message');\n * // > true\n *\n * @example\n *\n * // This will throw an error with this error message.\n * assert(falseyValue, 'error message');\n * // > throw Error('error message')\n */\nfunction assert(condition, errorMessage, options) {\n var error, errorClass;\n\n if (condition) {\n return true;\n }\n\n options = options || {};\n // Assign errorClass and remove it from options.\n errorClass = options.errorClass || Error;\n\n errorMessage = formatMessage(errorMessage, options);\n error = new errorClass(errorMessage);\n error.attributes = options;\n\n throw error;\n}\n\n/**\n * TODO description.\n */\nfunction assertMetadata(metadataNode, expectedTypes) {\n expectedTypes = expectedTypes || [\"plain object\"];\n assertType(metadataNode, \"\", expectedTypes, {\n errorMessage: \"The metadata is invalid\"\n });\n}\n\n/**\n * Throw a TypeError in case *parameterValue* isn't any of *expectedTypes*.\n *\n * @param {*} parameterValue - Used in the error message as *parameterValue* and the deduced *parameterType* variables.\n * @param {string} parameterName - Used in the error message as *parameterName* variable.\n * @param {Array} expectedTypes - A list of expected (smart) typeofs.\n * @param {Object} [options]\n * @param {boolean} [options.condition] An optional condition that overrides the default logic, in which case *expectedTypes* values are completely ignored.\n * @param {String} [options.errorMessage] An optional error message that overrides the default one. Note the error message can use the following automatically set variables: parameterName, parameterValue, parameterType.\n *\n * @example\n *\n * myParam = \"foo\";\n * assertType(\n * myParam,\n * 'myParam',\n * [\"number\"]\n * );\n * // > TypeError: Parameter `myParam` must be a number, not string `\"foo\"`\n *\n * myParam = [];\n * assertType(\n * myParam,\n * 'myParam',\n * [\"number\", \"string\"]\n * );\n * // > TypeError: Parameter `myParam` must be a number or string, not array `[]`\n */\nfunction assertType(parameterValue, parameterName, expectedTypes, options) {\n var parameterType = smarterTypeof(parameterValue);\n\n options = options || {};\n var condition =\n options.condition || expectedTypes.indexOf(parameterType) !== -1;\n var errorMessage =\n options.errorMessage ||\n \"Parameter `{parameterName}` must be a {expectedTypesMessage}, not {parameterType} `{{parameterValue}}`\";\n\n assert(condition, errorMessage, {\n errorClass: TypeError,\n expectedTypesMessage: listFormat(expectedTypes, \"or\"),\n parameterName: parameterName,\n parameterType: parameterType,\n parameterValue: parameterValue\n });\n}\n\n/**\n * Throw a RangeError in case *element* isn't included in the *collection*.\n *\n * @param {*} element - The key of an Object or the element of an Array.\n * @param {(Array|Object)} collection - Where to search for element at.\n * @param {string} errorMessage - See assert().\n * @param {Object} [options] - See assert().\n *\n * @example\n * assertRange(\"quax\", [\"foo\", \"bar\", \"baz\"], \"Invalid element\");\n * // > RangeError: Invalid element\n *\n * assertRange(\"quax\", {\"foo\": 1, \"bar\": 2, \"baz\": 3}, \"Invalid key\");\n * // > RangeError: Invalid key\n */\nfunction assertRange(element, collection, errorMessage, options) {\n assert(\n withinRange(element, collection),\n errorMessage,\n objectAssign({ errorClass: RangeError }, options)\n );\n}\n\nmodule.exports = {\n assert: assert,\n assertMetadata: assertMetadata,\n assertRange: assertRange,\n assertType: assertType\n};\n","\"use strict\";\n\n/**\n * Basic utilities module.\n * @module utils/basic\n */\n\n/* Gets value in object path\n * @param {object} obj\n * @param {string|array} path\n * @examples\n * get({foo: 1, bar: {baz: 2}}, 'bar/baz');\n * > 2\n * get({foo: 1, bar: {baz: 2}}, 'foo/bar/baz/quax');\n * > undefined\n */\nfunction objectGet(obj, path) {\n if (typeof path === \"string\") {\n path = path.split(\"/\");\n }\n var prop = path.slice(-1);\n var node = path.slice(0, -1).reduce(function(node, item) {\n return node[item] || {};\n }, obj);\n return node[prop];\n}\n\n/**\n * Sets value in object path\n * @param {object} obj\n * @param {string|array} path\n * @param {*} value\n * @examples\n * set({foo: 1}, 'bar/baz', 2);\n * // > {foo: 1, bar: {baz: 2}}\n */\nfunction objectSet(obj, path, value) {\n if (typeof path === \"string\") {\n path = path.split(\"/\");\n }\n var prop = path.slice(-1);\n var node = path.slice(0, -1).reduce(function(node, item) {\n return (node[item] = node[item] || {});\n }, obj);\n node[prop] = value;\n return obj;\n}\n\n/**\n * Given an object, return an array of its property values.\n * @param {Object} object\n */\nfunction objectValues(object) {\n return Object.keys(object).map(function(key) {\n return object[key];\n });\n}\n\n/**\n * Slices an object given a path.\n */\nfunction objectSlice(obj, path) {\n path = path || [];\n return objectSet({}, path, objectGet(obj, path));\n}\n\nfunction cloneArray(array) {\n return array.slice(0);\n}\n\nfunction cloneDate(date) {\n return new Date(date.getTime());\n}\n\n/**\n * Returns new deeply merged JSON-parsed objects.\n * @param {...object} obj - Object to perform deep merge\n * @returns {object} Deeply merged object. This returned object can be safely modified without\n * causing any change on any passed source objects.\n *\n * @example\n * merge( { a: { b: 1, c: 2 } }, { a: { b: 3, d: 4 } }, ... )\n * // > { a: { b: 3, c: 2, d: 4 } }\n *\n * Code from https://github.com/rxaviers/cldrjs/blob/master/src/util/json/merge.js\n */\nfunction jsonDeepMerge(/* obj */) {\n var destination = {};\n var sources = [].slice.call(arguments, 0);\n sources.forEach(function(source) {\n var prop;\n for (prop in source) {\n if (Array.isArray(source[prop])) {\n // Clone and set arrays.\n destination[prop] = cloneArray(source[prop]);\n } else if (source[prop] instanceof Date) {\n // Clone and set dates.\n destination[prop] = cloneDate(source[prop]);\n } else if (typeof source[prop] === \"object\") {\n // Merge objects.\n destination[prop] = jsonDeepMerge({}, destination[prop], source[prop]);\n } else {\n // Set new values.\n destination[prop] = source[prop];\n }\n }\n });\n return destination;\n}\n\n/**\n * Oneliner for Object.defineProperty() using simple `value` descriptor.\n * @param {Object} object The object on which to define the property.\n * @param {string} property The name of the property to be defined or modified.\n * @param {*} value The value associated with the property. Can be any valid JavaScript value (number, object, function, etc).\n */\nfunction definePrivateProperty(object, property, value) {\n Object.defineProperty(object, property, {\n value: value\n });\n}\n\n/**\n * TODO description.\n */\nfunction defineProperties(handler, properties) {\n var propertiesNames = Object.keys(properties);\n propertiesNames.forEach(function(key) {\n Object.defineProperty(handler.prototype, key, {\n get: function() {\n return properties[key];\n },\n enumerable: true\n });\n });\n\n return objectValues(properties);\n}\n\n/**\n * Formats a message replacing placeholders with variables values.\n * @param {string} message - A message that can contain placeholders.\n * @param {Object} [variables] - Variables for replacing message placeholders.\n *\n * @example\n * formatMessage(\"Hello {name}\", {name: \"John\"});\n * // > \"Hello John\"\n *\n * formatMessage(\"Hello {{name}}\", {name: \"John\"});\n * // > \"Hello \\\"John\\\"\"\n */\nfunction formatMessage(message, variables) {\n return (\n message\n // Replace {{variable}} with `JSON.stringify(variableValue)`.\n .replace(/{{([0-9a-zA-Z-_. ]+)}}/g, function(_, variable) {\n // JSON.stringify(NaN) yields 'null', so we need a special case for NaN\n if (\n typeof variables[variable] === \"number\" &&\n isNaN(variables[variable])\n ) {\n return \"NaN\";\n }\n return JSON.stringify(variables[variable]);\n })\n // Replace {variable} with `variableValue`.\n .replace(/{([0-9a-zA-Z-_. ]+)}/g, function(_, variable) {\n return variables[variable];\n })\n );\n}\n\n/**\n * Checks if passed *object* is a plain object.\n * @param {*} object - Value subject to test.\n * @returns {boolean} Returns `true` if *object* is a plain object or `false`.\n *\n * @example\n *\n * isPlainObject(); // > false\n * isPlainObject(null); // > false\n * isPlainObject(new Date()); // > false\n * isPlainObject([]); // > false\n * isPlainObject(1); // > false\n * isPlainObject(true); // > false\n * isPlainObject(\"foo\"); // > false\n * isPlainObject(function() {}); // > false\n * isPlainObject({a: 1}); // > true\n */\nfunction isPlainObject(object) {\n // Inspired by jQuery Core, but reduced to our use case.\n return (\n object !== null &&\n \"\" + object === \"[object Object]\" &&\n object.constructor === Object\n );\n}\n\n/**\n * @param {Array} array - The list of strings to glue together as an English formatted list string.\n * @param {string} conjunction - Conjunction value, e.g., `'and'`, `'or'`.\n * @returns {string} Returns an English formatted list string using the passed *conjunction*.\n *\n * @example\n *\n * listFormat([], 'or'); // > ''\n * listFormat(['foo'], 'or'); // > 'foo'\n * listFormat(['foo', 'bar'], 'or'); // > 'foo or bar'\n * listFormat(['foo', 'bar', 'baz'], 'or'); // > 'foo, or bar, or baz'\n */\nfunction listFormat(array, conjunction) {\n if (array.length === 0) {\n return \"\";\n }\n if (array.length === 1) {\n return array[0];\n }\n if (array.length === 2) {\n return array.join(\" \" + conjunction + \" \");\n }\n if (array.length > 2) {\n return array.join(\", \" + conjunction + \" \");\n }\n}\n\n/**\n * Returns the type of a variable with additional types than native `typeof`.\n * @param {*} variable - A variable to deduce its type.\n *\n * @example\n * smarterTypeof(null); // > \"null\"\n * smarterTypeof({a: 1}); // > \"plain object\"\n * smarterTypeof([]); // > \"array\"\n * smarterTypeof(new Date()); // > \"date\"\n * smarterTypeof(); // > result of regular typeof.\n */\nfunction smarterTypeof(variable) {\n if (variable === null) {\n return \"null\";\n }\n if (isPlainObject(variable)) {\n return \"plain object\";\n }\n if (Array.isArray(variable)) {\n return \"array\";\n }\n if (variable instanceof Date) {\n return \"date\";\n }\n return typeof variable;\n}\n\n/**\n * Returns `true` is *element* belongs to *collection*.\n * @param {*} element - The key of an Object or the element of an Array.\n * @param {(Array| Object)} Where to search for element at.\n *\n * @example\n *\n * withinRange(\"bar\", [\"foo\", \"bar\", \"baz\"]);\n * // > true\n * withinRange(\"quax\", [\"foo\", \"bar\", \"baz\"]);\n * // > false\n *\n * @example\n *\n * withinRange(\"bar\", {foo: 1, bar: 2, baz: 3});\n * // > true\n * withinRange(\"quax\", {foo: 1, bar: 2, baz: 3});\n * // > false\n */\nfunction withinRange(element, collection) {\n return Array.isArray(collection)\n ? collection.indexOf(element) !== -1\n : element in collection;\n}\n\n/**\n * Given a value and a default for that value,\n * if value is undefined, return the default.\n * Otherwise, return the value itself.\n * @param {*} value the value which may or may not be undefined\n * @param {*} defaultValue the default for value\n *\n * @example\n *\n * getValueOrDefault('my string', 'default string');\n * // > 'my string'\n * getValueOrDefault(undefined, 'default string');\n * // > 'default string'\n */\nfunction getValueOrDefault(value, defaultValue) {\n return value === undefined ? defaultValue : value;\n}\n\n/**\n * Given an object with properties and an array of valid string property names,\n * Clone the object and:\n * 1) Remove invalid properties,\n * 2) Remove non-string properties,\n * 3) Remove properties with only whitespace,\n * 4) Trim remaining string properties\n *\n * @param {Object} object the object to trim\n * @param {array} properties array of properties to preserve\n *\n * @return {Object} the cloned & trimmed object\n */\nfunction trimObject(object, properties) {\n var clonedObject = {};\n properties.forEach(function(property) {\n var value = object[property];\n if (value === undefined) {\n return;\n }\n if (typeof value === \"string\") {\n value = value.trim();\n }\n clonedObject[property] = value;\n });\n return clonedObject;\n}\n\n/**\n * Given a string, return true if all the characters are Latin script (roughly < U+024F)\n * Note that empty strings are Latin by definition\n * @param {string} string to test\n * @return {boolean}\n */\nfunction isLatin(string) {\n if (!string) {\n return true;\n }\n for (var i = 0; i < string.length; i++) {\n if (\n string.charCodeAt(i) > 0x24f &&\n (string.charCodeAt(i) < 0x2000 || string.charCodeAt(i) > 0x206f)\n ) {\n return false;\n }\n }\n return true;\n}\n/**\n * This version might be used in for loops and the like when\n * it is unknown whether non-BMP characters exist before the specified index position.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n * @param {string} string to get the character\n * @peram {number} the index position\n **/\nfunction fixedCharCodeAt(str, idx) {\n // ex. fixedCharCodeAt('\\uD800\\uDC00', 0); // 65536\n // ex. fixedCharCodeAt('\\uD800\\uDC00', 1); // false\n idx = idx || 0;\n var code = str.charCodeAt(idx);\n var hi, low;\n\n // High surrogate (could change last hex to 0xDB7F\n // to treat high private surrogates\n // as single characters)\n if (0xd800 <= code && code <= 0xdbff) {\n hi = code;\n low = str.charCodeAt(idx + 1);\n if (isNaN(low)) {\n return hi;\n }\n return (hi - 0xd800) * 0x400 + (low - 0xdc00) + 0x10000;\n }\n if (0xdc00 <= code && code <= 0xdfff) {\n // Low surrogate\n // We return false to allow loops to skip\n // this iteration since should have already handled\n // high surrogate above in the previous iteration\n return false;\n // hi = str.charCodeAt(idx - 1);\n // low = code;\n // return ((hi - 0xD800) * 0x400) +\n // (low - 0xDC00) + 0x10000;\n }\n return code;\n}\n\nfunction invalidCodePointFromString(string, regex) {\n var codePoint;\n for (var i = 0, chr; i < string.length; i++) {\n if (string[i].match(regex) === null) {\n if ((chr = fixedCharCodeAt(string, i)) === false) {\n continue;\n }\n codePoint = chr;\n /* we care only on the first one */\n break;\n }\n }\n\n return codePoint;\n}\n\nmodule.exports = {\n objectGet: objectGet,\n objectSet: objectSet,\n objectValues: objectValues,\n objectSlice: objectSlice,\n jsonDeepMerge: jsonDeepMerge,\n isLatin: isLatin,\n trimObject: trimObject,\n definePrivateProperty: definePrivateProperty,\n defineProperties: defineProperties,\n formatMessage: formatMessage,\n getValueOrDefault: getValueOrDefault,\n isPlainObject: isPlainObject,\n listFormat: listFormat,\n smarterTypeof: smarterTypeof,\n withinRange: withinRange,\n fixedCharCodeAt: fixedCharCodeAt,\n invalidCodePointFromString: invalidCodePointFromString\n};\n","\"use strict\";\n\nvar assertion = require(\"./assertion\");\nvar assertType = assertion.assertType;\n\n/**\n * Asserts parameter type of a canonical number and type casts it into a Number\n * Disallows empty string and NaN\n * Used by Node\n */\nfunction assertCanonicalNumberTypeStrict(parameterValue, parameterName) {\n var number = parameterValue;\n assertType(parameterValue, parameterName, [], {\n // if number, should not be NaN\n // if string, cast to Number and should not be NaN\n condition:\n (typeof parameterValue === \"number\" && !isNaN(parameterValue)) ||\n (typeof parameterValue === \"string\" &&\n parameterValue !== \"\" &&\n !isNaN((number = Number(parameterValue)))),\n errorMessage:\n 'Parameter `{parameterName}` must be a number or a string representing a canonical number (e.g, `\"9999.99\"`), not {parameterType} `{{parameterValue}}`'\n });\n return number;\n}\n\n/**\n * Asserts parameter type of a canonical number and type casts it into a Number\n * Disallows empty string but allows NaN\n * Used by client\n */\nfunction assertCanonicalNumberType(parameterValue, parameterName) {\n var number = parameterValue;\n assertType(parameterValue, parameterName, [], {\n // if string, cast to Number and result should not be NaN\n condition:\n typeof parameterValue === \"number\" ||\n (typeof parameterValue === \"string\" &&\n parameterValue !== \"\" &&\n !isNaN((number = Number(parameterValue)))),\n errorMessage:\n 'Parameter `{parameterName}` must be a number or a string representing a canonical number (e.g, `\"9999.99\"`), not {parameterType} `{{parameterValue}}`'\n });\n return number;\n}\n\n/**\n * Asserts parameter type of a localized number.\n */\nfunction assertLocalizedNumberType(parameterValue, parameterName) {\n assertType(parameterValue, parameterName, [\"number\", \"string\"], {\n errorMessage:\n 'Parameter `{parameterName}` must be a number or a string representing a localized number (e.g., `\"9,999.99\"` in English or `\"9.999,99\"` in Spanish), not {parameterType} `{{parameterValue}}`'\n });\n}\n\n/**\n * Sets minimumFractionDigits/maximumFractionDigits in options:\n *\n * If either is undefined, currencyDigits is used (if provided)\n * Otherwise, minimumFractionDigits defaults to 0, and maximumFractionDigits defaults to 9\n * And if minimumFractionDigits is greater than maximumFractionDigits,\n * then minimumFractionDigits is reduced to the same level as maximumFractionDigits\n */\nfunction setFractionDigits(options, currencyDigits) {\n // TODO: Use Globalize formatCurrency, which handles currency defaultDigits itself\n if (options.minimumFractionDigits === undefined) {\n options.minimumFractionDigits =\n currencyDigits === undefined ? 0 : currencyDigits;\n }\n if (\n options.maximumFractionDigits === undefined ||\n options.maximumFractionDigits > 9\n ) {\n options.maximumFractionDigits =\n currencyDigits === undefined ? 9 : currencyDigits;\n }\n if (options.minimumFractionDigits > options.maximumFractionDigits) {\n options.minimumFractionDigits = options.maximumFractionDigits;\n }\n return options;\n}\n\nmodule.exports = {\n assertCanonicalNumberType: assertCanonicalNumberType,\n assertCanonicalNumberTypeStrict: assertCanonicalNumberTypeStrict,\n assertLocalizedNumberType: assertLocalizedNumberType,\n setFractionDigits: setFractionDigits\n};\n","\"use strict\";\nmodule.exports = require(\"./lib/client/number\");\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map HTML entities to characters. */\nvar htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n};\n\n/**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\nvar unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\nmodule.exports = unescapeHtmlChar;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","var toString = require('./toString'),\n unescapeHtmlChar = require('./_unescapeHtmlChar');\n\n/** Used to match HTML entities and HTML characters. */\nvar reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source);\n\n/**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n}\n\nmodule.exports = unescape;\n","import FontFaceObserver from 'fontfaceobserver';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _isNaN from 'lodash/isNaN';\nimport React, { Component } from 'react';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport classNames from 'classnames';\n\n/*\n * This has a few utilities we need for the amount field.\n * If only the web supported what we need :-(\n */\n\nvar removeChild = function () {\n var _document$body;\n\n return document && document.body && document.body.removeChild && (_document$body = document.body).removeChild.apply(_document$body, arguments);\n};\n\nvar appendChild = function () {\n var _document$body2;\n\n return document && document.body && document.body.appendChild && (_document$body2 = document.body).appendChild.apply(_document$body2, arguments);\n};\n/**\n * A wrapper around the FontFaceObserver API because the FontFaceObserver is confusing and looks like it's going to do\n * the font loading based on the `load` function name, but it's just checking whether the font has loaded...\n * @param fontFamily - the font family to ensure is loaded\n * @param options - the options object passed to the FontFaceObserver constructor\n * @return a promise that resolves if the font loaded successfully, or rejects if it does not (default timeout is 3\n * seconds)\n */\n\n\nfunction isFontLoaded(fontFamily) {\n return new FontFaceObserver(fontFamily).load().catch(function (err) {\n // eslint-disable-next-line no-console\n console.warn(\"Could not load the font \\\"\".concat(fontFamily, \"\\\"\"));\n throw err;\n });\n}\n/**\n * Takes the entered value in the amount field\n * @param string - value entered in the amount field\n * @returns number - removes any non digits character and only returns numeric entry.\n * \\s is for removing spaces which is part of currency format for certain countries (Norwegian Krone etc.)\n */\n\n\nfunction replaceNonDigits(value) {\n return value && value.replace(/[\\.,٫\\s]/g, '') || '';\n}\n/**\n * Use to format user input. Combines getCurrencyPrecision, replaceNonDigits, calcNewValue, and formatInput because that's\n * used several places.\n * 'USD', '.', '1' -> '0.01'\n * 'JPY', '.', '53' -> '53'\n * 'CAD', ',', '5323' -> '53,23'\n * @param currencyCode the currency code (to get the precision)\n * @param currencyDecimal the decimal separator\n * @param userInput the user input number to format\n * @return the formatted input\n */\n\n\nfunction formatUserCentsInput(currencyCode, currencyDecimal, userInput) {\n var currencyPrecision = getCurrencyPrecision(currencyCode);\n var digitsOnlyValue = replaceNonDigits(userInput);\n var zeroPaddedValue = calcNewValue(currencyPrecision, digitsOnlyValue);\n return formatInput(currencyPrecision, currencyDecimal, zeroPaddedValue);\n}\n/**\n * This function helps catch currencies with different float rules.\n * Generally we display 2 ints past the decimal (i.e $1.25).\n * @param currencyCode - The new currency currencyCode\n * @returns currencyPrecision\n */\n\n\nfunction getCurrencyPrecision(currencyCode) {\n return {\n JPY: true,\n TWD: true,\n HUF: true\n }[currencyCode] ? 0 : 2;\n}\n/**\n * Calculates the amount entered.\n * ex: user enters 1, value will return 0001\n * strips off leading zeroes (returning 1)\n * calculates the total number of zeroes required to be prepended\n * returns 001\n * @param currencyPrecision - returns number of digits and decimal separator i.e. 2 for USD, 0 for JPY\n * @param value - returns the entered value\n * @returns {*}\n */\n\n\nfunction calcNewValue(currencyPrecision, value) {\n var stringValue = value; // strips off leading zeroes\n\n stringValue = stringValue.replace(/^0+/, ''); // calculates number of zeroes required to be prepended based on value length\n\n stringValue = prependWithZeroes(currencyPrecision, stringValue);\n return stringValue;\n}\n/**\n * Formats the input given the raw string value.\n * ex: raw string value returns 001 -> formats to 0.01\n * 012 -> formats to 0.12\n * 123 -> formats to 1.23\n * 1234 -> formats to 1234\n * @param currencyPrecision - number of digits after decimal separator i.e. 2 for USD, 0 for JPY\n * @param currencyDecimal - decimal separator string i.e. '.' for USD, ',' for EURO\n * @param stringVal - unformatted string value entered\n * @returns formattedValue (12.34)\n */\n\n\nfunction formatInput(currencyPrecision, currencyDecimal, stringVal) {\n var formattedValue;\n var sliceDigitsBeforeCurrencyDecimal = '';\n var sliceDigitsAfterCurrencyDecimal = '';\n\n if (currencyPrecision > 0) {\n sliceDigitsBeforeCurrencyDecimal = stringVal.slice(0, stringVal.length - 2);\n sliceDigitsAfterCurrencyDecimal = stringVal.slice(stringVal.length - 2);\n formattedValue = \"\".concat(sliceDigitsBeforeCurrencyDecimal).concat(currencyDecimal).concat(sliceDigitsAfterCurrencyDecimal);\n } else {\n formattedValue = parseInt(stringVal, 10).toString();\n }\n\n return formattedValue;\n}\n/**\n * Prepends the input digit amount with zeroes (\"1\" => \"001\")\n * @param {number} currencyPrecision - returns number of digits and decimal separator i.e. 2 for USD, 0 for JPY\n * @param {string} amount entered value i.e 12\n * @returns {string} formatted value with total number of zeroes prepended\n */\n\n\nfunction prependWithZeroes(currencyPrecision, amount) {\n var numOfZeroesToAdd = Math.max(0, currencyPrecision + 1 - amount.length);\n return '0'.repeat(numOfZeroesToAdd) + amount;\n}\n\n/**\n * updates Font Size on mapping digits entered length\n * @param value - formatted entered input\n * @param currencySymbol - the currency Symbol i.e. '$' for USD\n * @returns {*|number}\n */\nfunction updateFontSize(_ref) {\n var value = _ref.value,\n currencySymbol = _ref.currencySymbol,\n fontSizeMapping = _ref.fontSizeMapping,\n defaultFontSize = _ref.defaultFontSize;\n\n if (!fontSizeMapping) {\n return defaultFontSize || null;\n }\n\n var digitCount = value.replace(/[.,]/g, '').length;\n var currencyCharCount = currencySymbol.length;\n var digitMapping = fontSizeMapping[String(currencyCharCount)] || {};\n return digitMapping[String(digitCount)] || defaultFontSize || null;\n}\n/**\n * Computes the required width size for amount field expansion\n */\n\n\nfunction measureTextSizeWithStyle(_ref2) {\n var fontSize = _ref2.fontSize,\n hostElement = _ref2.hostElement,\n text = _ref2.text;\n // get the computed styles from the element and grab the font-family and font-weight\n // for accurate measurements, with sensible defaults\n var hostElementStyles = hostElement ? window.getComputedStyle(hostElement, null) : {}; // handle `null` as well as `undefined`\n\n var spanElem = document.createElement('span');\n var _hostElementStyles$fo = hostElementStyles.fontWeight,\n fontWeight = _hostElementStyles$fo === void 0 ? '300' : _hostElementStyles$fo,\n fontFamily = hostElementStyles.fontFamily,\n paddingLeft = hostElementStyles.paddingLeft,\n paddingRight = hostElementStyles.paddingRight,\n borderWidth = hostElementStyles.borderWidth;\n fontSize = fontSize || hostElementStyles.fontSize;\n spanElem.style.fontSize = typeof fontSize === 'number' ? \"\".concat(fontSize, \"px\") : fontSize;\n spanElem.style.fontFamily = fontFamily;\n spanElem.style.fontWeight = fontWeight;\n spanElem.style.position = 'fixed';\n spanElem.style.top = '-1000px';\n spanElem.style.left = '-1000px';\n spanElem.innerHTML = text;\n appendChild(spanElem);\n var width = spanElem.clientWidth;\n removeChild(spanElem);\n return (width || 0) + cssMeasurementToNumber(paddingLeft) + cssMeasurementToNumber(paddingRight) + cssMeasurementToNumber(borderWidth) * 2;\n}\n\nfunction cssMeasurementToNumber() {\n var measurement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '0px';\n return Number(measurement.replace(/\\D/g, ''));\n}\n/**\n * This moves the cursor position to the end of the text in the input node in a way\n * that works on iOS\n * @param {HTMLInputElement} node - the input to set the cursor position in\n */\n\n\nfunction moveCursorToTheEnd(node) {\n var length = node.value.length;\n node.setSelectionRange(length, length);\n}\n\n/**\n * This is intended to be used to call all given event handlers.\n * They are executed in order until one of them sets\n * `event.preventPPAmountFieldDefault = true`.\n * @param {Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\nfunction callAllEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventPPAmountFieldDefault;\n });\n };\n}\n/**\n * Function that returns a function which calls all given functions\n * with the given arguments arguments\n */\n\n\nfunction callAll() {\n for (var _len3 = arguments.length, fns = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n fns[_key3] = arguments[_key3];\n }\n\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return fns.filter(Boolean).forEach(function (fn) {\n if (fn) {\n fn.apply(void 0, args);\n }\n });\n };\n}\n/* eslint flowtype/no-weak-types:0 */\n\nvar MAX_AMOUNT_LENGTH = 10;\n\nvar SingleAmountField =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(SingleAmountField, _Component);\n\n function SingleAmountField() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, SingleAmountField);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(SingleAmountField)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"_isMounted\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"_input\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"_select\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"amountWidth\", -1);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"amountFontSize\", -1);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"currencyCodeWidth\", -1);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"formattedValue\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSelectChange\", function (_ref) {\n var currencyCode = _ref.target.value;\n return _this.handleChange({\n currencyCode: currencyCode\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleInputChange\", function (_ref2) {\n var _ref2$target = _ref2.target;\n _ref2$target = _ref2$target === void 0 ? {} : _ref2$target;\n var _ref2$target$value = _ref2$target.value,\n value = _ref2$target$value === void 0 ? '' : _ref2$target$value;\n return _this.handleChange({\n value: value\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"moveCursor\", function () {\n _this._input && moveCursorToTheEnd(_this._input);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getInputProps\", function () {\n var _objectSpread2;\n\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _props$refKey = props.refKey,\n refKey = _props$refKey === void 0 ? 'ref' : _props$refKey,\n ref = props.ref,\n style = props.style,\n onChange = props.onChange,\n onFocus = props.onFocus,\n onClick = props.onClick,\n rest = _objectWithoutProperties(props, [\"refKey\", \"ref\", \"style\", \"onChange\", \"onFocus\", \"onClick\"]);\n\n var inputStyles = {\n width: _this.amountWidth,\n fontSize: _this.amountFontSize\n };\n return _objectSpread({\n value: _this.formattedValue,\n dir: 'ltr',\n autoComplete: 'off',\n type: 'tel',\n autoFocus: !rest.readOnly\n }, rest, (_objectSpread2 = {\n style: _objectSpread({}, inputStyles, style)\n }, _defineProperty(_objectSpread2, refKey, callAll(ref, _this.inputRef)), _defineProperty(_objectSpread2, \"onChange\", callAllEventHandlers(onChange, _this.handleInputChange)), _defineProperty(_objectSpread2, \"onFocus\", callAllEventHandlers(onFocus, _this.moveCursor)), _defineProperty(_objectSpread2, \"onClick\", callAllEventHandlers(onClick, _this.moveCursor)), _objectSpread2));\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"inputRef\", function (el) {\n return _this._input = el;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getSelectProps\", function () {\n var _objectSpread3;\n\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var ref = props.ref,\n _props$refKey2 = props.refKey,\n refKey = _props$refKey2 === void 0 ? 'ref' : _props$refKey2,\n onChange = props.onChange,\n style = props.style,\n rest = _objectWithoutProperties(props, [\"ref\", \"refKey\", \"onChange\", \"style\"]);\n\n return _objectSpread({\n value: _this.props.currencyCode\n }, rest, (_objectSpread3 = {}, _defineProperty(_objectSpread3, refKey, callAll(ref, _this.selectRef)), _defineProperty(_objectSpread3, \"onChange\", callAllEventHandlers(onChange, _this.handleSelectChange)), _defineProperty(_objectSpread3, \"style\", _objectSpread({}, style, {\n width: _this.currencyCodeWidth\n })), _objectSpread3));\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"selectRef\", function (el) {\n return _this._select = el;\n });\n\n return _this;\n }\n\n _createClass(SingleAmountField, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n isFontLoaded(window.getComputedStyle(this._input)['font-family'].split(',')[0].trim()).then(function () {\n // it could have unmounted before this is resolved\n if (_this2._isMounted) {\n // once the font has been confirmed to be loaded, we need to recalculate the width of the input.\n // but we do it in a setTimeout because otherwise sometimes the width calculation was off by 2px.\n // And I have no idea why...\n setTimeout(function () {\n _this2.forceUpdate();\n\n _this2.moveCursor();\n\n _this2.props.onFontLoaded && _this2.props.onFontLoaded();\n }, 50);\n }\n }).catch(function () {// do absolutely nothing\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._isMounted = false;\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\n }, {\n key: \"handleChange\",\n value: function handleChange(_ref3) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? this.props.value : _ref3$value,\n _ref3$currencyCode = _ref3.currencyCode,\n currencyCode = _ref3$currencyCode === void 0 ? this.props.currencyCode : _ref3$currencyCode;\n var cleanValue = replaceNonDigits(value); // convert value to number to remove leading zeros\n\n var numberValue = Number(cleanValue);\n\n if (_isNaN(numberValue) || cleanValue.length >= MAX_AMOUNT_LENGTH) {\n this.props.onInvalidInput();\n return;\n } else if (numberValue === 0) {\n this.props.onChange('', currencyCode);\n return;\n }\n\n var formattedValue = formatUserCentsInput(currencyCode, this.props.currencyDecimal, numberValue.toString());\n\n if (formattedValue !== this.props.value || currencyCode !== this.props.currencyCode) {\n this.props.onChange(formattedValue, currencyCode);\n }\n }\n }, {\n key: \"getStateAndHelpers\",\n value: function getStateAndHelpers() {\n return {\n amountWidth: this.amountWidth,\n currencyCodeWidth: this.currencyCodeWidth,\n amountFontSize: this.amountFontSize,\n getInputProps: this.getInputProps,\n getSelectProps: this.getSelectProps\n };\n }\n }, {\n key: \"makeCalculations\",\n value: function makeCalculations() {\n var _this$props = this.props,\n value = _this$props.value,\n currencyCode = _this$props.currencyCode,\n currencySymbolMap = _this$props.currencySymbolMap,\n fontSizeMapping = _this$props.fontSizeMapping,\n defaultFontSize = _this$props.defaultFontSize;\n var currencySymbol = currencySymbolMap[currencyCode];\n this.formattedValue = this.props.getFormattedValue(value || '0');\n this.amountFontSize = updateFontSize({\n value: this.formattedValue,\n currencySymbol: currencySymbol,\n fontSizeMapping: fontSizeMapping,\n defaultFontSize: defaultFontSize\n });\n this.amountWidth = measureTextSizeWithStyle({\n fontSize: this.amountFontSize,\n hostElement: this._input,\n text: this.formattedValue\n }) + 2; // sadly, firefox and IE both insert a few pixels to the left (or right in\n // the rtl case) of select inputs. This behavior is totally unobservable\n // (so it cannot be part of the width calculation).\n // So we'll add a few pixels to the width in IE and firefox to account\n // for this (as select is the main use case for this anyway).\n\n var ua = navigator.userAgent.toLowerCase();\n var isFirefox = ua.includes('firefox');\n var isIE11 = ua.includes('Trident/7') || !!window.MSInputMethodContext && !!document.documentMode;\n var isIE = ua.includes('msie') || isIE11;\n var extraSpaceToAccountForWeirdBrowserIssues = isFirefox || isIE ? 6 : 0;\n this.currencyCodeWidth = measureTextSizeWithStyle({\n fontSize: null,\n hostElement: this._select,\n text: currencyCode\n }) + extraSpaceToAccountForWeirdBrowserIssues;\n }\n }, {\n key: \"render\",\n value: function render() {\n this.makeCalculations();\n return this.props.children(this.getStateAndHelpers());\n }\n }]);\n\n return SingleAmountField;\n}(Component);\n/* eslint no-unused-expressions:0 */\n\nvar _jsxFileName = \"/Users/kdodds/code/paypal/pp-amount-field/src/basic/index.js\";\n\nvar BasicAmountField =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(BasicAmountField, _React$Component);\n\n function BasicAmountField() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, BasicAmountField);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(BasicAmountField)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"renderTimeoutId\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n showInvalid: false,\n hideCursor: false,\n visible: false\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMouseDown\", function () {\n return _this.setState({\n hideCursor: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMouseUp\", function () {\n return _this.setState({\n hideCursor: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"showInvalid\", function () {\n _this.setState({\n showInvalid: true\n }, function () {\n setTimeout(function () {\n _this.setState({\n showInvalid: false\n });\n }, 300);\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleFontLoaded\", function () {\n // we wait for the font to load and widths to be calculated before showing the input\n // otherwise we run into a flash of unstyled content on refresh.\n // In componentDidMount we have a timeout to ensure that we don't wait any longer than 500ms\n clearTimeout(_this.renderTimeoutId);\n\n _this.setState({\n visible: true\n });\n });\n\n return _this;\n }\n\n _createClass(BasicAmountField, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // this ensures that we don't wait any longer than a half a second to display the input\n this.renderTimeoutId = setTimeout(function () {\n _this2.setState({\n visible: true\n });\n }, 500);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.showInvalid) {\n this.showInvalid();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n _this$props$showConde = _this$props.showCondensedUI,\n showCondensedUI = _this$props$showConde === void 0 ? false : _this$props$showConde,\n _this$props$renderAft = _this$props.renderAfterInput,\n renderAfterInput = _this$props$renderAft === void 0 ? function () {\n return null;\n } : _this$props$renderAft,\n _this$props$arrowProp = _this$props.arrowProps,\n arrowProps = _this$props$arrowProp === void 0 ? {} : _this$props$arrowProp,\n _this$props$className = _this$props.className,\n className = _this$props$className === void 0 ? '' : _this$props$className,\n _this$props$inputProp = _this$props.inputProps,\n inputProps = _this$props$inputProp === void 0 ? {} : _this$props$inputProp,\n _this$props$selectPro = _this$props.selectProps,\n selectProps = _this$props$selectPro === void 0 ? {} : _this$props$selectPro,\n fontFamily = _this$props.fontFamily,\n forwardToAmountField = _objectWithoutProperties(_this$props, [\"showCondensedUI\", \"renderAfterInput\", \"arrowProps\", \"className\", \"inputProps\", \"selectProps\", \"fontFamily\"]);\n\n var _this$state = this.state,\n showInvalid = _this$state.showInvalid,\n visible = _this$state.visible,\n hideCursor = _this$state.hideCursor; // stuff we forward on, but also want to reference in this function\n\n var currencySymbolMap = forwardToAmountField.currencySymbolMap,\n currencyCode = forwardToAmountField.currencyCode;\n var currencyCodeList = [];\n\n if (this.props.currencyCodeList && this.props.currencyCodeList.length) {\n currencyCodeList = this.props.currencyCodeList;\n } else {\n currencyCodeList = Object.keys(currencySymbolMap);\n }\n\n return React.createElement(SingleAmountField, _extends({}, forwardToAmountField, {\n onFontLoaded: this.handleFontLoaded,\n onInvalidInput: callAll(this.props.onInvalidInput, this.showInvalid),\n __source: {\n fileName: _jsxFileName,\n lineNumber: 103\n },\n __self: this\n }), function (_ref) {\n var currencyCodeWidth = _ref.currencyCodeWidth,\n getSelectProps = _ref.getSelectProps,\n getInputProps = _ref.getInputProps;\n var currencySymbol = currencySymbolMap[currencyCode];\n var inputWrapperClasses = classNames('ppaf-input-wrapper', {\n 'ppaf-shake': showInvalid\n });\n var currencySymbolClassNames = classNames('ppaf-currency-symbol', showInvalid && 'ppaf-is-invalid');\n var inputClassNames = classNames('ppaf-input', hideCursor && 'ppaf-with-hidden-cursor', inputProps.readOnly && 'ppaf-read-only', // overrides cursor to default\n showInvalid && 'ppaf-is-invalid');\n var dropdownWrapperClassNames = classNames('ppaf-select-wrapper', showCondensedUI && 'ppaf-condensed', selectProps.disabled && 'ppaf-read-only' // overrides color to input default (black)\n );\n var dropdownClassNames = classNames('ppaf-select', selectProps.disabled && 'ppaf-read-only' // overrides cursor to default\n );\n return React.createElement(\"div\", {\n className: \"pp-amount-field \".concat(className || ''),\n style: {\n visibility: visible ? 'visible' : 'hidden'\n },\n __source: {\n fileName: _jsxFileName,\n lineNumber: 139\n },\n __self: this\n }, React.createElement(\"div\", {\n className: inputWrapperClasses,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 143\n },\n __self: this\n }, React.createElement(\"div\", {\n className: currencySymbolClassNames,\n style: {\n color: inputProps.style ? inputProps.style.color : null,\n fontFamily: fontFamily\n },\n __source: {\n fileName: _jsxFileName,\n lineNumber: 144\n },\n __self: this\n }, currencySymbol), React.createElement(\"input\", _extends({}, getInputProps(_objectSpread({\n name: 'amount',\n required: true,\n className: inputClassNames\n }, inputProps, {\n style: _objectSpread({\n fontFamily: fontFamily\n }, inputProps.style),\n onMouseDown: callAllEventHandlers(inputProps.onMouseDown, _this3.handleMouseDown),\n onMouseUp: callAllEventHandlers(inputProps.onMouseUp, _this3.handleMouseUp)\n })), {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 153\n },\n __self: this\n })), renderAfterInput(_this3.props)), currencyCodeList.length ? React.createElement(\"div\", {\n className: dropdownWrapperClassNames,\n style: {\n width: currencyCodeWidth,\n color: selectProps.style ? selectProps.style.color : null\n },\n __source: {\n fileName: _jsxFileName,\n lineNumber: 176\n },\n __self: this\n }, React.createElement(\"select\", _extends({}, getSelectProps(_objectSpread({\n name: 'currencies',\n className: dropdownClassNames\n }, selectProps, {\n style: _objectSpread({\n fontFamily: fontFamily\n }, selectProps.style)\n })), {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 183\n },\n __self: this\n }), currencyCodeList.map(function (code) {\n return React.createElement(\"option\", {\n key: code,\n value: code,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 195\n },\n __self: this\n }, code);\n })), !selectProps.disabled && React.createElement(ArrowIcon, _extends({}, arrowProps, {\n style: _objectSpread({\n left: (currencyCodeWidth || 0) - 20\n }, arrowProps.style),\n __source: {\n fileName: _jsxFileName,\n lineNumber: 202\n },\n __self: this\n }))) : null);\n });\n }\n }]);\n\n return BasicAmountField;\n}(React.Component);\n\nfunction ArrowIcon(props) {\n return React.createElement(\"svg\", _extends({\n className: \"ppaf-select-arrow\",\n viewBox: \"0 0 20 20\",\n preserveAspectRatio: \"none\",\n width: 14,\n height: 16,\n fill: \"transparent\",\n stroke: \"currentColor\",\n strokeWidth: \"2px\"\n }, props, {\n style: _objectSpread({\n paddingBottom: 2\n }, props.style),\n __source: {\n fileName: _jsxFileName,\n lineNumber: 222\n },\n __self: this\n }), React.createElement(\"path\", {\n d: \"M1,6 L10,15 L19,6\",\n __source: {\n fileName: _jsxFileName,\n lineNumber: 234\n },\n __self: this\n }));\n}\n\nvar _jsxFileName$1 = \"/Users/kdodds/code/paypal/pp-amount-field/src/basic/amount-field-with-css.js\";\n\nvar AmountFieldWithCSS =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(AmountFieldWithCSS, _React$Component);\n\n function AmountFieldWithCSS() {\n _classCallCheck(this, AmountFieldWithCSS);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(AmountFieldWithCSS).apply(this, arguments));\n }\n\n _createClass(AmountFieldWithCSS, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n version = _this$props.version,\n stylesString = _this$props.stylesString;\n var stylesId = \"amount-field-basic-v\".concat(version);\n\n if (document.head && !document.head.querySelector(\"#\".concat(stylesId))) {\n var styles = document.createElement('style');\n styles.id = stylesId;\n styles.append(stylesString);\n document.head && document.head.appendChild(styles);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(BasicAmountField, _extends({\n className: \"basic-v\".concat(this.props.version)\n }, this.props, {\n __source: {\n fileName: _jsxFileName$1,\n lineNumber: 31\n },\n __self: this\n }));\n }\n }]);\n\n return AmountFieldWithCSS;\n}(React.Component);\n/* eslint no-unused-expressions:0 */\n\nvar _jsxFileName$2 = \"/Users/kdodds/code/paypal/pp-amount-field/src/basic/v3.js\";\nvar stylesString = \".pp-amount-field .ppaf-input-wrapper{display:flex;justify-content:center}[dir=ltr] .pp-amount-field .ppaf-input-wrapper.ppaf-shake{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:ppaf-shake-ltr;animation-name:ppaf-shake-ltr}[dir=rtl] .pp-amount-field .ppaf-input-wrapper.ppaf-shake{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:ppaf-shake-rtl;animation-name:ppaf-shake-rtl}@-webkit-keyframes ppaf-shake-ltr{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes ppaf-shake-ltr{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@-webkit-keyframes ppaf-shake-rtl{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}}@keyframes ppaf-shake-rtl{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}}.pp-amount-field .ppaf-currency-symbol{color:#2c2e2f;font-weight:300;font-family:PayPal-Sans-Big,sans-serif;display:inline-block;vertical-align:top}[dir=ltr] .pp-amount-field .ppaf-currency-symbol{text-align:right}[dir=rtl] .pp-amount-field .ppaf-currency-symbol{text-align:left}.pp-amount-field .ppaf-input{color:#2c2e2f;text-overflow:clip;outline:0;letter-spacing:normal;line-height:1.4;font-weight:300;text-transform:none;font-family:PayPal-Sans-Big,sans-serif}[dir] .pp-amount-field .ppaf-input{background:0 0;border:none;text-align:center;padding:0;margin:0;cursor:pointer}.pp-amount-field .ppaf-input.ppaf-with-hidden-cursor{color:transparent}[dir] .pp-amount-field .ppaf-input.ppaf-with-hidden-cursor{text-shadow:#2c2e2f 0 0 0}[dir] .pp-amount-field .ppaf-input.ppaf-read-only{cursor:default}.pp-amount-field .ppaf-select-wrapper{position:relative}[dir=ltr] .pp-amount-field .ppaf-select-wrapper{margin-left:auto;margin-right:auto}[dir=rtl] .pp-amount-field .ppaf-select-wrapper{margin-right:auto;margin-left:auto}[dir] .pp-amount-field .ppaf-select-wrapper.ppaf-condensed{margin-top:0;margin-bottom:0}.pp-amount-field .ppaf-select{font-size:20px;position:absolute;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-top:4px;font-weight:700;padding-right:20px;padding-bottom:4px;padding-left:2px;background-color:transparent;color:inherit;top:0;left:-2px;z-index:2;cursor:pointer;font-family:PayPal-Sans-Big,sans-serif}.pp-amount-field .ppaf-select::-ms-expand{display:none}[dir] .pp-amount-field .ppaf-select.ppaf-read-only{cursor:default}.pp-amount-field .ppaf-select-arrow{position:absolute;z-index:1}.pp-amount-field .ppaf-first-time-user-tooltip-wrapper{line-height:77px}.pp-amount-field .ppaf-tooltip{font-size:24px;position:relative;color:#0070ba}[dir] .pp-amount-field .ppaf-tooltip{cursor:pointer}[dir=ltr] .pp-amount-field .ppaf-tooltip{margin-left:5px}[dir=rtl] .pp-amount-field .ppaf-tooltip{margin-right:5px}.pp-amount-field .ppaf-is-invalid{color:#d20000}\" + '\\n' + \".pp-amount-field.basic-v3 .ppaf-input{line-height:1.2}.pp-amount-field.basic-v3 .ppaf-currency-symbol{font-size:32px}[dir=ltr] .pp-amount-field.basic-v3 .ppaf-currency-symbol{margin-right:6px}[dir=rtl] .pp-amount-field.basic-v3 .ppaf-currency-symbol{margin-left:6px}.pp-amount-field.basic-v3 .ppaf-select-wrapper{height:24px}.pp-amount-field.basic-v3 .ppaf-select{border:0;font-size:14px;padding-left:8px;font-weight:300}.pp-amount-field.basic-v3 .ppaf-select-arrow{top:6px}[dir] .pp-amount-field.basic-v3 .ppaf-select-arrow{padding-bottom:2px}\";\nvar defaultFontSize = 60;\nvar fontSizeMapping = {\n '0': {\n '8': 57\n },\n '1': {\n '7': 57,\n '8': 51,\n '9': 47,\n '10': 45\n },\n '2': {\n '7': 53,\n '8': 49,\n '9': 46,\n '10': 44\n },\n '3': {\n '6': 53,\n '7': 47,\n '8': 42,\n '9': 40,\n '10': 38\n },\n '4': {\n '6': 53,\n '7': 47,\n '8': 42,\n '9': 40,\n '10': 38\n }\n};\n\nfunction V1AmountField(props) {\n return React.createElement(AmountFieldWithCSS, _extends({\n version: \"3\",\n stylesString: stylesString,\n fontSizeMapping: fontSizeMapping,\n defaultFontSize: defaultFontSize,\n arrowHeight: 12,\n arrowWidth: 12,\n arrowProps: {\n strokeWidth: '1px',\n width: 10,\n height: 12\n },\n fontFamily: \"'PayPal-Sans-Big', sans-serif\"\n }, props, {\n __source: {\n fileName: _jsxFileName$2,\n lineNumber: 25\n },\n __self: this\n }));\n}\n\nexport default V1AmountField;\n","// this allows people to: `import V3AmountField from 'pp-amount-field/basic/v3'`\nexport * from '../dist/pp-amount-field.basic.v3.esm'\nexport { default } from '../dist/pp-amount-field.basic.v3.esm'\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n function CopyToClipboard() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"text\", \"onCopy\", \"options\", \"children\"]);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return _react[\"default\"].cloneElement(elem, _objectSpread({}, props, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport { createLocation } from \"history\";\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n/**\n * The public API for rendering a history-aware .\n */\n\nvar Link = function (_React$Component) {\n _inherits(Link, _React$Component);\n\n function Link() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Link);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {\n if (_this.props.onClick) _this.props.onClick(event);\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n !_this.props.target && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n var history = _this.context.router.history;\n var _this$props = _this.props,\n replace = _this$props.replace,\n to = _this$props.to;\n\n\n if (replace) {\n history.replace(to);\n } else {\n history.push(to);\n }\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Link.prototype.render = function render() {\n var _props = this.props,\n replace = _props.replace,\n to = _props.to,\n innerRef = _props.innerRef,\n props = _objectWithoutProperties(_props, [\"replace\", \"to\", \"innerRef\"]); // eslint-disable-line no-unused-vars\n\n invariant(this.context.router, \"You should not use outside a \");\n\n invariant(to !== undefined, 'You must specify the \"to\" property');\n\n var history = this.context.router.history;\n\n var location = typeof to === \"string\" ? createLocation(to, null, null, history.location) : to;\n\n var href = history.createHref(location);\n return React.createElement(\"a\", _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));\n };\n\n return Link;\n}(React.Component);\n\nLink.propTypes = {\n onClick: PropTypes.func,\n target: PropTypes.string,\n replace: PropTypes.bool,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n innerRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func])\n};\nLink.defaultProps = {\n replace: false\n};\nLink.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired,\n replace: PropTypes.func.isRequired,\n createHref: PropTypes.func.isRequired\n }).isRequired\n }).isRequired\n};\n\n\nexport default Link;","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _TransitionGroup = require('./TransitionGroup');\n\nvar _TransitionGroup2 = _interopRequireDefault(_TransitionGroup);\n\nvar _CSSTransitionGroupChild = require('./CSSTransitionGroupChild');\n\nvar _CSSTransitionGroupChild2 = _interopRequireDefault(_CSSTransitionGroupChild);\n\nvar _PropTypes = require('./utils/PropTypes');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = {\n transitionName: _PropTypes.nameShape.isRequired,\n\n transitionAppear: _propTypes2.default.bool,\n transitionEnter: _propTypes2.default.bool,\n transitionLeave: _propTypes2.default.bool,\n transitionAppearTimeout: (0, _PropTypes.transitionTimeout)('Appear'),\n transitionEnterTimeout: (0, _PropTypes.transitionTimeout)('Enter'),\n transitionLeaveTimeout: (0, _PropTypes.transitionTimeout)('Leave')\n};\n\nvar defaultProps = {\n transitionAppear: false,\n transitionEnter: true,\n transitionLeave: true\n};\n\nvar CSSTransitionGroup = function (_React$Component) {\n _inherits(CSSTransitionGroup, _React$Component);\n\n function CSSTransitionGroup() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, CSSTransitionGroup);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._wrapChild = function (child) {\n return _react2.default.createElement(_CSSTransitionGroupChild2.default, {\n name: _this.props.transitionName,\n appear: _this.props.transitionAppear,\n enter: _this.props.transitionEnter,\n leave: _this.props.transitionLeave,\n appearTimeout: _this.props.transitionAppearTimeout,\n enterTimeout: _this.props.transitionEnterTimeout,\n leaveTimeout: _this.props.transitionLeaveTimeout\n }, child);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n // We need to provide this childFactory so that\n // ReactCSSTransitionGroupChild can receive updates to name, enter, and\n // leave while it is leaving.\n\n\n CSSTransitionGroup.prototype.render = function render() {\n return _react2.default.createElement(_TransitionGroup2.default, _extends({}, this.props, { childFactory: this._wrapChild }));\n };\n\n return CSSTransitionGroup;\n}(_react2.default.Component);\n\nCSSTransitionGroup.displayName = 'CSSTransitionGroup';\n\n\nCSSTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nCSSTransitionGroup.defaultProps = defaultProps;\n\nexports.default = CSSTransitionGroup;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _addClass = require('dom-helpers/class/addClass');\n\nvar _addClass2 = _interopRequireDefault(_addClass);\n\nvar _removeClass = require('dom-helpers/class/removeClass');\n\nvar _removeClass2 = _interopRequireDefault(_removeClass);\n\nvar _requestAnimationFrame = require('dom-helpers/util/requestAnimationFrame');\n\nvar _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame);\n\nvar _properties = require('dom-helpers/transition/properties');\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactDom = require('react-dom');\n\nvar _PropTypes = require('./utils/PropTypes');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar events = [];\nif (_properties.transitionEnd) events.push(_properties.transitionEnd);\nif (_properties.animationEnd) events.push(_properties.animationEnd);\n\nfunction addEndListener(node, listener) {\n if (events.length) {\n events.forEach(function (e) {\n return node.addEventListener(e, listener, false);\n });\n } else {\n setTimeout(listener, 0);\n }\n\n return function () {\n if (!events.length) return;\n events.forEach(function (e) {\n return node.removeEventListener(e, listener, false);\n });\n };\n}\n\nvar propTypes = {\n children: _propTypes2.default.node,\n name: _PropTypes.nameShape.isRequired,\n\n // Once we require timeouts to be specified, we can remove the\n // boolean flags (appear etc.) and just accept a number\n // or a bool for the timeout flags (appearTimeout etc.)\n appear: _propTypes2.default.bool,\n enter: _propTypes2.default.bool,\n leave: _propTypes2.default.bool,\n appearTimeout: _propTypes2.default.number,\n enterTimeout: _propTypes2.default.number,\n leaveTimeout: _propTypes2.default.number\n};\n\nvar CSSTransitionGroupChild = function (_React$Component) {\n _inherits(CSSTransitionGroupChild, _React$Component);\n\n function CSSTransitionGroupChild() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, CSSTransitionGroupChild);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.componentWillAppear = function (done) {\n if (_this.props.appear) {\n _this.transition('appear', done, _this.props.appearTimeout);\n } else {\n done();\n }\n }, _this.componentWillEnter = function (done) {\n if (_this.props.enter) {\n _this.transition('enter', done, _this.props.enterTimeout);\n } else {\n done();\n }\n }, _this.componentWillLeave = function (done) {\n if (_this.props.leave) {\n _this.transition('leave', done, _this.props.leaveTimeout);\n } else {\n done();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n CSSTransitionGroupChild.prototype.componentWillMount = function componentWillMount() {\n this.classNameAndNodeQueue = [];\n this.transitionTimeouts = [];\n };\n\n CSSTransitionGroupChild.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounted = true;\n\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.transitionTimeouts.forEach(function (timeout) {\n clearTimeout(timeout);\n });\n\n this.classNameAndNodeQueue.length = 0;\n };\n\n CSSTransitionGroupChild.prototype.transition = function transition(animationType, finishCallback, timeout) {\n var node = (0, _reactDom.findDOMNode)(this);\n\n if (!node) {\n if (finishCallback) {\n finishCallback();\n }\n return;\n }\n\n var className = this.props.name[animationType] || this.props.name + '-' + animationType;\n var activeClassName = this.props.name[animationType + 'Active'] || className + '-active';\n var timer = null;\n var removeListeners = void 0;\n\n (0, _addClass2.default)(node, className);\n\n // Need to do this to actually trigger a transition.\n this.queueClassAndNode(activeClassName, node);\n\n // Clean-up the animation after the specified delay\n var finish = function finish(e) {\n if (e && e.target !== node) {\n return;\n }\n\n clearTimeout(timer);\n if (removeListeners) removeListeners();\n\n (0, _removeClass2.default)(node, className);\n (0, _removeClass2.default)(node, activeClassName);\n\n if (removeListeners) removeListeners();\n\n // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (finishCallback) {\n finishCallback();\n }\n };\n\n if (timeout) {\n timer = setTimeout(finish, timeout);\n this.transitionTimeouts.push(timer);\n } else if (_properties.transitionEnd) {\n removeListeners = addEndListener(node, finish);\n }\n };\n\n CSSTransitionGroupChild.prototype.queueClassAndNode = function queueClassAndNode(className, node) {\n var _this2 = this;\n\n this.classNameAndNodeQueue.push({\n className: className,\n node: node\n });\n\n if (!this.rafHandle) {\n this.rafHandle = (0, _requestAnimationFrame2.default)(function () {\n return _this2.flushClassNameAndNodeQueue();\n });\n }\n };\n\n CSSTransitionGroupChild.prototype.flushClassNameAndNodeQueue = function flushClassNameAndNodeQueue() {\n if (!this.unmounted) {\n this.classNameAndNodeQueue.forEach(function (obj) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n /* eslint-disable no-unused-expressions */\n obj.node.scrollTop;\n /* eslint-enable no-unused-expressions */\n (0, _addClass2.default)(obj.node, obj.className);\n });\n }\n this.classNameAndNodeQueue.length = 0;\n this.rafHandle = null;\n };\n\n CSSTransitionGroupChild.prototype.render = function render() {\n var props = _extends({}, this.props);\n delete props.name;\n delete props.appear;\n delete props.enter;\n delete props.leave;\n delete props.appearTimeout;\n delete props.enterTimeout;\n delete props.leaveTimeout;\n delete props.children;\n return _react2.default.cloneElement(_react2.default.Children.only(this.props.children), props);\n };\n\n return CSSTransitionGroupChild;\n}(_react2.default.Component);\n\nCSSTransitionGroupChild.displayName = 'CSSTransitionGroupChild';\n\n\nCSSTransitionGroupChild.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\n\nexports.default = CSSTransitionGroupChild;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _chainFunction = require('chain-function');\n\nvar _chainFunction2 = _interopRequireDefault(_chainFunction);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _ChildMapping = require('./utils/ChildMapping');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = {\n component: _propTypes2.default.any,\n childFactory: _propTypes2.default.func,\n children: _propTypes2.default.node\n};\n\nvar defaultProps = {\n component: 'span',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n\nvar TransitionGroup = function (_React$Component) {\n _inherits(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n _classCallCheck(this, TransitionGroup);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.performAppear = function (key, component) {\n _this.currentlyTransitioningKeys[key] = true;\n\n if (component.componentWillAppear) {\n component.componentWillAppear(_this._handleDoneAppearing.bind(_this, key, component));\n } else {\n _this._handleDoneAppearing(key, component);\n }\n };\n\n _this._handleDoneAppearing = function (key, component) {\n if (component.componentDidAppear) {\n component.componentDidAppear();\n }\n\n delete _this.currentlyTransitioningKeys[key];\n\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);\n\n if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n // This was removed before it had fully appeared. Remove it.\n _this.performLeave(key, component);\n }\n };\n\n _this.performEnter = function (key, component) {\n _this.currentlyTransitioningKeys[key] = true;\n\n if (component.componentWillEnter) {\n component.componentWillEnter(_this._handleDoneEntering.bind(_this, key, component));\n } else {\n _this._handleDoneEntering(key, component);\n }\n };\n\n _this._handleDoneEntering = function (key, component) {\n if (component.componentDidEnter) {\n component.componentDidEnter();\n }\n\n delete _this.currentlyTransitioningKeys[key];\n\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);\n\n if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n // This was removed before it had fully entered. Remove it.\n _this.performLeave(key, component);\n }\n };\n\n _this.performLeave = function (key, component) {\n _this.currentlyTransitioningKeys[key] = true;\n\n if (component.componentWillLeave) {\n component.componentWillLeave(_this._handleDoneLeaving.bind(_this, key, component));\n } else {\n // Note that this is somewhat dangerous b/c it calls setState()\n // again, effectively mutating the component before all the work\n // is done.\n _this._handleDoneLeaving(key, component);\n }\n };\n\n _this._handleDoneLeaving = function (key, component) {\n if (component.componentDidLeave) {\n component.componentDidLeave();\n }\n\n delete _this.currentlyTransitioningKeys[key];\n\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);\n\n if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) {\n // This entered again before it fully left. Add it again.\n _this.keysToEnter.push(key);\n } else {\n _this.setState(function (state) {\n var newChildren = _extends({}, state.children);\n delete newChildren[key];\n return { children: newChildren };\n });\n }\n };\n\n _this.childRefs = Object.create(null);\n\n _this.state = {\n children: (0, _ChildMapping.getChildMapping)(props.children)\n };\n return _this;\n }\n\n TransitionGroup.prototype.componentWillMount = function componentWillMount() {\n this.currentlyTransitioningKeys = {};\n this.keysToEnter = [];\n this.keysToLeave = [];\n };\n\n TransitionGroup.prototype.componentDidMount = function componentDidMount() {\n var initialChildMapping = this.state.children;\n for (var key in initialChildMapping) {\n if (initialChildMapping[key]) {\n this.performAppear(key, this.childRefs[key]);\n }\n }\n };\n\n TransitionGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var nextChildMapping = (0, _ChildMapping.getChildMapping)(nextProps.children);\n var prevChildMapping = this.state.children;\n\n this.setState({\n children: (0, _ChildMapping.mergeChildMappings)(prevChildMapping, nextChildMapping)\n });\n\n for (var key in nextChildMapping) {\n var hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key);\n if (nextChildMapping[key] && !hasPrev && !this.currentlyTransitioningKeys[key]) {\n this.keysToEnter.push(key);\n }\n }\n\n for (var _key in prevChildMapping) {\n var hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(_key);\n if (prevChildMapping[_key] && !hasNext && !this.currentlyTransitioningKeys[_key]) {\n this.keysToLeave.push(_key);\n }\n }\n\n // If we want to someday check for reordering, we could do it here.\n };\n\n TransitionGroup.prototype.componentDidUpdate = function componentDidUpdate() {\n var _this2 = this;\n\n var keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(function (key) {\n return _this2.performEnter(key, _this2.childRefs[key]);\n });\n\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(function (key) {\n return _this2.performLeave(key, _this2.childRefs[key]);\n });\n };\n\n TransitionGroup.prototype.render = function render() {\n var _this3 = this;\n\n // TODO: we could get rid of the need for the wrapper node\n // by cloning a single child\n var childrenToRender = [];\n\n var _loop = function _loop(key) {\n var child = _this3.state.children[key];\n if (child) {\n var isCallbackRef = typeof child.ref !== 'string';\n var factoryChild = _this3.props.childFactory(child);\n var ref = function ref(r) {\n _this3.childRefs[key] = r;\n };\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(isCallbackRef, 'string refs are not supported on children of TransitionGroup and will be ignored. ' + 'Please use a callback ref instead: https://facebook.github.io/react/docs/refs-and-the-dom.html#the-ref-callback-attribute') : void 0;\n\n // Always chaining the refs leads to problems when the childFactory\n // wraps the child. The child ref callback gets called twice with the\n // wrapper and the child. So we only need to chain the ref if the\n // factoryChild is not different from child.\n if (factoryChild === child && isCallbackRef) {\n ref = (0, _chainFunction2.default)(child.ref, ref);\n }\n\n // You may need to apply reactive updates to a child as it is leaving.\n // The normal React way to do it won't work since the child will have\n // already been removed. In case you need this behavior you can provide\n // a childFactory function to wrap every child, even the ones that are\n // leaving.\n childrenToRender.push(_react2.default.cloneElement(factoryChild, {\n key: key,\n ref: ref\n }));\n }\n };\n\n for (var key in this.state.children) {\n _loop(key);\n }\n\n // Do not forward TransitionGroup props to primitive DOM nodes\n var props = _extends({}, this.props);\n delete props.transitionLeave;\n delete props.transitionName;\n delete props.transitionAppear;\n delete props.transitionEnter;\n delete props.childFactory;\n delete props.transitionLeaveTimeout;\n delete props.transitionEnterTimeout;\n delete props.transitionAppearTimeout;\n delete props.component;\n\n return _react2.default.createElement(this.props.component, props, childrenToRender);\n };\n\n return TransitionGroup;\n}(_react2.default.Component);\n\nTransitionGroup.displayName = 'TransitionGroup';\n\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nTransitionGroup.defaultProps = defaultProps;\n\nexports.default = TransitionGroup;\nmodule.exports = exports['default'];","'use strict';\n\nvar _CSSTransitionGroup = require('./CSSTransitionGroup');\n\nvar _CSSTransitionGroup2 = _interopRequireDefault(_CSSTransitionGroup);\n\nvar _TransitionGroup = require('./TransitionGroup');\n\nvar _TransitionGroup2 = _interopRequireDefault(_TransitionGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n TransitionGroup: _TransitionGroup2.default,\n CSSTransitionGroup: _CSSTransitionGroup2.default\n};","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\n\nvar _react = require('react');\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children) {\n if (!children) {\n return children;\n }\n var result = {};\n _react.Children.map(children, function (child) {\n return child;\n }).forEach(function (child) {\n result[child.key] = child;\n });\n return result;\n}\n\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n if (next.hasOwnProperty(key)) {\n return next[key];\n }\n\n return prev[key];\n }\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextKeysPending = {};\n\n var pendingKeys = [];\n for (var prevKey in prev) {\n if (next.hasOwnProperty(prevKey)) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i = void 0;\n var childMapping = {};\n for (var nextKey in next) {\n if (nextKeysPending.hasOwnProperty(nextKey)) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n childMapping[nextKey] = getValueForKey(nextKey);\n }\n\n // Finally, add the keys which didn't appear before any key in `next`\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}","'use strict';\n\nexports.__esModule = true;\nexports.nameShape = undefined;\nexports.transitionTimeout = transitionTimeout;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction transitionTimeout(transitionType) {\n var timeoutPropName = 'transition' + transitionType + 'Timeout';\n var enabledPropName = 'transition' + transitionType;\n\n return function (props) {\n // If the transition is enabled\n if (props[enabledPropName]) {\n // If no timeout duration is provided\n if (props[timeoutPropName] == null) {\n return new Error(timeoutPropName + ' wasn\\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.');\n\n // If the duration isn't a number\n } else if (typeof props[timeoutPropName] !== 'number') {\n return new Error(timeoutPropName + ' must be a number (in milliseconds)');\n }\n }\n\n return null;\n };\n}\n\nvar nameShape = exports.nameShape = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n enter: _propTypes2.default.string,\n leave: _propTypes2.default.string,\n active: _propTypes2.default.string\n}), _propTypes2.default.shape({\n enter: _propTypes2.default.string,\n enterActive: _propTypes2.default.string,\n leave: _propTypes2.default.string,\n leaveActive: _propTypes2.default.string,\n appear: _propTypes2.default.string,\n appearActive: _propTypes2.default.string\n})]);","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"sourceRoot":""}