{"version":3,"file":"static/js/main.254e5faf.js","mappings":"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","sources":["../node_modules/countries-list/dist/index.es5.min.js","../node_modules/object-assign/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-phone-input-2/lib/lib.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/posthog-js/src/config.ts","../node_modules/posthog-js/src/utils/type-utils.ts","../node_modules/posthog-js/src/utils/globals.ts","../node_modules/posthog-js/src/utils/logger.ts","../node_modules/posthog-js/src/utils/index.ts","../node_modules/posthog-js/src/types.ts","../node_modules/posthog-js/src/constants.ts","../node_modules/posthog-js/src/posthog-featureflags.ts","../node_modules/posthog-js/src/uuidv7.ts","../node_modules/posthog-js/src/storage.ts","../node_modules/posthog-js/src/utils/request-utils.ts","../node_modules/posthog-js/src/utils/user-agent-utils.ts","../node_modules/posthog-js/src/utils/event-utils.ts","../node_modules/posthog-js/src/posthog-persistence.ts","../node_modules/posthog-js/src/extensions/replay/sessionrecording-utils.ts","../node_modules/posthog-js/node_modules/.pnpm/@rrweb+types@2.0.0-alpha.13/node_modules/@rrweb/types/dist/types.js","../node_modules/posthog-js/src/autocapture-utils.ts","../node_modules/posthog-js/src/extensions/replay/config.ts","../node_modules/posthog-js/src/extensions/toolbar.ts","../node_modules/posthog-js/src/extensions/replay/mutation-rate-limiter.ts","../node_modules/posthog-js/src/extensions/replay/sessionrecording.ts","../node_modules/posthog-js/src/decide.ts","../node_modules/posthog-js/src/request-queue.ts","../node_modules/posthog-js/node_modules/.pnpm/fflate@0.4.8/node_modules/fflate/esm/browser.js","../node_modules/posthog-js/src/request.ts","../node_modules/posthog-js/src/utils/request-router.ts","../node_modules/posthog-js/src/retry-queue.ts","../node_modules/posthog-js/src/sessionid.ts","../node_modules/posthog-js/src/extensions/exception-autocapture/index.ts","../node_modules/posthog-js/src/extensions/sentry-integration.ts","../node_modules/posthog-js/src/page-view.ts","../node_modules/posthog-js/src/posthog-surveys-types.ts","../node_modules/posthog-js/src/utils/simple-event-emitter.ts","../node_modules/posthog-js/src/extensions/surveys/action-matcher.ts","../node_modules/posthog-js/src/utils/survey-event-receiver.ts","../node_modules/posthog-js/src/posthog-surveys.ts","../node_modules/posthog-js/src/rate-limiter.ts","../node_modules/posthog-js/src/session-props.ts","../node_modules/posthog-js/src/utils/blocked-uas.ts","../node_modules/posthog-js/src/extensions/rageclick.ts","../node_modules/posthog-js/src/heatmaps.ts","../node_modules/posthog-js/src/scroll-manager.ts","../node_modules/posthog-js/src/autocapture.ts","../node_modules/posthog-js/src/consent.ts","../node_modules/posthog-js/src/extensions/tracing-headers.ts","../node_modules/posthog-js/src/extensions/web-vitals/index.ts","../node_modules/posthog-js/src/posthog-core.ts","../node_modules/posthog-js/src/extensions/segment-integration.ts","../node_modules/posthog-js/src/entrypoints/module.es.ts","../node_modules/posthog-js/react/dist/esm/index.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","webpack://paylink/./src/App.module.css?42a9","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","webpack://paylink/./src/styles/Form.module.css?319a","assets/icons/logo-light.svg","components/FormInput/index.jsx","assets/icons/dropdown.svg","components/CurrencySelect/index.jsx","components/CurrencySelect/PayingCurrency.jsx","components/FormPhone/index.jsx","components/Form/index.jsx","../node_modules/react-hook-form/src/useForm.ts","utils/env.js","webpack://paylink/./src/styles/PaymentSuccessful.module.css?f434","assets/icons/Feeback-Message-success.svg","components/PaymentSuccessFul/index.jsx","webpack://paylink/./src/components/InvalidToken/InvalidToken.module.css?cfb5","assets/icons/Feeback-Message-fail.svg","components/InvalidToken/index.jsx","libs/klasha-script.js","libs/klasha-actions.js","libs/use-klasha.js","assets/icons/loadericon.svg","assets/icons/logo.svg","App.js","reportWebVitals.js","index.js"],"sourcesContent":["/*! countries-list v2.6.1 by Annexare | MIT */\n!function(n,a){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=a():\"function\"==typeof define&&define.amd?define(\"Countries\",a):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).Countries=a()}(this,(function(){\"use strict\";var n={AF:\"Africa\",AN:\"Antarctica\",AS:\"Asia\",EU:\"Europe\",NA:\"North America\",OC:\"Oceania\",SA:\"South America\"},a={AD:{name:\"Andorra\",native:\"Andorra\",phone:\"376\",continent:\"EU\",capital:\"Andorra la Vella\",currency:\"EUR\",languages:[\"ca\"],emoji:\"🇦🇩\",emojiU:\"U+1F1E6 U+1F1E9\"},AE:{name:\"United Arab Emirates\",native:\"دولة الإمارات العربية المتحدة\",phone:\"971\",continent:\"AS\",capital:\"Abu Dhabi\",currency:\"AED\",languages:[\"ar\"],emoji:\"🇦🇪\",emojiU:\"U+1F1E6 U+1F1EA\"},AF:{name:\"Afghanistan\",native:\"افغانستان\",phone:\"93\",continent:\"AS\",capital:\"Kabul\",currency:\"AFN\",languages:[\"ps\",\"uz\",\"tk\"],emoji:\"🇦🇫\",emojiU:\"U+1F1E6 U+1F1EB\"},AG:{name:\"Antigua and Barbuda\",native:\"Antigua and Barbuda\",phone:\"1268\",continent:\"NA\",capital:\"Saint John's\",currency:\"XCD\",languages:[\"en\"],emoji:\"🇦🇬\",emojiU:\"U+1F1E6 U+1F1EC\"},AI:{name:\"Anguilla\",native:\"Anguilla\",phone:\"1264\",continent:\"NA\",capital:\"The Valley\",currency:\"XCD\",languages:[\"en\"],emoji:\"🇦🇮\",emojiU:\"U+1F1E6 U+1F1EE\"},AL:{name:\"Albania\",native:\"Shqipëria\",phone:\"355\",continent:\"EU\",capital:\"Tirana\",currency:\"ALL\",languages:[\"sq\"],emoji:\"🇦🇱\",emojiU:\"U+1F1E6 U+1F1F1\"},AM:{name:\"Armenia\",native:\"Հայաստան\",phone:\"374\",continent:\"AS\",capital:\"Yerevan\",currency:\"AMD\",languages:[\"hy\",\"ru\"],emoji:\"🇦🇲\",emojiU:\"U+1F1E6 U+1F1F2\"},AO:{name:\"Angola\",native:\"Angola\",phone:\"244\",continent:\"AF\",capital:\"Luanda\",currency:\"AOA\",languages:[\"pt\"],emoji:\"🇦🇴\",emojiU:\"U+1F1E6 U+1F1F4\"},AQ:{name:\"Antarctica\",native:\"Antarctica\",phone:\"672\",continent:\"AN\",capital:\"\",currency:\"\",languages:[],emoji:\"🇦🇶\",emojiU:\"U+1F1E6 U+1F1F6\"},AR:{name:\"Argentina\",native:\"Argentina\",phone:\"54\",continent:\"SA\",capital:\"Buenos Aires\",currency:\"ARS\",languages:[\"es\",\"gn\"],emoji:\"🇦🇷\",emojiU:\"U+1F1E6 U+1F1F7\"},AS:{name:\"American Samoa\",native:\"American Samoa\",phone:\"1684\",continent:\"OC\",capital:\"Pago Pago\",currency:\"USD\",languages:[\"en\",\"sm\"],emoji:\"🇦🇸\",emojiU:\"U+1F1E6 U+1F1F8\"},AT:{name:\"Austria\",native:\"Österreich\",phone:\"43\",continent:\"EU\",capital:\"Vienna\",currency:\"EUR\",languages:[\"de\"],emoji:\"🇦🇹\",emojiU:\"U+1F1E6 U+1F1F9\"},AU:{name:\"Australia\",native:\"Australia\",phone:\"61\",continent:\"OC\",capital:\"Canberra\",currency:\"AUD\",languages:[\"en\"],emoji:\"🇦🇺\",emojiU:\"U+1F1E6 U+1F1FA\"},AW:{name:\"Aruba\",native:\"Aruba\",phone:\"297\",continent:\"NA\",capital:\"Oranjestad\",currency:\"AWG\",languages:[\"nl\",\"pa\"],emoji:\"🇦🇼\",emojiU:\"U+1F1E6 U+1F1FC\"},AX:{name:\"Åland\",native:\"Åland\",phone:\"358\",continent:\"EU\",capital:\"Mariehamn\",currency:\"EUR\",languages:[\"sv\"],emoji:\"🇦🇽\",emojiU:\"U+1F1E6 U+1F1FD\"},AZ:{name:\"Azerbaijan\",native:\"Azərbaycan\",phone:\"994\",continent:\"AS\",capital:\"Baku\",currency:\"AZN\",languages:[\"az\"],emoji:\"🇦🇿\",emojiU:\"U+1F1E6 U+1F1FF\"},BA:{name:\"Bosnia and Herzegovina\",native:\"Bosna i Hercegovina\",phone:\"387\",continent:\"EU\",capital:\"Sarajevo\",currency:\"BAM\",languages:[\"bs\",\"hr\",\"sr\"],emoji:\"🇧🇦\",emojiU:\"U+1F1E7 U+1F1E6\"},BB:{name:\"Barbados\",native:\"Barbados\",phone:\"1246\",continent:\"NA\",capital:\"Bridgetown\",currency:\"BBD\",languages:[\"en\"],emoji:\"🇧🇧\",emojiU:\"U+1F1E7 U+1F1E7\"},BD:{name:\"Bangladesh\",native:\"Bangladesh\",phone:\"880\",continent:\"AS\",capital:\"Dhaka\",currency:\"BDT\",languages:[\"bn\"],emoji:\"🇧🇩\",emojiU:\"U+1F1E7 U+1F1E9\"},BE:{name:\"Belgium\",native:\"België\",phone:\"32\",continent:\"EU\",capital:\"Brussels\",currency:\"EUR\",languages:[\"nl\",\"fr\",\"de\"],emoji:\"🇧🇪\",emojiU:\"U+1F1E7 U+1F1EA\"},BF:{name:\"Burkina Faso\",native:\"Burkina Faso\",phone:\"226\",continent:\"AF\",capital:\"Ouagadougou\",currency:\"XOF\",languages:[\"fr\",\"ff\"],emoji:\"🇧🇫\",emojiU:\"U+1F1E7 U+1F1EB\"},BG:{name:\"Bulgaria\",native:\"България\",phone:\"359\",continent:\"EU\",capital:\"Sofia\",currency:\"BGN\",languages:[\"bg\"],emoji:\"🇧🇬\",emojiU:\"U+1F1E7 U+1F1EC\"},BH:{name:\"Bahrain\",native:\"‏البحرين\",phone:\"973\",continent:\"AS\",capital:\"Manama\",currency:\"BHD\",languages:[\"ar\"],emoji:\"🇧🇭\",emojiU:\"U+1F1E7 U+1F1ED\"},BI:{name:\"Burundi\",native:\"Burundi\",phone:\"257\",continent:\"AF\",capital:\"Bujumbura\",currency:\"BIF\",languages:[\"fr\",\"rn\"],emoji:\"🇧🇮\",emojiU:\"U+1F1E7 U+1F1EE\"},BJ:{name:\"Benin\",native:\"Bénin\",phone:\"229\",continent:\"AF\",capital:\"Porto-Novo\",currency:\"XOF\",languages:[\"fr\"],emoji:\"🇧🇯\",emojiU:\"U+1F1E7 U+1F1EF\"},BL:{name:\"Saint Barthélemy\",native:\"Saint-Barthélemy\",phone:\"590\",continent:\"NA\",capital:\"Gustavia\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇧🇱\",emojiU:\"U+1F1E7 U+1F1F1\"},BM:{name:\"Bermuda\",native:\"Bermuda\",phone:\"1441\",continent:\"NA\",capital:\"Hamilton\",currency:\"BMD\",languages:[\"en\"],emoji:\"🇧🇲\",emojiU:\"U+1F1E7 U+1F1F2\"},BN:{name:\"Brunei\",native:\"Negara Brunei Darussalam\",phone:\"673\",continent:\"AS\",capital:\"Bandar Seri Begawan\",currency:\"BND\",languages:[\"ms\"],emoji:\"🇧🇳\",emojiU:\"U+1F1E7 U+1F1F3\"},BO:{name:\"Bolivia\",native:\"Bolivia\",phone:\"591\",continent:\"SA\",capital:\"Sucre\",currency:\"BOB,BOV\",languages:[\"es\",\"ay\",\"qu\"],emoji:\"🇧🇴\",emojiU:\"U+1F1E7 U+1F1F4\"},BQ:{name:\"Bonaire\",native:\"Bonaire\",phone:\"5997\",continent:\"NA\",capital:\"Kralendijk\",currency:\"USD\",languages:[\"nl\"],emoji:\"🇧🇶\",emojiU:\"U+1F1E7 U+1F1F6\"},BR:{name:\"Brazil\",native:\"Brasil\",phone:\"55\",continent:\"SA\",capital:\"Brasília\",currency:\"BRL\",languages:[\"pt\"],emoji:\"🇧🇷\",emojiU:\"U+1F1E7 U+1F1F7\"},BS:{name:\"Bahamas\",native:\"Bahamas\",phone:\"1242\",continent:\"NA\",capital:\"Nassau\",currency:\"BSD\",languages:[\"en\"],emoji:\"🇧🇸\",emojiU:\"U+1F1E7 U+1F1F8\"},BT:{name:\"Bhutan\",native:\"ʼbrug-yul\",phone:\"975\",continent:\"AS\",capital:\"Thimphu\",currency:\"BTN,INR\",languages:[\"dz\"],emoji:\"🇧🇹\",emojiU:\"U+1F1E7 U+1F1F9\"},BV:{name:\"Bouvet Island\",native:\"Bouvetøya\",phone:\"47\",continent:\"AN\",capital:\"\",currency:\"NOK\",languages:[\"no\",\"nb\",\"nn\"],emoji:\"🇧🇻\",emojiU:\"U+1F1E7 U+1F1FB\"},BW:{name:\"Botswana\",native:\"Botswana\",phone:\"267\",continent:\"AF\",capital:\"Gaborone\",currency:\"BWP\",languages:[\"en\",\"tn\"],emoji:\"🇧🇼\",emojiU:\"U+1F1E7 U+1F1FC\"},BY:{name:\"Belarus\",native:\"Белару́сь\",phone:\"375\",continent:\"EU\",capital:\"Minsk\",currency:\"BYN\",languages:[\"be\",\"ru\"],emoji:\"🇧🇾\",emojiU:\"U+1F1E7 U+1F1FE\"},BZ:{name:\"Belize\",native:\"Belize\",phone:\"501\",continent:\"NA\",capital:\"Belmopan\",currency:\"BZD\",languages:[\"en\",\"es\"],emoji:\"🇧🇿\",emojiU:\"U+1F1E7 U+1F1FF\"},CA:{name:\"Canada\",native:\"Canada\",phone:\"1\",continent:\"NA\",capital:\"Ottawa\",currency:\"CAD\",languages:[\"en\",\"fr\"],emoji:\"🇨🇦\",emojiU:\"U+1F1E8 U+1F1E6\"},CC:{name:\"Cocos [Keeling] Islands\",native:\"Cocos (Keeling) Islands\",phone:\"61\",continent:\"AS\",capital:\"West Island\",currency:\"AUD\",languages:[\"en\"],emoji:\"🇨🇨\",emojiU:\"U+1F1E8 U+1F1E8\"},CD:{name:\"Democratic Republic of the Congo\",native:\"République démocratique du Congo\",phone:\"243\",continent:\"AF\",capital:\"Kinshasa\",currency:\"CDF\",languages:[\"fr\",\"ln\",\"kg\",\"sw\",\"lu\"],emoji:\"🇨🇩\",emojiU:\"U+1F1E8 U+1F1E9\"},CF:{name:\"Central African Republic\",native:\"Ködörösêse tî Bêafrîka\",phone:\"236\",continent:\"AF\",capital:\"Bangui\",currency:\"XAF\",languages:[\"fr\",\"sg\"],emoji:\"🇨🇫\",emojiU:\"U+1F1E8 U+1F1EB\"},CG:{name:\"Republic of the Congo\",native:\"République du Congo\",phone:\"242\",continent:\"AF\",capital:\"Brazzaville\",currency:\"XAF\",languages:[\"fr\",\"ln\"],emoji:\"🇨🇬\",emojiU:\"U+1F1E8 U+1F1EC\"},CH:{name:\"Switzerland\",native:\"Schweiz\",phone:\"41\",continent:\"EU\",capital:\"Bern\",currency:\"CHE,CHF,CHW\",languages:[\"de\",\"fr\",\"it\"],emoji:\"🇨🇭\",emojiU:\"U+1F1E8 U+1F1ED\"},CI:{name:\"Ivory Coast\",native:\"Côte d'Ivoire\",phone:\"225\",continent:\"AF\",capital:\"Yamoussoukro\",currency:\"XOF\",languages:[\"fr\"],emoji:\"🇨🇮\",emojiU:\"U+1F1E8 U+1F1EE\"},CK:{name:\"Cook Islands\",native:\"Cook Islands\",phone:\"682\",continent:\"OC\",capital:\"Avarua\",currency:\"NZD\",languages:[\"en\"],emoji:\"🇨🇰\",emojiU:\"U+1F1E8 U+1F1F0\"},CL:{name:\"Chile\",native:\"Chile\",phone:\"56\",continent:\"SA\",capital:\"Santiago\",currency:\"CLF,CLP\",languages:[\"es\"],emoji:\"🇨🇱\",emojiU:\"U+1F1E8 U+1F1F1\"},CM:{name:\"Cameroon\",native:\"Cameroon\",phone:\"237\",continent:\"AF\",capital:\"Yaoundé\",currency:\"XAF\",languages:[\"en\",\"fr\"],emoji:\"🇨🇲\",emojiU:\"U+1F1E8 U+1F1F2\"},CN:{name:\"China\",native:\"中国\",phone:\"86\",continent:\"AS\",capital:\"Beijing\",currency:\"CNY\",languages:[\"zh\"],emoji:\"🇨🇳\",emojiU:\"U+1F1E8 U+1F1F3\"},CO:{name:\"Colombia\",native:\"Colombia\",phone:\"57\",continent:\"SA\",capital:\"Bogotá\",currency:\"COP\",languages:[\"es\"],emoji:\"🇨🇴\",emojiU:\"U+1F1E8 U+1F1F4\"},CR:{name:\"Costa Rica\",native:\"Costa Rica\",phone:\"506\",continent:\"NA\",capital:\"San José\",currency:\"CRC\",languages:[\"es\"],emoji:\"🇨🇷\",emojiU:\"U+1F1E8 U+1F1F7\"},CU:{name:\"Cuba\",native:\"Cuba\",phone:\"53\",continent:\"NA\",capital:\"Havana\",currency:\"CUC,CUP\",languages:[\"es\"],emoji:\"🇨🇺\",emojiU:\"U+1F1E8 U+1F1FA\"},CV:{name:\"Cape Verde\",native:\"Cabo Verde\",phone:\"238\",continent:\"AF\",capital:\"Praia\",currency:\"CVE\",languages:[\"pt\"],emoji:\"🇨🇻\",emojiU:\"U+1F1E8 U+1F1FB\"},CW:{name:\"Curacao\",native:\"Curaçao\",phone:\"5999\",continent:\"NA\",capital:\"Willemstad\",currency:\"ANG\",languages:[\"nl\",\"pa\",\"en\"],emoji:\"🇨🇼\",emojiU:\"U+1F1E8 U+1F1FC\"},CX:{name:\"Christmas Island\",native:\"Christmas Island\",phone:\"61\",continent:\"AS\",capital:\"Flying Fish Cove\",currency:\"AUD\",languages:[\"en\"],emoji:\"🇨🇽\",emojiU:\"U+1F1E8 U+1F1FD\"},CY:{name:\"Cyprus\",native:\"Κύπρος\",phone:\"357\",continent:\"EU\",capital:\"Nicosia\",currency:\"EUR\",languages:[\"el\",\"tr\",\"hy\"],emoji:\"🇨🇾\",emojiU:\"U+1F1E8 U+1F1FE\"},CZ:{name:\"Czech Republic\",native:\"Česká republika\",phone:\"420\",continent:\"EU\",capital:\"Prague\",currency:\"CZK\",languages:[\"cs\",\"sk\"],emoji:\"🇨🇿\",emojiU:\"U+1F1E8 U+1F1FF\"},DE:{name:\"Germany\",native:\"Deutschland\",phone:\"49\",continent:\"EU\",capital:\"Berlin\",currency:\"EUR\",languages:[\"de\"],emoji:\"🇩🇪\",emojiU:\"U+1F1E9 U+1F1EA\"},DJ:{name:\"Djibouti\",native:\"Djibouti\",phone:\"253\",continent:\"AF\",capital:\"Djibouti\",currency:\"DJF\",languages:[\"fr\",\"ar\"],emoji:\"🇩🇯\",emojiU:\"U+1F1E9 U+1F1EF\"},DK:{name:\"Denmark\",native:\"Danmark\",phone:\"45\",continent:\"EU\",capital:\"Copenhagen\",currency:\"DKK\",languages:[\"da\"],emoji:\"🇩🇰\",emojiU:\"U+1F1E9 U+1F1F0\"},DM:{name:\"Dominica\",native:\"Dominica\",phone:\"1767\",continent:\"NA\",capital:\"Roseau\",currency:\"XCD\",languages:[\"en\"],emoji:\"🇩🇲\",emojiU:\"U+1F1E9 U+1F1F2\"},DO:{name:\"Dominican Republic\",native:\"República Dominicana\",phone:\"1809,1829,1849\",continent:\"NA\",capital:\"Santo Domingo\",currency:\"DOP\",languages:[\"es\"],emoji:\"🇩🇴\",emojiU:\"U+1F1E9 U+1F1F4\"},DZ:{name:\"Algeria\",native:\"الجزائر\",phone:\"213\",continent:\"AF\",capital:\"Algiers\",currency:\"DZD\",languages:[\"ar\"],emoji:\"🇩🇿\",emojiU:\"U+1F1E9 U+1F1FF\"},EC:{name:\"Ecuador\",native:\"Ecuador\",phone:\"593\",continent:\"SA\",capital:\"Quito\",currency:\"USD\",languages:[\"es\"],emoji:\"🇪🇨\",emojiU:\"U+1F1EA U+1F1E8\"},EE:{name:\"Estonia\",native:\"Eesti\",phone:\"372\",continent:\"EU\",capital:\"Tallinn\",currency:\"EUR\",languages:[\"et\"],emoji:\"🇪🇪\",emojiU:\"U+1F1EA U+1F1EA\"},EG:{name:\"Egypt\",native:\"مصر‎\",phone:\"20\",continent:\"AF\",capital:\"Cairo\",currency:\"EGP\",languages:[\"ar\"],emoji:\"🇪🇬\",emojiU:\"U+1F1EA U+1F1EC\"},EH:{name:\"Western Sahara\",native:\"الصحراء الغربية\",phone:\"212\",continent:\"AF\",capital:\"El Aaiún\",currency:\"MAD,DZD,MRU\",languages:[\"es\"],emoji:\"🇪🇭\",emojiU:\"U+1F1EA U+1F1ED\"},ER:{name:\"Eritrea\",native:\"ኤርትራ\",phone:\"291\",continent:\"AF\",capital:\"Asmara\",currency:\"ERN\",languages:[\"ti\",\"ar\",\"en\"],emoji:\"🇪🇷\",emojiU:\"U+1F1EA U+1F1F7\"},ES:{name:\"Spain\",native:\"España\",phone:\"34\",continent:\"EU\",capital:\"Madrid\",currency:\"EUR\",languages:[\"es\",\"eu\",\"ca\",\"gl\",\"oc\"],emoji:\"🇪🇸\",emojiU:\"U+1F1EA U+1F1F8\"},ET:{name:\"Ethiopia\",native:\"ኢትዮጵያ\",phone:\"251\",continent:\"AF\",capital:\"Addis Ababa\",currency:\"ETB\",languages:[\"am\"],emoji:\"🇪🇹\",emojiU:\"U+1F1EA U+1F1F9\"},FI:{name:\"Finland\",native:\"Suomi\",phone:\"358\",continent:\"EU\",capital:\"Helsinki\",currency:\"EUR\",languages:[\"fi\",\"sv\"],emoji:\"🇫🇮\",emojiU:\"U+1F1EB U+1F1EE\"},FJ:{name:\"Fiji\",native:\"Fiji\",phone:\"679\",continent:\"OC\",capital:\"Suva\",currency:\"FJD\",languages:[\"en\",\"fj\",\"hi\",\"ur\"],emoji:\"🇫🇯\",emojiU:\"U+1F1EB U+1F1EF\"},FK:{name:\"Falkland Islands\",native:\"Falkland Islands\",phone:\"500\",continent:\"SA\",capital:\"Stanley\",currency:\"FKP\",languages:[\"en\"],emoji:\"🇫🇰\",emojiU:\"U+1F1EB U+1F1F0\"},FM:{name:\"Micronesia\",native:\"Micronesia\",phone:\"691\",continent:\"OC\",capital:\"Palikir\",currency:\"USD\",languages:[\"en\"],emoji:\"🇫🇲\",emojiU:\"U+1F1EB U+1F1F2\"},FO:{name:\"Faroe Islands\",native:\"Føroyar\",phone:\"298\",continent:\"EU\",capital:\"Tórshavn\",currency:\"DKK\",languages:[\"fo\"],emoji:\"🇫🇴\",emojiU:\"U+1F1EB U+1F1F4\"},FR:{name:\"France\",native:\"France\",phone:\"33\",continent:\"EU\",capital:\"Paris\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇫🇷\",emojiU:\"U+1F1EB U+1F1F7\"},GA:{name:\"Gabon\",native:\"Gabon\",phone:\"241\",continent:\"AF\",capital:\"Libreville\",currency:\"XAF\",languages:[\"fr\"],emoji:\"🇬🇦\",emojiU:\"U+1F1EC U+1F1E6\"},GB:{name:\"United Kingdom\",native:\"United Kingdom\",phone:\"44\",continent:\"EU\",capital:\"London\",currency:\"GBP\",languages:[\"en\"],emoji:\"🇬🇧\",emojiU:\"U+1F1EC U+1F1E7\"},GD:{name:\"Grenada\",native:\"Grenada\",phone:\"1473\",continent:\"NA\",capital:\"St. George's\",currency:\"XCD\",languages:[\"en\"],emoji:\"🇬🇩\",emojiU:\"U+1F1EC U+1F1E9\"},GE:{name:\"Georgia\",native:\"საქართველო\",phone:\"995\",continent:\"AS\",capital:\"Tbilisi\",currency:\"GEL\",languages:[\"ka\"],emoji:\"🇬🇪\",emojiU:\"U+1F1EC U+1F1EA\"},GF:{name:\"French Guiana\",native:\"Guyane française\",phone:\"594\",continent:\"SA\",capital:\"Cayenne\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇬🇫\",emojiU:\"U+1F1EC U+1F1EB\"},GG:{name:\"Guernsey\",native:\"Guernsey\",phone:\"44\",continent:\"EU\",capital:\"St. Peter Port\",currency:\"GBP\",languages:[\"en\",\"fr\"],emoji:\"🇬🇬\",emojiU:\"U+1F1EC U+1F1EC\"},GH:{name:\"Ghana\",native:\"Ghana\",phone:\"233\",continent:\"AF\",capital:\"Accra\",currency:\"GHS\",languages:[\"en\"],emoji:\"🇬🇭\",emojiU:\"U+1F1EC U+1F1ED\"},GI:{name:\"Gibraltar\",native:\"Gibraltar\",phone:\"350\",continent:\"EU\",capital:\"Gibraltar\",currency:\"GIP\",languages:[\"en\"],emoji:\"🇬🇮\",emojiU:\"U+1F1EC U+1F1EE\"},GL:{name:\"Greenland\",native:\"Kalaallit Nunaat\",phone:\"299\",continent:\"NA\",capital:\"Nuuk\",currency:\"DKK\",languages:[\"kl\"],emoji:\"🇬🇱\",emojiU:\"U+1F1EC U+1F1F1\"},GM:{name:\"Gambia\",native:\"Gambia\",phone:\"220\",continent:\"AF\",capital:\"Banjul\",currency:\"GMD\",languages:[\"en\"],emoji:\"🇬🇲\",emojiU:\"U+1F1EC U+1F1F2\"},GN:{name:\"Guinea\",native:\"Guinée\",phone:\"224\",continent:\"AF\",capital:\"Conakry\",currency:\"GNF\",languages:[\"fr\",\"ff\"],emoji:\"🇬🇳\",emojiU:\"U+1F1EC U+1F1F3\"},GP:{name:\"Guadeloupe\",native:\"Guadeloupe\",phone:\"590\",continent:\"NA\",capital:\"Basse-Terre\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇬🇵\",emojiU:\"U+1F1EC U+1F1F5\"},GQ:{name:\"Equatorial Guinea\",native:\"Guinea Ecuatorial\",phone:\"240\",continent:\"AF\",capital:\"Malabo\",currency:\"XAF\",languages:[\"es\",\"fr\"],emoji:\"🇬🇶\",emojiU:\"U+1F1EC U+1F1F6\"},GR:{name:\"Greece\",native:\"Ελλάδα\",phone:\"30\",continent:\"EU\",capital:\"Athens\",currency:\"EUR\",languages:[\"el\"],emoji:\"🇬🇷\",emojiU:\"U+1F1EC U+1F1F7\"},GS:{name:\"South Georgia and the South Sandwich Islands\",native:\"South Georgia\",phone:\"500\",continent:\"AN\",capital:\"King Edward Point\",currency:\"GBP\",languages:[\"en\"],emoji:\"🇬🇸\",emojiU:\"U+1F1EC U+1F1F8\"},GT:{name:\"Guatemala\",native:\"Guatemala\",phone:\"502\",continent:\"NA\",capital:\"Guatemala City\",currency:\"GTQ\",languages:[\"es\"],emoji:\"🇬🇹\",emojiU:\"U+1F1EC U+1F1F9\"},GU:{name:\"Guam\",native:\"Guam\",phone:\"1671\",continent:\"OC\",capital:\"Hagåtña\",currency:\"USD\",languages:[\"en\",\"ch\",\"es\"],emoji:\"🇬🇺\",emojiU:\"U+1F1EC U+1F1FA\"},GW:{name:\"Guinea-Bissau\",native:\"Guiné-Bissau\",phone:\"245\",continent:\"AF\",capital:\"Bissau\",currency:\"XOF\",languages:[\"pt\"],emoji:\"🇬🇼\",emojiU:\"U+1F1EC U+1F1FC\"},GY:{name:\"Guyana\",native:\"Guyana\",phone:\"592\",continent:\"SA\",capital:\"Georgetown\",currency:\"GYD\",languages:[\"en\"],emoji:\"🇬🇾\",emojiU:\"U+1F1EC U+1F1FE\"},HK:{name:\"Hong Kong\",native:\"香港\",phone:\"852\",continent:\"AS\",capital:\"City of Victoria\",currency:\"HKD\",languages:[\"zh\",\"en\"],emoji:\"🇭🇰\",emojiU:\"U+1F1ED U+1F1F0\"},HM:{name:\"Heard Island and McDonald Islands\",native:\"Heard Island and McDonald Islands\",phone:\"61\",continent:\"AN\",capital:\"\",currency:\"AUD\",languages:[\"en\"],emoji:\"🇭🇲\",emojiU:\"U+1F1ED U+1F1F2\"},HN:{name:\"Honduras\",native:\"Honduras\",phone:\"504\",continent:\"NA\",capital:\"Tegucigalpa\",currency:\"HNL\",languages:[\"es\"],emoji:\"🇭🇳\",emojiU:\"U+1F1ED U+1F1F3\"},HR:{name:\"Croatia\",native:\"Hrvatska\",phone:\"385\",continent:\"EU\",capital:\"Zagreb\",currency:\"HRK\",languages:[\"hr\"],emoji:\"🇭🇷\",emojiU:\"U+1F1ED U+1F1F7\"},HT:{name:\"Haiti\",native:\"Haïti\",phone:\"509\",continent:\"NA\",capital:\"Port-au-Prince\",currency:\"HTG,USD\",languages:[\"fr\",\"ht\"],emoji:\"🇭🇹\",emojiU:\"U+1F1ED U+1F1F9\"},HU:{name:\"Hungary\",native:\"Magyarország\",phone:\"36\",continent:\"EU\",capital:\"Budapest\",currency:\"HUF\",languages:[\"hu\"],emoji:\"🇭🇺\",emojiU:\"U+1F1ED U+1F1FA\"},ID:{name:\"Indonesia\",native:\"Indonesia\",phone:\"62\",continent:\"AS\",capital:\"Jakarta\",currency:\"IDR\",languages:[\"id\"],emoji:\"🇮🇩\",emojiU:\"U+1F1EE U+1F1E9\"},IE:{name:\"Ireland\",native:\"Éire\",phone:\"353\",continent:\"EU\",capital:\"Dublin\",currency:\"EUR\",languages:[\"ga\",\"en\"],emoji:\"🇮🇪\",emojiU:\"U+1F1EE U+1F1EA\"},IL:{name:\"Israel\",native:\"יִשְׂרָאֵל\",phone:\"972\",continent:\"AS\",capital:\"Jerusalem\",currency:\"ILS\",languages:[\"he\",\"ar\"],emoji:\"🇮🇱\",emojiU:\"U+1F1EE U+1F1F1\"},IM:{name:\"Isle of Man\",native:\"Isle of Man\",phone:\"44\",continent:\"EU\",capital:\"Douglas\",currency:\"GBP\",languages:[\"en\",\"gv\"],emoji:\"🇮🇲\",emojiU:\"U+1F1EE U+1F1F2\"},IN:{name:\"India\",native:\"भारत\",phone:\"91\",continent:\"AS\",capital:\"New Delhi\",currency:\"INR\",languages:[\"hi\",\"en\"],emoji:\"🇮🇳\",emojiU:\"U+1F1EE U+1F1F3\"},IO:{name:\"British Indian Ocean Territory\",native:\"British Indian Ocean Territory\",phone:\"246\",continent:\"AS\",capital:\"Diego Garcia\",currency:\"USD\",languages:[\"en\"],emoji:\"🇮🇴\",emojiU:\"U+1F1EE U+1F1F4\"},IQ:{name:\"Iraq\",native:\"العراق\",phone:\"964\",continent:\"AS\",capital:\"Baghdad\",currency:\"IQD\",languages:[\"ar\",\"ku\"],emoji:\"🇮🇶\",emojiU:\"U+1F1EE U+1F1F6\"},IR:{name:\"Iran\",native:\"ایران\",phone:\"98\",continent:\"AS\",capital:\"Tehran\",currency:\"IRR\",languages:[\"fa\"],emoji:\"🇮🇷\",emojiU:\"U+1F1EE U+1F1F7\"},IS:{name:\"Iceland\",native:\"Ísland\",phone:\"354\",continent:\"EU\",capital:\"Reykjavik\",currency:\"ISK\",languages:[\"is\"],emoji:\"🇮🇸\",emojiU:\"U+1F1EE U+1F1F8\"},IT:{name:\"Italy\",native:\"Italia\",phone:\"39\",continent:\"EU\",capital:\"Rome\",currency:\"EUR\",languages:[\"it\"],emoji:\"🇮🇹\",emojiU:\"U+1F1EE U+1F1F9\"},JE:{name:\"Jersey\",native:\"Jersey\",phone:\"44\",continent:\"EU\",capital:\"Saint Helier\",currency:\"GBP\",languages:[\"en\",\"fr\"],emoji:\"🇯🇪\",emojiU:\"U+1F1EF U+1F1EA\"},JM:{name:\"Jamaica\",native:\"Jamaica\",phone:\"1876\",continent:\"NA\",capital:\"Kingston\",currency:\"JMD\",languages:[\"en\"],emoji:\"🇯🇲\",emojiU:\"U+1F1EF U+1F1F2\"},JO:{name:\"Jordan\",native:\"الأردن\",phone:\"962\",continent:\"AS\",capital:\"Amman\",currency:\"JOD\",languages:[\"ar\"],emoji:\"🇯🇴\",emojiU:\"U+1F1EF U+1F1F4\"},JP:{name:\"Japan\",native:\"日本\",phone:\"81\",continent:\"AS\",capital:\"Tokyo\",currency:\"JPY\",languages:[\"ja\"],emoji:\"🇯🇵\",emojiU:\"U+1F1EF U+1F1F5\"},KE:{name:\"Kenya\",native:\"Kenya\",phone:\"254\",continent:\"AF\",capital:\"Nairobi\",currency:\"KES\",languages:[\"en\",\"sw\"],emoji:\"🇰🇪\",emojiU:\"U+1F1F0 U+1F1EA\"},KG:{name:\"Kyrgyzstan\",native:\"Кыргызстан\",phone:\"996\",continent:\"AS\",capital:\"Bishkek\",currency:\"KGS\",languages:[\"ky\",\"ru\"],emoji:\"🇰🇬\",emojiU:\"U+1F1F0 U+1F1EC\"},KH:{name:\"Cambodia\",native:\"Kâmpŭchéa\",phone:\"855\",continent:\"AS\",capital:\"Phnom Penh\",currency:\"KHR\",languages:[\"km\"],emoji:\"🇰🇭\",emojiU:\"U+1F1F0 U+1F1ED\"},KI:{name:\"Kiribati\",native:\"Kiribati\",phone:\"686\",continent:\"OC\",capital:\"South Tarawa\",currency:\"AUD\",languages:[\"en\"],emoji:\"🇰🇮\",emojiU:\"U+1F1F0 U+1F1EE\"},KM:{name:\"Comoros\",native:\"Komori\",phone:\"269\",continent:\"AF\",capital:\"Moroni\",currency:\"KMF\",languages:[\"ar\",\"fr\"],emoji:\"🇰🇲\",emojiU:\"U+1F1F0 U+1F1F2\"},KN:{name:\"Saint Kitts and Nevis\",native:\"Saint Kitts and Nevis\",phone:\"1869\",continent:\"NA\",capital:\"Basseterre\",currency:\"XCD\",languages:[\"en\"],emoji:\"🇰🇳\",emojiU:\"U+1F1F0 U+1F1F3\"},KP:{name:\"North Korea\",native:\"북한\",phone:\"850\",continent:\"AS\",capital:\"Pyongyang\",currency:\"KPW\",languages:[\"ko\"],emoji:\"🇰🇵\",emojiU:\"U+1F1F0 U+1F1F5\"},KR:{name:\"South Korea\",native:\"대한민국\",phone:\"82\",continent:\"AS\",capital:\"Seoul\",currency:\"KRW\",languages:[\"ko\"],emoji:\"🇰🇷\",emojiU:\"U+1F1F0 U+1F1F7\"},KW:{name:\"Kuwait\",native:\"الكويت\",phone:\"965\",continent:\"AS\",capital:\"Kuwait City\",currency:\"KWD\",languages:[\"ar\"],emoji:\"🇰🇼\",emojiU:\"U+1F1F0 U+1F1FC\"},KY:{name:\"Cayman Islands\",native:\"Cayman Islands\",phone:\"1345\",continent:\"NA\",capital:\"George Town\",currency:\"KYD\",languages:[\"en\"],emoji:\"🇰🇾\",emojiU:\"U+1F1F0 U+1F1FE\"},KZ:{name:\"Kazakhstan\",native:\"Қазақстан\",phone:\"76,77\",continent:\"AS\",capital:\"Astana\",currency:\"KZT\",languages:[\"kk\",\"ru\"],emoji:\"🇰🇿\",emojiU:\"U+1F1F0 U+1F1FF\"},LA:{name:\"Laos\",native:\"ສປປລາວ\",phone:\"856\",continent:\"AS\",capital:\"Vientiane\",currency:\"LAK\",languages:[\"lo\"],emoji:\"🇱🇦\",emojiU:\"U+1F1F1 U+1F1E6\"},LB:{name:\"Lebanon\",native:\"لبنان\",phone:\"961\",continent:\"AS\",capital:\"Beirut\",currency:\"LBP\",languages:[\"ar\",\"fr\"],emoji:\"🇱🇧\",emojiU:\"U+1F1F1 U+1F1E7\"},LC:{name:\"Saint Lucia\",native:\"Saint Lucia\",phone:\"1758\",continent:\"NA\",capital:\"Castries\",currency:\"XCD\",languages:[\"en\"],emoji:\"🇱🇨\",emojiU:\"U+1F1F1 U+1F1E8\"},LI:{name:\"Liechtenstein\",native:\"Liechtenstein\",phone:\"423\",continent:\"EU\",capital:\"Vaduz\",currency:\"CHF\",languages:[\"de\"],emoji:\"🇱🇮\",emojiU:\"U+1F1F1 U+1F1EE\"},LK:{name:\"Sri Lanka\",native:\"śrī laṃkāva\",phone:\"94\",continent:\"AS\",capital:\"Colombo\",currency:\"LKR\",languages:[\"si\",\"ta\"],emoji:\"🇱🇰\",emojiU:\"U+1F1F1 U+1F1F0\"},LR:{name:\"Liberia\",native:\"Liberia\",phone:\"231\",continent:\"AF\",capital:\"Monrovia\",currency:\"LRD\",languages:[\"en\"],emoji:\"🇱🇷\",emojiU:\"U+1F1F1 U+1F1F7\"},LS:{name:\"Lesotho\",native:\"Lesotho\",phone:\"266\",continent:\"AF\",capital:\"Maseru\",currency:\"LSL,ZAR\",languages:[\"en\",\"st\"],emoji:\"🇱🇸\",emojiU:\"U+1F1F1 U+1F1F8\"},LT:{name:\"Lithuania\",native:\"Lietuva\",phone:\"370\",continent:\"EU\",capital:\"Vilnius\",currency:\"EUR\",languages:[\"lt\"],emoji:\"🇱🇹\",emojiU:\"U+1F1F1 U+1F1F9\"},LU:{name:\"Luxembourg\",native:\"Luxembourg\",phone:\"352\",continent:\"EU\",capital:\"Luxembourg\",currency:\"EUR\",languages:[\"fr\",\"de\",\"lb\"],emoji:\"🇱🇺\",emojiU:\"U+1F1F1 U+1F1FA\"},LV:{name:\"Latvia\",native:\"Latvija\",phone:\"371\",continent:\"EU\",capital:\"Riga\",currency:\"EUR\",languages:[\"lv\"],emoji:\"🇱🇻\",emojiU:\"U+1F1F1 U+1F1FB\"},LY:{name:\"Libya\",native:\"‏ليبيا\",phone:\"218\",continent:\"AF\",capital:\"Tripoli\",currency:\"LYD\",languages:[\"ar\"],emoji:\"🇱🇾\",emojiU:\"U+1F1F1 U+1F1FE\"},MA:{name:\"Morocco\",native:\"المغرب\",phone:\"212\",continent:\"AF\",capital:\"Rabat\",currency:\"MAD\",languages:[\"ar\"],emoji:\"🇲🇦\",emojiU:\"U+1F1F2 U+1F1E6\"},MC:{name:\"Monaco\",native:\"Monaco\",phone:\"377\",continent:\"EU\",capital:\"Monaco\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇲🇨\",emojiU:\"U+1F1F2 U+1F1E8\"},MD:{name:\"Moldova\",native:\"Moldova\",phone:\"373\",continent:\"EU\",capital:\"Chișinău\",currency:\"MDL\",languages:[\"ro\"],emoji:\"🇲🇩\",emojiU:\"U+1F1F2 U+1F1E9\"},ME:{name:\"Montenegro\",native:\"Црна Гора\",phone:\"382\",continent:\"EU\",capital:\"Podgorica\",currency:\"EUR\",languages:[\"sr\",\"bs\",\"sq\",\"hr\"],emoji:\"🇲🇪\",emojiU:\"U+1F1F2 U+1F1EA\"},MF:{name:\"Saint Martin\",native:\"Saint-Martin\",phone:\"590\",continent:\"NA\",capital:\"Marigot\",currency:\"EUR\",languages:[\"en\",\"fr\",\"nl\"],emoji:\"🇲🇫\",emojiU:\"U+1F1F2 U+1F1EB\"},MG:{name:\"Madagascar\",native:\"Madagasikara\",phone:\"261\",continent:\"AF\",capital:\"Antananarivo\",currency:\"MGA\",languages:[\"fr\",\"mg\"],emoji:\"🇲🇬\",emojiU:\"U+1F1F2 U+1F1EC\"},MH:{name:\"Marshall Islands\",native:\"M̧ajeļ\",phone:\"692\",continent:\"OC\",capital:\"Majuro\",currency:\"USD\",languages:[\"en\",\"mh\"],emoji:\"🇲🇭\",emojiU:\"U+1F1F2 U+1F1ED\"},MK:{name:\"North Macedonia\",native:\"Северна Македонија\",phone:\"389\",continent:\"EU\",capital:\"Skopje\",currency:\"MKD\",languages:[\"mk\"],emoji:\"🇲🇰\",emojiU:\"U+1F1F2 U+1F1F0\"},ML:{name:\"Mali\",native:\"Mali\",phone:\"223\",continent:\"AF\",capital:\"Bamako\",currency:\"XOF\",languages:[\"fr\"],emoji:\"🇲🇱\",emojiU:\"U+1F1F2 U+1F1F1\"},MM:{name:\"Myanmar [Burma]\",native:\"မြန်မာ\",phone:\"95\",continent:\"AS\",capital:\"Naypyidaw\",currency:\"MMK\",languages:[\"my\"],emoji:\"🇲🇲\",emojiU:\"U+1F1F2 U+1F1F2\"},MN:{name:\"Mongolia\",native:\"Монгол улс\",phone:\"976\",continent:\"AS\",capital:\"Ulan Bator\",currency:\"MNT\",languages:[\"mn\"],emoji:\"🇲🇳\",emojiU:\"U+1F1F2 U+1F1F3\"},MO:{name:\"Macao\",native:\"澳門\",phone:\"853\",continent:\"AS\",capital:\"\",currency:\"MOP\",languages:[\"zh\",\"pt\"],emoji:\"🇲🇴\",emojiU:\"U+1F1F2 U+1F1F4\"},MP:{name:\"Northern Mariana Islands\",native:\"Northern Mariana Islands\",phone:\"1670\",continent:\"OC\",capital:\"Saipan\",currency:\"USD\",languages:[\"en\",\"ch\"],emoji:\"🇲🇵\",emojiU:\"U+1F1F2 U+1F1F5\"},MQ:{name:\"Martinique\",native:\"Martinique\",phone:\"596\",continent:\"NA\",capital:\"Fort-de-France\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇲🇶\",emojiU:\"U+1F1F2 U+1F1F6\"},MR:{name:\"Mauritania\",native:\"موريتانيا\",phone:\"222\",continent:\"AF\",capital:\"Nouakchott\",currency:\"MRU\",languages:[\"ar\"],emoji:\"🇲🇷\",emojiU:\"U+1F1F2 U+1F1F7\"},MS:{name:\"Montserrat\",native:\"Montserrat\",phone:\"1664\",continent:\"NA\",capital:\"Plymouth\",currency:\"XCD\",languages:[\"en\"],emoji:\"🇲🇸\",emojiU:\"U+1F1F2 U+1F1F8\"},MT:{name:\"Malta\",native:\"Malta\",phone:\"356\",continent:\"EU\",capital:\"Valletta\",currency:\"EUR\",languages:[\"mt\",\"en\"],emoji:\"🇲🇹\",emojiU:\"U+1F1F2 U+1F1F9\"},MU:{name:\"Mauritius\",native:\"Maurice\",phone:\"230\",continent:\"AF\",capital:\"Port Louis\",currency:\"MUR\",languages:[\"en\"],emoji:\"🇲🇺\",emojiU:\"U+1F1F2 U+1F1FA\"},MV:{name:\"Maldives\",native:\"Maldives\",phone:\"960\",continent:\"AS\",capital:\"Malé\",currency:\"MVR\",languages:[\"dv\"],emoji:\"🇲🇻\",emojiU:\"U+1F1F2 U+1F1FB\"},MW:{name:\"Malawi\",native:\"Malawi\",phone:\"265\",continent:\"AF\",capital:\"Lilongwe\",currency:\"MWK\",languages:[\"en\",\"ny\"],emoji:\"🇲🇼\",emojiU:\"U+1F1F2 U+1F1FC\"},MX:{name:\"Mexico\",native:\"México\",phone:\"52\",continent:\"NA\",capital:\"Mexico City\",currency:\"MXN\",languages:[\"es\"],emoji:\"🇲🇽\",emojiU:\"U+1F1F2 U+1F1FD\"},MY:{name:\"Malaysia\",native:\"Malaysia\",phone:\"60\",continent:\"AS\",capital:\"Kuala Lumpur\",currency:\"MYR\",languages:[\"ms\"],emoji:\"🇲🇾\",emojiU:\"U+1F1F2 U+1F1FE\"},MZ:{name:\"Mozambique\",native:\"Moçambique\",phone:\"258\",continent:\"AF\",capital:\"Maputo\",currency:\"MZN\",languages:[\"pt\"],emoji:\"🇲🇿\",emojiU:\"U+1F1F2 U+1F1FF\"},NA:{name:\"Namibia\",native:\"Namibia\",phone:\"264\",continent:\"AF\",capital:\"Windhoek\",currency:\"NAD,ZAR\",languages:[\"en\",\"af\"],emoji:\"🇳🇦\",emojiU:\"U+1F1F3 U+1F1E6\"},NC:{name:\"New Caledonia\",native:\"Nouvelle-Calédonie\",phone:\"687\",continent:\"OC\",capital:\"Nouméa\",currency:\"XPF\",languages:[\"fr\"],emoji:\"🇳🇨\",emojiU:\"U+1F1F3 U+1F1E8\"},NE:{name:\"Niger\",native:\"Niger\",phone:\"227\",continent:\"AF\",capital:\"Niamey\",currency:\"XOF\",languages:[\"fr\"],emoji:\"🇳🇪\",emojiU:\"U+1F1F3 U+1F1EA\"},NF:{name:\"Norfolk Island\",native:\"Norfolk Island\",phone:\"672\",continent:\"OC\",capital:\"Kingston\",currency:\"AUD\",languages:[\"en\"],emoji:\"🇳🇫\",emojiU:\"U+1F1F3 U+1F1EB\"},NG:{name:\"Nigeria\",native:\"Nigeria\",phone:\"234\",continent:\"AF\",capital:\"Abuja\",currency:\"NGN\",languages:[\"en\"],emoji:\"🇳🇬\",emojiU:\"U+1F1F3 U+1F1EC\"},NI:{name:\"Nicaragua\",native:\"Nicaragua\",phone:\"505\",continent:\"NA\",capital:\"Managua\",currency:\"NIO\",languages:[\"es\"],emoji:\"🇳🇮\",emojiU:\"U+1F1F3 U+1F1EE\"},NL:{name:\"Netherlands\",native:\"Nederland\",phone:\"31\",continent:\"EU\",capital:\"Amsterdam\",currency:\"EUR\",languages:[\"nl\"],emoji:\"🇳🇱\",emojiU:\"U+1F1F3 U+1F1F1\"},NO:{name:\"Norway\",native:\"Norge\",phone:\"47\",continent:\"EU\",capital:\"Oslo\",currency:\"NOK\",languages:[\"no\",\"nb\",\"nn\"],emoji:\"🇳🇴\",emojiU:\"U+1F1F3 U+1F1F4\"},NP:{name:\"Nepal\",native:\"नपल\",phone:\"977\",continent:\"AS\",capital:\"Kathmandu\",currency:\"NPR\",languages:[\"ne\"],emoji:\"🇳🇵\",emojiU:\"U+1F1F3 U+1F1F5\"},NR:{name:\"Nauru\",native:\"Nauru\",phone:\"674\",continent:\"OC\",capital:\"Yaren\",currency:\"AUD\",languages:[\"en\",\"na\"],emoji:\"🇳🇷\",emojiU:\"U+1F1F3 U+1F1F7\"},NU:{name:\"Niue\",native:\"Niuē\",phone:\"683\",continent:\"OC\",capital:\"Alofi\",currency:\"NZD\",languages:[\"en\"],emoji:\"🇳🇺\",emojiU:\"U+1F1F3 U+1F1FA\"},NZ:{name:\"New Zealand\",native:\"New Zealand\",phone:\"64\",continent:\"OC\",capital:\"Wellington\",currency:\"NZD\",languages:[\"en\",\"mi\"],emoji:\"🇳🇿\",emojiU:\"U+1F1F3 U+1F1FF\"},OM:{name:\"Oman\",native:\"عمان\",phone:\"968\",continent:\"AS\",capital:\"Muscat\",currency:\"OMR\",languages:[\"ar\"],emoji:\"🇴🇲\",emojiU:\"U+1F1F4 U+1F1F2\"},PA:{name:\"Panama\",native:\"Panamá\",phone:\"507\",continent:\"NA\",capital:\"Panama City\",currency:\"PAB,USD\",languages:[\"es\"],emoji:\"🇵🇦\",emojiU:\"U+1F1F5 U+1F1E6\"},PE:{name:\"Peru\",native:\"Perú\",phone:\"51\",continent:\"SA\",capital:\"Lima\",currency:\"PEN\",languages:[\"es\"],emoji:\"🇵🇪\",emojiU:\"U+1F1F5 U+1F1EA\"},PF:{name:\"French Polynesia\",native:\"Polynésie française\",phone:\"689\",continent:\"OC\",capital:\"Papeetē\",currency:\"XPF\",languages:[\"fr\"],emoji:\"🇵🇫\",emojiU:\"U+1F1F5 U+1F1EB\"},PG:{name:\"Papua New Guinea\",native:\"Papua Niugini\",phone:\"675\",continent:\"OC\",capital:\"Port Moresby\",currency:\"PGK\",languages:[\"en\"],emoji:\"🇵🇬\",emojiU:\"U+1F1F5 U+1F1EC\"},PH:{name:\"Philippines\",native:\"Pilipinas\",phone:\"63\",continent:\"AS\",capital:\"Manila\",currency:\"PHP\",languages:[\"en\"],emoji:\"🇵🇭\",emojiU:\"U+1F1F5 U+1F1ED\"},PK:{name:\"Pakistan\",native:\"Pakistan\",phone:\"92\",continent:\"AS\",capital:\"Islamabad\",currency:\"PKR\",languages:[\"en\",\"ur\"],emoji:\"🇵🇰\",emojiU:\"U+1F1F5 U+1F1F0\"},PL:{name:\"Poland\",native:\"Polska\",phone:\"48\",continent:\"EU\",capital:\"Warsaw\",currency:\"PLN\",languages:[\"pl\"],emoji:\"🇵🇱\",emojiU:\"U+1F1F5 U+1F1F1\"},PM:{name:\"Saint Pierre and Miquelon\",native:\"Saint-Pierre-et-Miquelon\",phone:\"508\",continent:\"NA\",capital:\"Saint-Pierre\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇵🇲\",emojiU:\"U+1F1F5 U+1F1F2\"},PN:{name:\"Pitcairn Islands\",native:\"Pitcairn Islands\",phone:\"64\",continent:\"OC\",capital:\"Adamstown\",currency:\"NZD\",languages:[\"en\"],emoji:\"🇵🇳\",emojiU:\"U+1F1F5 U+1F1F3\"},PR:{name:\"Puerto Rico\",native:\"Puerto Rico\",phone:\"1787,1939\",continent:\"NA\",capital:\"San Juan\",currency:\"USD\",languages:[\"es\",\"en\"],emoji:\"🇵🇷\",emojiU:\"U+1F1F5 U+1F1F7\"},PS:{name:\"Palestine\",native:\"فلسطين\",phone:\"970\",continent:\"AS\",capital:\"Ramallah\",currency:\"ILS\",languages:[\"ar\"],emoji:\"🇵🇸\",emojiU:\"U+1F1F5 U+1F1F8\"},PT:{name:\"Portugal\",native:\"Portugal\",phone:\"351\",continent:\"EU\",capital:\"Lisbon\",currency:\"EUR\",languages:[\"pt\"],emoji:\"🇵🇹\",emojiU:\"U+1F1F5 U+1F1F9\"},PW:{name:\"Palau\",native:\"Palau\",phone:\"680\",continent:\"OC\",capital:\"Ngerulmud\",currency:\"USD\",languages:[\"en\"],emoji:\"🇵🇼\",emojiU:\"U+1F1F5 U+1F1FC\"},PY:{name:\"Paraguay\",native:\"Paraguay\",phone:\"595\",continent:\"SA\",capital:\"Asunción\",currency:\"PYG\",languages:[\"es\",\"gn\"],emoji:\"🇵🇾\",emojiU:\"U+1F1F5 U+1F1FE\"},QA:{name:\"Qatar\",native:\"قطر\",phone:\"974\",continent:\"AS\",capital:\"Doha\",currency:\"QAR\",languages:[\"ar\"],emoji:\"🇶🇦\",emojiU:\"U+1F1F6 U+1F1E6\"},RE:{name:\"Réunion\",native:\"La Réunion\",phone:\"262\",continent:\"AF\",capital:\"Saint-Denis\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇷🇪\",emojiU:\"U+1F1F7 U+1F1EA\"},RO:{name:\"Romania\",native:\"România\",phone:\"40\",continent:\"EU\",capital:\"Bucharest\",currency:\"RON\",languages:[\"ro\"],emoji:\"🇷🇴\",emojiU:\"U+1F1F7 U+1F1F4\"},RS:{name:\"Serbia\",native:\"Србија\",phone:\"381\",continent:\"EU\",capital:\"Belgrade\",currency:\"RSD\",languages:[\"sr\"],emoji:\"🇷🇸\",emojiU:\"U+1F1F7 U+1F1F8\"},RU:{name:\"Russia\",native:\"Россия\",phone:\"7\",continent:\"EU\",capital:\"Moscow\",currency:\"RUB\",languages:[\"ru\"],emoji:\"🇷🇺\",emojiU:\"U+1F1F7 U+1F1FA\"},RW:{name:\"Rwanda\",native:\"Rwanda\",phone:\"250\",continent:\"AF\",capital:\"Kigali\",currency:\"RWF\",languages:[\"rw\",\"en\",\"fr\"],emoji:\"🇷🇼\",emojiU:\"U+1F1F7 U+1F1FC\"},SA:{name:\"Saudi Arabia\",native:\"العربية السعودية\",phone:\"966\",continent:\"AS\",capital:\"Riyadh\",currency:\"SAR\",languages:[\"ar\"],emoji:\"🇸🇦\",emojiU:\"U+1F1F8 U+1F1E6\"},SB:{name:\"Solomon Islands\",native:\"Solomon Islands\",phone:\"677\",continent:\"OC\",capital:\"Honiara\",currency:\"SBD\",languages:[\"en\"],emoji:\"🇸🇧\",emojiU:\"U+1F1F8 U+1F1E7\"},SC:{name:\"Seychelles\",native:\"Seychelles\",phone:\"248\",continent:\"AF\",capital:\"Victoria\",currency:\"SCR\",languages:[\"fr\",\"en\"],emoji:\"🇸🇨\",emojiU:\"U+1F1F8 U+1F1E8\"},SD:{name:\"Sudan\",native:\"السودان\",phone:\"249\",continent:\"AF\",capital:\"Khartoum\",currency:\"SDG\",languages:[\"ar\",\"en\"],emoji:\"🇸🇩\",emojiU:\"U+1F1F8 U+1F1E9\"},SE:{name:\"Sweden\",native:\"Sverige\",phone:\"46\",continent:\"EU\",capital:\"Stockholm\",currency:\"SEK\",languages:[\"sv\"],emoji:\"🇸🇪\",emojiU:\"U+1F1F8 U+1F1EA\"},SG:{name:\"Singapore\",native:\"Singapore\",phone:\"65\",continent:\"AS\",capital:\"Singapore\",currency:\"SGD\",languages:[\"en\",\"ms\",\"ta\",\"zh\"],emoji:\"🇸🇬\",emojiU:\"U+1F1F8 U+1F1EC\"},SH:{name:\"Saint Helena\",native:\"Saint Helena\",phone:\"290\",continent:\"AF\",capital:\"Jamestown\",currency:\"SHP\",languages:[\"en\"],emoji:\"🇸🇭\",emojiU:\"U+1F1F8 U+1F1ED\"},SI:{name:\"Slovenia\",native:\"Slovenija\",phone:\"386\",continent:\"EU\",capital:\"Ljubljana\",currency:\"EUR\",languages:[\"sl\"],emoji:\"🇸🇮\",emojiU:\"U+1F1F8 U+1F1EE\"},SJ:{name:\"Svalbard and Jan Mayen\",native:\"Svalbard og Jan Mayen\",phone:\"4779\",continent:\"EU\",capital:\"Longyearbyen\",currency:\"NOK\",languages:[\"no\"],emoji:\"🇸🇯\",emojiU:\"U+1F1F8 U+1F1EF\"},SK:{name:\"Slovakia\",native:\"Slovensko\",phone:\"421\",continent:\"EU\",capital:\"Bratislava\",currency:\"EUR\",languages:[\"sk\"],emoji:\"🇸🇰\",emojiU:\"U+1F1F8 U+1F1F0\"},SL:{name:\"Sierra Leone\",native:\"Sierra Leone\",phone:\"232\",continent:\"AF\",capital:\"Freetown\",currency:\"SLL\",languages:[\"en\"],emoji:\"🇸🇱\",emojiU:\"U+1F1F8 U+1F1F1\"},SM:{name:\"San Marino\",native:\"San Marino\",phone:\"378\",continent:\"EU\",capital:\"City of San Marino\",currency:\"EUR\",languages:[\"it\"],emoji:\"🇸🇲\",emojiU:\"U+1F1F8 U+1F1F2\"},SN:{name:\"Senegal\",native:\"Sénégal\",phone:\"221\",continent:\"AF\",capital:\"Dakar\",currency:\"XOF\",languages:[\"fr\"],emoji:\"🇸🇳\",emojiU:\"U+1F1F8 U+1F1F3\"},SO:{name:\"Somalia\",native:\"Soomaaliya\",phone:\"252\",continent:\"AF\",capital:\"Mogadishu\",currency:\"SOS\",languages:[\"so\",\"ar\"],emoji:\"🇸🇴\",emojiU:\"U+1F1F8 U+1F1F4\"},SR:{name:\"Suriname\",native:\"Suriname\",phone:\"597\",continent:\"SA\",capital:\"Paramaribo\",currency:\"SRD\",languages:[\"nl\"],emoji:\"🇸🇷\",emojiU:\"U+1F1F8 U+1F1F7\"},SS:{name:\"South Sudan\",native:\"South Sudan\",phone:\"211\",continent:\"AF\",capital:\"Juba\",currency:\"SSP\",languages:[\"en\"],emoji:\"🇸🇸\",emojiU:\"U+1F1F8 U+1F1F8\"},ST:{name:\"São Tomé and Príncipe\",native:\"São Tomé e Príncipe\",phone:\"239\",continent:\"AF\",capital:\"São Tomé\",currency:\"STN\",languages:[\"pt\"],emoji:\"🇸🇹\",emojiU:\"U+1F1F8 U+1F1F9\"},SV:{name:\"El Salvador\",native:\"El Salvador\",phone:\"503\",continent:\"NA\",capital:\"San Salvador\",currency:\"SVC,USD\",languages:[\"es\"],emoji:\"🇸🇻\",emojiU:\"U+1F1F8 U+1F1FB\"},SX:{name:\"Sint Maarten\",native:\"Sint Maarten\",phone:\"1721\",continent:\"NA\",capital:\"Philipsburg\",currency:\"ANG\",languages:[\"nl\",\"en\"],emoji:\"🇸🇽\",emojiU:\"U+1F1F8 U+1F1FD\"},SY:{name:\"Syria\",native:\"سوريا\",phone:\"963\",continent:\"AS\",capital:\"Damascus\",currency:\"SYP\",languages:[\"ar\"],emoji:\"🇸🇾\",emojiU:\"U+1F1F8 U+1F1FE\"},SZ:{name:\"Swaziland\",native:\"Swaziland\",phone:\"268\",continent:\"AF\",capital:\"Lobamba\",currency:\"SZL\",languages:[\"en\",\"ss\"],emoji:\"🇸🇿\",emojiU:\"U+1F1F8 U+1F1FF\"},TC:{name:\"Turks and Caicos Islands\",native:\"Turks and Caicos Islands\",phone:\"1649\",continent:\"NA\",capital:\"Cockburn Town\",currency:\"USD\",languages:[\"en\"],emoji:\"🇹🇨\",emojiU:\"U+1F1F9 U+1F1E8\"},TD:{name:\"Chad\",native:\"Tchad\",phone:\"235\",continent:\"AF\",capital:\"N'Djamena\",currency:\"XAF\",languages:[\"fr\",\"ar\"],emoji:\"🇹🇩\",emojiU:\"U+1F1F9 U+1F1E9\"},TF:{name:\"French Southern Territories\",native:\"Territoire des Terres australes et antarctiques fr\",phone:\"262\",continent:\"AN\",capital:\"Port-aux-Français\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇹🇫\",emojiU:\"U+1F1F9 U+1F1EB\"},TG:{name:\"Togo\",native:\"Togo\",phone:\"228\",continent:\"AF\",capital:\"Lomé\",currency:\"XOF\",languages:[\"fr\"],emoji:\"🇹🇬\",emojiU:\"U+1F1F9 U+1F1EC\"},TH:{name:\"Thailand\",native:\"ประเทศไทย\",phone:\"66\",continent:\"AS\",capital:\"Bangkok\",currency:\"THB\",languages:[\"th\"],emoji:\"🇹🇭\",emojiU:\"U+1F1F9 U+1F1ED\"},TJ:{name:\"Tajikistan\",native:\"Тоҷикистон\",phone:\"992\",continent:\"AS\",capital:\"Dushanbe\",currency:\"TJS\",languages:[\"tg\",\"ru\"],emoji:\"🇹🇯\",emojiU:\"U+1F1F9 U+1F1EF\"},TK:{name:\"Tokelau\",native:\"Tokelau\",phone:\"690\",continent:\"OC\",capital:\"Fakaofo\",currency:\"NZD\",languages:[\"en\"],emoji:\"🇹🇰\",emojiU:\"U+1F1F9 U+1F1F0\"},TL:{name:\"East Timor\",native:\"Timor-Leste\",phone:\"670\",continent:\"OC\",capital:\"Dili\",currency:\"USD\",languages:[\"pt\"],emoji:\"🇹🇱\",emojiU:\"U+1F1F9 U+1F1F1\"},TM:{name:\"Turkmenistan\",native:\"Türkmenistan\",phone:\"993\",continent:\"AS\",capital:\"Ashgabat\",currency:\"TMT\",languages:[\"tk\",\"ru\"],emoji:\"🇹🇲\",emojiU:\"U+1F1F9 U+1F1F2\"},TN:{name:\"Tunisia\",native:\"تونس\",phone:\"216\",continent:\"AF\",capital:\"Tunis\",currency:\"TND\",languages:[\"ar\"],emoji:\"🇹🇳\",emojiU:\"U+1F1F9 U+1F1F3\"},TO:{name:\"Tonga\",native:\"Tonga\",phone:\"676\",continent:\"OC\",capital:\"Nuku'alofa\",currency:\"TOP\",languages:[\"en\",\"to\"],emoji:\"🇹🇴\",emojiU:\"U+1F1F9 U+1F1F4\"},TR:{name:\"Turkey\",native:\"Türkiye\",phone:\"90\",continent:\"AS\",capital:\"Ankara\",currency:\"TRY\",languages:[\"tr\"],emoji:\"🇹🇷\",emojiU:\"U+1F1F9 U+1F1F7\"},TT:{name:\"Trinidad and Tobago\",native:\"Trinidad and Tobago\",phone:\"1868\",continent:\"NA\",capital:\"Port of Spain\",currency:\"TTD\",languages:[\"en\"],emoji:\"🇹🇹\",emojiU:\"U+1F1F9 U+1F1F9\"},TV:{name:\"Tuvalu\",native:\"Tuvalu\",phone:\"688\",continent:\"OC\",capital:\"Funafuti\",currency:\"AUD\",languages:[\"en\"],emoji:\"🇹🇻\",emojiU:\"U+1F1F9 U+1F1FB\"},TW:{name:\"Taiwan\",native:\"臺灣\",phone:\"886\",continent:\"AS\",capital:\"Taipei\",currency:\"TWD\",languages:[\"zh\"],emoji:\"🇹🇼\",emojiU:\"U+1F1F9 U+1F1FC\"},TZ:{name:\"Tanzania\",native:\"Tanzania\",phone:\"255\",continent:\"AF\",capital:\"Dodoma\",currency:\"TZS\",languages:[\"sw\",\"en\"],emoji:\"🇹🇿\",emojiU:\"U+1F1F9 U+1F1FF\"},UA:{name:\"Ukraine\",native:\"Україна\",phone:\"380\",continent:\"EU\",capital:\"Kyiv\",currency:\"UAH\",languages:[\"uk\"],emoji:\"🇺🇦\",emojiU:\"U+1F1FA U+1F1E6\"},UG:{name:\"Uganda\",native:\"Uganda\",phone:\"256\",continent:\"AF\",capital:\"Kampala\",currency:\"UGX\",languages:[\"en\",\"sw\"],emoji:\"🇺🇬\",emojiU:\"U+1F1FA U+1F1EC\"},UM:{name:\"U.S. Minor Outlying Islands\",native:\"United States Minor Outlying Islands\",phone:\"1\",continent:\"OC\",capital:\"\",currency:\"USD\",languages:[\"en\"],emoji:\"🇺🇲\",emojiU:\"U+1F1FA U+1F1F2\"},US:{name:\"United States\",native:\"United States\",phone:\"1\",continent:\"NA\",capital:\"Washington D.C.\",currency:\"USD,USN,USS\",languages:[\"en\"],emoji:\"🇺🇸\",emojiU:\"U+1F1FA U+1F1F8\"},UY:{name:\"Uruguay\",native:\"Uruguay\",phone:\"598\",continent:\"SA\",capital:\"Montevideo\",currency:\"UYI,UYU\",languages:[\"es\"],emoji:\"🇺🇾\",emojiU:\"U+1F1FA U+1F1FE\"},UZ:{name:\"Uzbekistan\",native:\"O‘zbekiston\",phone:\"998\",continent:\"AS\",capital:\"Tashkent\",currency:\"UZS\",languages:[\"uz\",\"ru\"],emoji:\"🇺🇿\",emojiU:\"U+1F1FA U+1F1FF\"},VA:{name:\"Vatican City\",native:\"Vaticano\",phone:\"379\",continent:\"EU\",capital:\"Vatican City\",currency:\"EUR\",languages:[\"it\",\"la\"],emoji:\"🇻🇦\",emojiU:\"U+1F1FB U+1F1E6\"},VC:{name:\"Saint Vincent and the Grenadines\",native:\"Saint Vincent and the Grenadines\",phone:\"1784\",continent:\"NA\",capital:\"Kingstown\",currency:\"XCD\",languages:[\"en\"],emoji:\"🇻🇨\",emojiU:\"U+1F1FB U+1F1E8\"},VE:{name:\"Venezuela\",native:\"Venezuela\",phone:\"58\",continent:\"SA\",capital:\"Caracas\",currency:\"VES\",languages:[\"es\"],emoji:\"🇻🇪\",emojiU:\"U+1F1FB U+1F1EA\"},VG:{name:\"British Virgin Islands\",native:\"British Virgin Islands\",phone:\"1284\",continent:\"NA\",capital:\"Road Town\",currency:\"USD\",languages:[\"en\"],emoji:\"🇻🇬\",emojiU:\"U+1F1FB U+1F1EC\"},VI:{name:\"U.S. Virgin Islands\",native:\"United States Virgin Islands\",phone:\"1340\",continent:\"NA\",capital:\"Charlotte Amalie\",currency:\"USD\",languages:[\"en\"],emoji:\"🇻🇮\",emojiU:\"U+1F1FB U+1F1EE\"},VN:{name:\"Vietnam\",native:\"Việt Nam\",phone:\"84\",continent:\"AS\",capital:\"Hanoi\",currency:\"VND\",languages:[\"vi\"],emoji:\"🇻🇳\",emojiU:\"U+1F1FB U+1F1F3\"},VU:{name:\"Vanuatu\",native:\"Vanuatu\",phone:\"678\",continent:\"OC\",capital:\"Port Vila\",currency:\"VUV\",languages:[\"bi\",\"en\",\"fr\"],emoji:\"🇻🇺\",emojiU:\"U+1F1FB U+1F1FA\"},WF:{name:\"Wallis and Futuna\",native:\"Wallis et Futuna\",phone:\"681\",continent:\"OC\",capital:\"Mata-Utu\",currency:\"XPF\",languages:[\"fr\"],emoji:\"🇼🇫\",emojiU:\"U+1F1FC U+1F1EB\"},WS:{name:\"Samoa\",native:\"Samoa\",phone:\"685\",continent:\"OC\",capital:\"Apia\",currency:\"WST\",languages:[\"sm\",\"en\"],emoji:\"🇼🇸\",emojiU:\"U+1F1FC U+1F1F8\"},XK:{name:\"Kosovo\",native:\"Republika e Kosovës\",phone:\"377,381,383,386\",continent:\"EU\",capital:\"Pristina\",currency:\"EUR\",languages:[\"sq\",\"sr\"],emoji:\"🇽🇰\",emojiU:\"U+1F1FD U+1F1F0\"},YE:{name:\"Yemen\",native:\"اليَمَن\",phone:\"967\",continent:\"AS\",capital:\"Sana'a\",currency:\"YER\",languages:[\"ar\"],emoji:\"🇾🇪\",emojiU:\"U+1F1FE U+1F1EA\"},YT:{name:\"Mayotte\",native:\"Mayotte\",phone:\"262\",continent:\"AF\",capital:\"Mamoudzou\",currency:\"EUR\",languages:[\"fr\"],emoji:\"🇾🇹\",emojiU:\"U+1F1FE U+1F1F9\"},ZA:{name:\"South Africa\",native:\"South Africa\",phone:\"27\",continent:\"AF\",capital:\"Pretoria\",currency:\"ZAR\",languages:[\"af\",\"en\",\"nr\",\"st\",\"ss\",\"tn\",\"ts\",\"ve\",\"xh\",\"zu\"],emoji:\"🇿🇦\",emojiU:\"U+1F1FF U+1F1E6\"},ZM:{name:\"Zambia\",native:\"Zambia\",phone:\"260\",continent:\"AF\",capital:\"Lusaka\",currency:\"ZMW\",languages:[\"en\"],emoji:\"🇿🇲\",emojiU:\"U+1F1FF U+1F1F2\"},ZW:{name:\"Zimbabwe\",native:\"Zimbabwe\",phone:\"263\",continent:\"AF\",capital:\"Harare\",currency:\"USD,ZAR,BWP,GBP,AUD,CNY,INR,JPY\",languages:[\"en\",\"sn\",\"nd\"],emoji:\"🇿🇼\",emojiU:\"U+1F1FF U+1F1FC\"}},e={af:{name:\"Afrikaans\",native:\"Afrikaans\"},am:{name:\"Amharic\",native:\"አማርኛ\"},ar:{name:\"Arabic\",native:\"العربية\",rtl:1},ay:{name:\"Aymara\",native:\"Aymar\"},az:{name:\"Azerbaijani\",native:\"Azərbaycanca / آذربايجان\"},be:{name:\"Belarusian\",native:\"Беларуская\"},bg:{name:\"Bulgarian\",native:\"Български\"},bi:{name:\"Bislama\",native:\"Bislama\"},bn:{name:\"Bengali\",native:\"বাংলা\"},bs:{name:\"Bosnian\",native:\"Bosanski\"},ca:{name:\"Catalan\",native:\"Català\"},ch:{name:\"Chamorro\",native:\"Chamoru\"},cs:{name:\"Czech\",native:\"Čeština\"},da:{name:\"Danish\",native:\"Dansk\"},de:{name:\"German\",native:\"Deutsch\"},dv:{name:\"Divehi\",native:\"ދިވެހިބަސް\",rtl:1},dz:{name:\"Dzongkha\",native:\"ཇོང་ཁ\"},el:{name:\"Greek\",native:\"Ελληνικά\"},en:{name:\"English\",native:\"English\"},es:{name:\"Spanish\",native:\"Español\"},et:{name:\"Estonian\",native:\"Eesti\"},eu:{name:\"Basque\",native:\"Euskara\"},fa:{name:\"Persian\",native:\"فارسی\",rtl:1},ff:{name:\"Peul\",native:\"Fulfulde\"},fi:{name:\"Finnish\",native:\"Suomi\"},fj:{name:\"Fijian\",native:\"Na Vosa Vakaviti\"},fo:{name:\"Faroese\",native:\"Føroyskt\"},fr:{name:\"French\",native:\"Français\"},ga:{name:\"Irish\",native:\"Gaeilge\"},gl:{name:\"Galician\",native:\"Galego\"},gn:{name:\"Guarani\",native:\"Avañe'ẽ\"},gv:{name:\"Manx\",native:\"Gaelg\"},he:{name:\"Hebrew\",native:\"עברית\",rtl:1},hi:{name:\"Hindi\",native:\"हिन्दी\"},hr:{name:\"Croatian\",native:\"Hrvatski\"},ht:{name:\"Haitian\",native:\"Krèyol ayisyen\"},hu:{name:\"Hungarian\",native:\"Magyar\"},hy:{name:\"Armenian\",native:\"Հայերեն\"},id:{name:\"Indonesian\",native:\"Bahasa Indonesia\"},is:{name:\"Icelandic\",native:\"Íslenska\"},it:{name:\"Italian\",native:\"Italiano\"},ja:{name:\"Japanese\",native:\"日本語\"},ka:{name:\"Georgian\",native:\"ქართული\"},kg:{name:\"Kongo\",native:\"KiKongo\"},kk:{name:\"Kazakh\",native:\"Қазақша\"},kl:{name:\"Greenlandic\",native:\"Kalaallisut\"},km:{name:\"Cambodian\",native:\"ភាសាខ្មែរ\"},ko:{name:\"Korean\",native:\"한국어\"},ku:{name:\"Kurdish\",native:\"Kurdî / كوردی\",rtl:1},ky:{name:\"Kyrgyz\",native:\"Кыргызча\"},la:{name:\"Latin\",native:\"Latina\"},lb:{name:\"Luxembourgish\",native:\"Lëtzebuergesch\"},ln:{name:\"Lingala\",native:\"Lingála\"},lo:{name:\"Laotian\",native:\"ລາວ / Pha xa lao\"},lt:{name:\"Lithuanian\",native:\"Lietuvių\"},lu:{name:\"Luba-Katanga\",native:\"Tshiluba\"},lv:{name:\"Latvian\",native:\"Latviešu\"},mg:{name:\"Malagasy\",native:\"Malagasy\"},mh:{name:\"Marshallese\",native:\"Kajin Majel / Ebon\"},mi:{name:\"Maori\",native:\"Māori\"},mk:{name:\"Macedonian\",native:\"Македонски\"},mn:{name:\"Mongolian\",native:\"Монгол\"},ms:{name:\"Malay\",native:\"Bahasa Melayu\"},mt:{name:\"Maltese\",native:\"bil-Malti\"},my:{name:\"Burmese\",native:\"မြန်မာစာ\"},na:{name:\"Nauruan\",native:\"Dorerin Naoero\"},nb:{name:\"Norwegian Bokmål\",native:\"Norsk bokmål\"},nd:{name:\"North Ndebele\",native:\"Sindebele\"},ne:{name:\"Nepali\",native:\"नेपाली\"},nl:{name:\"Dutch\",native:\"Nederlands\"},nn:{name:\"Norwegian Nynorsk\",native:\"Norsk nynorsk\"},no:{name:\"Norwegian\",native:\"Norsk\"},nr:{name:\"South Ndebele\",native:\"isiNdebele\"},ny:{name:\"Chichewa\",native:\"Chi-Chewa\"},oc:{name:\"Occitan\",native:\"Occitan\"},pa:{name:\"Panjabi / Punjabi\",native:\"ਪੰਜਾਬੀ / पंजाबी / پنجابي\"},pl:{name:\"Polish\",native:\"Polski\"},ps:{name:\"Pashto\",native:\"پښتو\",rtl:1},pt:{name:\"Portuguese\",native:\"Português\"},qu:{name:\"Quechua\",native:\"Runa Simi\"},rn:{name:\"Kirundi\",native:\"Kirundi\"},ro:{name:\"Romanian\",native:\"Română\"},ru:{name:\"Russian\",native:\"Русский\"},rw:{name:\"Rwandi\",native:\"Kinyarwandi\"},sg:{name:\"Sango\",native:\"Sängö\"},si:{name:\"Sinhalese\",native:\"සිංහල\"},sk:{name:\"Slovak\",native:\"Slovenčina\"},sl:{name:\"Slovenian\",native:\"Slovenščina\"},sm:{name:\"Samoan\",native:\"Gagana Samoa\"},sn:{name:\"Shona\",native:\"chiShona\"},so:{name:\"Somalia\",native:\"Soomaaliga\"},sq:{name:\"Albanian\",native:\"Shqip\"},sr:{name:\"Serbian\",native:\"Српски\"},ss:{name:\"Swati\",native:\"SiSwati\"},st:{name:\"Southern Sotho\",native:\"Sesotho\"},sv:{name:\"Swedish\",native:\"Svenska\"},sw:{name:\"Swahili\",native:\"Kiswahili\"},ta:{name:\"Tamil\",native:\"தமிழ்\"},tg:{name:\"Tajik\",native:\"Тоҷикӣ\"},th:{name:\"Thai\",native:\"ไทย / Phasa Thai\"},ti:{name:\"Tigrinya\",native:\"ትግርኛ\"},tk:{name:\"Turkmen\",native:\"Туркмен / تركمن\"},tn:{name:\"Tswana\",native:\"Setswana\"},to:{name:\"Tonga\",native:\"Lea Faka-Tonga\"},tr:{name:\"Turkish\",native:\"Türkçe\"},ts:{name:\"Tsonga\",native:\"Xitsonga\"},uk:{name:\"Ukrainian\",native:\"Українська\"},ur:{name:\"Urdu\",native:\"اردو\",rtl:1},uz:{name:\"Uzbek\",native:\"Ўзбек\"},ve:{name:\"Venda\",native:\"Tshivenḓa\"},vi:{name:\"Vietnamese\",native:\"Tiếng Việt\"},xh:{name:\"Xhosa\",native:\"isiXhosa\"},zh:{name:\"Chinese\",native:\"中文\"},zu:{name:\"Zulu\",native:\"isiZulu\"}},i={aa:{name:\"Afar\",native:\"Afar\"},ab:{name:\"Abkhazian\",native:\"Аҧсуа\"},af:{name:\"Afrikaans\",native:\"Afrikaans\"},ak:{name:\"Akan\",native:\"Akana\"},am:{name:\"Amharic\",native:\"አማርኛ\"},an:{name:\"Aragonese\",native:\"Aragonés\"},ar:{name:\"Arabic\",native:\"العربية\",rtl:1},as:{name:\"Assamese\",native:\"অসমীয়া\"},av:{name:\"Avar\",native:\"Авар\"},ay:{name:\"Aymara\",native:\"Aymar\"},az:{name:\"Azerbaijani\",native:\"Azərbaycanca / آذربايجان\"},ba:{name:\"Bashkir\",native:\"Башҡорт\"},be:{name:\"Belarusian\",native:\"Беларуская\"},bg:{name:\"Bulgarian\",native:\"Български\"},bh:{name:\"Bihari\",native:\"भोजपुरी\"},bi:{name:\"Bislama\",native:\"Bislama\"},bm:{name:\"Bambara\",native:\"Bamanankan\"},bn:{name:\"Bengali\",native:\"বাংলা\"},bo:{name:\"Tibetan\",native:\"བོད་ཡིག / Bod skad\"},br:{name:\"Breton\",native:\"Brezhoneg\"},bs:{name:\"Bosnian\",native:\"Bosanski\"},ca:{name:\"Catalan\",native:\"Català\"},ce:{name:\"Chechen\",native:\"Нохчийн\"},ch:{name:\"Chamorro\",native:\"Chamoru\"},co:{name:\"Corsican\",native:\"Corsu\"},cr:{name:\"Cree\",native:\"Nehiyaw\"},cs:{name:\"Czech\",native:\"Čeština\"},cu:{name:\"Old Church Slavonic / Old Bulgarian\",native:\"словѣньскъ / slověnĭskŭ\"},cv:{name:\"Chuvash\",native:\"Чăваш\"},cy:{name:\"Welsh\",native:\"Cymraeg\"},da:{name:\"Danish\",native:\"Dansk\"},de:{name:\"German\",native:\"Deutsch\"},dv:{name:\"Divehi\",native:\"ދިވެހިބަސް\",rtl:1},dz:{name:\"Dzongkha\",native:\"ཇོང་ཁ\"},ee:{name:\"Ewe\",native:\"Ɛʋɛ\"},el:{name:\"Greek\",native:\"Ελληνικά\"},en:{name:\"English\",native:\"English\"},eo:{name:\"Esperanto\",native:\"Esperanto\"},es:{name:\"Spanish\",native:\"Español\"},et:{name:\"Estonian\",native:\"Eesti\"},eu:{name:\"Basque\",native:\"Euskara\"},fa:{name:\"Persian\",native:\"فارسی\",rtl:1},ff:{name:\"Peul\",native:\"Fulfulde\"},fi:{name:\"Finnish\",native:\"Suomi\"},fj:{name:\"Fijian\",native:\"Na Vosa Vakaviti\"},fo:{name:\"Faroese\",native:\"Føroyskt\"},fr:{name:\"French\",native:\"Français\"},fy:{name:\"West Frisian\",native:\"Frysk\"},ga:{name:\"Irish\",native:\"Gaeilge\"},gd:{name:\"Scottish Gaelic\",native:\"Gàidhlig\"},gl:{name:\"Galician\",native:\"Galego\"},gn:{name:\"Guarani\",native:\"Avañe'ẽ\"},gu:{name:\"Gujarati\",native:\"ગુજરાતી\"},gv:{name:\"Manx\",native:\"Gaelg\"},ha:{name:\"Hausa\",native:\"هَوُسَ\",rtl:1},he:{name:\"Hebrew\",native:\"עברית\",rtl:1},hi:{name:\"Hindi\",native:\"हिन्दी\"},ho:{name:\"Hiri Motu\",native:\"Hiri Motu\"},hr:{name:\"Croatian\",native:\"Hrvatski\"},ht:{name:\"Haitian\",native:\"Krèyol ayisyen\"},hu:{name:\"Hungarian\",native:\"Magyar\"},hy:{name:\"Armenian\",native:\"Հայերեն\"},hz:{name:\"Herero\",native:\"Otsiherero\"},ia:{name:\"Interlingua\",native:\"Interlingua\"},id:{name:\"Indonesian\",native:\"Bahasa Indonesia\"},ie:{name:\"Interlingue\",native:\"Interlingue\"},ig:{name:\"Igbo\",native:\"Igbo\"},ii:{name:\"Sichuan Yi\",native:\"ꆇꉙ / 四川彝语\"},ik:{name:\"Inupiak\",native:\"Iñupiak\"},io:{name:\"Ido\",native:\"Ido\"},is:{name:\"Icelandic\",native:\"Íslenska\"},it:{name:\"Italian\",native:\"Italiano\"},iu:{name:\"Inuktitut\",native:\"ᐃᓄᒃᑎᑐᑦ\"},ja:{name:\"Japanese\",native:\"日本語\"},jv:{name:\"Javanese\",native:\"Basa Jawa\"},ka:{name:\"Georgian\",native:\"ქართული\"},kg:{name:\"Kongo\",native:\"KiKongo\"},ki:{name:\"Kikuyu\",native:\"Gĩkũyũ\"},kj:{name:\"Kuanyama\",native:\"Kuanyama\"},kk:{name:\"Kazakh\",native:\"Қазақша\"},kl:{name:\"Greenlandic\",native:\"Kalaallisut\"},km:{name:\"Cambodian\",native:\"ភាសាខ្មែរ\"},kn:{name:\"Kannada\",native:\"ಕನ್ನಡ\"},ko:{name:\"Korean\",native:\"한국어\"},kr:{name:\"Kanuri\",native:\"Kanuri\"},ks:{name:\"Kashmiri\",native:\"कश्मीरी / كشميري\",rtl:1},ku:{name:\"Kurdish\",native:\"Kurdî / كوردی\",rtl:1},kv:{name:\"Komi\",native:\"Коми\"},kw:{name:\"Cornish\",native:\"Kernewek\"},ky:{name:\"Kyrgyz\",native:\"Кыргызча\"},la:{name:\"Latin\",native:\"Latina\"},lb:{name:\"Luxembourgish\",native:\"Lëtzebuergesch\"},lg:{name:\"Ganda\",native:\"Luganda\"},li:{name:\"Limburgian\",native:\"Limburgs\"},ln:{name:\"Lingala\",native:\"Lingála\"},lo:{name:\"Laotian\",native:\"ລາວ / Pha xa lao\"},lt:{name:\"Lithuanian\",native:\"Lietuvių\"},lu:{name:\"Luba-Katanga\",native:\"Tshiluba\"},lv:{name:\"Latvian\",native:\"Latviešu\"},mg:{name:\"Malagasy\",native:\"Malagasy\"},mh:{name:\"Marshallese\",native:\"Kajin Majel / Ebon\"},mi:{name:\"Maori\",native:\"Māori\"},mk:{name:\"Macedonian\",native:\"Македонски\"},ml:{name:\"Malayalam\",native:\"മലയാളം\"},mn:{name:\"Mongolian\",native:\"Монгол\"},mo:{name:\"Moldovan\",native:\"Moldovenească\"},mr:{name:\"Marathi\",native:\"मराठी\"},ms:{name:\"Malay\",native:\"Bahasa Melayu\"},mt:{name:\"Maltese\",native:\"bil-Malti\"},my:{name:\"Burmese\",native:\"မြန်မာစာ\"},na:{name:\"Nauruan\",native:\"Dorerin Naoero\"},nb:{name:\"Norwegian Bokmål\",native:\"Norsk bokmål\"},nd:{name:\"North Ndebele\",native:\"Sindebele\"},ne:{name:\"Nepali\",native:\"नेपाली\"},ng:{name:\"Ndonga\",native:\"Oshiwambo\"},nl:{name:\"Dutch\",native:\"Nederlands\"},nn:{name:\"Norwegian Nynorsk\",native:\"Norsk nynorsk\"},no:{name:\"Norwegian\",native:\"Norsk\"},nr:{name:\"South Ndebele\",native:\"isiNdebele\"},nv:{name:\"Navajo\",native:\"Diné bizaad\"},ny:{name:\"Chichewa\",native:\"Chi-Chewa\"},oc:{name:\"Occitan\",native:\"Occitan\"},oj:{name:\"Ojibwa\",native:\"ᐊᓂᔑᓈᐯᒧᐎᓐ / Anishinaabemowin\"},om:{name:\"Oromo\",native:\"Oromoo\"},or:{name:\"Oriya\",native:\"ଓଡ଼ିଆ\"},os:{name:\"Ossetian / Ossetic\",native:\"Иронау\"},pa:{name:\"Panjabi / Punjabi\",native:\"ਪੰਜਾਬੀ / पंजाबी / پنجابي\"},pi:{name:\"Pali\",native:\"Pāli / पाऴि\"},pl:{name:\"Polish\",native:\"Polski\"},ps:{name:\"Pashto\",native:\"پښتو\",rtl:1},pt:{name:\"Portuguese\",native:\"Português\"},qu:{name:\"Quechua\",native:\"Runa Simi\"},rm:{name:\"Raeto Romance\",native:\"Rumantsch\"},rn:{name:\"Kirundi\",native:\"Kirundi\"},ro:{name:\"Romanian\",native:\"Română\"},ru:{name:\"Russian\",native:\"Русский\"},rw:{name:\"Rwandi\",native:\"Kinyarwandi\"},sa:{name:\"Sanskrit\",native:\"संस्कृतम्\"},sc:{name:\"Sardinian\",native:\"Sardu\"},sd:{name:\"Sindhi\",native:\"सिनधि\"},se:{name:\"Northern Sami\",native:\"Sámegiella\"},sg:{name:\"Sango\",native:\"Sängö\"},sh:{name:\"Serbo-Croatian\",native:\"Srpskohrvatski / Српскохрватски\"},si:{name:\"Sinhalese\",native:\"සිංහල\"},sk:{name:\"Slovak\",native:\"Slovenčina\"},sl:{name:\"Slovenian\",native:\"Slovenščina\"},sm:{name:\"Samoan\",native:\"Gagana Samoa\"},sn:{name:\"Shona\",native:\"chiShona\"},so:{name:\"Somalia\",native:\"Soomaaliga\"},sq:{name:\"Albanian\",native:\"Shqip\"},sr:{name:\"Serbian\",native:\"Српски\"},ss:{name:\"Swati\",native:\"SiSwati\"},st:{name:\"Southern Sotho\",native:\"Sesotho\"},su:{name:\"Sundanese\",native:\"Basa Sunda\"},sv:{name:\"Swedish\",native:\"Svenska\"},sw:{name:\"Swahili\",native:\"Kiswahili\"},ta:{name:\"Tamil\",native:\"தமிழ்\"},te:{name:\"Telugu\",native:\"తెలుగు\"},tg:{name:\"Tajik\",native:\"Тоҷикӣ\"},th:{name:\"Thai\",native:\"ไทย / Phasa Thai\"},ti:{name:\"Tigrinya\",native:\"ትግርኛ\"},tk:{name:\"Turkmen\",native:\"Туркмен / تركمن\"},tl:{name:\"Tagalog / Filipino\",native:\"Tagalog\"},tn:{name:\"Tswana\",native:\"Setswana\"},to:{name:\"Tonga\",native:\"Lea Faka-Tonga\"},tr:{name:\"Turkish\",native:\"Türkçe\"},ts:{name:\"Tsonga\",native:\"Xitsonga\"},tt:{name:\"Tatar\",native:\"Tatarça\"},tw:{name:\"Twi\",native:\"Twi\"},ty:{name:\"Tahitian\",native:\"Reo Mā`ohi\"},ug:{name:\"Uyghur\",native:\"Uyƣurqə / ئۇيغۇرچە\"},uk:{name:\"Ukrainian\",native:\"Українська\"},ur:{name:\"Urdu\",native:\"اردو\",rtl:1},uz:{name:\"Uzbek\",native:\"Ўзбек\"},ve:{name:\"Venda\",native:\"Tshivenḓa\"},vi:{name:\"Vietnamese\",native:\"Tiếng Việt\"},vo:{name:\"Volapük\",native:\"Volapük\"},wa:{name:\"Walloon\",native:\"Walon\"},wo:{name:\"Wolof\",native:\"Wollof\"},xh:{name:\"Xhosa\",native:\"isiXhosa\"},yi:{name:\"Yiddish\",native:\"ייִדיש\",rtl:1},yo:{name:\"Yoruba\",native:\"Yorùbá\"},za:{name:\"Zhuang\",native:\"Cuengh / Tôô / 壮语\"},zh:{name:\"Chinese\",native:\"中文\"},zu:{name:\"Zulu\",native:\"isiZulu\"}};const t=2147483647,o=36,m=/^xn--/,r=/[^\\0-\\x7E]/,c=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,l={overflow:\"Overflow: input needs wider integers to process\",\"not-basic\":\"Illegal input >= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},u=Math.floor,F=String.fromCharCode;function U(n){throw new RangeError(l[n])}function s(n,a){const e=n.split(\"@\");let i=\"\";e.length>1&&(i=e[0]+\"@\",n=e[1]);const t=function(n,a){const e=[];let i=n.length;for(;i--;)e[i]=a(n[i]);return e}((n=n.replace(c,\".\")).split(\".\"),a).join(\".\");return i+t}function g(n){const a=[];let e=0;const i=n.length;for(;e=55296&&t<=56319&&e>1,n+=u(n/a);n>455;i+=o)n=u(n/35);return u(i+36*n/(n+38))},h=function(n){const a=[],e=n.length;let i=0,m=128,r=72,c=n.lastIndexOf(\"-\");c<0&&(c=0);for(let e=0;e=128&&U(\"not-basic\"),a.push(n.charCodeAt(e));for(let F=c>0?c+1:0;F=e&&U(\"invalid-input\");const c=(l=n.charCodeAt(F++))-48<10?l-22:l-65<26?l-65:l-97<26?l-97:o;(c>=o||c>u((t-i)/a))&&U(\"overflow\"),i+=c*a;const s=m<=r?1:m>=r+26?26:m-r;if(cu(t/g)&&U(\"overflow\"),a*=g}const s=a.length+1;r=p(i-c,s,0==c),u(i/s)>t-m&&U(\"overflow\"),m+=u(i/s),i%=s,a.splice(i++,0,m)}var l;return String.fromCodePoint(...a)},j=function(n){const a=[];let e=(n=g(n)).length,i=128,m=0,r=72;for(const e of n)e<128&&a.push(F(e));let c=a.length,l=c;for(c&&a.push(\"-\");l=i&&au((t-m)/s)&&U(\"overflow\"),m+=(e-i)*s,i=e;for(const e of n)if(et&&U(\"overflow\"),e==i){let n=m;for(let e=o;;e+=o){const i=e<=r?1:e>=r+26?26:e-r;if(nString.fromCodePoint(...n)},decode:h,encode:j,toASCII:function(n){return s(n,(function(n){return r.test(n)?\"xn--\"+j(n):n}))},toUnicode:function(n){return s(n,(function(n){return m.test(n)?h(n.slice(4).toLowerCase()):n}))}};const{ucs2:{decode:y,encode:A}}=E,S=127462-\"A\".charCodeAt(0),d=/^[A-Z]{2}$/;return{continents:n,countries:a,languages:e,languagesAll:i,getEmojiFlag:n=>d.test(n)?A(n.split(\"\").map((n=>S+n.charCodeAt(0)))):\"\",getUnicode:n=>y(n).map((n=>\"U+\"+Number(n).toString(16).toUpperCase())).join(\" \")}}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=o?a:o)),r=a,t=h(t),e.slice(r,r+t.length)==t}}).call(this,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(r=window)}e.exports=r},function(e,t,r){(function(t){var r=/^\\[object .+?Constructor\\]$/,n=\"object\"==typeof t&&t&&t.Object===Object&&t,a=\"object\"==typeof self&&self&&self.Object===Object&&self,o=n||a||Function(\"return this\")();var i,u=Array.prototype,c=Function.prototype,s=Object.prototype,l=o[\"__core-js_shared__\"],f=(i=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+i:\"\",d=c.toString,p=s.hasOwnProperty,h=s.toString,m=RegExp(\"^\"+d.call(p).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),y=u.splice,b=x(o,\"Map\"),g=x(Object,\"create\");function v(e){var t=-1,r=e?e.length:0;for(this.clear();++t-1},C.prototype.set=function(e,t){var r=this.__data__,n=w(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},_.prototype.clear=function(){this.__data__={hash:new v,map:new(b||C),string:new v}},_.prototype.delete=function(e){return j(this,e).delete(e)},_.prototype.get=function(e){return j(this,e).get(e)},_.prototype.has=function(e){return j(this,e).has(e)},_.prototype.set=function(e,t){return j(this,e).set(e,t),this},N.Cache=_,e.exports=N}).call(this,r(3))},function(e,t,r){(function(t){var r=/^\\s+|\\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,i=parseInt,u=\"object\"==typeof t&&t&&t.Object===Object&&t,c=\"object\"==typeof self&&self&&self.Object===Object&&self,s=u||c||Function(\"return this\")(),l=Object.prototype.toString,f=Math.max,d=Math.min,p=function(){return s.Date.now()};function h(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function m(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==l.call(e)}(e))return NaN;if(h(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(r,\"\");var u=a.test(e);return u||o.test(e)?i(e.slice(2),u?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,r){var n,a,o,i,u,c,s=0,l=!1,y=!1,b=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function g(t){var r=n,o=a;return n=a=void 0,s=t,i=e.apply(o,r)}function v(e){return s=e,u=setTimeout(_,t),l?g(e):i}function C(e){var r=e-c;return void 0===c||r>=t||r<0||y&&e-s>=o}function _(){var e=p();if(C(e))return w(e);u=setTimeout(_,function(e){var r=t-(e-c);return y?d(r,o-(e-s)):r}(e))}function w(e){return u=void 0,b&&n?g(e):(n=a=void 0,i)}function S(){var e=p(),r=C(e);if(n=arguments,a=this,c=e,r){if(void 0===u)return v(c);if(y)return u=setTimeout(_,t),g(c)}return void 0===u&&(u=setTimeout(_,t)),i}return t=m(t)||0,h(r)&&(l=!!r.leading,o=(y=\"maxWait\"in r)?f(m(r.maxWait)||0,t):o,b=\"trailing\"in r?!!r.trailing:b),S.cancel=function(){void 0!==u&&clearTimeout(u),s=0,n=c=a=u=void 0},S.flush=function(){return void 0===u?i:w(p())},S}}).call(this,r(3))},function(e,t,r){(function(e,r){var n=\"[object Arguments]\",a=\"[object Map]\",o=\"[object Object]\",i=\"[object Set]\",u=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,c=/^\\w*$/,s=/^\\./,l=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,f=/\\\\(\\\\)?/g,d=/^\\[object .+?Constructor\\]$/,p=/^(?:0|[1-9]\\d*)$/,h={};h[\"[object Float32Array]\"]=h[\"[object Float64Array]\"]=h[\"[object Int8Array]\"]=h[\"[object Int16Array]\"]=h[\"[object Int32Array]\"]=h[\"[object Uint8Array]\"]=h[\"[object Uint8ClampedArray]\"]=h[\"[object Uint16Array]\"]=h[\"[object Uint32Array]\"]=!0,h[n]=h[\"[object Array]\"]=h[\"[object ArrayBuffer]\"]=h[\"[object Boolean]\"]=h[\"[object DataView]\"]=h[\"[object Date]\"]=h[\"[object Error]\"]=h[\"[object Function]\"]=h[a]=h[\"[object Number]\"]=h[o]=h[\"[object RegExp]\"]=h[i]=h[\"[object String]\"]=h[\"[object WeakMap]\"]=!1;var m=\"object\"==typeof e&&e&&e.Object===Object&&e,y=\"object\"==typeof self&&self&&self.Object===Object&&self,b=m||y||Function(\"return this\")(),g=t&&!t.nodeType&&t,v=g&&\"object\"==typeof r&&r&&!r.nodeType&&r,C=v&&v.exports===g&&m.process,_=function(){try{return C&&C.binding(\"util\")}catch(e){}}(),w=_&&_.isTypedArray;function S(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a-1},ue.prototype.set=function(e,t){var r=this.__data__,n=de(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ce.prototype.clear=function(){this.__data__={hash:new ie,map:new(H||ue),string:new ie}},ce.prototype.delete=function(e){return xe(this,e).delete(e)},ce.prototype.get=function(e){return xe(this,e).get(e)},ce.prototype.has=function(e){return xe(this,e).has(e)},ce.prototype.set=function(e,t){return xe(this,e).set(e,t),this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},se.prototype.has=function(e){return this.__data__.has(e)},le.prototype.clear=function(){this.__data__=new ue},le.prototype.delete=function(e){return this.__data__.delete(e)},le.prototype.get=function(e){return this.__data__.get(e)},le.prototype.has=function(e){return this.__data__.has(e)},le.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ue){var n=r.__data__;if(!H||n.length<199)return n.push([e,t]),this;r=this.__data__=new ce(n)}return r.set(e,t),this};var pe,he,me=(pe=function(e,t){return e&&ye(e,t,qe)},function(e,t){if(null==e)return e;if(!ze(e))return pe(e,t);for(var r=e.length,n=he?r:-1,a=Object(e);(he?n--:++nu))return!1;var s=o.get(e);if(s&&o.get(t))return s==t;var l=-1,f=!0,d=1&a?new se:void 0;for(o.set(e,t),o.set(t,e);++l-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function $e(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function Ve(e){return!!e&&\"object\"==typeof e}function Ke(e){return\"symbol\"==typeof e||Ve(e)&&\"[object Symbol]\"==z.call(e)}var Ue=w?function(e){return function(t){return e(t)}}(w):function(e){return Ve(e)&&Ge(e.length)&&!!h[z.call(e)]};function qe(e){return ze(e)?fe(e):we(e)}function He(e){return e}r.exports=function(e,t,r){var n=Le(e)?S:x,a=arguments.length<3;return n(e,_e(t),r,a,me)}}).call(this,r(3),r(7)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){String.prototype.padEnd||(String.prototype.padEnd=function(e,t){return e>>=0,t=String(void 0!==t?t:\" \"),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),String(this)+t.slice(0,e))})},function(e,t,r){\"use strict\";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t0?(o.mainCode=!0,c||\"Array\"===t.constructor.name&&t.includes(e[2])?(o.hasAreaCodes=!0,[o].concat(u)):(s=s.concat(u),[o])):[o]})))),s]}function A(e,t,r,n){if(null!==r){var a=Object.keys(r),o=Object.values(r);a.forEach((function(r,a){if(n)return e.push([r,o[a]]);var i=e.findIndex((function(e){return e[0]===r}));if(-1===i){var u=[r];u[t]=o[a],e.push(u)}else e[i][t]=o[a]}))}}function D(e,t){return 0===t.length?e:e.map((function(e){var r=t.findIndex((function(t){return t[0]===e[2]}));if(-1===r)return e;var n=t[r];return n[1]&&(e[4]=n[1]),n[3]&&(e[5]=n[3]),n[2]&&(e[6]=n[2]),e}))}var P=function e(t,r,n,a,i,u,s,l,f,d,p,h,m,y){c(this,e),this.filterRegions=function(e,t){if(\"string\"==typeof e){var r=e;return t.filter((function(e){return e.regions.some((function(e){return e===r}))}))}return t.filter((function(t){return e.map((function(e){return t.regions.some((function(t){return t===e}))})).some((function(e){return e}))}))},this.sortTerritories=function(e,t){var r=[].concat(o(e),o(t));return r.sort((function(e,t){return e.namet.name?1:0})),r},this.getFilteredCountryList=function(e,t,r){return 0===e.length?t:r?e.map((function(e){var r=t.find((function(t){return t.iso2===e}));if(r)return r})).filter((function(e){return e})):t.filter((function(t){return e.some((function(e){return e===t.iso2}))}))},this.localizeCountries=function(e,t,r){for(var n=0;nt.localName?1:0})),e},this.getCustomAreas=function(e,t){for(var r=[],n=0;nt.dialCode.length)return r;if(r.dialCode.length===t.dialCode.length&&r.priority=\"0\"&&e.indexOf(0)<=\"9\"?n.find((function(t){return t.dialCode==+e})):n.find((function(t){return t.iso2==e})))&&t.dialCode&&r.setState({selectedCountry:t,formattedNumber:r.props.disableCountryCode?\"\":r.formatNumber(t.dialCode,t)})},r.scrollTo=function(e,t){if(e){var n=r.dropdownRef;if(n&&document.body){var a=n.offsetHeight,o=n.getBoundingClientRect().top+document.body.scrollTop,i=o+a,u=e,c=u.getBoundingClientRect(),s=u.offsetHeight,l=c.top+document.body.scrollTop,f=l+s,d=l-o+n.scrollTop,p=a/2-s/2;if(r.props.enableSearch?li){t&&(d+=p);var h=a-s;n.scrollTop=d-h}}}},r.scrollToTop=function(){var e=r.dropdownRef;e&&document.body&&(e.scrollTop=0)},r.formatNumber=function(e,t){if(!t)return e;var n,o=t.format,c=r.props,s=c.disableCountryCode,l=c.enableAreaCodeStretch,f=c.enableLongNumbers,d=c.autoFormat;if(s?((n=o.split(\" \")).shift(),n=n.join(\" \")):l&&t.isAreaCode?((n=o.split(\" \"))[1]=n[1].replace(/\\.+/,\"\".padEnd(t.areaCodeLength,\".\")),n=n.join(\" \")):n=o,!e||0===e.length)return s?\"\":r.props.prefix;if(e&&e.length<2||!n||!d)return s?e:r.props.prefix+e;var p,h=w()(n,(function(e,t){if(0===e.remainingText.length)return e;if(\".\"!==t)return{formattedText:e.formattedText+t,remainingText:e.remainingText};var r,n=i(r=e.remainingText)||a(r)||u(),o=n[0],c=n.slice(1);return{formattedText:e.formattedText+o,remainingText:c}}),{formattedText:\"\",remainingText:e.split(\"\")});return(p=f?h.formattedText+h.remainingText.join(\"\"):h.formattedText).includes(\"(\")&&!p.includes(\")\")&&(p+=\")\"),p},r.cursorToEnd=function(){var e=r.numberInputRef;if(document.activeElement===e){e.focus();var t=e.value.length;\")\"===e.value.charAt(t-1)&&(t-=1),e.setSelectionRange(t,t)}},r.getElement=function(e){return r[\"flag_no_\".concat(e)]},r.getCountryData=function(){return r.state.selectedCountry?{name:r.state.selectedCountry.name||\"\",dialCode:r.state.selectedCountry.dialCode||\"\",countryCode:r.state.selectedCountry.iso2||\"\",format:r.state.selectedCountry.format||\"\"}:{}},r.handleFlagDropdownClick=function(e){if(e.preventDefault(),r.state.showDropdown||!r.props.disabled){var t=r.state,n=t.preferredCountries,a=t.onlyCountries,o=t.selectedCountry,i=r.concatPreferredCountries(n,a).findIndex((function(e){return e.dialCode===o.dialCode&&e.iso2===o.iso2}));r.setState({showDropdown:!r.state.showDropdown,highlightCountryIndex:i},(function(){r.state.showDropdown&&r.scrollTo(r.getElement(r.state.highlightCountryIndex))}))}},r.handleInput=function(e){var t=e.target.value,n=r.props,a=n.prefix,o=n.onChange,i=r.props.disableCountryCode?\"\":a,u=r.state.selectedCountry,c=r.state.freezeSelection;if(!r.props.countryCodeEditable){var s=a+(u.hasAreaCodes?r.state.onlyCountries.find((function(e){return e.iso2===u.iso2&&e.mainCode})).dialCode:u.dialCode);if(t.slice(0,s.length)!==s)return}if(t===a)return o&&o(\"\",r.getCountryData(),e,\"\"),r.setState({formattedNumber:\"\"});if(t.replace(/\\D/g,\"\").length>15){if(!1===r.props.enableLongNumbers)return;if(\"number\"==typeof r.props.enableLongNumbers&&t.replace(/\\D/g,\"\").length>r.props.enableLongNumbers)return}if(t!==r.state.formattedNumber){e.preventDefault?e.preventDefault():e.returnValue=!1;var l=r.props.country,f=r.state,d=f.onlyCountries,p=f.selectedCountry,h=f.hiddenAreaCodes;if(o&&e.persist(),t.length>0){var m=t.replace(/\\D/g,\"\");(!r.state.freezeSelection||p&&p.dialCode.length>m.length)&&(u=r.props.disableCountryGuess?p:r.guessSelectedCountry(m.substring(0,6),l,d,h)||p,c=!1),i=r.formatNumber(m,u),u=u.dialCode?u:p}var y=e.target.selectionStart,b=e.target.selectionStart,g=r.state.formattedNumber,v=i.length-g.length;r.setState({formattedNumber:i,freezeSelection:c,selectedCountry:u},(function(){v>0&&(b-=v),\")\"==i.charAt(i.length-1)?r.numberInputRef.setSelectionRange(i.length-1,i.length-1):b>0&&g.length>=i.length?r.numberInputRef.setSelectionRange(b,b):y1?o.replace(n.dialCode,a.dialCode):a.dialCode,u=r.formatNumber(i.replace(/\\D/g,\"\"),a);r.setState({showDropdown:!1,selectedCountry:a,freezeSelection:!0,formattedNumber:u,searchValue:\"\"},(function(){r.cursorToEnd(),r.props.onChange&&r.props.onChange(u.replace(/[^0-9]+/g,\"\"),r.getCountryData(),t,u)}))}},r.handleInputFocus=function(e){r.numberInputRef&&r.numberInputRef.value===r.props.prefix&&r.state.selectedCountry&&!r.props.disableCountryCode&&r.setState({formattedNumber:r.props.prefix+r.state.selectedCountry.dialCode},(function(){r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)})),r.setState({placeholder:\"\"}),r.props.onFocus&&r.props.onFocus(e,r.getCountryData()),r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)},r.handleInputBlur=function(e){e.target.value||r.setState({placeholder:r.props.placeholder}),r.props.onBlur&&r.props.onBlur(e,r.getCountryData())},r.handleInputCopy=function(e){if(r.props.copyNumbersOnly){var t=window.getSelection().toString().replace(/[^0-9]+/g,\"\");e.clipboardData.setData(\"text/plain\",t),e.preventDefault()}},r.getHighlightCountryIndex=function(e){var t=r.state.highlightCountryIndex+e;return t<0||t>=r.state.onlyCountries.length+r.state.preferredCountries.length?t-e:r.props.enableSearch&&t>r.getSearchFilteredCountries().length?0:t},r.searchCountry=function(){var e=r.getProbableCandidate(r.state.queryString)||r.state.onlyCountries[0],t=r.state.onlyCountries.findIndex((function(t){return t==e}))+r.state.preferredCountries.length;r.scrollTo(r.getElement(t),!0),r.setState({queryString:\"\",highlightCountryIndex:t})},r.handleKeydown=function(e){var t=r.props.keys,n=e.target.className;if(n.includes(\"selected-flag\")&&e.which===t.ENTER&&!r.state.showDropdown)return r.handleFlagDropdownClick(e);if(n.includes(\"form-control\")&&(e.which===t.ENTER||e.which===t.ESC))return e.target.blur();if(r.state.showDropdown&&!r.props.disabled&&(!n.includes(\"search-box\")||e.which===t.UP||e.which===t.DOWN||e.which===t.ENTER||e.which===t.ESC&&\"\"===e.target.value)){e.preventDefault?e.preventDefault():e.returnValue=!1;var a=function(e){r.setState({highlightCountryIndex:r.getHighlightCountryIndex(e)},(function(){r.scrollTo(r.getElement(r.state.highlightCountryIndex),!0)}))};switch(e.which){case t.DOWN:a(1);break;case t.UP:a(-1);break;case t.ENTER:r.props.enableSearch?r.handleFlagItemClick(r.getSearchFilteredCountries()[r.state.highlightCountryIndex]||r.getSearchFilteredCountries()[0],e):r.handleFlagItemClick([].concat(o(r.state.preferredCountries),o(r.state.onlyCountries))[r.state.highlightCountryIndex],e);break;case t.ESC:case t.TAB:r.setState({showDropdown:!1},r.cursorToEnd);break;default:(e.which>=t.A&&e.which<=t.Z||e.which===t.SPACE)&&r.setState({queryString:r.state.queryString+String.fromCharCode(e.which)},r.state.debouncedQueryStingSearcher)}}},r.handleInputKeyDown=function(e){var t=r.props,n=t.keys,a=t.onEnterKeyPress,o=t.onKeyDown;e.which===n.ENTER&&a&&a(e),o&&o(e)},r.handleClickOutside=function(e){r.dropdownRef&&!r.dropdownContainerRef.contains(e.target)&&r.state.showDropdown&&r.setState({showDropdown:!1})},r.handleSearchChange=function(e){var t=e.currentTarget.value,n=r.state,a=n.preferredCountries,o=n.selectedCountry,i=0;if(\"\"===t&&o){var u=r.state.onlyCountries;i=r.concatPreferredCountries(a,u).findIndex((function(e){return e==o})),setTimeout((function(){return r.scrollTo(r.getElement(i))}),100)}r.setState({searchValue:t,highlightCountryIndex:i})},r.concatPreferredCountries=function(e,t){return e.length>0?o(new Set(e.concat(t))):t},r.getDropdownCountryName=function(e){return e.localName||e.name},r.getSearchFilteredCountries=function(){var e=r.state,t=e.preferredCountries,n=e.onlyCountries,a=e.searchValue,i=r.props.enableSearch,u=r.concatPreferredCountries(t,n),c=a.trim().toLowerCase().replace(\"+\",\"\");if(i&&c){if(/^\\d+$/.test(c))return u.filter((function(e){var t=e.dialCode;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))}));var s=u.filter((function(e){var t=e.iso2;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))})),l=u.filter((function(e){var t=e.name,r=e.localName;e.iso2;return[\"\".concat(t),\"\".concat(r||\"\")].some((function(e){return e.toLowerCase().includes(c)}))}));return r.scrollToTop(),o(new Set([].concat(s,l)))}return u},r.getCountryDropdownList=function(){var e=r.state,t=e.preferredCountries,a=e.highlightCountryIndex,o=e.showDropdown,i=e.searchValue,u=r.props,c=u.disableDropdown,s=u.prefix,l=r.props,f=l.enableSearch,d=l.searchNotFound,p=l.disableSearchIcon,h=l.searchClass,m=l.searchStyle,b=l.searchPlaceholder,g=l.autocompleteSearch,v=r.getSearchFilteredCountries().map((function(e,t){var n=a===t,o=N()({country:!0,preferred:\"us\"===e.iso2||\"gb\"===e.iso2,active:\"us\"===e.iso2,highlight:n}),i=\"flag \".concat(e.iso2);return y.a.createElement(\"li\",Object.assign({ref:function(e){return r[\"flag_no_\".concat(t)]=e},key:\"flag_no_\".concat(t),\"data-flag-key\":\"flag_no_\".concat(t),className:o,\"data-dial-code\":\"1\",tabIndex:c?\"-1\":\"0\",\"data-country-code\":e.iso2,onClick:function(t){return r.handleFlagItemClick(e,t)},role:\"option\"},n?{\"aria-selected\":!0}:{}),y.a.createElement(\"div\",{className:i}),y.a.createElement(\"span\",{className:\"country-name\"},r.getDropdownCountryName(e)),y.a.createElement(\"span\",{className:\"dial-code\"},e.format?r.formatNumber(e.dialCode,e):s+e.dialCode))})),C=y.a.createElement(\"li\",{key:\"dashes\",className:\"divider\"});t.length>0&&(!f||f&&!i.trim())&&v.splice(t.length,0,C);var _=N()(n({\"country-list\":!0,hide:!o},r.props.dropdownClass,!0));return y.a.createElement(\"ul\",{ref:function(e){return!f&&e&&e.focus(),r.dropdownRef=e},className:_,style:r.props.dropdownStyle,role:\"listbox\",tabIndex:\"0\"},f&&y.a.createElement(\"li\",{className:N()(n({search:!0},h,h))},!p&&y.a.createElement(\"span\",{className:N()(n({\"search-emoji\":!0},\"\".concat(h,\"-emoji\"),h)),role:\"img\",\"aria-label\":\"Magnifying glass\"},\"🔎\"),y.a.createElement(\"input\",{className:N()(n({\"search-box\":!0},\"\".concat(h,\"-box\"),h)),style:m,type:\"search\",placeholder:b,autoFocus:!0,autoComplete:g?\"on\":\"off\",value:i,onChange:r.handleSearchChange})),v.length>0?v:y.a.createElement(\"li\",{className:\"no-entries-message\"},y.a.createElement(\"span\",null,d)))};var s,l=new P(e.enableAreaCodes,e.enableTerritories,e.regions,e.onlyCountries,e.preferredCountries,e.excludeCountries,e.preserveOrder,e.masks,e.priority,e.areaCodes,e.localization,e.prefix,e.defaultMask,e.alwaysDefaultMask),h=l.onlyCountries,m=l.preferredCountries,b=l.hiddenAreaCodes,v=e.value?e.value.replace(/\\D/g,\"\"):\"\";s=e.disableInitialCountryGuess?0:v.length>1?r.guessSelectedCountry(v.substring(0,6),e.country,h,b)||0:e.country&&h.find((function(t){return t.iso2==e.country}))||0;var _,S=v.length<2&&s&&!j()(v,s.dialCode)?s.dialCode:\"\";_=\"\"===v&&0===s?\"\":r.formatNumber((e.disableCountryCode?\"\":S)+v,s.name?s:void 0);var x=h.findIndex((function(e){return e==s}));return r.state={showDropdown:e.showDropdown,formattedNumber:_,onlyCountries:h,preferredCountries:m,hiddenAreaCodes:b,selectedCountry:s,highlightCountryIndex:x,queryString:\"\",freezeSelection:!1,debouncedQueryStingSearcher:g()(r.searchCountry,250),searchValue:\"\"},r}var r,l,m;return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),r=t,(l=[{key:\"componentDidMount\",value:function(){document.addEventListener&&this.props.enableClickOutside&&document.addEventListener(\"mousedown\",this.handleClickOutside),this.props.onMount&&this.props.onMount(this.state.formattedNumber.replace(/[^0-9]+/g,\"\"),this.getCountryData(),this.state.formattedNumber)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener&&this.props.enableClickOutside&&document.removeEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentDidUpdate\",value:function(e,t,r){e.country!==this.props.country?this.updateCountry(this.props.country):e.value!==this.props.value&&this.updateFormattedNumber(this.props.value)}},{key:\"updateFormattedNumber\",value:function(e){if(null===e)return this.setState({selectedCountry:0,formattedNumber:\"\"});var t=this.state,r=t.onlyCountries,n=t.selectedCountry,a=t.hiddenAreaCodes,o=this.props,i=o.country,u=o.prefix;if(\"\"===e)return this.setState({selectedCountry:n,formattedNumber:\"\"});var c,s,l=e.replace(/\\D/g,\"\");if(n&&j()(e,u+n.dialCode))s=this.formatNumber(l,n),this.setState({formattedNumber:s});else{var f=(c=this.props.disableCountryGuess?n:this.guessSelectedCountry(l.substring(0,6),i,r,a)||n)&&j()(l,u+c.dialCode)?c.dialCode:\"\";s=this.formatNumber((this.props.disableCountryCode?\"\":f)+l,c||void 0),this.setState({selectedCountry:c,formattedNumber:s})}}},{key:\"render\",value:function(){var e,t,r,a=this,o=this.state,i=o.onlyCountries,u=o.selectedCountry,c=o.showDropdown,s=o.formattedNumber,l=o.hiddenAreaCodes,f=this.props,d=f.disableDropdown,p=f.renderStringAsFlag,h=f.isValid,m=f.defaultErrorMessage,b=f.specialLabel;if(\"boolean\"==typeof h)t=h;else{var g=h(s.replace(/\\D/g,\"\"),u,i,l);\"boolean\"==typeof g?!1===(t=g)&&(r=m):(t=!1,r=g)}var v=N()((n(e={},this.props.containerClass,!0),n(e,\"react-tel-input\",!0),e)),C=N()({arrow:!0,up:c}),_=N()(n({\"form-control\":!0,\"invalid-number\":!t,open:c},this.props.inputClass,!0)),w=N()({\"selected-flag\":!0,open:c}),S=N()(n({\"flag-dropdown\":!0,\"invalid-number\":!t,open:c},this.props.buttonClass,!0)),j=\"flag \".concat(u&&u.iso2);return y.a.createElement(\"div\",{className:\"\".concat(v,\" \").concat(this.props.className),style:this.props.style||this.props.containerStyle,onKeyDown:this.handleKeydown},b&&y.a.createElement(\"div\",{className:\"special-label\"},b),r&&y.a.createElement(\"div\",{className:\"invalid-number-message\"},r),y.a.createElement(\"input\",Object.assign({className:_,style:this.props.inputStyle,onChange:this.handleInput,onClick:this.handleInputClick,onDoubleClick:this.handleDoubleClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onCopy:this.handleInputCopy,value:s,onKeyDown:this.handleInputKeyDown,placeholder:this.props.placeholder,disabled:this.props.disabled,type:\"tel\"},this.props.inputProps,{ref:function(e){a.numberInputRef=e,\"function\"==typeof a.props.inputProps.ref?a.props.inputProps.ref(e):\"object\"==typeof a.props.inputProps.ref&&(a.props.inputProps.ref.current=e)}})),y.a.createElement(\"div\",{className:S,style:this.props.buttonStyle,ref:function(e){return a.dropdownContainerRef=e}},p?y.a.createElement(\"div\",{className:w},p):y.a.createElement(\"div\",{onClick:d?void 0:this.handleFlagDropdownClick,className:w,title:u?\"\".concat(u.localName||u.name,\": + \").concat(u.dialCode):\"\",tabIndex:d?\"-1\":\"0\",role:\"button\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":!!c||void 0},y.a.createElement(\"div\",{className:j},!d&&y.a.createElement(\"div\",{className:C}))),c&&this.getCountryDropdownList()))}}])&&s(r.prototype,l),m&&s(r,m),t}(y.a.Component);F.defaultProps={country:\"\",value:\"\",onlyCountries:[],preferredCountries:[],excludeCountries:[],placeholder:\"1 (702) 123-4567\",searchPlaceholder:\"search\",searchNotFound:\"No entries to show\",flagsImagePath:\"./flags.png\",disabled:!1,containerStyle:{},inputStyle:{},buttonStyle:{},dropdownStyle:{},searchStyle:{},containerClass:\"\",inputClass:\"\",buttonClass:\"\",dropdownClass:\"\",searchClass:\"\",className:\"\",autoFormat:!0,enableAreaCodes:!1,enableTerritories:!1,disableCountryCode:!1,disableDropdown:!1,enableLongNumbers:!1,countryCodeEditable:!0,enableSearch:!1,disableSearchIcon:!1,disableInitialCountryGuess:!1,disableCountryGuess:!1,regions:\"\",inputProps:{},localization:{},masks:null,priority:null,areaCodes:null,preserveOrder:[],defaultMask:\"... ... ... ... ..\",alwaysDefaultMask:!1,prefix:\"+\",copyNumbersOnly:!0,renderStringAsFlag:\"\",autocompleteSearch:!1,jumpCursorToEnd:!0,enableAreaCodeStretch:!1,enableClickOutside:!0,showDropdown:!1,isValid:!0,defaultErrorMessage:\"\",specialLabel:\"Phone\",onEnterKeyPress:null,keys:{UP:38,DOWN:40,RIGHT:39,LEFT:37,ENTER:13,ESC:27,PLUS:43,A:65,Z:90,SPACE:32,TAB:9}};t.default=F}]);","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"1fe44959\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"paylink:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpaylink\"] = self[\"webpackChunkpaylink\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import { version } from '../package.json'\n\n// overridden in posthog-core,\n// e.g. Config.DEBUG = Config.DEBUG || instance.config.debug\nconst Config = {\n DEBUG: false,\n LIB_VERSION: version,\n}\n\nexport default Config\n","// eslint-disable-next-line posthog-js/no-direct-array-check\nconst nativeIsArray = Array.isArray\nconst ObjProto = Object.prototype\nexport const hasOwnProperty = ObjProto.hasOwnProperty\nconst toString = ObjProto.toString\n\nexport const isArray =\n nativeIsArray ||\n function (obj: any): obj is any[] {\n return toString.call(obj) === '[object Array]'\n }\nexport const isUint8Array = function (x: unknown): x is Uint8Array {\n return toString.call(x) === '[object Uint8Array]'\n}\n// from a comment on http://dbj.org/dbj/?p=286\n// fails on only one very rare and deliberate custom object:\n// let bomb = { toString : undefined, valueOf: function(o) { return \"function BOMBA!\"; }};\nexport const isFunction = function (f: any): f is (...args: any[]) => any {\n // eslint-disable-next-line posthog-js/no-direct-function-check\n return typeof f === 'function'\n}\n// Underscore Addons\nexport const isObject = function (x: unknown): x is Record {\n // eslint-disable-next-line posthog-js/no-direct-object-check\n return x === Object(x) && !isArray(x)\n}\nexport const isEmptyObject = function (x: unknown): x is Record {\n if (isObject(x)) {\n for (const key in x) {\n if (hasOwnProperty.call(x, key)) {\n return false\n }\n }\n return true\n }\n return false\n}\nexport const isUndefined = function (x: unknown): x is undefined {\n return x === void 0\n}\n\nexport const isString = function (x: unknown): x is string {\n // eslint-disable-next-line posthog-js/no-direct-string-check\n return toString.call(x) == '[object String]'\n}\n\nexport const isEmptyString = function (x: unknown): boolean {\n return isString(x) && x.trim().length === 0\n}\n\nexport const isNull = function (x: unknown): x is null {\n // eslint-disable-next-line posthog-js/no-direct-null-check\n return x === null\n}\n\n/*\n sometimes you want to check if something is null or undefined\n that's what this is for\n */\nexport const isNullish = function (x: unknown): x is null | undefined {\n return isUndefined(x) || isNull(x)\n}\n\nexport const isDate = function (x: unknown): x is Date {\n // eslint-disable-next-line posthog-js/no-direct-date-check\n return toString.call(x) == '[object Date]'\n}\nexport const isNumber = function (x: unknown): x is number {\n // eslint-disable-next-line posthog-js/no-direct-number-check\n return toString.call(x) == '[object Number]'\n}\nexport const isBoolean = function (x: unknown): x is boolean {\n // eslint-disable-next-line posthog-js/no-direct-boolean-check\n return toString.call(x) === '[object Boolean]'\n}\n\nexport const isDocument = (x: unknown): x is Document => {\n // eslint-disable-next-line posthog-js/no-direct-document-check\n return x instanceof Document\n}\n\nexport const isFormData = (x: unknown): x is FormData => {\n // eslint-disable-next-line posthog-js/no-direct-form-data-check\n return x instanceof FormData\n}\n\nexport const isFile = (x: unknown): x is File => {\n // eslint-disable-next-line posthog-js/no-direct-file-check\n return x instanceof File\n}\n","/*\n * Global helpers to protect access to browser globals in a way that is safer for different targets\n * like DOM, SSR, Web workers etc.\n *\n * NOTE: Typically we want the \"window\" but globalThis works for both the typical browser context as\n * well as other contexts such as the web worker context. Window is still exported for any bits that explicitly require it.\n * If in doubt - export the global you need from this file and use that as an optional value. This way the code path is forced\n * to handle the case where the global is not available.\n */\n\n// eslint-disable-next-line no-restricted-globals\nconst win: (Window & typeof globalThis) | undefined = typeof window !== 'undefined' ? window : undefined\n\nconst global: typeof globalThis | undefined = typeof globalThis !== 'undefined' ? globalThis : win\n\nexport const ArrayProto = Array.prototype\nexport const nativeForEach = ArrayProto.forEach\nexport const nativeIndexOf = ArrayProto.indexOf\n\nexport const navigator = global?.navigator\nexport const document = global?.document\nexport const location = global?.location\nexport const fetch = global?.fetch\nexport const XMLHttpRequest =\n global?.XMLHttpRequest && 'withCredentials' in new global.XMLHttpRequest() ? global.XMLHttpRequest : undefined\nexport const AbortController = global?.AbortController\nexport const userAgent = navigator?.userAgent\nexport const assignableWindow: Window & typeof globalThis & Record = win ?? ({} as any)\n\nexport { win as window }\n","import Config from '../config'\nimport { isUndefined } from './type-utils'\nimport { assignableWindow, window } from './globals'\n\nconst LOGGER_PREFIX = '[PostHog.js]'\nexport const logger = {\n _log: (level: 'log' | 'warn' | 'error', ...args: any[]) => {\n if (\n window &&\n (Config.DEBUG || assignableWindow.POSTHOG_DEBUG) &&\n !isUndefined(window.console) &&\n window.console\n ) {\n const consoleLog =\n '__rrweb_original__' in window.console[level]\n ? (window.console[level] as any)['__rrweb_original__']\n : window.console[level]\n\n // eslint-disable-next-line no-console\n consoleLog(LOGGER_PREFIX, ...args)\n }\n },\n\n info: (...args: any[]) => {\n logger._log('log', ...args)\n },\n\n warn: (...args: any[]) => {\n logger._log('warn', ...args)\n },\n\n error: (...args: any[]) => {\n logger._log('error', ...args)\n },\n\n critical: (...args: any[]) => {\n // Critical errors are always logged to the console\n // eslint-disable-next-line no-console\n console.error(LOGGER_PREFIX, ...args)\n },\n\n uninitializedWarning: (methodName: string) => {\n logger.error(`You must initialize PostHog before calling ${methodName}`)\n },\n}\n","import { Breaker, EventHandler, Properties } from '../types'\nimport { isArray, isFormData, isFunction, isNull, isNullish, isString, hasOwnProperty } from './type-utils'\nimport { logger } from './logger'\nimport { window, nativeForEach, nativeIndexOf } from './globals'\n\nconst breaker: Breaker = {}\n\n// UNDERSCORE\n// Embed part of the Underscore Library\nexport const trim = function (str: string): string {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n}\n\nexport function eachArray(\n obj: E[] | null | undefined,\n iterator: (value: E, key: number) => void | Breaker,\n thisArg?: any\n): void {\n if (isArray(obj)) {\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, thisArg)\n } else if ('length' in obj && obj.length === +obj.length) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {\n return\n }\n }\n }\n }\n}\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} thisArg\n */\nexport function each(obj: any, iterator: (value: any, key: any) => void | Breaker, thisArg?: any): void {\n if (isNullish(obj)) {\n return\n }\n if (isArray(obj)) {\n return eachArray(obj, iterator, thisArg)\n }\n if (isFormData(obj)) {\n for (const pair of obj.entries()) {\n if (iterator.call(thisArg, pair[1], pair[0]) === breaker) {\n return\n }\n }\n return\n }\n for (const key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(thisArg, obj[key], key) === breaker) {\n return\n }\n }\n }\n}\n\nexport const extend = function (obj: Record, ...args: Record[]): Record {\n eachArray(args, function (source) {\n for (const prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\n\nexport const include = function (\n obj: null | string | Array | Record,\n target: any\n): boolean | Breaker {\n let found = false\n if (isNull(obj)) {\n return found\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1\n }\n each(obj, function (value) {\n if (found || (found = value === target)) {\n return breaker\n }\n return\n })\n return found\n}\n\nexport function includes(str: T[] | string, needle: T): boolean {\n return (str as any).indexOf(needle) !== -1\n}\n\n/**\n * Object.entries() polyfill\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\nexport function entries(obj: Record): [string, T][] {\n const ownProps = Object.keys(obj)\n let i = ownProps.length\n const resArray = new Array(i) // preallocate the Array\n\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]]\n }\n return resArray\n}\n\nexport const isValidRegex = function (str: string): boolean {\n try {\n new RegExp(str)\n } catch (error) {\n return false\n }\n return true\n}\n\nexport const timestamp = function (): number {\n Date.now =\n Date.now ||\n function () {\n return +new Date()\n }\n return Date.now()\n}\n\nexport const trySafe = function (fn: () => T): T | undefined {\n try {\n return fn()\n } catch (e) {\n return undefined\n }\n}\n\nexport const safewrap = function any = (...args: any[]) => any>(f: F): F {\n return function (...args) {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return f.apply(this, args)\n } catch (e) {\n logger.critical(\n 'Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A.'\n )\n logger.critical(e)\n }\n } as F\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const safewrapClass = function (klass: Function, functions: string[]): void {\n for (let i = 0; i < functions.length; i++) {\n klass.prototype[functions[i]] = safewrap(klass.prototype[functions[i]])\n }\n}\n\nexport const stripEmptyProperties = function (p: Properties): Properties {\n const ret: Properties = {}\n each(p, function (v, k) {\n if (isString(v) && v.length > 0) {\n ret[k] = v\n }\n })\n return ret\n}\n\nexport const stripLeadingDollar = function (s: string): string {\n return s.replace(/^\\$/, '')\n}\n\n/**\n * Deep copies an object.\n * It handles cycles by replacing all references to them with `undefined`\n * Also supports customizing native values\n *\n * @param value\n * @param customizer\n * @returns {{}|undefined|*}\n */\nfunction deepCircularCopy = Record>(\n value: T,\n customizer?: (value: T[K], key?: K) => T[K]\n): T | undefined {\n const COPY_IN_PROGRESS_SET = new Set()\n\n function internalDeepCircularCopy(value: T, key?: string): T | undefined {\n if (value !== Object(value)) return customizer ? customizer(value as any, key) : value // primitive value\n\n if (COPY_IN_PROGRESS_SET.has(value)) return undefined\n COPY_IN_PROGRESS_SET.add(value)\n let result: T\n\n if (isArray(value)) {\n result = [] as any as T\n eachArray(value, (it) => {\n result.push(internalDeepCircularCopy(it))\n })\n } else {\n result = {} as T\n each(value, (val, key) => {\n if (!COPY_IN_PROGRESS_SET.has(val)) {\n ;(result as any)[key] = internalDeepCircularCopy(val, key)\n }\n })\n }\n return result\n }\n return internalDeepCircularCopy(value)\n}\n\nexport function _copyAndTruncateStrings = Record>(\n object: T,\n maxStringLength: number | null\n): T {\n return deepCircularCopy(object, (value: any) => {\n if (isString(value) && !isNull(maxStringLength)) {\n return (value as string).slice(0, maxStringLength)\n }\n return value\n }) as T\n}\n\nexport function _base64Encode(data: null): null\nexport function _base64Encode(data: undefined): undefined\nexport function _base64Encode(data: string): string\nexport function _base64Encode(data: string | null | undefined): string | null | undefined {\n const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n let o1,\n o2,\n o3,\n h1,\n h2,\n h3,\n h4,\n bits,\n i = 0,\n ac = 0,\n enc = ''\n const tmp_arr: string[] = []\n\n if (!data) {\n return data\n }\n\n data = utf8Encode(data)\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++)\n o2 = data.charCodeAt(i++)\n o3 = data.charCodeAt(i++)\n\n bits = (o1 << 16) | (o2 << 8) | o3\n\n h1 = (bits >> 18) & 0x3f\n h2 = (bits >> 12) & 0x3f\n h3 = (bits >> 6) & 0x3f\n h4 = bits & 0x3f\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4)\n } while (i < data.length)\n\n enc = tmp_arr.join('')\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '=='\n break\n case 2:\n enc = enc.slice(0, -1) + '='\n break\n }\n\n return enc\n}\n\nexport const utf8Encode = function (string: string): string {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n\n let utftext = '',\n start,\n end\n let stringl = 0,\n n\n\n start = end = 0\n stringl = string.length\n\n for (n = 0; n < stringl; n++) {\n const c1 = string.charCodeAt(n)\n let enc = null\n\n if (c1 < 128) {\n end++\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128)\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128)\n }\n if (!isNull(enc)) {\n if (end > start) {\n utftext += string.substring(start, end)\n }\n utftext += enc\n start = end = n + 1\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length)\n }\n\n return utftext\n}\n\nexport const registerEvent = (function () {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from PostHog\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n const register_event = function (\n element: Element | Window | Document | Node,\n type: string,\n handler: EventHandler,\n oldSchool?: boolean,\n useCapture?: boolean\n ) {\n if (!element) {\n logger.error('No valid element provided to register_event')\n return\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture)\n } else {\n const ontype = 'on' + type\n const old_handler = (element as any)[ontype] // can be undefined\n ;(element as any)[ontype] = makeHandler(element, handler, old_handler)\n }\n }\n\n function makeHandler(\n element: Element | Window | Document | Node,\n new_handler: EventHandler,\n old_handlers: EventHandler\n ) {\n return function (event: Event): boolean | void {\n event = event || fixEvent(window?.event)\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined\n }\n\n let ret = true\n let old_result: any\n\n if (isFunction(old_handlers)) {\n old_result = old_handlers(event)\n }\n const new_result = new_handler.call(element, event)\n\n if (false === old_result || false === new_result) {\n ret = false\n }\n\n return ret\n }\n }\n\n function fixEvent(event: Event | undefined): Event | undefined {\n if (event) {\n event.preventDefault = fixEvent.preventDefault\n event.stopPropagation = fixEvent.stopPropagation\n }\n return event\n }\n fixEvent.preventDefault = function () {\n ;(this as any as Event).returnValue = false\n }\n fixEvent.stopPropagation = function () {\n ;(this as any as Event).cancelBubble = true\n }\n\n return register_event\n})()\n\nexport function isCrossDomainCookie(documentLocation: Location | undefined) {\n const hostname = documentLocation?.hostname\n\n if (!isString(hostname)) {\n return false\n }\n // split and slice isn't a great way to match arbitrary domains,\n // but it's good enough for ensuring we only match herokuapp.com when it is the TLD\n // for the hostname\n return hostname.split('.').slice(-2).join('.') !== 'herokuapp.com'\n}\n\nexport function isDistinctIdStringLike(value: string): boolean {\n return ['distinct_id', 'distinctid'].includes(value.toLowerCase())\n}\n\nexport function find(value: T[], predicate: (value: T) => boolean): T | undefined {\n for (let i = 0; i < value.length; i++) {\n if (predicate(value[i])) {\n return value[i]\n }\n }\n return undefined\n}\n","import type { MaskInputOptions, SlimDOMOptions } from 'rrweb-snapshot'\nimport { PostHog } from './posthog-core'\nimport type { SegmentAnalytics } from './extensions/segment-integration'\n\nexport type Property = any\nexport type Properties = Record\n\nexport interface CaptureResult {\n uuid: string\n event: string\n properties: Properties\n $set?: Properties\n $set_once?: Properties\n timestamp?: Date\n}\n\nexport type AutocaptureCompatibleElement = 'a' | 'button' | 'form' | 'input' | 'select' | 'textarea' | 'label'\nexport type DomAutocaptureEvents = 'click' | 'change' | 'submit'\n\n/**\n * If an array is passed for an allowlist, autocapture events will only be sent for elements matching\n * at least one of the elements in the array. Multiple allowlists can be used\n */\nexport interface AutocaptureConfig {\n /**\n * List of URLs to allow autocapture on, can be strings to match\n * or regexes e.g. ['https://example.com', 'test.com/.*']\n * this is useful when you want to autocapture on specific pages only\n *\n * if you set both url_allowlist and url_ignorelist,\n * we check the allowlist first and then the ignorelist.\n * the ignorelist can override the allowlist\n */\n url_allowlist?: (string | RegExp)[]\n\n /**\n * List of URLs to not allow autocapture on, can be strings to match\n * or regexes e.g. ['https://example.com', 'test.com/.*']\n * this is useful when you want to autocapture on most pages but not some specific ones\n *\n * if you set both url_allowlist and url_ignorelist,\n * we check the allowlist first and then the ignorelist.\n * the ignorelist can override the allowlist\n */\n url_ignorelist?: (string | RegExp)[]\n\n /**\n * List of DOM events to allow autocapture on e.g. ['click', 'change', 'submit']\n */\n dom_event_allowlist?: DomAutocaptureEvents[]\n\n /**\n * List of DOM elements to allow autocapture on\n * e.g. ['a', 'button', 'form', 'input', 'select', 'textarea', 'label']\n * we consider the tree of elements from the root to the target element of the click event\n * so for the tree div > div > button > svg\n * if the allowlist has button then we allow the capture when the button or the svg is the click target\n * but not if either of the divs are detected as the click target\n */\n element_allowlist?: AutocaptureCompatibleElement[]\n\n /**\n * List of CSS selectors to allow autocapture on\n * e.g. ['[ph-capture]']\n * we consider the tree of elements from the root to the target element of the click event\n * so for the tree div > div > button > svg\n * and allow list config `['[id]']`\n * we will capture the click if the click-target or its parents has any id\n */\n css_selector_allowlist?: string[]\n\n /**\n * Exclude certain element attributes from autocapture\n * E.g. ['aria-label'] or [data-attr-pii]\n */\n element_attribute_ignorelist?: string[]\n\n capture_copied_text?: boolean\n}\n\nexport interface BootstrapConfig {\n distinctID?: string\n isIdentifiedID?: boolean\n featureFlags?: Record\n featureFlagPayloads?: Record\n /**\n * Optionally provide a sessionID, this is so that you can provide an existing sessionID here to continue a user's session across a domain or device. It MUST be:\n * - unique to this user\n * - a valid UUID v7\n * - the timestamp part must be <= the timestamp of the first event in the session\n * - the timestamp of the last event in the session must be < the timestamp part + 24 hours\n * **/\n sessionID?: string\n}\n\nexport interface PerformanceCaptureConfig {\n /** works with session replay to use the browser's native performance observer to capture performance metrics */\n network_timing?: boolean\n /** works as a passenger event to use chrome's web vitals library to wrap fetch and capture web vitals */\n web_vitals?: boolean\n /**\n * We observe very large values reported by the Chrome web vitals library\n * These outliers are likely not real, useful values, and we exclude them\n * You can set this to 0 in order to include all values, NB this is not recommended\n * if not set this defaults to 15 minutes\n */\n __web_vitals_max_value?: number\n}\n\nexport interface HeatmapConfig {\n /*\n * how often to send batched data in $$heatmap_data events\n * if set to 0 or not set, sends using the default interval of 1 second\n * */\n flush_interval_milliseconds: number\n}\n\nexport interface PostHogConfig {\n api_host: string\n /** @deprecated - This property is no longer supported */\n api_method?: string\n api_transport?: 'XHR' | 'fetch'\n ui_host: string | null\n token: string\n autocapture: boolean | AutocaptureConfig\n rageclick: boolean\n cross_subdomain_cookie: boolean\n persistence: 'localStorage' | 'cookie' | 'memory' | 'localStorage+cookie' | 'sessionStorage'\n persistence_name: string\n /** @deprecated - Use 'persistence_name' instead */\n cookie_name?: string\n loaded: (posthog_instance: PostHog) => void\n store_google: boolean\n custom_campaign_params: string[]\n // a list of strings to be tested against navigator.userAgent to determine if the source is a bot\n // this is **added to** the default list of bots that we check\n // defaults to the empty array\n custom_blocked_useragents: string[]\n save_referrer: boolean\n verbose: boolean\n capture_pageview: boolean\n capture_pageleave: boolean | 'if_capture_pageview'\n debug: boolean\n cookie_expiration: number\n upgrade: boolean\n disable_session_recording: boolean\n disable_persistence: boolean\n /** @deprecated - use `disable_persistence` instead */\n disable_cookie?: boolean\n disable_surveys: boolean\n /** If set, posthog-js will never load external scripts such as those needed for Session Replay or Surveys. */\n disable_external_dependency_loading?: boolean\n enable_recording_console_log?: boolean\n secure_cookie: boolean\n ip: boolean\n /** Starts the SDK in an opted out state requiring opt_in_capturing() to be called before events will b captured */\n opt_out_capturing_by_default: boolean\n opt_out_capturing_persistence_type: 'localStorage' | 'cookie'\n /** If set to true this will disable persistence if the user is opted out of capturing. @default false */\n opt_out_persistence_by_default?: boolean\n /** Opt out of user agent filtering such as googlebot or other bots. Defaults to `false` */\n opt_out_useragent_filter: boolean\n\n opt_out_capturing_cookie_prefix: string | null\n opt_in_site_apps: boolean\n respect_dnt: boolean\n /** @deprecated - use `property_denylist` instead */\n property_blacklist?: string[]\n property_denylist: string[]\n request_headers: { [header_name: string]: string }\n on_request_error?: (error: RequestResponse) => void\n /** @deprecated - use `request_headers` instead */\n xhr_headers?: { [header_name: string]: string }\n /** @deprecated - use `on_request_error` instead */\n on_xhr_error?: (failedRequest: XMLHttpRequest) => void\n inapp_protocol: string\n inapp_link_new_window: boolean\n request_batching: boolean\n sanitize_properties: ((properties: Properties, event_name: string) => Properties) | null\n properties_string_max_length: number\n session_recording: SessionRecordingOptions\n session_idle_timeout_seconds: number\n mask_all_element_attributes: boolean\n mask_all_text: boolean\n advanced_disable_decide: boolean\n advanced_disable_feature_flags: boolean\n advanced_disable_feature_flags_on_first_load: boolean\n advanced_disable_toolbar_metrics: boolean\n feature_flag_request_timeout_ms: number\n get_device_id: (uuid: string) => string\n name: string\n _onCapture: (eventName: string, eventData: CaptureResult) => void\n capture_performance?: boolean | PerformanceCaptureConfig\n // Should only be used for testing. Could negatively impact performance.\n disable_compression: boolean\n bootstrap: BootstrapConfig\n segment?: SegmentAnalytics\n __preview_send_client_session_params?: boolean\n /* @deprecated - use `capture_heatmaps` instead */\n enable_heatmaps?: boolean\n capture_heatmaps?: boolean | HeatmapConfig\n disable_scroll_properties?: boolean\n // Let the pageview scroll stats use a custom css selector for the root element, e.g. `main`\n scroll_root_selector?: string | string[]\n\n /** You can control whether events from PostHog-js have person processing enabled with the `person_profiles` config setting. There are three options:\n * - `person_profiles: 'always'` _(default)_ - we will process persons data for all events\n * - `person_profiles: 'never'` - we won't process persons for any event. This means that anonymous users will not be merged once they sign up or login, so you lose the ability to create funnels that track users from anonymous to identified. All events (including `$identify`) will be sent with `$process_person_profile: False`.\n * - `person_profiles: 'identified_only'` - we will only process persons when you call `posthog.identify`, `posthog.alias`, `posthog.setPersonProperties`, `posthog.group`, `posthog.setPersonPropertiesForFlags` or `posthog.setGroupPropertiesForFlags` Anonymous users won't get person profiles.\n */\n person_profiles?: 'always' | 'never' | 'identified_only'\n /** @deprecated - use `person_profiles` instead */\n process_person?: 'always' | 'never' | 'identified_only'\n\n /** Client side rate limiting */\n rate_limiting?: {\n /** The average number of events per second that should be permitted (defaults to 10) */\n events_per_second?: number\n /** How many events can be captured in a burst. This defaults to 10 times the events_per_second count */\n events_burst_limit?: number\n }\n\n /**\n * PREVIEW - MAY CHANGE WITHOUT WARNING - DO NOT USE IN PRODUCTION\n * whether to wrap fetch and add tracing headers to the request\n * */\n __add_tracing_headers?: boolean\n}\n\nexport interface OptInOutCapturingOptions {\n capture: (event: string, properties: Properties, options: CaptureOptions) => void\n capture_event_name: string\n capture_properties: Properties\n enable_persistence: boolean\n clear_persistence: boolean\n persistence_type: 'cookie' | 'localStorage' | 'localStorage+cookie'\n cookie_prefix: string\n cookie_expiration: number\n cross_subdomain_cookie: boolean\n secure_cookie: boolean\n}\n\nexport interface IsFeatureEnabledOptions {\n send_event: boolean\n}\n\nexport interface SessionRecordingOptions {\n blockClass?: string | RegExp\n blockSelector?: string | null\n ignoreClass?: string\n maskTextClass?: string | RegExp\n maskTextSelector?: string | null\n maskTextFn?: ((text: string, element: HTMLElement | null) => string) | null\n maskAllInputs?: boolean\n maskInputOptions?: MaskInputOptions\n maskInputFn?: ((text: string, element?: HTMLElement) => string) | null\n slimDOMOptions?: SlimDOMOptions | 'all' | true\n collectFonts?: boolean\n inlineStylesheet?: boolean\n recordCrossOriginIframes?: boolean\n /** @deprecated - use maskCapturedNetworkRequestFn instead */\n maskNetworkRequestFn?: ((data: NetworkRequest) => NetworkRequest | null | undefined) | null\n /** Modify the network request before it is captured. Returning null or undefined stops it being captured */\n maskCapturedNetworkRequestFn?: ((data: CapturedNetworkRequest) => CapturedNetworkRequest | null | undefined) | null\n // our settings here only support a subset of those proposed for rrweb's network capture plugin\n recordHeaders?: boolean\n recordBody?: boolean\n // ADVANCED: while a user is active we take a full snapshot of the browser every interval. For very few sites playback performance might be better with different interval. Set to 0 to disable\n full_snapshot_interval_millis?: number\n}\n\nexport type SessionIdChangedCallback = (sessionId: string, windowId: string | null | undefined) => void\n\nexport enum Compression {\n GZipJS = 'gzip-js',\n Base64 = 'base64',\n}\n\n// Request types - these should be kept minimal to what request.ts needs\n\n// Minimal class to allow interop between different request methods (xhr / fetch)\nexport interface RequestResponse {\n statusCode: number\n text?: string\n json?: any\n}\n\nexport type RequestCallback = (response: RequestResponse) => void\n\nexport interface RequestOptions {\n url: string\n // Data can be a single object or an array of objects when batched\n data?: Record | Record[]\n headers?: Record\n transport?: 'XHR' | 'fetch' | 'sendBeacon'\n method?: 'POST' | 'GET'\n urlQueryArgs?: { compression: Compression }\n callback?: RequestCallback\n timeout?: number\n noRetries?: boolean\n compression?: Compression | 'best-available'\n}\n\n// Queued request types - the same as a request but with additional queueing information\n\nexport interface QueuedRequestOptions extends RequestOptions {\n batchKey?: string /** key of queue, e.g. 'sessionRecording' vs 'event' */\n}\n\n// Used explicitly for retriable requests\nexport interface RetriableRequestOptions extends QueuedRequestOptions {\n retriesPerformedSoFar?: number\n}\n\nexport interface CaptureOptions {\n $set?: Properties /** used with $identify */\n $set_once?: Properties /** used with $identify */\n _url?: string /** Used to override the desired endpoint for the captured event */\n _batchKey?: string /** key of queue, e.g. 'sessionRecording' vs 'event' */\n _noTruncate?: boolean /** if set, overrides and disables config.properties_string_max_length */\n send_instantly?: boolean /** if set skips the batched queue */\n skip_client_rate_limiting?: boolean /** if set skips the client side rate limiting */\n transport?: RequestOptions['transport'] /** if set, overrides the desired transport method */\n timestamp?: Date\n}\n\nexport type FlagVariant = { flag: string; variant: string }\n\nexport interface DecideResponse {\n supportedCompression: Compression[]\n featureFlags: Record\n featureFlagPayloads: Record\n errorsWhileComputingFlags: boolean\n autocapture_opt_out?: boolean\n /**\n * originally capturePerformance was replay only and so boolean true\n * is equivalent to { network_timing: true }\n * now capture performance can be separately enabled within replay\n * and as a standalone web vitals tracker\n * people can have them enabled separately\n * they work standalone but enhance each other\n * TODO: deprecate this so we make a new config that doesn't need this explanation\n */\n capturePerformance?: boolean | PerformanceCaptureConfig\n analytics?: {\n endpoint?: string\n }\n elementsChainAsString?: boolean\n // this is currently in development and may have breaking changes without a major version bump\n autocaptureExceptions?:\n | boolean\n | {\n endpoint?: string\n }\n sessionRecording?: {\n endpoint?: string\n consoleLogRecordingEnabled?: boolean\n // the API returns a decimal between 0 and 1 as a string\n sampleRate?: string | null\n minimumDurationMilliseconds?: number\n recordCanvas?: boolean | null\n canvasFps?: number | null\n // the API returns a decimal between 0 and 1 as a string\n canvasQuality?: string | null\n linkedFlag?: string | FlagVariant | null\n networkPayloadCapture?: Pick\n }\n surveys?: boolean\n toolbarParams: ToolbarParams\n editorParams?: ToolbarParams /** @deprecated, renamed to toolbarParams, still present on older API responses */\n toolbarVersion: 'toolbar' /** @deprecated, moved to toolbarParams */\n isAuthenticated: boolean\n siteApps: { id: number; url: string }[]\n heatmaps?: boolean\n}\n\nexport type FeatureFlagsCallback = (\n flags: string[],\n variants: Record,\n context?: {\n errorsLoading?: boolean\n }\n) => void\n\nexport interface PersistentStore {\n is_supported: () => boolean\n error: (error: any) => void\n parse: (name: string) => any\n get: (name: string) => any\n set: (name: string, value: any, expire_days?: number | null, cross_subdomain?: boolean, secure?: boolean) => void\n remove: (name: string, cross_subdomain?: boolean) => void\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type Breaker = {}\nexport type EventHandler = (event: Event) => boolean | void\n\nexport type ToolbarUserIntent = 'add-action' | 'edit-action'\nexport type ToolbarSource = 'url' | 'localstorage'\nexport type ToolbarVersion = 'toolbar'\n\n/* sync with posthog */\nexport interface ToolbarParams {\n token?: string /** public posthog-js token */\n temporaryToken?: string /** private temporary user token */\n actionId?: number\n userIntent?: ToolbarUserIntent\n source?: ToolbarSource\n toolbarVersion?: ToolbarVersion\n instrument?: boolean\n distinctId?: string\n userEmail?: string\n dataAttributes?: string[]\n featureFlags?: Record\n}\n\nexport type SnippetArrayItem = [method: string, ...args: any[]]\n\nexport type JsonType = string | number | boolean | null | { [key: string]: JsonType } | Array\n\n/** A feature that isn't publicly available yet.*/\nexport interface EarlyAccessFeature {\n // Sync this with the backend's EarlyAccessFeatureSerializer!\n name: string\n description: string\n stage: 'concept' | 'alpha' | 'beta'\n documentationUrl: string | null\n flagKey: string | null\n}\n\nexport type EarlyAccessFeatureCallback = (earlyAccessFeatures: EarlyAccessFeature[]) => void\n\nexport interface EarlyAccessFeatureResponse {\n earlyAccessFeatures: EarlyAccessFeature[]\n}\n\nexport type Headers = Record\n\n/* for rrweb/network@1\n ** when that is released as part of rrweb this can be removed\n ** don't rely on this type, it may change without notice\n */\nexport type InitiatorType =\n | 'audio'\n | 'beacon'\n | 'body'\n | 'css'\n | 'early-hint'\n | 'embed'\n | 'fetch'\n | 'frame'\n | 'iframe'\n | 'icon'\n | 'image'\n | 'img'\n | 'input'\n | 'link'\n | 'navigation'\n | 'object'\n | 'ping'\n | 'script'\n | 'track'\n | 'video'\n | 'xmlhttprequest'\n\nexport type NetworkRecordOptions = {\n initiatorTypes?: InitiatorType[]\n maskRequestFn?: (data: CapturedNetworkRequest) => CapturedNetworkRequest | undefined\n recordHeaders?: boolean | { request: boolean; response: boolean }\n recordBody?: boolean | string[] | { request: boolean | string[]; response: boolean | string[] }\n recordInitialRequests?: boolean\n /**\n * whether to record PerformanceEntry events for network requests\n */\n recordPerformance?: boolean\n /**\n * the PerformanceObserver will only observe these entry types\n */\n performanceEntryTypeToObserve: string[]\n /**\n * the maximum size of the request/response body to record\n * NB this will be at most 1MB even if set larger\n */\n payloadSizeLimitBytes: number\n /**\n * some domains we should never record the payload\n * for example other companies session replay ingestion payloads aren't super useful but are gigantic\n * if this isn't provided we use a default list\n * if this is provided - we add the provided list to the default list\n * i.e. we never record the payloads on the default deny list\n */\n payloadHostDenyList?: string[]\n}\n\n/** @deprecated - use CapturedNetworkRequest instead */\nexport type NetworkRequest = {\n url: string\n}\n\n// In rrweb this is called NetworkRequest, but we already exposed that as having only URL\n// we also want to vary from the rrweb NetworkRequest because we want to include\n// all PerformanceEntry properties too.\n// that has 4 required properties\n// readonly duration: DOMHighResTimeStamp;\n// readonly entryType: string;\n// readonly name: string;\n// readonly startTime: DOMHighResTimeStamp;\n// NB: properties below here are ALPHA, don't rely on them, they may change without notice\n\n// we mirror PerformanceEntry since we read into this type from a PerformanceObserver,\n// but we don't want to inherit its readonly-iness\ntype Writable = { -readonly [P in keyof T]: T[P] }\n\nexport type CapturedNetworkRequest = Writable> & {\n // properties below here are ALPHA, don't rely on them, they may change without notice\n method?: string\n initiatorType?: InitiatorType\n status?: number\n timeOrigin?: number\n timestamp?: number\n startTime?: number\n endTime?: number\n requestHeaders?: Headers\n requestBody?: string | null\n responseHeaders?: Headers\n responseBody?: string | null\n // was this captured before fetch/xhr could have been wrapped\n isInitial?: boolean\n}\n\nexport type ErrorEventArgs = [\n event: string | Event,\n source?: string | undefined,\n lineno?: number | undefined,\n colno?: number | undefined,\n error?: Error | undefined\n]\n\n// levels originally copied from Sentry to work with the sentry integration\n// and to avoid relying on a frequently changing @sentry/types dependency\n// but provided as an array of literal types, so we can constrain the level below\nexport const severityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'] as const\nexport declare type SeverityLevel = typeof severityLevels[number]\n\nexport interface ErrorProperties {\n $exception_type: string\n $exception_message: string\n $exception_level: SeverityLevel\n $exception_source?: string\n $exception_lineno?: number\n $exception_colno?: number\n $exception_DOMException_code?: string\n $exception_is_synthetic?: boolean\n $exception_stack_trace_raw?: string\n $exception_handled?: boolean\n $exception_personURL?: string\n}\n\nexport interface ErrorConversions {\n errorToProperties: (args: ErrorEventArgs) => ErrorProperties\n unhandledRejectionToProperties: (args: [ev: PromiseRejectionEvent]) => ErrorProperties\n}\n","/*\n * Constants\n */\n\n/* PROPERTY KEYS */\n\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\nexport const PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id'\nexport const DISTINCT_ID = 'distinct_id'\nexport const ALIAS_ID_KEY = '__alias'\nexport const CAMPAIGN_IDS_KEY = '__cmpns'\nexport const EVENT_TIMERS_KEY = '__timers'\nexport const AUTOCAPTURE_DISABLED_SERVER_SIDE = '$autocapture_disabled_server_side'\nexport const HEATMAPS_ENABLED_SERVER_SIDE = '$heatmaps_enabled_server_side'\nexport const EXCEPTION_CAPTURE_ENABLED_SERVER_SIDE = '$exception_capture_enabled_server_side'\nexport const EXCEPTION_CAPTURE_ENDPOINT = '$exception_capture_endpoint'\nexport const WEB_VITALS_ENABLED_SERVER_SIDE = '$web_vitals_enabled_server_side'\nexport const SESSION_RECORDING_ENABLED_SERVER_SIDE = '$session_recording_enabled_server_side'\nexport const CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE = '$console_log_recording_enabled_server_side'\nexport const SESSION_RECORDING_NETWORK_PAYLOAD_CAPTURE = '$session_recording_network_payload_capture'\nexport const SESSION_RECORDING_CANVAS_RECORDING = '$session_recording_canvas_recording'\nexport const SESSION_RECORDING_SAMPLE_RATE = '$replay_sample_rate'\nexport const SESSION_RECORDING_MINIMUM_DURATION = '$replay_minimum_duration'\nexport const SESSION_ID = '$sesid'\nexport const SESSION_RECORDING_IS_SAMPLED = '$session_is_sampled'\nexport const ENABLED_FEATURE_FLAGS = '$enabled_feature_flags'\nexport const PERSISTENCE_EARLY_ACCESS_FEATURES = '$early_access_features'\nexport const STORED_PERSON_PROPERTIES_KEY = '$stored_person_properties'\nexport const STORED_GROUP_PROPERTIES_KEY = '$stored_group_properties'\nexport const SURVEYS = '$surveys'\nexport const SURVEYS_ACTIVATED = '$surveys_activated'\nexport const FLAG_CALL_REPORTED = '$flag_call_reported'\nexport const USER_STATE = '$user_state'\nexport const CLIENT_SESSION_PROPS = '$client_session_props'\nexport const CAPTURE_RATE_LIMIT = '$capture_rate_limit'\n\n/** @deprecated Delete this when INITIAL_PERSON_INFO has been around for long enough to ignore backwards compat */\nexport const INITIAL_CAMPAIGN_PARAMS = '$initial_campaign_params'\n/** @deprecated Delete this when INITIAL_PERSON_INFO has been around for long enough to ignore backwards compat */\nexport const INITIAL_REFERRER_INFO = '$initial_referrer_info'\nexport const INITIAL_PERSON_INFO = '$initial_person_info'\nexport const ENABLE_PERSON_PROCESSING = '$epp'\nexport const TOOLBAR_ID = '__POSTHOG_TOOLBAR__'\n\n// These are properties that are reserved and will not be automatically included in events\nexport const PERSISTENCE_RESERVED_PROPERTIES = [\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n CAMPAIGN_IDS_KEY,\n EVENT_TIMERS_KEY,\n SESSION_RECORDING_ENABLED_SERVER_SIDE,\n HEATMAPS_ENABLED_SERVER_SIDE,\n SESSION_ID,\n ENABLED_FEATURE_FLAGS,\n USER_STATE,\n PERSISTENCE_EARLY_ACCESS_FEATURES,\n STORED_GROUP_PROPERTIES_KEY,\n STORED_PERSON_PROPERTIES_KEY,\n SURVEYS,\n FLAG_CALL_REPORTED,\n CLIENT_SESSION_PROPS,\n CAPTURE_RATE_LIMIT,\n INITIAL_CAMPAIGN_PARAMS,\n INITIAL_REFERRER_INFO,\n ENABLE_PERSON_PROCESSING,\n]\n","import { entries, extend } from './utils'\nimport { PostHog } from './posthog-core'\nimport {\n DecideResponse,\n FeatureFlagsCallback,\n EarlyAccessFeatureCallback,\n EarlyAccessFeatureResponse,\n Properties,\n JsonType,\n Compression,\n} from './types'\nimport { PostHogPersistence } from './posthog-persistence'\n\nimport {\n PERSISTENCE_EARLY_ACCESS_FEATURES,\n ENABLED_FEATURE_FLAGS,\n STORED_GROUP_PROPERTIES_KEY,\n STORED_PERSON_PROPERTIES_KEY,\n FLAG_CALL_REPORTED,\n} from './constants'\n\nimport { isArray } from './utils/type-utils'\nimport { logger } from './utils/logger'\n\nconst PERSISTENCE_ACTIVE_FEATURE_FLAGS = '$active_feature_flags'\nconst PERSISTENCE_OVERRIDE_FEATURE_FLAGS = '$override_feature_flags'\nconst PERSISTENCE_FEATURE_FLAG_PAYLOADS = '$feature_flag_payloads'\n\nexport const filterActiveFeatureFlags = (featureFlags?: Record) => {\n const activeFeatureFlags: Record = {}\n for (const [key, value] of entries(featureFlags || {})) {\n if (value) {\n activeFeatureFlags[key] = value\n }\n }\n return activeFeatureFlags\n}\n\nexport const parseFeatureFlagDecideResponse = (\n response: Partial,\n persistence: PostHogPersistence,\n currentFlags: Record = {},\n currentFlagPayloads: Record = {}\n) => {\n const flags = response['featureFlags']\n const flagPayloads = response['featureFlagPayloads']\n if (!flags) {\n return\n }\n // using the v1 api\n if (isArray(flags)) {\n const $enabled_feature_flags: Record = {}\n if (flags) {\n for (let i = 0; i < flags.length; i++) {\n $enabled_feature_flags[flags[i]] = true\n }\n }\n persistence &&\n persistence.register({\n [PERSISTENCE_ACTIVE_FEATURE_FLAGS]: flags,\n [ENABLED_FEATURE_FLAGS]: $enabled_feature_flags,\n })\n return\n }\n\n // using the v2+ api\n let newFeatureFlags = flags\n let newFeatureFlagPayloads = flagPayloads\n if (response.errorsWhileComputingFlags) {\n // if not all flags were computed, we upsert flags instead of replacing them\n newFeatureFlags = { ...currentFlags, ...newFeatureFlags }\n newFeatureFlagPayloads = { ...currentFlagPayloads, ...newFeatureFlagPayloads }\n }\n persistence &&\n persistence.register({\n [PERSISTENCE_ACTIVE_FEATURE_FLAGS]: Object.keys(filterActiveFeatureFlags(newFeatureFlags)),\n [ENABLED_FEATURE_FLAGS]: newFeatureFlags || {},\n [PERSISTENCE_FEATURE_FLAG_PAYLOADS]: newFeatureFlagPayloads || {},\n })\n}\n\nexport class PostHogFeatureFlags {\n instance: PostHog\n _override_warning: boolean\n featureFlagEventHandlers: FeatureFlagsCallback[]\n reloadFeatureFlagsQueued: boolean\n reloadFeatureFlagsInAction: boolean\n $anon_distinct_id: string | undefined\n\n constructor(instance: PostHog) {\n this.instance = instance\n this._override_warning = false\n this.featureFlagEventHandlers = []\n\n this.reloadFeatureFlagsQueued = false\n this.reloadFeatureFlagsInAction = false\n }\n\n getFlags(): string[] {\n return Object.keys(this.getFlagVariants())\n }\n\n getFlagVariants(): Record {\n const enabledFlags = this.instance.get_property(ENABLED_FEATURE_FLAGS)\n const overriddenFlags = this.instance.get_property(PERSISTENCE_OVERRIDE_FEATURE_FLAGS)\n if (!overriddenFlags) {\n return enabledFlags || {}\n }\n\n const finalFlags = extend({}, enabledFlags)\n const overriddenKeys = Object.keys(overriddenFlags)\n for (let i = 0; i < overriddenKeys.length; i++) {\n finalFlags[overriddenKeys[i]] = overriddenFlags[overriddenKeys[i]]\n }\n if (!this._override_warning) {\n logger.warn(' Overriding feature flags!', {\n enabledFlags,\n overriddenFlags,\n finalFlags,\n })\n this._override_warning = true\n }\n return finalFlags\n }\n\n getFlagPayloads(): Record {\n const flagPayloads = this.instance.get_property(PERSISTENCE_FEATURE_FLAG_PAYLOADS)\n return flagPayloads || {}\n }\n\n /**\n * Reloads feature flags asynchronously.\n *\n * Constraints:\n *\n * 1. Avoid parallel requests\n * 2. Delay a few milliseconds after each reloadFeatureFlags call to batch subsequent changes together\n * 3. Don't call this during initial load (as /decide will be called instead), see posthog-core.js\n */\n reloadFeatureFlags(): void {\n if (!this.reloadFeatureFlagsQueued) {\n this.reloadFeatureFlagsQueued = true\n this._startReloadTimer()\n }\n }\n\n setAnonymousDistinctId(anon_distinct_id: string): void {\n this.$anon_distinct_id = anon_distinct_id\n }\n\n setReloadingPaused(isPaused: boolean): void {\n this.reloadFeatureFlagsInAction = isPaused\n }\n\n resetRequestQueue(): void {\n this.reloadFeatureFlagsQueued = false\n }\n\n _startReloadTimer(): void {\n if (this.reloadFeatureFlagsQueued && !this.reloadFeatureFlagsInAction) {\n setTimeout(() => {\n if (!this.reloadFeatureFlagsInAction && this.reloadFeatureFlagsQueued) {\n this.reloadFeatureFlagsQueued = false\n this._reloadFeatureFlagsRequest()\n }\n }, 5)\n }\n }\n\n _reloadFeatureFlagsRequest(): void {\n if (this.instance.config.advanced_disable_feature_flags) {\n return\n }\n\n this.setReloadingPaused(true)\n const token = this.instance.config.token\n const personProperties = this.instance.get_property(STORED_PERSON_PROPERTIES_KEY)\n const groupProperties = this.instance.get_property(STORED_GROUP_PROPERTIES_KEY)\n const json_data = {\n token: token,\n distinct_id: this.instance.get_distinct_id(),\n groups: this.instance.getGroups(),\n $anon_distinct_id: this.$anon_distinct_id,\n person_properties: personProperties,\n group_properties: groupProperties,\n disable_flags: this.instance.config.advanced_disable_feature_flags || undefined,\n }\n\n this.instance._send_request({\n method: 'POST',\n url: this.instance.requestRouter.endpointFor('api', '/decide/?v=3'),\n data: json_data,\n compression: this.instance.config.disable_compression ? undefined : Compression.Base64,\n timeout: this.instance.config.feature_flag_request_timeout_ms,\n callback: (response) => {\n this.setReloadingPaused(false)\n\n let errorsLoading = true\n\n if (response.statusCode === 200) {\n // successful request\n // reset anon_distinct_id after at least a single request with it\n // makes it through\n this.$anon_distinct_id = undefined\n errorsLoading = false\n }\n // :TRICKY: We want to fire the callback even if the request fails\n // and return existing flags if they exist\n // This is because we don't want to block clients waiting for flags to load.\n // It's possible they're waiting for the callback to render the UI, but it never occurs.\n this.receivedFeatureFlags(response.json ?? {}, errorsLoading)\n\n // :TRICKY: Reload - start another request if queued!\n this._startReloadTimer()\n },\n })\n }\n\n /*\n * Get feature flag's value for user.\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('my-flag') === 'some-variant') { // do something }\n *\n * @param {Object|String} key Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n getFeatureFlag(key: string, options: { send_event?: boolean } = {}): boolean | string | undefined {\n if (!this.instance.decideEndpointWasHit && !(this.getFlags() && this.getFlags().length > 0)) {\n logger.warn('getFeatureFlag for key \"' + key + '\" failed. Feature flags didn\\'t load in time.')\n return undefined\n }\n const flagValue = this.getFlagVariants()[key]\n const flagReportValue = `${flagValue}`\n const flagCallReported: Record = this.instance.get_property(FLAG_CALL_REPORTED) || {}\n\n if (options.send_event || !('send_event' in options)) {\n if (!(key in flagCallReported) || !flagCallReported[key].includes(flagReportValue)) {\n if (isArray(flagCallReported[key])) {\n flagCallReported[key].push(flagReportValue)\n } else {\n flagCallReported[key] = [flagReportValue]\n }\n this.instance.persistence?.register({ [FLAG_CALL_REPORTED]: flagCallReported })\n\n this.instance.capture('$feature_flag_called', { $feature_flag: key, $feature_flag_response: flagValue })\n }\n }\n return flagValue\n }\n\n getFeatureFlagPayload(key: string): JsonType {\n const payloads = this.getFlagPayloads()\n return payloads[key]\n }\n\n /*\n * See if feature flag is enabled for user.\n *\n * ### Usage:\n *\n * if(posthog.isFeatureEnabled('beta-feature')) { // do something }\n *\n * @param {Object|String} key Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n isFeatureEnabled(key: string, options: { send_event?: boolean } = {}): boolean | undefined {\n if (!this.instance.decideEndpointWasHit && !(this.getFlags() && this.getFlags().length > 0)) {\n logger.warn('isFeatureEnabled for key \"' + key + '\" failed. Feature flags didn\\'t load in time.')\n return undefined\n }\n return !!this.getFeatureFlag(key, options)\n }\n\n addFeatureFlagsHandler(handler: FeatureFlagsCallback): void {\n this.featureFlagEventHandlers.push(handler)\n }\n\n removeFeatureFlagsHandler(handler: FeatureFlagsCallback): void {\n this.featureFlagEventHandlers = this.featureFlagEventHandlers.filter((h) => h !== handler)\n }\n\n receivedFeatureFlags(response: Partial, errorsLoading?: boolean): void {\n if (!this.instance.persistence) {\n return\n }\n this.instance.decideEndpointWasHit = true\n const currentFlags = this.getFlagVariants()\n const currentFlagPayloads = this.getFlagPayloads()\n parseFeatureFlagDecideResponse(response, this.instance.persistence, currentFlags, currentFlagPayloads)\n this._fireFeatureFlagsCallbacks(errorsLoading)\n }\n\n /*\n * Override feature flags for debugging.\n *\n * ### Usage:\n *\n * - posthog.feature_flags.override(false)\n * - posthog.feature_flags.override(['beta-feature'])\n * - posthog.feature_flags.override({'beta-feature': 'variant', 'other-feature': True})\n *\n * @param {Object|Array|String} flags Flags to override with.\n */\n override(flags: boolean | string[] | Record): void {\n if (!this.instance.__loaded || !this.instance.persistence) {\n return logger.uninitializedWarning('posthog.feature_flags.override')\n }\n\n this._override_warning = false\n\n if (flags === false) {\n this.instance.persistence.unregister(PERSISTENCE_OVERRIDE_FEATURE_FLAGS)\n } else if (isArray(flags)) {\n const flagsObj: Record = {}\n for (let i = 0; i < flags.length; i++) {\n flagsObj[flags[i]] = true\n }\n this.instance.persistence.register({ [PERSISTENCE_OVERRIDE_FEATURE_FLAGS]: flagsObj })\n } else {\n this.instance.persistence.register({ [PERSISTENCE_OVERRIDE_FEATURE_FLAGS]: flags })\n }\n }\n /*\n * Register an event listener that runs when feature flags become available or when they change.\n * If there are flags, the listener is called immediately in addition to being called on future changes.\n *\n * ### Usage:\n *\n * posthog.onFeatureFlags(function(featureFlags) { // do something })\n *\n * @param {Function} [callback] The callback function will be called once the feature flags are ready or when they are updated.\n * It'll return a list of feature flags enabled for the user.\n * @returns {Function} A function that can be called to unsubscribe the listener. Used by useEffect when the component unmounts.\n */\n onFeatureFlags(callback: FeatureFlagsCallback): () => void {\n this.addFeatureFlagsHandler(callback)\n if (this.instance.decideEndpointWasHit) {\n const { flags, flagVariants } = this._prepareFeatureFlagsForCallbacks()\n callback(flags, flagVariants)\n }\n return () => this.removeFeatureFlagsHandler(callback)\n }\n\n updateEarlyAccessFeatureEnrollment(key: string, isEnrolled: boolean): void {\n const enrollmentPersonProp = {\n [`$feature_enrollment/${key}`]: isEnrolled,\n }\n this.instance.capture('$feature_enrollment_update', {\n $feature_flag: key,\n $feature_enrollment: isEnrolled,\n $set: enrollmentPersonProp,\n })\n this.setPersonPropertiesForFlags(enrollmentPersonProp, false)\n\n const newFlags = { ...this.getFlagVariants(), [key]: isEnrolled }\n this.instance.persistence?.register({\n [PERSISTENCE_ACTIVE_FEATURE_FLAGS]: Object.keys(filterActiveFeatureFlags(newFlags)),\n [ENABLED_FEATURE_FLAGS]: newFlags,\n })\n this._fireFeatureFlagsCallbacks()\n }\n\n getEarlyAccessFeatures(callback: EarlyAccessFeatureCallback, force_reload = false): void {\n const existing_early_access_features = this.instance.get_property(PERSISTENCE_EARLY_ACCESS_FEATURES)\n\n if (!existing_early_access_features || force_reload) {\n this.instance._send_request({\n transport: 'XHR',\n url: this.instance.requestRouter.endpointFor(\n 'api',\n `/api/early_access_features/?token=${this.instance.config.token}`\n ),\n method: 'GET',\n callback: (response) => {\n if (!response.json) {\n return\n }\n const earlyAccessFeatures = (response.json as EarlyAccessFeatureResponse).earlyAccessFeatures\n this.instance.persistence?.register({ [PERSISTENCE_EARLY_ACCESS_FEATURES]: earlyAccessFeatures })\n return callback(earlyAccessFeatures)\n },\n })\n } else {\n return callback(existing_early_access_features)\n }\n }\n\n _prepareFeatureFlagsForCallbacks(): { flags: string[]; flagVariants: Record } {\n const flags = this.getFlags()\n const flagVariants = this.getFlagVariants()\n\n // Return truthy\n const truthyFlags = flags.filter((flag) => flagVariants[flag])\n const truthyFlagVariants = Object.keys(flagVariants)\n .filter((variantKey) => flagVariants[variantKey])\n .reduce((res: Record, key) => {\n res[key] = flagVariants[key]\n return res\n }, {})\n\n return {\n flags: truthyFlags,\n flagVariants: truthyFlagVariants,\n }\n }\n\n _fireFeatureFlagsCallbacks(errorsLoading?: boolean): void {\n const { flags, flagVariants } = this._prepareFeatureFlagsForCallbacks()\n this.featureFlagEventHandlers.forEach((handler) => handler(flags, flagVariants, { errorsLoading }))\n }\n\n /**\n * Set override person properties for feature flags.\n * This is used when dealing with new persons / where you don't want to wait for ingestion\n * to update user properties.\n */\n setPersonPropertiesForFlags(properties: Properties, reloadFeatureFlags = true): void {\n // Get persisted person properties\n const existingProperties = this.instance.get_property(STORED_PERSON_PROPERTIES_KEY) || {}\n\n this.instance.register({\n [STORED_PERSON_PROPERTIES_KEY]: {\n ...existingProperties,\n ...properties,\n },\n })\n\n if (reloadFeatureFlags) {\n this.instance.reloadFeatureFlags()\n }\n }\n\n resetPersonPropertiesForFlags(): void {\n this.instance.unregister(STORED_PERSON_PROPERTIES_KEY)\n }\n\n /**\n * Set override group properties for feature flags.\n * This is used when dealing with new groups / where you don't want to wait for ingestion\n * to update properties.\n * Takes in an object, the key of which is the group type.\n * For example:\n * setGroupPropertiesForFlags({'organization': { name: 'CYZ', employees: '11' } })\n */\n setGroupPropertiesForFlags(properties: { [type: string]: Properties }, reloadFeatureFlags = true): void {\n // Get persisted group properties\n const existingProperties = this.instance.get_property(STORED_GROUP_PROPERTIES_KEY) || {}\n\n if (Object.keys(existingProperties).length !== 0) {\n Object.keys(existingProperties).forEach((groupType) => {\n existingProperties[groupType] = {\n ...existingProperties[groupType],\n ...properties[groupType],\n }\n delete properties[groupType]\n })\n }\n\n this.instance.register({\n [STORED_GROUP_PROPERTIES_KEY]: {\n ...existingProperties,\n ...properties,\n },\n })\n\n if (reloadFeatureFlags) {\n this.instance.reloadFeatureFlags()\n }\n }\n\n resetGroupPropertiesForFlags(group_type?: string): void {\n if (group_type) {\n const existingProperties = this.instance.get_property(STORED_GROUP_PROPERTIES_KEY) || {}\n this.instance.register({\n [STORED_GROUP_PROPERTIES_KEY]: { ...existingProperties, [group_type]: {} },\n })\n } else {\n this.instance.unregister(STORED_GROUP_PROPERTIES_KEY)\n }\n }\n}\n","/**\n * uuidv7: An experimental implementation of the proposed UUID Version 7\n *\n * @license Apache-2.0\n * @copyright 2021-2023 LiosK\n * @packageDocumentation\n *\n * from https://github.com/LiosK/uuidv7/blob/e501462ea3d23241de13192ceae726956f9b3b7d/src/index.ts\n */\n\n// polyfill for IE11\nimport { window } from './utils/globals'\n\nimport { isNumber, isUndefined } from './utils/type-utils'\n\nif (!Math.trunc) {\n Math.trunc = function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v)\n }\n}\n\n// polyfill for IE11\nif (!Number.isInteger) {\n Number.isInteger = function (value) {\n return isNumber(value) && isFinite(value) && Math.floor(value) === value\n }\n}\n\nconst DIGITS = '0123456789abcdef'\n\n/** Represents a UUID as a 16-byte byte array. */\nexport class UUID {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(readonly bytes: Readonly) {\n if (bytes.length !== 16) {\n throw new TypeError('not 128-bit length')\n }\n }\n\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n */\n static fromFieldsV7(unixTsMs: number, randA: number, randBHi: number, randBLo: number): UUID {\n if (\n !Number.isInteger(unixTsMs) ||\n !Number.isInteger(randA) ||\n !Number.isInteger(randBHi) ||\n !Number.isInteger(randBLo) ||\n unixTsMs < 0 ||\n randA < 0 ||\n randBHi < 0 ||\n randBLo < 0 ||\n unixTsMs > 0xffff_ffff_ffff ||\n randA > 0xfff ||\n randBHi > 0x3fff_ffff ||\n randBLo > 0xffff_ffff\n ) {\n throw new RangeError('invalid field value')\n }\n\n const bytes = new Uint8Array(16)\n bytes[0] = unixTsMs / 2 ** 40\n bytes[1] = unixTsMs / 2 ** 32\n bytes[2] = unixTsMs / 2 ** 24\n bytes[3] = unixTsMs / 2 ** 16\n bytes[4] = unixTsMs / 2 ** 8\n bytes[5] = unixTsMs\n bytes[6] = 0x70 | (randA >>> 8)\n bytes[7] = randA\n bytes[8] = 0x80 | (randBHi >>> 24)\n bytes[9] = randBHi >>> 16\n bytes[10] = randBHi >>> 8\n bytes[11] = randBHi\n bytes[12] = randBLo >>> 24\n bytes[13] = randBLo >>> 16\n bytes[14] = randBLo >>> 8\n bytes[15] = randBLo\n return new UUID(bytes)\n }\n\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toString(): string {\n let text = ''\n for (let i = 0; i < this.bytes.length; i++) {\n text = text + DIGITS.charAt(this.bytes[i] >>> 4) + DIGITS.charAt(this.bytes[i] & 0xf)\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += '-'\n }\n }\n\n if (text.length !== 36) {\n // We saw one customer whose bundling code was mangling the UUID generation\n // rather than accept a bad UUID, we throw an error here.\n throw new Error('Invalid UUIDv7 was generated')\n }\n return text\n }\n\n /** Creates an object from `this`. */\n clone(): UUID {\n return new UUID(this.bytes.slice(0))\n }\n\n /** Returns true if `this` is equivalent to `other`. */\n equals(other: UUID): boolean {\n return this.compareTo(other) === 0\n }\n\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other: UUID): number {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i]\n if (diff !== 0) {\n return Math.sign(diff)\n }\n }\n return 0\n }\n}\n\n/** Encapsulates the monotonic counter state. */\nclass V7Generator {\n private timestamp = 0\n private counter = 0\n private readonly random = new DefaultRandom()\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method resets the generator and returns a new\n * UUID based on the current timestamp.\n */\n generate(): UUID {\n const value = this.generateOrAbort()\n if (!isUndefined(value)) {\n return value\n } else {\n // reset state and resume\n this.timestamp = 0\n const valueAfterReset = this.generateOrAbort()\n if (isUndefined(valueAfterReset)) {\n throw new Error('Could not generate UUID after timestamp reset')\n }\n return valueAfterReset\n }\n }\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method aborts and returns `undefined`.\n */\n generateOrAbort(): UUID | undefined {\n const MAX_COUNTER = 0x3ff_ffff_ffff\n const ROLLBACK_ALLOWANCE = 10_000 // 10 seconds\n\n const ts = Date.now()\n if (ts > this.timestamp) {\n this.timestamp = ts\n this.resetCounter()\n } else if (ts + ROLLBACK_ALLOWANCE > this.timestamp) {\n // go on with previous timestamp if new one is not much smaller\n this.counter++\n if (this.counter > MAX_COUNTER) {\n // increment timestamp at counter overflow\n this.timestamp++\n this.resetCounter()\n }\n } else {\n // abort if clock went backwards to unbearable extent\n return undefined\n }\n\n return UUID.fromFieldsV7(\n this.timestamp,\n Math.trunc(this.counter / 2 ** 30),\n this.counter & (2 ** 30 - 1),\n this.random.nextUint32()\n )\n }\n\n /** Initializes the counter at a 42-bit random integer. */\n private resetCounter(): void {\n this.counter = this.random.nextUint32() * 0x400 + (this.random.nextUint32() & 0x3ff)\n }\n}\n\n/** A global flag to force use of cryptographically strong RNG. */\ndeclare const UUIDV7_DENY_WEAK_RNG: boolean\n\n/** Stores `crypto.getRandomValues()` available in the environment. */\nlet getRandomValues: (buffer: T) => T = (buffer) => {\n // fall back on Math.random() unless the flag is set to true\n // TRICKY: don't use the isUndefined method here as can't pass the reference\n if (typeof UUIDV7_DENY_WEAK_RNG !== 'undefined' && UUIDV7_DENY_WEAK_RNG) {\n throw new Error('no cryptographically strong RNG available')\n }\n\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] = Math.trunc(Math.random() * 0x1_0000) * 0x1_0000 + Math.trunc(Math.random() * 0x1_0000)\n }\n return buffer\n}\n\n// detect Web Crypto API\nif (window && !isUndefined(window.crypto) && crypto.getRandomValues) {\n getRandomValues = (buffer) => crypto.getRandomValues(buffer)\n}\n\n/**\n * Wraps `crypto.getRandomValues()` and compatibles to enable buffering; this\n * uses a small buffer by default to avoid unbearable throughput decline in some\n * environments as well as the waste of time and space for unused values.\n */\nclass DefaultRandom {\n private readonly buffer = new Uint32Array(8)\n private cursor = Infinity\n nextUint32(): number {\n if (this.cursor >= this.buffer.length) {\n getRandomValues(this.buffer)\n this.cursor = 0\n }\n return this.buffer[this.cursor++]\n }\n}\n\nlet defaultGenerator: V7Generator | undefined\n\n/**\n * Generates a UUIDv7 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv7 = (): string => uuidv7obj().toString()\n\n/** Generates a UUIDv7 object. */\nconst uuidv7obj = (): UUID => (defaultGenerator || (defaultGenerator = new V7Generator())).generate()\n\nexport const uuid7ToTimestampMs = (uuid: string): number => {\n // remove hyphens\n const hex = uuid.replace(/-/g, '')\n // ensure that it's a version 7 UUID\n if (hex.length !== 32) {\n throw new Error('Not a valid UUID')\n }\n if (hex[12] !== '7') {\n throw new Error('Not a UUIDv7')\n }\n // the first 6 bytes are the timestamp, which means that we can read only the first 12 hex characters\n return parseInt(hex.substring(0, 12), 16)\n}\n","import { extend } from './utils'\nimport { PersistentStore, Properties } from './types'\nimport { DISTINCT_ID, ENABLE_PERSON_PROCESSING, SESSION_ID, SESSION_RECORDING_IS_SAMPLED } from './constants'\n\nimport { isNull, isUndefined } from './utils/type-utils'\nimport { logger } from './utils/logger'\nimport { window, document } from './utils/globals'\nimport { uuidv7 } from './uuidv7'\n\nconst Y1970 = 'Thu, 01 Jan 1970 00:00:00 GMT'\n// we store the discovered subdomain in memory because it might be read multiple times\nlet firstNonPublicSubDomain = ''\n\n// helper to allow tests to clear this \"cache\"\nexport const resetSubDomainCache = () => {\n firstNonPublicSubDomain = ''\n}\n\n/**\n * Browsers don't offer a way to check if something is a public suffix\n * e.g. `.com.au`, `.io`, `.org.uk`\n *\n * But they do reject cookies set on public suffixes\n * Setting a cookie on `.co.uk` would mean it was sent for every `.co.uk` site visited\n *\n * So, we can use this to check if a domain is a public suffix\n * by trying to set a cookie on a subdomain of the provided hostname\n * until the browser accepts it\n *\n * inspired by https://github.com/AngusFu/browser-root-domain\n */\nexport function seekFirstNonPublicSubDomain(hostname: string, cookieJar = document): string {\n if (firstNonPublicSubDomain) {\n return firstNonPublicSubDomain\n }\n\n if (!cookieJar) {\n return ''\n }\n if (['localhost', '127.0.0.1'].includes(hostname)) return ''\n\n const list = hostname.split('.')\n let len = Math.min(list.length, 8) // paranoia - we know this number should be small\n const key = 'dmn_chk_' + uuidv7()\n const R = new RegExp('(^|;)\\\\s*' + key + '=1')\n\n while (!firstNonPublicSubDomain && len--) {\n const candidate = list.slice(len).join('.')\n const candidateCookieValue = key + '=1;domain=.' + candidate\n\n // try to set cookie\n cookieJar.cookie = candidateCookieValue\n\n if (R.test(cookieJar.cookie)) {\n // the cookie was accepted by the browser, remove the test cookie\n cookieJar.cookie = candidateCookieValue + ';expires=' + Y1970\n firstNonPublicSubDomain = candidate\n }\n }\n\n return firstNonPublicSubDomain\n}\n\nconst DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z]{2,}$/i\nconst originalCookieDomainFn = (hostname: string): string => {\n const matches = hostname.match(DOMAIN_MATCH_REGEX)\n return matches ? matches[0] : ''\n}\n\nexport function chooseCookieDomain(hostname: string, cross_subdomain: boolean | undefined): string {\n if (cross_subdomain) {\n // NOTE: Could we use this for cross domain tracking?\n let matchedSubDomain = seekFirstNonPublicSubDomain(hostname)\n\n if (!matchedSubDomain) {\n const originalMatch = originalCookieDomainFn(hostname)\n if (originalMatch !== matchedSubDomain) {\n logger.info('Warning: cookie subdomain discovery mismatch', originalMatch, matchedSubDomain)\n }\n matchedSubDomain = originalMatch\n }\n\n return matchedSubDomain ? '; domain=.' + matchedSubDomain : ''\n }\n return ''\n}\n\n// Methods partially borrowed from quirksmode.org/js/cookies.html\nexport const cookieStore: PersistentStore = {\n is_supported: () => !!document,\n\n error: function (msg) {\n logger.error('cookieStore error: ' + msg)\n },\n\n get: function (name) {\n if (!document) {\n return\n }\n\n try {\n const nameEQ = name + '='\n const ca = document.cookie.split(';').filter((x) => x.length)\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i]\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length)\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n } catch (err) {}\n return null\n },\n\n parse: function (name) {\n let cookie\n try {\n cookie = JSON.parse(cookieStore.get(name)) || {}\n } catch (err) {\n // noop\n }\n return cookie\n },\n\n set: function (name, value, days, cross_subdomain, is_secure) {\n if (!document) {\n return\n }\n try {\n let expires = '',\n secure = ''\n\n const cdomain = chooseCookieDomain(document.location.hostname, cross_subdomain)\n\n if (days) {\n const date = new Date()\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)\n expires = '; expires=' + date.toUTCString()\n }\n\n if (is_secure) {\n secure = '; secure'\n }\n\n const new_cookie_val =\n name +\n '=' +\n encodeURIComponent(JSON.stringify(value)) +\n expires +\n '; SameSite=Lax; path=/' +\n cdomain +\n secure\n\n // 4096 bytes is the size at which some browsers (e.g. firefox) will not store a cookie, warn slightly before that\n if (new_cookie_val.length > 4096 * 0.9) {\n logger.warn('cookieStore warning: large cookie, len=' + new_cookie_val.length)\n }\n\n document.cookie = new_cookie_val\n return new_cookie_val\n } catch (err) {\n return\n }\n },\n\n remove: function (name, cross_subdomain) {\n try {\n cookieStore.set(name, '', -1, cross_subdomain)\n } catch (err) {\n return\n }\n },\n}\n\nlet _localStorage_supported: boolean | null = null\n\nexport const localStore: PersistentStore = {\n is_supported: function () {\n if (!isNull(_localStorage_supported)) {\n return _localStorage_supported\n }\n\n let supported = true\n if (!isUndefined(window)) {\n try {\n const key = '__mplssupport__',\n val = 'xyz'\n localStore.set(key, val)\n if (localStore.get(key) !== '\"xyz\"') {\n supported = false\n }\n localStore.remove(key)\n } catch (err) {\n supported = false\n }\n } else {\n supported = false\n }\n if (!supported) {\n logger.error('localStorage unsupported; falling back to cookie store')\n }\n\n _localStorage_supported = supported\n return supported\n },\n\n error: function (msg) {\n logger.error('localStorage error: ' + msg)\n },\n\n get: function (name) {\n try {\n return window?.localStorage.getItem(name)\n } catch (err) {\n localStore.error(err)\n }\n return null\n },\n\n parse: function (name) {\n try {\n return JSON.parse(localStore.get(name)) || {}\n } catch (err) {\n // noop\n }\n return null\n },\n\n set: function (name, value) {\n try {\n window?.localStorage.setItem(name, JSON.stringify(value))\n } catch (err) {\n localStore.error(err)\n }\n },\n\n remove: function (name) {\n try {\n window?.localStorage.removeItem(name)\n } catch (err) {\n localStore.error(err)\n }\n },\n}\n\n// Use localstorage for most data but still use cookie for COOKIE_PERSISTED_PROPERTIES\n// This solves issues with cookies having too much data in them causing headers too large\n// Also makes sure we don't have to send a ton of data to the server\nconst COOKIE_PERSISTED_PROPERTIES = [DISTINCT_ID, SESSION_ID, SESSION_RECORDING_IS_SAMPLED, ENABLE_PERSON_PROCESSING]\n\nexport const localPlusCookieStore: PersistentStore = {\n ...localStore,\n parse: function (name) {\n try {\n let cookieProperties: Properties = {}\n try {\n // See if there's a cookie stored with data.\n cookieProperties = cookieStore.parse(name) || {}\n } catch (err) {}\n const value = extend(cookieProperties, JSON.parse(localStore.get(name) || '{}'))\n localStore.set(name, value)\n return value\n } catch (err) {\n // noop\n }\n return null\n },\n\n set: function (name, value, days, cross_subdomain, is_secure) {\n try {\n localStore.set(name, value)\n const cookiePersistedProperties: Record = {}\n COOKIE_PERSISTED_PROPERTIES.forEach((key) => {\n if (value[key]) {\n cookiePersistedProperties[key] = value[key]\n }\n })\n\n if (Object.keys(cookiePersistedProperties).length) {\n cookieStore.set(name, cookiePersistedProperties, days, cross_subdomain, is_secure)\n }\n } catch (err) {\n localStore.error(err)\n }\n },\n\n remove: function (name, cross_subdomain) {\n try {\n window?.localStorage.removeItem(name)\n cookieStore.remove(name, cross_subdomain)\n } catch (err) {\n localStore.error(err)\n }\n },\n}\n\nconst memoryStorage: Properties = {}\n\n// Storage that only lasts the length of the pageview if we don't want to use cookies\nexport const memoryStore: PersistentStore = {\n is_supported: function () {\n return true\n },\n\n error: function (msg) {\n logger.error('memoryStorage error: ' + msg)\n },\n\n get: function (name) {\n return memoryStorage[name] || null\n },\n\n parse: function (name) {\n return memoryStorage[name] || null\n },\n\n set: function (name, value) {\n memoryStorage[name] = value\n },\n\n remove: function (name) {\n delete memoryStorage[name]\n },\n}\n\nlet sessionStorageSupported: boolean | null = null\nexport const resetSessionStorageSupported = () => {\n sessionStorageSupported = null\n}\n// Storage that only lasts the length of a tab/window. Survives page refreshes\nexport const sessionStore: PersistentStore = {\n is_supported: function () {\n if (!isNull(sessionStorageSupported)) {\n return sessionStorageSupported\n }\n sessionStorageSupported = true\n if (!isUndefined(window)) {\n try {\n const key = '__support__',\n val = 'xyz'\n sessionStore.set(key, val)\n if (sessionStore.get(key) !== '\"xyz\"') {\n sessionStorageSupported = false\n }\n sessionStore.remove(key)\n } catch (err) {\n sessionStorageSupported = false\n }\n } else {\n sessionStorageSupported = false\n }\n return sessionStorageSupported\n },\n\n error: function (msg) {\n logger.error('sessionStorage error: ', msg)\n },\n\n get: function (name) {\n try {\n return window?.sessionStorage.getItem(name)\n } catch (err) {\n sessionStore.error(err)\n }\n return null\n },\n\n parse: function (name) {\n try {\n return JSON.parse(sessionStore.get(name)) || null\n } catch (err) {\n // noop\n }\n return null\n },\n\n set: function (name, value) {\n try {\n window?.sessionStorage.setItem(name, JSON.stringify(value))\n } catch (err) {\n sessionStore.error(err)\n }\n },\n\n remove: function (name) {\n try {\n window?.sessionStorage.removeItem(name)\n } catch (err) {\n sessionStore.error(err)\n }\n },\n}\n","import { each, isValidRegex } from './'\n\nimport { isArray, isFile, isUndefined } from './type-utils'\nimport { logger } from './logger'\nimport { document } from './globals'\n\nconst localDomains = ['localhost', '127.0.0.1']\n\n/**\n * IE11 doesn't support `new URL`\n * so we can create an anchor element and use that to parse the URL\n * there's a lot of overlap between HTMLHyperlinkElementUtils and URL\n * meaning useful properties like `pathname` are available on both\n */\nexport const convertToURL = (url: string): HTMLAnchorElement | null => {\n const location = document?.createElement('a')\n if (isUndefined(location)) {\n return null\n }\n\n location.href = url\n return location\n}\n\nexport const isUrlMatchingRegex = function (url: string, pattern: string): boolean {\n if (!isValidRegex(pattern)) return false\n return new RegExp(pattern).test(url)\n}\n\nexport const formDataToQuery = function (formdata: Record | FormData, arg_separator = '&'): string {\n let use_val: string\n let use_key: string\n const tph_arr: string[] = []\n\n each(formdata, function (val: File | string | undefined, key: string | undefined) {\n // the key might be literally the string undefined for e.g. if {undefined: 'something'}\n if (isUndefined(val) || isUndefined(key) || key === 'undefined') {\n return\n }\n\n use_val = encodeURIComponent(isFile(val) ? val.name : val.toString())\n use_key = encodeURIComponent(key)\n tph_arr[tph_arr.length] = use_key + '=' + use_val\n })\n\n return tph_arr.join(arg_separator)\n}\n\nexport const getQueryParam = function (url: string, param: string): string {\n const withoutHash: string = url.split('#')[0] || ''\n const queryParams: string = withoutHash.split('?')[1] || ''\n\n const queryParts = queryParams.split('&')\n let keyValuePair\n\n for (let i = 0; i < queryParts.length; i++) {\n const parts = queryParts[i].split('=')\n if (parts[0] === param) {\n keyValuePair = parts\n break\n }\n }\n\n if (!isArray(keyValuePair) || keyValuePair.length < 2) {\n return ''\n } else {\n let result = keyValuePair[1]\n try {\n result = decodeURIComponent(result)\n } catch (err) {\n logger.error('Skipping decoding for malformed query param: ' + result)\n }\n return result.replace(/\\+/g, ' ')\n }\n}\n\nexport const _getHashParam = function (hash: string, param: string): string | null {\n const matches = hash.match(new RegExp(param + '=([^&]*)'))\n return matches ? matches[1] : null\n}\n\nexport const isLocalhost = (): boolean => {\n return localDomains.includes(location.hostname)\n}\n","import { includes } from './index'\nimport { isFunction, isUndefined } from './type-utils'\n\n/**\n * this device detection code is (at time of writing) about 3% of the size of the entire library\n * this is mostly because the identifiers user in regexes and results can't be minified away since\n * they have meaning\n *\n * so, there are some pre-uglifying choices in the code to help reduce the size\n * e.g. many repeated strings are stored as variables and then old-fashioned concatenated together\n *\n * TL;DR here be dragons\n */\nconst FACEBOOK = 'Facebook'\nconst MOBILE = 'Mobile'\nconst IOS = 'iOS'\nconst ANDROID = 'Android'\nconst TABLET = 'Tablet'\nconst ANDROID_TABLET = ANDROID + ' ' + TABLET\nconst IPAD = 'iPad'\nconst APPLE = 'Apple'\nconst APPLE_WATCH = APPLE + ' Watch'\nconst SAFARI = 'Safari'\nconst BLACKBERRY = 'BlackBerry'\nconst SAMSUNG = 'Samsung'\nconst SAMSUNG_BROWSER = SAMSUNG + 'Browser'\nconst SAMSUNG_INTERNET = SAMSUNG + ' Internet'\nconst CHROME = 'Chrome'\nconst CHROME_OS = CHROME + ' OS'\nconst CHROME_IOS = CHROME + ' ' + IOS\nconst INTERNET_EXPLORER = 'Internet Explorer'\nconst INTERNET_EXPLORER_MOBILE = INTERNET_EXPLORER + ' ' + MOBILE\nconst OPERA = 'Opera'\nconst OPERA_MINI = OPERA + ' Mini'\nconst EDGE = 'Edge'\nconst MICROSOFT_EDGE = 'Microsoft ' + EDGE\nconst FIREFOX = 'Firefox'\nconst FIREFOX_IOS = FIREFOX + ' ' + IOS\nconst NINTENDO = 'Nintendo'\nconst PLAYSTATION = 'PlayStation'\nconst XBOX = 'Xbox'\nconst ANDROID_MOBILE = ANDROID + ' ' + MOBILE\nconst MOBILE_SAFARI = MOBILE + ' ' + SAFARI\nconst WINDOWS = 'Windows'\nconst WINDOWS_PHONE = WINDOWS + ' Phone'\nconst NOKIA = 'Nokia'\nconst OUYA = 'Ouya'\nconst GENERIC = 'Generic'\nconst GENERIC_MOBILE = GENERIC + ' ' + MOBILE.toLowerCase()\nconst GENERIC_TABLET = GENERIC + ' ' + TABLET.toLowerCase()\nconst KONQUEROR = 'Konqueror'\n\nconst BROWSER_VERSION_REGEX_SUFFIX = '(\\\\d+(\\\\.\\\\d+)?)'\nconst DEFAULT_BROWSER_VERSION_REGEX = new RegExp('Version/' + BROWSER_VERSION_REGEX_SUFFIX)\n\nconst XBOX_REGEX = new RegExp(XBOX, 'i')\nconst PLAYSTATION_REGEX = new RegExp(PLAYSTATION + ' \\\\w+', 'i')\nconst NINTENDO_REGEX = new RegExp(NINTENDO + ' \\\\w+', 'i')\nconst BLACKBERRY_REGEX = new RegExp(BLACKBERRY + '|PlayBook|BB10', 'i')\n\nconst windowsVersionMap: Record = {\n 'NT3.51': 'NT 3.11',\n 'NT4.0': 'NT 4.0',\n '5.0': '2000',\n '5.1': 'XP',\n '5.2': 'XP',\n '6.0': 'Vista',\n '6.1': '7',\n '6.2': '8',\n '6.3': '8.1',\n '6.4': '10',\n '10.0': '10',\n}\n\n/**\n * Safari detection turns out to be complicated. For e.g. https://stackoverflow.com/a/29696509\n * We can be slightly loose because some options have been ruled out (e.g. firefox on iOS)\n * before this check is made\n */\nfunction isSafari(userAgent: string): boolean {\n return includes(userAgent, SAFARI) && !includes(userAgent, CHROME) && !includes(userAgent, ANDROID)\n}\n\nconst safariCheck = (ua: string, vendor?: string) => (vendor && includes(vendor, APPLE)) || isSafari(ua)\n\n/**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include keywords used in later checks.\n */\nexport const detectBrowser = function (user_agent: string, vendor: string | undefined): string {\n vendor = vendor || '' // vendor is undefined for at least IE9\n\n if (includes(user_agent, ' OPR/') && includes(user_agent, 'Mini')) {\n return OPERA_MINI\n } else if (includes(user_agent, ' OPR/')) {\n return OPERA\n } else if (BLACKBERRY_REGEX.test(user_agent)) {\n return BLACKBERRY\n } else if (includes(user_agent, 'IE' + MOBILE) || includes(user_agent, 'WPDesktop')) {\n return INTERNET_EXPLORER_MOBILE\n }\n // https://developer.samsung.com/internet/user-agent-string-format\n else if (includes(user_agent, SAMSUNG_BROWSER)) {\n return SAMSUNG_INTERNET\n } else if (includes(user_agent, EDGE) || includes(user_agent, 'Edg/')) {\n return MICROSOFT_EDGE\n } else if (includes(user_agent, 'FBIOS')) {\n return FACEBOOK + ' ' + MOBILE\n } else if (includes(user_agent, 'UCWEB') || includes(user_agent, 'UCBrowser')) {\n return 'UC Browser'\n } else if (includes(user_agent, 'CriOS')) {\n return CHROME_IOS // why not just Chrome?\n } else if (includes(user_agent, 'CrMo')) {\n return CHROME\n } else if (includes(user_agent, ANDROID) && includes(user_agent, SAFARI)) {\n return ANDROID_MOBILE\n } else if (includes(user_agent, CHROME)) {\n return CHROME\n } else if (includes(user_agent, 'FxiOS')) {\n return FIREFOX_IOS\n } else if (includes(user_agent.toLowerCase(), KONQUEROR.toLowerCase())) {\n return KONQUEROR\n } else if (safariCheck(user_agent, vendor)) {\n return includes(user_agent, MOBILE) ? MOBILE_SAFARI : SAFARI\n } else if (includes(user_agent, FIREFOX)) {\n return FIREFOX\n } else if (includes(user_agent, 'MSIE') || includes(user_agent, 'Trident/')) {\n return INTERNET_EXPLORER\n } else if (includes(user_agent, 'Gecko')) {\n return FIREFOX\n }\n\n return ''\n}\n\nconst versionRegexes: Record = {\n [INTERNET_EXPLORER_MOBILE]: [new RegExp('rv:' + BROWSER_VERSION_REGEX_SUFFIX)],\n [MICROSOFT_EDGE]: [new RegExp(EDGE + '?\\\\/' + BROWSER_VERSION_REGEX_SUFFIX)],\n [CHROME]: [new RegExp('(' + CHROME + '|CrMo)\\\\/' + BROWSER_VERSION_REGEX_SUFFIX)],\n [CHROME_IOS]: [new RegExp('CriOS\\\\/' + BROWSER_VERSION_REGEX_SUFFIX)],\n 'UC Browser': [new RegExp('(UCBrowser|UCWEB)\\\\/' + BROWSER_VERSION_REGEX_SUFFIX)],\n [SAFARI]: [DEFAULT_BROWSER_VERSION_REGEX],\n [MOBILE_SAFARI]: [DEFAULT_BROWSER_VERSION_REGEX],\n [OPERA]: [new RegExp('(' + OPERA + '|OPR)\\\\/' + BROWSER_VERSION_REGEX_SUFFIX)],\n [FIREFOX]: [new RegExp(FIREFOX + '\\\\/' + BROWSER_VERSION_REGEX_SUFFIX)],\n [FIREFOX_IOS]: [new RegExp('FxiOS\\\\/' + BROWSER_VERSION_REGEX_SUFFIX)],\n [KONQUEROR]: [new RegExp('Konqueror[:/]?' + BROWSER_VERSION_REGEX_SUFFIX, 'i')],\n // not every blackberry user agent has the version after the name\n [BLACKBERRY]: [new RegExp(BLACKBERRY + ' ' + BROWSER_VERSION_REGEX_SUFFIX), DEFAULT_BROWSER_VERSION_REGEX],\n [ANDROID_MOBILE]: [new RegExp('android\\\\s' + BROWSER_VERSION_REGEX_SUFFIX, 'i')],\n [SAMSUNG_INTERNET]: [new RegExp(SAMSUNG_BROWSER + '\\\\/' + BROWSER_VERSION_REGEX_SUFFIX)],\n [INTERNET_EXPLORER]: [new RegExp('(rv:|MSIE )' + BROWSER_VERSION_REGEX_SUFFIX)],\n Mozilla: [new RegExp('rv:' + BROWSER_VERSION_REGEX_SUFFIX)],\n}\n\n/**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n *\n * `navigator.vendor` is passed in and used to help with detecting certain browsers\n * NB `navigator.vendor` is deprecated and not present in every browser\n */\nexport const detectBrowserVersion = function (userAgent: string, vendor: string | undefined): number | null {\n const browser = detectBrowser(userAgent, vendor)\n const regexes: RegExp[] | undefined = versionRegexes[browser as keyof typeof versionRegexes]\n if (isUndefined(regexes)) {\n return null\n }\n\n for (let i = 0; i < regexes.length; i++) {\n const regex = regexes[i]\n const matches = userAgent.match(regex)\n if (matches) {\n return parseFloat(matches[matches.length - 2])\n }\n }\n return null\n}\n\n// to avoid repeating regexes or calling them twice, we have an array of matches\n// the first regex that matches uses its matcher function to return the result\nconst osMatchers: [\n RegExp,\n [string, string] | ((match: RegExpMatchArray | null, user_agent: string) => [string, string])\n][] = [\n [\n new RegExp(XBOX + '; ' + XBOX + ' (.*?)[);]', 'i'),\n (match) => {\n return [XBOX, (match && match[1]) || '']\n },\n ],\n [new RegExp(NINTENDO, 'i'), [NINTENDO, '']],\n [new RegExp(PLAYSTATION, 'i'), [PLAYSTATION, '']],\n [BLACKBERRY_REGEX, [BLACKBERRY, '']],\n [\n new RegExp(WINDOWS, 'i'),\n (_, user_agent) => {\n if (/Phone/.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return [WINDOWS_PHONE, '']\n }\n // not all JS versions support negative lookbehind, so we need two checks here\n if (new RegExp(MOBILE).test(user_agent) && !/IEMobile\\b/.test(user_agent)) {\n return [WINDOWS + ' ' + MOBILE, '']\n }\n const match = /Windows NT ([0-9.]+)/i.exec(user_agent)\n if (match && match[1]) {\n const version = match[1]\n let osVersion = windowsVersionMap[version] || ''\n if (/arm/i.test(user_agent)) {\n osVersion = 'RT'\n }\n return [WINDOWS, osVersion]\n }\n return [WINDOWS, '']\n },\n ],\n [\n /((iPhone|iPad|iPod).*?OS (\\d+)_(\\d+)_?(\\d+)?|iPhone)/,\n (match) => {\n if (match && match[3]) {\n const versionParts = [match[3], match[4], match[5] || '0']\n return [IOS, versionParts.join('.')]\n }\n return [IOS, '']\n },\n ],\n [\n /(watch.*\\/(\\d+\\.\\d+\\.\\d+)|watch os,(\\d+\\.\\d+),)/i,\n (match) => {\n // e.g. Watch4,3/5.3.8 (16U680)\n let version = ''\n if (match && match.length >= 3) {\n version = isUndefined(match[2]) ? match[3] : match[2]\n }\n return ['watchOS', version]\n },\n ],\n [\n new RegExp('(' + ANDROID + ' (\\\\d+)\\\\.(\\\\d+)\\\\.?(\\\\d+)?|' + ANDROID + ')', 'i'),\n (match) => {\n if (match && match[2]) {\n const versionParts = [match[2], match[3], match[4] || '0']\n return [ANDROID, versionParts.join('.')]\n }\n return [ANDROID, '']\n },\n ],\n [\n /Mac OS X (\\d+)[_.](\\d+)[_.]?(\\d+)?/i,\n (match) => {\n const result: [string, string] = ['Mac OS X', '']\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n result[1] = versionParts.join('.')\n }\n return result\n },\n ],\n [\n /Mac/i,\n // mop up a few non-standard UAs that should match mac\n ['Mac OS X', ''],\n ],\n [/CrOS/, [CHROME_OS, '']],\n [/Linux|debian/i, ['Linux', '']],\n]\n\nexport const detectOS = function (user_agent: string): [string, string] {\n for (let i = 0; i < osMatchers.length; i++) {\n const [rgex, resultOrFn] = osMatchers[i]\n const match = rgex.exec(user_agent)\n const result = match && (isFunction(resultOrFn) ? resultOrFn(match, user_agent) : resultOrFn)\n if (result) {\n return result\n }\n }\n return ['', '']\n}\n\nexport const detectDevice = function (user_agent: string): string {\n if (NINTENDO_REGEX.test(user_agent)) {\n return NINTENDO\n } else if (PLAYSTATION_REGEX.test(user_agent)) {\n return PLAYSTATION\n } else if (XBOX_REGEX.test(user_agent)) {\n return XBOX\n } else if (new RegExp(OUYA, 'i').test(user_agent)) {\n return OUYA\n } else if (new RegExp('(' + WINDOWS_PHONE + '|WPDesktop)', 'i').test(user_agent)) {\n return WINDOWS_PHONE\n } else if (/iPad/.test(user_agent)) {\n return IPAD\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch'\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone'\n } else if (/(watch)(?: ?os[,/]|\\d,\\d\\/)[\\d.]+/i.test(user_agent)) {\n return APPLE_WATCH\n } else if (BLACKBERRY_REGEX.test(user_agent)) {\n return BLACKBERRY\n } else if (/(kobo)\\s(ereader|touch)/i.test(user_agent)) {\n return 'Kobo'\n } else if (new RegExp(NOKIA, 'i').test(user_agent)) {\n return NOKIA\n } else if (\n // Kindle Fire without Silk / Echo Show\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i.test(user_agent) ||\n // Kindle Fire HD\n /(kf[a-z]+)( bui|\\)).+silk\\//i.test(user_agent)\n ) {\n return 'Kindle Fire'\n } else if (/(Android|ZTE)/i.test(user_agent)) {\n if (\n !new RegExp(MOBILE).test(user_agent) ||\n /(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(user_agent)\n ) {\n if (\n (/pixel[\\daxl ]{1,6}/i.test(user_agent) && !/pixel c/i.test(user_agent)) ||\n /(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(user_agent) ||\n (/lmy47v/i.test(user_agent) && !/QTAQZ3/i.test(user_agent))\n ) {\n return ANDROID\n }\n return ANDROID_TABLET\n } else {\n return ANDROID\n }\n } else if (new RegExp('(pda|' + MOBILE + ')', 'i').test(user_agent)) {\n return GENERIC_MOBILE\n } else if (new RegExp(TABLET, 'i').test(user_agent) && !new RegExp(TABLET + ' pc', 'i').test(user_agent)) {\n return GENERIC_TABLET\n } else {\n return ''\n }\n}\n\nexport const detectDeviceType = function (user_agent: string): string {\n const device = detectDevice(user_agent)\n if (\n device === IPAD ||\n device === ANDROID_TABLET ||\n device === 'Kobo' ||\n device === 'Kindle Fire' ||\n device === GENERIC_TABLET\n ) {\n return TABLET\n } else if (device === NINTENDO || device === XBOX || device === PLAYSTATION || device === OUYA) {\n return 'Console'\n } else if (device === APPLE_WATCH) {\n return 'Wearable'\n } else if (device) {\n return MOBILE\n } else {\n return 'Desktop'\n }\n}\n","import { getQueryParam, convertToURL } from './request-utils'\nimport { isNull } from './type-utils'\nimport { Properties } from '../types'\nimport Config from '../config'\nimport { each, extend, stripEmptyProperties, stripLeadingDollar, timestamp } from './index'\nimport { document, location, userAgent, window } from './globals'\nimport { detectBrowser, detectBrowserVersion, detectDevice, detectDeviceType, detectOS } from './user-agent-utils'\n\nconst URL_REGEX_PREFIX = 'https?://(.*)'\n\n// Should be kept in sync with https://github.com/PostHog/posthog/blob/master/plugin-server/src/utils/db/utils.ts#L60\nexport const CAMPAIGN_PARAMS = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_content',\n 'utm_term',\n 'gclid', // google ads\n 'gad_source', // google ads\n 'gclsrc', // google ads 360\n 'dclid', // google display ads\n 'gbraid', // google ads, web to app\n 'wbraid', // google ads, app to web\n 'fbclid', // facebook\n 'msclkid', // microsoft\n 'twclid', // twitter\n 'li_fat_id', // linkedin\n 'mc_cid', // mailchimp campaign id\n 'igshid', // instagram\n 'ttclid', // tiktok\n 'rdt_cid', // reddit\n]\n\nexport const Info = {\n campaignParams: function (customParams?: string[]): Record {\n if (!document) {\n return {}\n }\n return this._campaignParamsFromUrl(document.URL, customParams)\n },\n\n _campaignParamsFromUrl: function (url: string, customParams?: string[]): Record {\n const campaign_keywords = CAMPAIGN_PARAMS.concat(customParams || [])\n\n const params: Record = {}\n each(campaign_keywords, function (kwkey) {\n const kw = getQueryParam(url, kwkey)\n if (kw) {\n params[kwkey] = kw\n }\n })\n\n return params\n },\n\n _searchEngine: function (referrer: string): string | null {\n if (!referrer) {\n return null\n } else {\n if (referrer.search(URL_REGEX_PREFIX + 'google.([^/?]*)') === 0) {\n return 'google'\n } else if (referrer.search(URL_REGEX_PREFIX + 'bing.com') === 0) {\n return 'bing'\n } else if (referrer.search(URL_REGEX_PREFIX + 'yahoo.com') === 0) {\n return 'yahoo'\n } else if (referrer.search(URL_REGEX_PREFIX + 'duckduckgo.com') === 0) {\n return 'duckduckgo'\n } else {\n return null\n }\n }\n },\n\n _searchInfoFromReferrer: function (referrer: string): Record {\n const search = Info._searchEngine(referrer)\n const param = search != 'yahoo' ? 'q' : 'p'\n const ret: Record = {}\n\n if (!isNull(search)) {\n ret['$search_engine'] = search\n\n const keyword = document ? getQueryParam(document.referrer, param) : ''\n if (keyword.length) {\n ret['ph_keyword'] = keyword\n }\n }\n\n return ret\n },\n\n searchInfo: function (): Record {\n const referrer = document?.referrer\n if (!referrer) {\n return {}\n }\n return this._searchInfoFromReferrer(referrer)\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include keywords used in later checks.\n */\n browser: detectBrowser,\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n *\n * `navigator.vendor` is passed in and used to help with detecting certain browsers\n * NB `navigator.vendor` is deprecated and not present in every browser\n */\n browserVersion: detectBrowserVersion,\n\n browserLanguage: function (): string {\n return (\n navigator.language || // Any modern browser\n (navigator as Record).userLanguage // IE11\n )\n },\n\n os: detectOS,\n\n device: detectDevice,\n\n deviceType: detectDeviceType,\n\n referrer: function (): string {\n return document?.referrer || '$direct'\n },\n\n referringDomain: function (): string {\n if (!document?.referrer) {\n return '$direct'\n }\n return convertToURL(document.referrer)?.host || '$direct'\n },\n\n referrerInfo: function (): Record {\n return {\n $referrer: this.referrer(),\n $referring_domain: this.referringDomain(),\n }\n },\n\n initialPersonInfo: function (): Record {\n // we're being a bit more economical with bytes here because this is stored in the cookie\n return {\n r: this.referrer(),\n u: location?.href,\n }\n },\n\n initialPersonPropsFromInfo: function (info: Record): Record {\n const { r: initial_referrer, u: initial_current_url } = info\n const referring_domain =\n initial_referrer == null\n ? undefined\n : initial_referrer == '$direct'\n ? '$direct'\n : convertToURL(initial_referrer)?.host\n\n const props: Record = {\n $initial_referrer: initial_referrer,\n $initial_referring_domain: referring_domain,\n }\n if (initial_current_url) {\n props['$initial_current_url'] = initial_current_url\n const location = convertToURL(initial_current_url)\n props['$initial_host'] = location?.host\n props['$initial_pathname'] = location?.pathname\n const campaignParams = this._campaignParamsFromUrl(initial_current_url)\n each(campaignParams, function (v, k: string) {\n props['$initial_' + stripLeadingDollar(k)] = v\n })\n }\n if (initial_referrer) {\n const searchInfo = this._searchInfoFromReferrer(initial_referrer)\n each(searchInfo, function (v, k: string) {\n props['$initial_' + stripLeadingDollar(k)] = v\n })\n }\n return props\n },\n\n properties: function (): Properties {\n if (!userAgent) {\n return {}\n }\n const [os_name, os_version] = Info.os(userAgent)\n return extend(\n stripEmptyProperties({\n $os: os_name,\n $os_version: os_version,\n $browser: Info.browser(userAgent, navigator.vendor),\n $device: Info.device(userAgent),\n $device_type: Info.deviceType(userAgent),\n }),\n {\n $current_url: location?.href,\n $host: location?.host,\n $pathname: location?.pathname,\n $raw_user_agent: userAgent.length > 1000 ? userAgent.substring(0, 997) + '...' : userAgent,\n $browser_version: Info.browserVersion(userAgent, navigator.vendor),\n $browser_language: Info.browserLanguage(),\n $screen_height: window?.screen.height,\n $screen_width: window?.screen.width,\n $viewport_height: window?.innerHeight,\n $viewport_width: window?.innerWidth,\n $lib: 'web',\n $lib_version: Config.LIB_VERSION,\n $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),\n $time: timestamp() / 1000, // epoch time in seconds\n }\n )\n },\n\n people_properties: function (): Properties {\n if (!userAgent) {\n return {}\n }\n\n const [os_name, os_version] = Info.os(userAgent)\n return extend(\n stripEmptyProperties({\n $os: os_name,\n $os_version: os_version,\n $browser: Info.browser(userAgent, navigator.vendor),\n }),\n {\n $browser_version: Info.browserVersion(userAgent, navigator.vendor),\n }\n )\n },\n}\n","/* eslint camelcase: \"off\" */\n\nimport { each, extend, include, stripEmptyProperties, stripLeadingDollar } from './utils'\nimport { cookieStore, localPlusCookieStore, localStore, memoryStore, sessionStore } from './storage'\nimport { PersistentStore, PostHogConfig, Properties } from './types'\nimport {\n ENABLED_FEATURE_FLAGS,\n EVENT_TIMERS_KEY,\n INITIAL_CAMPAIGN_PARAMS,\n INITIAL_PERSON_INFO,\n INITIAL_REFERRER_INFO,\n PERSISTENCE_RESERVED_PROPERTIES,\n} from './constants'\n\nimport { isObject, isUndefined } from './utils/type-utils'\nimport { Info } from './utils/event-utils'\nimport { logger } from './utils/logger'\n\nconst CASE_INSENSITIVE_PERSISTENCE_TYPES: readonly Lowercase[] = [\n 'cookie',\n 'localstorage',\n 'localstorage+cookie',\n 'sessionstorage',\n 'memory',\n]\n\nconst parseName = (config: PostHogConfig): string => {\n let token = ''\n if (config['token']) {\n token = config['token'].replace(/\\+/g, 'PL').replace(/\\//g, 'SL').replace(/=/g, 'EQ')\n }\n\n if (config['persistence_name']) {\n return 'ph_' + config['persistence_name']\n } else {\n return 'ph_' + token + '_posthog'\n }\n}\n\n/**\n * PostHog Persistence Object\n * @constructor\n */\nexport class PostHogPersistence {\n private config: PostHogConfig\n props: Properties\n storage: PersistentStore\n campaign_params_saved: boolean\n name: string\n disabled: boolean | undefined\n secure: boolean | undefined\n expire_days: number | undefined\n default_expiry: number | undefined\n cross_subdomain: boolean | undefined\n\n constructor(config: PostHogConfig) {\n this.config = config\n this.props = {}\n this.campaign_params_saved = false\n this.name = parseName(config)\n this.storage = this.buildStorage(config)\n this.load()\n this.update_config(config, config)\n this.save()\n }\n\n private buildStorage(config: PostHogConfig) {\n if (\n CASE_INSENSITIVE_PERSISTENCE_TYPES.indexOf(\n config['persistence'].toLowerCase() as Lowercase\n ) === -1\n ) {\n logger.critical(\n 'Unknown persistence type ' + config['persistence'] + '; falling back to localStorage+cookie'\n )\n config['persistence'] = 'localStorage+cookie'\n }\n\n let store: PersistentStore\n // We handle storage type in a case-insensitive way for backwards compatibility\n const storage_type = config['persistence'].toLowerCase() as Lowercase\n if (storage_type === 'localstorage' && localStore.is_supported()) {\n store = localStore\n } else if (storage_type === 'localstorage+cookie' && localPlusCookieStore.is_supported()) {\n store = localPlusCookieStore\n } else if (storage_type === 'sessionstorage' && sessionStore.is_supported()) {\n store = sessionStore\n } else if (storage_type === 'memory') {\n store = memoryStore\n } else if (storage_type === 'cookie') {\n store = cookieStore\n } else if (localPlusCookieStore.is_supported()) {\n // selected storage type wasn't supported, fallback to 'localstorage+cookie' if possible\n store = localPlusCookieStore\n } else {\n store = cookieStore\n }\n\n return store\n }\n\n properties(): Properties {\n const p: Properties = {}\n // Filter out reserved properties\n each(this.props, function (v, k) {\n if (k === ENABLED_FEATURE_FLAGS && isObject(v)) {\n const keys = Object.keys(v)\n for (let i = 0; i < keys.length; i++) {\n p[`$feature/${keys[i]}`] = v[keys[i]]\n }\n } else if (!include(PERSISTENCE_RESERVED_PROPERTIES, k)) {\n p[k] = v\n }\n })\n return p\n }\n\n load(): void {\n if (this.disabled) {\n return\n }\n\n const entry = this.storage.parse(this.name)\n\n if (entry) {\n this.props = extend({}, entry)\n }\n }\n\n /**\n * NOTE: Saving frequently causes issues with Recordings and Consent Management Platform (CMP) tools which\n * observe cookie changes, and modify their UI, often causing infinite loops.\n * As such callers of this should ideally check that the data has changed beforehand\n */\n save(): void {\n if (this.disabled) {\n return\n }\n this.storage.set(this.name, this.props, this.expire_days, this.cross_subdomain, this.secure)\n }\n\n remove(): void {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false)\n this.storage.remove(this.name, true)\n }\n\n // removes the storage entry and deletes all loaded data\n // forced name for tests\n\n clear(): void {\n this.remove()\n this.props = {}\n }\n\n /**\n * @param {Object} props\n * @param {*=} default_value\n * @param {number=} days\n */\n\n register_once(props: Properties, default_value: any, days?: number): boolean {\n if (isObject(props)) {\n if (isUndefined(default_value)) {\n default_value = 'None'\n }\n this.expire_days = isUndefined(days) ? this.default_expiry : days\n\n let hasChanges = false\n\n each(props, (val, prop) => {\n if (!this.props.hasOwnProperty(prop) || this.props[prop] === default_value) {\n this.props[prop] = val\n hasChanges = true\n }\n })\n\n if (hasChanges) {\n this.save()\n return true\n }\n }\n return false\n }\n\n /**\n * @param {Object} props\n * @param {number=} days\n */\n\n register(props: Properties, days?: number): boolean {\n if (isObject(props)) {\n this.expire_days = isUndefined(days) ? this.default_expiry : days\n\n let hasChanges = false\n\n each(props, (val, prop) => {\n if (props.hasOwnProperty(prop) && this.props[prop] !== val) {\n this.props[prop] = val\n hasChanges = true\n }\n })\n\n if (hasChanges) {\n this.save()\n return true\n }\n }\n return false\n }\n\n unregister(prop: string): void {\n if (prop in this.props) {\n delete this.props[prop]\n this.save()\n }\n }\n\n update_campaign_params(): void {\n if (!this.campaign_params_saved) {\n this.register(Info.campaignParams(this.config.custom_campaign_params))\n this.campaign_params_saved = true\n }\n }\n update_search_keyword(): void {\n this.register(Info.searchInfo())\n }\n\n update_referrer_info(): void {\n this.register_once(Info.referrerInfo(), undefined)\n }\n\n set_initial_person_info(): void {\n if (this.props[INITIAL_CAMPAIGN_PARAMS] || this.props[INITIAL_REFERRER_INFO]) {\n // the user has initial properties stored the previous way, don't save them again\n return\n }\n\n this.register_once(\n {\n [INITIAL_PERSON_INFO]: Info.initialPersonInfo(),\n },\n undefined\n )\n }\n\n get_referrer_info(): Properties {\n return stripEmptyProperties({\n $referrer: this['props']['$referrer'],\n $referring_domain: this['props']['$referring_domain'],\n })\n }\n\n get_initial_props(): Properties {\n const p: Properties = {}\n\n // this section isn't written to anymore, but we should keep reading from it for backwards compatibility\n // for a while\n each([INITIAL_REFERRER_INFO, INITIAL_CAMPAIGN_PARAMS], (key) => {\n const initialReferrerInfo = this.props[key]\n if (initialReferrerInfo) {\n each(initialReferrerInfo, function (v, k) {\n p['$initial_' + stripLeadingDollar(k)] = v\n })\n }\n })\n const initialPersonInfo = this.props[INITIAL_PERSON_INFO]\n if (initialPersonInfo) {\n const initialPersonProps = Info.initialPersonPropsFromInfo(initialPersonInfo)\n extend(p, initialPersonProps)\n }\n\n return p\n }\n\n // safely fills the passed in object with stored properties,\n // does not override any properties defined in both\n // returns the passed in object\n\n safe_merge(props: Properties): Properties {\n each(this.props, function (val, prop) {\n if (!(prop in props)) {\n props[prop] = val\n }\n })\n\n return props\n }\n\n update_config(config: PostHogConfig, oldConfig: PostHogConfig): void {\n this.default_expiry = this.expire_days = config['cookie_expiration']\n this.set_disabled(config['disable_persistence'])\n this.set_cross_subdomain(config['cross_subdomain_cookie'])\n this.set_secure(config['secure_cookie'])\n\n if (config.persistence !== oldConfig.persistence) {\n // If the persistence type has changed, we need to migrate the data.\n const newStore = this.buildStorage(config)\n const props = this.props\n\n // clear the old store\n this.clear()\n this.storage = newStore\n this.props = props\n\n this.save()\n }\n }\n\n set_disabled(disabled: boolean): void {\n this.disabled = disabled\n if (this.disabled) {\n this.remove()\n } else {\n this.save()\n }\n }\n\n set_cross_subdomain(cross_subdomain: boolean): void {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain\n this.remove()\n this.save()\n }\n }\n\n get_cross_subdomain(): boolean {\n return !!this.cross_subdomain\n }\n\n set_secure(secure: boolean): void {\n if (secure !== this.secure) {\n this.secure = secure\n this.remove()\n this.save()\n }\n }\n\n set_event_timer(event_name: string, timestamp: number): void {\n const timers = this.props[EVENT_TIMERS_KEY] || {}\n timers[event_name] = timestamp\n this.props[EVENT_TIMERS_KEY] = timers\n this.save()\n }\n\n remove_event_timer(event_name: string): number {\n const timers = this.props[EVENT_TIMERS_KEY] || {}\n const timestamp = timers[event_name]\n if (!isUndefined(timestamp)) {\n delete this.props[EVENT_TIMERS_KEY][event_name]\n this.save()\n }\n return timestamp\n }\n\n get_property(prop: string): any {\n return this.props[prop]\n }\n\n set_property(prop: string, to: any): void {\n this.props[prop] = to\n this.save()\n }\n}\n","import type {\n blockClass,\n eventWithTime,\n hooksParam,\n KeepIframeSrcFn,\n listenerHandler,\n maskTextClass,\n pluginEvent,\n RecordPlugin,\n SamplingStrategy,\n} from '@rrweb/types'\nimport type { DataURLOptions, MaskInputFn, MaskInputOptions, MaskTextFn, Mirror, SlimDOMOptions } from 'rrweb-snapshot'\n\nimport { isObject } from '../../utils/type-utils'\nimport { SnapshotBuffer } from './sessionrecording'\n\n// taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value#circular_references\nfunction circularReferenceReplacer() {\n const ancestors: any[] = []\n return function (_key: string, value: any) {\n if (isObject(value)) {\n // `this` is the object that value is contained in,\n // i.e., its direct parent.\n // @ts-expect-error - TS was unhappy with `this` on the next line but the code is copied in from MDN\n while (ancestors.length > 0 && ancestors.at(-1) !== this) {\n ancestors.pop()\n }\n if (ancestors.includes(value)) {\n return '[Circular]'\n }\n ancestors.push(value)\n return value\n } else {\n return value\n }\n }\n}\n\nexport function estimateSize(sizeable: unknown): number {\n return JSON.stringify(sizeable, circularReferenceReplacer()).length\n}\n\nexport const replacementImageURI =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNOCAwSDE2TDAgMTZWOEw4IDBaIiBmaWxsPSIjMkQyRDJEIi8+CjxwYXRoIGQ9Ik0xNiA4VjE2SDhMMTYgOFoiIGZpbGw9IiMyRDJEMkQiLz4KPC9zdmc+Cg=='\n\nexport const FULL_SNAPSHOT_EVENT_TYPE = 2\nexport const META_EVENT_TYPE = 4\nexport const INCREMENTAL_SNAPSHOT_EVENT_TYPE = 3\nexport const PLUGIN_EVENT_TYPE = 6\nexport const MUTATION_SOURCE_TYPE = 0\n\nexport const MAX_MESSAGE_SIZE = 5000000 // ~5mb\n\nexport type rrwebRecord = {\n (options: recordOptions): listenerHandler\n addCustomEvent: (tag: string, payload: any) => void\n takeFullSnapshot: () => void\n mirror: Mirror\n}\n\nexport declare type recordOptions = {\n emit?: (e: T, isCheckout?: boolean) => void\n checkoutEveryNth?: number\n checkoutEveryNms?: number\n blockClass?: blockClass\n blockSelector?: string\n ignoreClass?: string\n maskTextClass?: maskTextClass\n maskTextSelector?: string\n maskAllInputs?: boolean\n maskInputOptions?: MaskInputOptions\n maskInputFn?: MaskInputFn\n maskTextFn?: MaskTextFn\n slimDOMOptions?: SlimDOMOptions | 'all' | true\n ignoreCSSAttributes?: Set\n inlineStylesheet?: boolean\n hooks?: hooksParam\n // packFn?: PackFn\n sampling?: SamplingStrategy\n dataURLOptions?: DataURLOptions\n recordCanvas?: boolean\n recordCrossOriginIframes?: boolean\n recordAfter?: 'DOMContentLoaded' | 'load'\n userTriggeredOnInput?: boolean\n collectFonts?: boolean\n inlineImages?: boolean\n plugins?: RecordPlugin[]\n mousemoveWait?: number\n keepIframeSrcFn?: KeepIframeSrcFn\n // errorHandler?: ErrorHandler\n}\n\n/*\n * Check whether a data payload is nearing 5mb. If it is, it checks the data for\n * data URIs (the likely culprit for large payloads). If it finds data URIs, it either replaces\n * it with a generic image (if it's an image) or removes it.\n * @data {object} the rr-web data object\n * @returns {object} the rr-web data object with data uris filtered out\n */\nexport function ensureMaxMessageSize(data: eventWithTime): { event: eventWithTime; size: number } {\n let stringifiedData = JSON.stringify(data)\n // Note: with compression, this limit may be able to be increased\n // but we're assuming most of the size is from a data uri which\n // is unlikely to be compressed further\n\n if (stringifiedData.length > MAX_MESSAGE_SIZE) {\n // Regex that matches the pattern for a dataURI with the shape 'data:{mime type};{encoding},{data}'. It:\n // 1) Checks if the pattern starts with 'data:' (potentially, not at the start of the string)\n // 2) Extracts the mime type of the data uri in the first group\n // 3) Determines when the data URI ends.Depending on if it's used in the src tag or css, it can end with a ) or \"\n const dataURIRegex = /data:([\\w/\\-.]+);(\\w+),([^)\"]*)/gim\n const matches = stringifiedData.matchAll(dataURIRegex)\n for (const match of matches) {\n if (match[1].toLocaleLowerCase().slice(0, 6) === 'image/') {\n stringifiedData = stringifiedData.replace(match[0], replacementImageURI)\n } else {\n stringifiedData = stringifiedData.replace(match[0], '')\n }\n }\n }\n return { event: JSON.parse(stringifiedData), size: stringifiedData.length }\n}\n\nexport const CONSOLE_LOG_PLUGIN_NAME = 'rrweb/console@1' // The name of the rr-web plugin that emits console logs\n\n// Console logs can be really large. This function truncates large logs\n// It's a simple function that just truncates long strings.\n// TODO: Ideally this function would have better handling of objects + lists,\n// so they could still be rendered in a pretty way after truncation.\nexport function truncateLargeConsoleLogs(_event: eventWithTime) {\n const event = _event as pluginEvent<{ payload: string[] }>\n\n const MAX_STRING_SIZE = 2000 // Maximum number of characters allowed in a string\n const MAX_STRINGS_PER_LOG = 10 // A log can consist of multiple strings (e.g. consol.log('string1', 'string2'))\n\n if (\n event &&\n isObject(event) &&\n event.type === PLUGIN_EVENT_TYPE &&\n isObject(event.data) &&\n event.data.plugin === CONSOLE_LOG_PLUGIN_NAME\n ) {\n // Note: event.data.payload.payload comes from rr-web, and is an array of strings\n if (event.data.payload.payload.length > MAX_STRINGS_PER_LOG) {\n event.data.payload.payload = event.data.payload.payload.slice(0, MAX_STRINGS_PER_LOG)\n event.data.payload.payload.push('...[truncated]')\n }\n const updatedPayload = []\n for (let i = 0; i < event.data.payload.payload.length; i++) {\n if (\n event.data.payload.payload[i] && // Value can be null\n event.data.payload.payload[i].length > MAX_STRING_SIZE\n ) {\n updatedPayload.push(event.data.payload.payload[i].slice(0, MAX_STRING_SIZE) + '...[truncated]')\n } else {\n updatedPayload.push(event.data.payload.payload[i])\n }\n }\n event.data.payload.payload = updatedPayload\n // Return original type\n return _event\n }\n return _event\n}\n\nexport const SEVEN_MEGABYTES = 1024 * 1024 * 7 * 0.9 // ~7mb (with some wiggle room)\n\n// recursively splits large buffers into smaller ones\n// uses a pretty high size limit to avoid splitting too much\nexport function splitBuffer(buffer: SnapshotBuffer, sizeLimit: number = SEVEN_MEGABYTES): SnapshotBuffer[] {\n if (buffer.size >= sizeLimit && buffer.data.length > 1) {\n const half = Math.floor(buffer.data.length / 2)\n const firstHalf = buffer.data.slice(0, half)\n const secondHalf = buffer.data.slice(half)\n return [\n splitBuffer({\n size: estimateSize(firstHalf),\n data: firstHalf,\n sessionId: buffer.sessionId,\n windowId: buffer.windowId,\n }),\n splitBuffer({\n size: estimateSize(secondHalf),\n data: secondHalf,\n sessionId: buffer.sessionId,\n windowId: buffer.windowId,\n }),\n ].flatMap((x) => x)\n } else {\n return [buffer]\n }\n}\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\nexport {\n CanvasContext,\n EventType,\n IncrementalSource,\n MediaInteractions,\n MouseInteractions,\n PointerTypes,\n ReplayerEvents\n};\n//# sourceMappingURL=types.js.map\n","import { AutocaptureConfig, Properties } from './types'\nimport { each, entries, includes, trim } from './utils'\n\nimport { isArray, isNullish, isString, isUndefined } from './utils/type-utils'\nimport { logger } from './utils/logger'\nimport { window } from './utils/globals'\n\nexport function splitClassString(s: string): string[] {\n return s ? trim(s).split(/\\s+/) : []\n}\n\nfunction checkForURLMatches(urlsList: (string | RegExp)[]): boolean {\n const url = window?.location.href\n return !!(url && urlsList && urlsList.some((regex) => url.match(regex)))\n}\n\n/*\n * Get the className of an element, accounting for edge cases where element.className is an object\n *\n * Because this is a string it can contain unexpected characters\n * So, this method safely splits the className and returns that array.\n */\nexport function getClassNames(el: Element): string[] {\n let className = ''\n switch (typeof el.className) {\n case 'string':\n className = el.className\n break\n // TODO: when is this ever used?\n case 'object': // handle cases where className might be SVGAnimatedString or some other type\n className =\n ('baseVal' in el.className ? (el.className as any).baseVal : null) || el.getAttribute('class') || ''\n break\n default:\n className = ''\n }\n\n return splitClassString(className)\n}\n\nexport function makeSafeText(s: string | null | undefined): string | null {\n if (isNullish(s)) {\n return null\n }\n\n return (\n trim(s)\n // scrub potentially sensitive values\n .split(/(\\s+)/)\n .filter((s) => shouldCaptureValue(s))\n .join('')\n // normalize whitespace\n .replace(/[\\r\\n]/g, ' ')\n .replace(/[ ]+/g, ' ')\n // truncate\n .substring(0, 255)\n )\n}\n\n/*\n * Get the direct text content of an element, protecting against sensitive data collection.\n * Concats textContent of each of the element's text node children; this avoids potential\n * collection of sensitive data that could happen if we used element.textContent and the\n * element had sensitive child elements, since element.textContent includes child content.\n * Scrubs values that look like they could be sensitive (i.e. cc or ssn number).\n * @param {Element} el - element to get the text of\n * @returns {string} the element's direct text content\n */\nexport function getSafeText(el: Element): string {\n let elText = ''\n\n if (shouldCaptureElement(el) && !isSensitiveElement(el) && el.childNodes && el.childNodes.length) {\n each(el.childNodes, function (child) {\n if (isTextNode(child) && child.textContent) {\n elText += makeSafeText(child.textContent) ?? ''\n }\n })\n }\n\n return trim(elText)\n}\n\n/*\n * Check whether an element has nodeType Node.ELEMENT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\nexport function isElementNode(el: Node | Element | undefined | null): el is Element {\n return !!el && el.nodeType === 1 // Node.ELEMENT_NODE - use integer constant for browser portability\n}\n\n/*\n * Check whether an element is of a given tag type.\n * Due to potential reference discrepancies (such as the webcomponents.js polyfill),\n * we want to match tagNames instead of specific references because something like\n * element === document.body won't always work because element might not be a native\n * element.\n * @param {Element} el - element to check\n * @param {string} tag - tag name (e.g., \"div\")\n * @returns {boolean} whether el is of the given tag type\n */\nexport function isTag(el: Element | undefined | null, tag: string): el is HTMLElement {\n return !!el && !!el.tagName && el.tagName.toLowerCase() === tag.toLowerCase()\n}\n\n/*\n * Check whether an element has nodeType Node.TEXT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\nexport function isTextNode(el: Element | undefined | null): el is HTMLElement {\n return !!el && el.nodeType === 3 // Node.TEXT_NODE - use integer constant for browser portability\n}\n\n/*\n * Check whether an element has nodeType Node.DOCUMENT_FRAGMENT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\nexport function isDocumentFragment(el: Element | ParentNode | undefined | null): el is DocumentFragment {\n return !!el && el.nodeType === 11 // Node.DOCUMENT_FRAGMENT_NODE - use integer constant for browser portability\n}\n\nexport const autocaptureCompatibleElements = ['a', 'button', 'form', 'input', 'select', 'textarea', 'label']\n\n/*\n if there is no config, then all elements are allowed\n if there is a config, and there is an allow list, then only elements in the allow list are allowed\n assumes that some other code is checking this element's parents\n */\nfunction checkIfElementTreePassesElementAllowList(\n elements: Element[],\n autocaptureConfig: AutocaptureConfig | undefined\n): boolean {\n const allowlist = autocaptureConfig?.element_allowlist\n if (isUndefined(allowlist)) {\n // everything is allowed, when there is no allow list\n return true\n }\n\n // check each element in the tree\n // if any of the elements are in the allow list, then the tree is allowed\n for (const el of elements) {\n if (allowlist.some((elementType) => el.tagName.toLowerCase() === elementType)) {\n return true\n }\n }\n\n // otherwise there is an allow list and this element tree didn't match it\n return false\n}\n\n/*\n if there is no config, then all elements are allowed\n if there is a config, and there is an allow list, then\n only elements that match the css selector in the allow list are allowed\n assumes that some other code is checking this element's parents\n */\nfunction checkIfElementTreePassesCSSSelectorAllowList(\n elements: Element[],\n autocaptureConfig: AutocaptureConfig | undefined\n): boolean {\n const allowlist = autocaptureConfig?.css_selector_allowlist\n if (isUndefined(allowlist)) {\n // everything is allowed, when there is no allow list\n return true\n }\n\n // check each element in the tree\n // if any of the elements are in the allow list, then the tree is allowed\n for (const el of elements) {\n if (allowlist.some((selector) => el.matches(selector))) {\n return true\n }\n }\n\n // otherwise there is an allow list and this element tree didn't match it\n return false\n}\n\nexport function getParentElement(curEl: Element): Element | false {\n const parentNode = curEl.parentNode\n if (!parentNode || !isElementNode(parentNode)) return false\n return parentNode\n}\n\n/*\n * Check whether a DOM event should be \"captured\" or if it may contain sentitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @param {Event} event - event to check\n * @param {Object} autocaptureConfig - autocapture config\n * @param {boolean} captureOnAnyElement - whether to capture on any element, clipboard autocapture doesn't restrict to \"clickable\" elements\n * @param {string[]} allowedEventTypes - event types to capture, normally just 'click', but some autocapture types react to different events, some elements have fixed events (e.g., form has \"submit\")\n * @returns {boolean} whether the event should be captured\n */\nexport function shouldCaptureDomEvent(\n el: Element,\n event: Event,\n autocaptureConfig: AutocaptureConfig | undefined = undefined,\n captureOnAnyElement?: boolean,\n allowedEventTypes?: string[]\n): boolean {\n if (!window || !el || isTag(el, 'html') || !isElementNode(el)) {\n return false\n }\n\n if (autocaptureConfig?.url_allowlist) {\n // if the current URL is not in the allow list, don't capture\n if (!checkForURLMatches(autocaptureConfig.url_allowlist)) {\n return false\n }\n }\n\n if (autocaptureConfig?.url_ignorelist) {\n // if the current URL is in the ignore list, don't capture\n if (checkForURLMatches(autocaptureConfig.url_ignorelist)) {\n return false\n }\n }\n\n if (autocaptureConfig?.dom_event_allowlist) {\n const allowlist = autocaptureConfig.dom_event_allowlist\n if (allowlist && !allowlist.some((eventType) => event.type === eventType)) {\n return false\n }\n }\n\n let parentIsUsefulElement = false\n const targetElementList: Element[] = [el]\n let parentNode: Element | boolean = true\n let curEl: Element = el\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n // If element is a shadow root, we skip it\n if (isDocumentFragment(curEl.parentNode)) {\n targetElementList.push((curEl.parentNode as any).host)\n curEl = (curEl.parentNode as any).host\n continue\n }\n parentNode = getParentElement(curEl)\n if (!parentNode) break\n if (captureOnAnyElement || autocaptureCompatibleElements.indexOf(parentNode.tagName.toLowerCase()) > -1) {\n parentIsUsefulElement = true\n } else {\n const compStyles = window.getComputedStyle(parentNode)\n if (compStyles && compStyles.getPropertyValue('cursor') === 'pointer') {\n parentIsUsefulElement = true\n }\n }\n\n targetElementList.push(parentNode)\n curEl = parentNode\n }\n\n if (!checkIfElementTreePassesElementAllowList(targetElementList, autocaptureConfig)) {\n return false\n }\n\n if (!checkIfElementTreePassesCSSSelectorAllowList(targetElementList, autocaptureConfig)) {\n return false\n }\n\n const compStyles = window.getComputedStyle(el)\n if (compStyles && compStyles.getPropertyValue('cursor') === 'pointer' && event.type === 'click') {\n return true\n }\n\n const tag = el.tagName.toLowerCase()\n switch (tag) {\n case 'html':\n return false\n case 'form':\n return (allowedEventTypes || ['submit']).indexOf(event.type) >= 0\n case 'input':\n case 'select':\n case 'textarea':\n return (allowedEventTypes || ['change', 'click']).indexOf(event.type) >= 0\n default:\n if (parentIsUsefulElement) return (allowedEventTypes || ['click']).indexOf(event.type) >= 0\n return (\n (allowedEventTypes || ['click']).indexOf(event.type) >= 0 &&\n (autocaptureCompatibleElements.indexOf(tag) > -1 || el.getAttribute('contenteditable') === 'true')\n )\n }\n}\n\n/*\n * Check whether a DOM element should be \"captured\" or if it may contain sentitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @returns {boolean} whether the element should be captured\n */\nexport function shouldCaptureElement(el: Element): boolean {\n for (let curEl = el; curEl.parentNode && !isTag(curEl, 'body'); curEl = curEl.parentNode as Element) {\n const classes = getClassNames(curEl)\n if (includes(classes, 'ph-sensitive') || includes(classes, 'ph-no-capture')) {\n return false\n }\n }\n\n if (includes(getClassNames(el), 'ph-include')) {\n return true\n }\n\n // don't include hidden or password fields\n const type = (el as HTMLInputElement).type || ''\n if (isString(type)) {\n // it's possible for el.type to be a DOM element if el is a form with a child input[name=\"type\"]\n switch (type.toLowerCase()) {\n case 'hidden':\n return false\n case 'password':\n return false\n }\n }\n\n // filter out data from fields that look like sensitive fields\n const name = (el as HTMLInputElement).name || el.id || ''\n // See https://github.com/posthog/posthog-js/issues/165\n // Under specific circumstances a bug caused .replace to be called on a DOM element\n // instead of a string, removing the element from the page. Ensure this issue is mitigated.\n if (isString(name)) {\n // it's possible for el.name or el.id to be a DOM element if el is a form with a child input[name=\"name\"]\n const sensitiveNameRegex =\n /^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i\n if (sensitiveNameRegex.test(name.replace(/[^a-zA-Z0-9]/g, ''))) {\n return false\n }\n }\n\n return true\n}\n\n/*\n * Check whether a DOM element is 'sensitive' and we should only capture limited data\n * @param {Element} el - element to check\n * @returns {boolean} whether the element should be captured\n */\nexport function isSensitiveElement(el: Element): boolean {\n // don't send data from inputs or similar elements since there will always be\n // a risk of clientside javascript placing sensitive data in attributes\n const allowedInputTypes = ['button', 'checkbox', 'submit', 'reset']\n if (\n (isTag(el, 'input') && !allowedInputTypes.includes((el as HTMLInputElement).type)) ||\n isTag(el, 'select') ||\n isTag(el, 'textarea') ||\n el.getAttribute('contenteditable') === 'true'\n ) {\n return true\n }\n return false\n}\n\n// Define the core pattern for matching credit card numbers\nconst coreCCPattern = `(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})`\n// Create the Anchored version of the regex by adding '^' at the start and '$' at the end\nconst anchoredCCRegex = new RegExp(`^(?:${coreCCPattern})$`)\n// The Unanchored version is essentially the core pattern, usable as is for partial matches\nconst unanchoredCCRegex = new RegExp(coreCCPattern)\n\n// Define the core pattern for matching SSNs with optional dashes\nconst coreSSNPattern = `\\\\d{3}-?\\\\d{2}-?\\\\d{4}`\n// Create the Anchored version of the regex by adding '^' at the start and '$' at the end\nconst anchoredSSNRegex = new RegExp(`^(${coreSSNPattern})$`)\n// The Unanchored version is essentially the core pattern itself, usable for partial matches\nconst unanchoredSSNRegex = new RegExp(`(${coreSSNPattern})`)\n\n/*\n * Check whether a string value should be \"captured\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {string} value - string value to check\n * @param {boolean} anchorRegexes - whether to anchor the regexes to the start and end of the string\n * @returns {boolean} whether the element should be captured\n */\nexport function shouldCaptureValue(value: string, anchorRegexes = true): boolean {\n if (isNullish(value)) {\n return false\n }\n\n if (isString(value)) {\n value = trim(value)\n\n // check to see if input value looks like a credit card number\n // see: https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch04s20.html\n const ccRegex = anchorRegexes ? anchoredCCRegex : unanchoredCCRegex\n if (ccRegex.test((value || '').replace(/[- ]/g, ''))) {\n return false\n }\n\n // check to see if input value looks like a social security number\n const ssnRegex = anchorRegexes ? anchoredSSNRegex : unanchoredSSNRegex\n if (ssnRegex.test(value)) {\n return false\n }\n }\n\n return true\n}\n\n/*\n * Check whether an attribute name is an Angular style attr (either _ngcontent or _nghost)\n * These update on each build and lead to noise in the element chain\n * More details on the attributes here: https://angular.io/guide/view-encapsulation\n * @param {string} attributeName - string value to check\n * @returns {boolean} whether the element is an angular tag\n */\nexport function isAngularStyleAttr(attributeName: string): boolean {\n if (isString(attributeName)) {\n return attributeName.substring(0, 10) === '_ngcontent' || attributeName.substring(0, 7) === '_nghost'\n }\n return false\n}\n\n/*\n * Iterate through children of a target element looking for span tags\n * and return the text content of the span tags, separated by spaces,\n * along with the direct text content of the target element\n * @param {Element} target - element to check\n * @returns {string} text content of the target element and its child span tags\n */\nexport function getDirectAndNestedSpanText(target: Element): string {\n let text = getSafeText(target)\n text = `${text} ${getNestedSpanText(target)}`.trim()\n return shouldCaptureValue(text) ? text : ''\n}\n\n/*\n * Iterate through children of a target element looking for span tags\n * and return the text content of the span tags, separated by spaces\n * @param {Element} target - element to check\n * @returns {string} text content of span tags\n */\nexport function getNestedSpanText(target: Element): string {\n let text = ''\n if (target && target.childNodes && target.childNodes.length) {\n each(target.childNodes, function (child) {\n if (child && child.tagName?.toLowerCase() === 'span') {\n try {\n const spanText = getSafeText(child)\n text = `${text} ${spanText}`.trim()\n\n if (child.childNodes && child.childNodes.length) {\n text = `${text} ${getNestedSpanText(child)}`.trim()\n }\n } catch (e) {\n logger.error(e)\n }\n }\n })\n }\n return text\n}\n\n/*\nBack in the day storing events in Postgres we use Elements for autocapture events.\nNow we're using elements_chain. We used to do this parsing/processing during ingestion.\nThis code is just copied over from ingestion, but we should optimize it\nto create elements_chain string directly.\n*/\nexport function getElementsChainString(elements: Properties[]): string {\n return elementsToString(extractElements(elements))\n}\n\n// This interface is called 'Element' in plugin-scaffold https://github.com/PostHog/plugin-scaffold/blob/b07d3b879796ecc7e22deb71bf627694ba05386b/src/types.ts#L200\n// However 'Element' is a DOM Element when run in the browser, so we have to rename it\ninterface PHElement {\n text?: string\n tag_name?: string\n href?: string\n attr_id?: string\n attr_class?: string[]\n nth_child?: number\n nth_of_type?: number\n attributes?: Record\n event_id?: number\n order?: number\n group_id?: number\n}\n\nfunction escapeQuotes(input: string): string {\n return input.replace(/\"|\\\\\"/g, '\\\\\"')\n}\n\nfunction elementsToString(elements: PHElement[]): string {\n const ret = elements.map((element) => {\n let el_string = ''\n if (element.tag_name) {\n el_string += element.tag_name\n }\n if (element.attr_class) {\n element.attr_class.sort()\n for (const single_class of element.attr_class) {\n el_string += `.${single_class.replace(/\"/g, '')}`\n }\n }\n const attributes: Record = {\n ...(element.text ? { text: element.text } : {}),\n 'nth-child': element.nth_child ?? 0,\n 'nth-of-type': element.nth_of_type ?? 0,\n ...(element.href ? { href: element.href } : {}),\n ...(element.attr_id ? { attr_id: element.attr_id } : {}),\n ...element.attributes,\n }\n const sortedAttributes: Record = {}\n entries(attributes)\n .sort(([a], [b]) => a.localeCompare(b))\n .forEach(\n ([key, value]) => (sortedAttributes[escapeQuotes(key.toString())] = escapeQuotes(value.toString()))\n )\n el_string += ':'\n el_string += entries(attributes)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join('')\n return el_string\n })\n return ret.join(';')\n}\n\nfunction extractElements(elements: Properties[]): PHElement[] {\n return elements.map((el) => {\n const response = {\n text: el['$el_text']?.slice(0, 400),\n tag_name: el['tag_name'],\n href: el['attr__href']?.slice(0, 2048),\n attr_class: extractAttrClass(el),\n attr_id: el['attr__id'],\n nth_child: el['nth_child'],\n nth_of_type: el['nth_of_type'],\n attributes: {} as { [id: string]: any },\n }\n\n entries(el)\n .filter(([key]) => key.indexOf('attr__') === 0)\n .forEach(([key, value]) => (response.attributes[key] = value))\n return response\n })\n}\n\nfunction extractAttrClass(el: Properties): PHElement['attr_class'] {\n const attr_class = el['attr__class']\n if (!attr_class) {\n return undefined\n } else if (isArray(attr_class)) {\n return attr_class\n } else {\n return splitClassString(attr_class)\n }\n}\n","import { CapturedNetworkRequest, NetworkRecordOptions, PostHogConfig } from '../../types'\nimport { isFunction, isNullish, isString, isUndefined } from '../../utils/type-utils'\nimport { convertToURL } from '../../utils/request-utils'\nimport { logger } from '../../utils/logger'\nimport { shouldCaptureValue } from '../../autocapture-utils'\nimport { each } from '../../utils'\n\nconst LOGGER_PREFIX = '[SessionRecording]'\nconst REDACTED = 'redacted'\n\nexport const defaultNetworkOptions: Required = {\n initiatorTypes: [\n 'audio',\n 'beacon',\n 'body',\n 'css',\n 'early-hint',\n 'embed',\n 'fetch',\n 'frame',\n 'iframe',\n 'icon',\n 'image',\n 'img',\n 'input',\n 'link',\n 'navigation',\n 'object',\n 'ping',\n 'script',\n 'track',\n 'video',\n 'xmlhttprequest',\n ],\n maskRequestFn: (data: CapturedNetworkRequest) => data,\n recordHeaders: false,\n recordBody: false,\n recordInitialRequests: false,\n recordPerformance: false,\n performanceEntryTypeToObserve: [\n // 'event', // This is too noisy as it covers all browser events\n 'first-input',\n // 'mark', // Mark is used too liberally. We would need to filter for specific marks\n // 'measure', // Measure is used too liberally. We would need to filter for specific measures\n 'navigation',\n 'paint',\n 'resource',\n ],\n payloadSizeLimitBytes: 1000000,\n payloadHostDenyList: ['.lr-ingest.io', '.ingest.sentry.io'],\n}\n\nconst HEADER_DENY_LIST = [\n 'authorization',\n 'x-forwarded-for',\n 'authorization',\n 'cookie',\n 'set-cookie',\n 'x-api-key',\n 'x-real-ip',\n 'remote-addr',\n 'forwarded',\n 'proxy-authorization',\n 'x-csrf-token',\n 'x-csrftoken',\n 'x-xsrf-token',\n]\n\nconst PAYLOAD_CONTENT_DENY_LIST = [\n 'password',\n 'secret',\n 'passwd',\n 'api_key',\n 'apikey',\n 'auth',\n 'credentials',\n 'mysql_pwd',\n 'privatekey',\n 'private_key',\n 'token',\n]\n\n// we always remove headers on the deny list because we never want to capture this sensitive data\nconst removeAuthorizationHeader = (data: CapturedNetworkRequest): CapturedNetworkRequest => {\n const headers = data.requestHeaders\n if (!isNullish(headers)) {\n each(Object.keys(headers ?? {}), (header) => {\n if (HEADER_DENY_LIST.includes(header.toLowerCase())) {\n headers[header] = REDACTED\n }\n })\n }\n return data\n}\n\nconst POSTHOG_PATHS_TO_IGNORE = ['/s/', '/e/', '/i/']\n// want to ignore posthog paths when capturing requests, or we can get trapped in a loop\n// because calls to PostHog would be reported using a call to PostHog which would be reported....\nconst ignorePostHogPaths = (data: CapturedNetworkRequest): CapturedNetworkRequest | undefined => {\n const url = convertToURL(data.name)\n if (url && url.pathname && POSTHOG_PATHS_TO_IGNORE.some((path) => url.pathname.indexOf(path) === 0)) {\n return undefined\n }\n return data\n}\n\nfunction estimateBytes(payload: string): number {\n return new Blob([payload]).size\n}\n\nfunction enforcePayloadSizeLimit(\n payload: string | null | undefined,\n headers: Record | undefined,\n limit: number,\n description: string\n): string | null | undefined {\n if (isNullish(payload)) {\n return payload\n }\n\n let requestContentLength: string | number = headers?.['content-length'] || estimateBytes(payload)\n if (isString(requestContentLength)) {\n requestContentLength = parseInt(requestContentLength)\n }\n\n if (requestContentLength > limit) {\n return LOGGER_PREFIX + ` ${description} body too large to record (${requestContentLength} bytes)`\n }\n\n return payload\n}\n\n// people can have arbitrarily large payloads on their site, but we don't want to ingest them\nconst limitPayloadSize = (\n options: NetworkRecordOptions\n): ((data: CapturedNetworkRequest | undefined) => CapturedNetworkRequest | undefined) => {\n // the smallest of 1MB or the specified limit if there is one\n const limit = Math.min(1000000, options.payloadSizeLimitBytes ?? 1000000)\n\n return (data) => {\n if (data?.requestBody) {\n data.requestBody = enforcePayloadSizeLimit(data.requestBody, data.requestHeaders, limit, 'Request')\n }\n\n if (data?.responseBody) {\n data.responseBody = enforcePayloadSizeLimit(data.responseBody, data.responseHeaders, limit, 'Response')\n }\n\n return data\n }\n}\n\nfunction scrubPayload(payload: string | null | undefined, label: 'Request' | 'Response'): string | null | undefined {\n if (isNullish(payload)) {\n return payload\n }\n let scrubbed = payload\n\n if (!shouldCaptureValue(scrubbed, false)) {\n scrubbed = LOGGER_PREFIX + ' ' + label + ' body ' + REDACTED\n }\n each(PAYLOAD_CONTENT_DENY_LIST, (text) => {\n if (scrubbed?.length && scrubbed?.indexOf(text) !== -1) {\n scrubbed = LOGGER_PREFIX + ' ' + label + ' body ' + REDACTED + ' as might contain: ' + text\n }\n })\n\n return scrubbed\n}\n\nfunction scrubPayloads(capturedRequest: CapturedNetworkRequest | undefined): CapturedNetworkRequest | undefined {\n if (isUndefined(capturedRequest)) {\n return undefined\n }\n\n capturedRequest.requestBody = scrubPayload(capturedRequest.requestBody, 'Request')\n capturedRequest.responseBody = scrubPayload(capturedRequest.responseBody, 'Response')\n\n return capturedRequest\n}\n\n/**\n * whether a maskRequestFn is provided or not,\n * we ensure that we remove the denied header from requests\n * we _never_ want to record that header by accident\n * if someone complains then we'll add an opt-in to let them override it\n */\nexport const buildNetworkRequestOptions = (\n instanceConfig: PostHogConfig,\n remoteNetworkOptions: Pick<\n NetworkRecordOptions,\n 'recordHeaders' | 'recordBody' | 'recordPerformance' | 'payloadHostDenyList'\n >\n): NetworkRecordOptions => {\n const config: NetworkRecordOptions = {\n payloadSizeLimitBytes: defaultNetworkOptions.payloadSizeLimitBytes,\n performanceEntryTypeToObserve: [...defaultNetworkOptions.performanceEntryTypeToObserve],\n payloadHostDenyList: [\n ...(remoteNetworkOptions.payloadHostDenyList || []),\n ...defaultNetworkOptions.payloadHostDenyList,\n ],\n }\n // client can always disable despite remote options\n const canRecordHeaders =\n instanceConfig.session_recording.recordHeaders === false ? false : remoteNetworkOptions.recordHeaders\n const canRecordBody =\n instanceConfig.session_recording.recordBody === false ? false : remoteNetworkOptions.recordBody\n const canRecordPerformance =\n instanceConfig.capture_performance === false ? false : remoteNetworkOptions.recordPerformance\n\n const payloadLimiter = limitPayloadSize(config)\n\n const enforcedCleaningFn: NetworkRecordOptions['maskRequestFn'] = (d: CapturedNetworkRequest) =>\n payloadLimiter(ignorePostHogPaths(removeAuthorizationHeader(d)))\n\n const hasDeprecatedMaskFunction = isFunction(instanceConfig.session_recording.maskNetworkRequestFn)\n\n if (hasDeprecatedMaskFunction && isFunction(instanceConfig.session_recording.maskCapturedNetworkRequestFn)) {\n logger.warn(\n 'Both `maskNetworkRequestFn` and `maskCapturedNetworkRequestFn` are defined. `maskNetworkRequestFn` will be ignored.'\n )\n }\n\n if (hasDeprecatedMaskFunction) {\n instanceConfig.session_recording.maskCapturedNetworkRequestFn = (data: CapturedNetworkRequest) => {\n const cleanedURL = instanceConfig.session_recording.maskNetworkRequestFn!({ url: data.name })\n return {\n ...data,\n name: cleanedURL?.url,\n } as CapturedNetworkRequest\n }\n }\n\n config.maskRequestFn = isFunction(instanceConfig.session_recording.maskCapturedNetworkRequestFn)\n ? (data) => {\n const cleanedRequest = enforcedCleaningFn(data)\n return cleanedRequest\n ? instanceConfig.session_recording.maskCapturedNetworkRequestFn?.(cleanedRequest) ?? undefined\n : undefined\n }\n : (data) => scrubPayloads(enforcedCleaningFn(data))\n\n return {\n ...defaultNetworkOptions,\n ...config,\n recordHeaders: canRecordHeaders,\n recordBody: canRecordBody,\n recordPerformance: canRecordPerformance,\n recordInitialRequests: canRecordPerformance,\n }\n}\n","import { registerEvent, trySafe } from '../utils'\nimport { PostHog } from '../posthog-core'\nimport { ToolbarParams } from '../types'\nimport { _getHashParam } from '../utils/request-utils'\nimport { logger } from '../utils/logger'\nimport { window, document, assignableWindow } from '../utils/globals'\nimport { TOOLBAR_ID } from '../constants'\n\n// TRICKY: Many web frameworks will modify the route on load, potentially before posthog is initialized.\n// To get ahead of this we grab it as soon as the posthog-js is parsed\nconst STATE_FROM_WINDOW = window?.location\n ? _getHashParam(window.location.hash, '__posthog') || _getHashParam(location.hash, 'state')\n : null\n\nconst LOCALSTORAGE_KEY = '_postHogToolbarParams'\n\nenum ToolbarState {\n UNINITIALIZED = 0,\n LOADING = 1,\n LOADED = 2,\n}\n\nexport class Toolbar {\n instance: PostHog\n\n constructor(instance: PostHog) {\n this.instance = instance\n }\n\n // NOTE: We store the state of the toolbar in the global scope to avoid multiple instances of the SDK loading the toolbar\n private setToolbarState(state: ToolbarState) {\n assignableWindow['ph_toolbar_state'] = state\n }\n\n private getToolbarState(): ToolbarState {\n return assignableWindow['ph_toolbar_state'] ?? ToolbarState.UNINITIALIZED\n }\n\n /**\n * To load the toolbar, we need an access token and other state. That state comes from one of three places:\n * 1. In the URL hash params\n * 2. From session storage under the key `toolbarParams` if the toolbar was initialized on a previous page\n */\n maybeLoadToolbar(\n location: Location | undefined = undefined,\n localStorage: Storage | undefined = undefined,\n history: History | undefined = undefined\n ): boolean {\n if (!window || !document) {\n return false\n }\n location = location ?? window.location\n history = history ?? window.history\n\n try {\n // Before running the code we check if we can access localStorage, if not we opt-out\n if (!localStorage) {\n try {\n window.localStorage.setItem('test', 'test')\n window.localStorage.removeItem('test')\n } catch (error) {\n return false\n }\n\n // If localStorage was undefined, and localStorage is supported we set the default value\n localStorage = window?.localStorage\n }\n\n /**\n * Info about the state\n * The state is a json object\n * 1. (Legacy) The state can be `state={}` as a urlencoded object of info. In this case\n * 2. The state should now be found in `__posthog={}` and can be base64 encoded or urlencoded.\n * 3. Base64 encoding is preferred and will gradually be rolled out everywhere\n */\n\n const stateHash =\n STATE_FROM_WINDOW || _getHashParam(location.hash, '__posthog') || _getHashParam(location.hash, 'state')\n\n let toolbarParams: ToolbarParams\n const state = stateHash\n ? trySafe(() => JSON.parse(atob(decodeURIComponent(stateHash)))) ||\n trySafe(() => JSON.parse(decodeURIComponent(stateHash)))\n : null\n\n const parseFromUrl = state && state['action'] === 'ph_authorize'\n\n if (parseFromUrl) {\n // happens if they are initializing the toolbar using an old snippet\n toolbarParams = state\n toolbarParams.source = 'url'\n\n if (toolbarParams && Object.keys(toolbarParams).length > 0) {\n if (state['desiredHash']) {\n // hash that was in the url before the redirect\n location.hash = state['desiredHash']\n } else if (history) {\n // second param is unused see https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n history.replaceState(history.state, '', location.pathname + location.search) // completely remove hash\n } else {\n location.hash = '' // clear hash (but leaves # unfortunately)\n }\n }\n } else {\n // get credentials from localStorage from a previous initialization\n\n toolbarParams = JSON.parse(localStorage.getItem(LOCALSTORAGE_KEY) || '{}')\n toolbarParams.source = 'localstorage'\n\n // delete \"add-action\" or other intent from toolbarParams, otherwise we'll have the same intent\n // every time we open the page (e.g. you just visiting your own site an hour later)\n delete toolbarParams.userIntent\n }\n\n if (toolbarParams['token'] && this.instance.config.token === toolbarParams['token']) {\n this.loadToolbar(toolbarParams)\n return true\n } else {\n return false\n }\n } catch (e) {\n return false\n }\n }\n\n private _callLoadToolbar(params: ToolbarParams) {\n ;(assignableWindow['ph_load_toolbar'] || assignableWindow['ph_load_editor'])(params, this.instance)\n }\n\n loadToolbar(params?: ToolbarParams): boolean {\n const toolbarRunning = !!document?.getElementById(TOOLBAR_ID)\n\n if (!window || toolbarRunning) {\n // The toolbar will clear the localStorage key when it's done with it. If it is present that indicates the toolbar is already open and running\n return false\n }\n\n const disableToolbarMetrics =\n this.instance.requestRouter.region === 'custom' && this.instance.config.advanced_disable_toolbar_metrics\n\n const toolbarParams = {\n token: this.instance.config.token,\n ...params,\n apiURL: this.instance.requestRouter.endpointFor('ui'),\n ...(disableToolbarMetrics ? { instrument: false } : {}),\n }\n window.localStorage.setItem(\n LOCALSTORAGE_KEY,\n JSON.stringify({\n ...toolbarParams,\n source: undefined,\n })\n )\n\n if (this.getToolbarState() === ToolbarState.LOADED) {\n this._callLoadToolbar(toolbarParams)\n } else if (this.getToolbarState() === ToolbarState.UNINITIALIZED) {\n // only load the toolbar once, even if there are multiple instances of PostHogLib\n this.setToolbarState(ToolbarState.LOADING)\n\n // toolbar.js is served from the PostHog CDN, this has a TTL of 24 hours.\n // the toolbar asset includes a rotating \"token\" that is valid for 5 minutes.\n const fiveMinutesInMillis = 5 * 60 * 1000\n // this ensures that we bust the cache periodically\n const timestampToNearestFiveMinutes = Math.floor(Date.now() / fiveMinutesInMillis) * fiveMinutesInMillis\n\n this.instance.requestRouter.loadScript(`/static/toolbar.js?t=${timestampToNearestFiveMinutes}`, (err) => {\n if (err) {\n logger.error('Failed to load toolbar', err)\n this.setToolbarState(ToolbarState.UNINITIALIZED)\n return\n }\n this.setToolbarState(ToolbarState.LOADED)\n this._callLoadToolbar(toolbarParams)\n })\n\n // Turbolinks doesn't fire an onload event but does replace the entire body, including the toolbar.\n // Thus, we ensure the toolbar is only loaded inside the body, and then reloaded on turbolinks:load.\n registerEvent(window, 'turbolinks:load', () => {\n this.setToolbarState(ToolbarState.UNINITIALIZED)\n this.loadToolbar(toolbarParams)\n })\n }\n\n return true\n }\n\n /** @deprecated Use \"loadToolbar\" instead. */\n _loadEditor(params: ToolbarParams): boolean {\n return this.loadToolbar(params)\n }\n\n /** @deprecated Use \"maybeLoadToolbar\" instead. */\n maybeLoadEditor(\n location: Location | undefined = undefined,\n localStorage: Storage | undefined = undefined,\n history: History | undefined = undefined\n ): boolean {\n return this.maybeLoadToolbar(location, localStorage, history)\n }\n}\n","import type { eventWithTime, mutationCallbackParam } from '@rrweb/types'\nimport { INCREMENTAL_SNAPSHOT_EVENT_TYPE, MUTATION_SOURCE_TYPE, rrwebRecord } from './sessionrecording-utils'\n\nexport class MutationRateLimiter {\n private bucketSize = 100\n private refillRate = 10\n private mutationBuckets: Record = {}\n private loggedTracker: Record = {}\n\n constructor(\n private readonly rrweb: rrwebRecord,\n private readonly options: {\n bucketSize?: number\n refillRate?: number\n onBlockedNode?: (id: number, node: Node | null) => void\n } = {}\n ) {\n this.refillRate = this.options.refillRate ?? this.refillRate\n this.bucketSize = this.options.bucketSize ?? this.bucketSize\n setInterval(() => {\n this.refillBuckets()\n }, 1000)\n }\n\n private refillBuckets = () => {\n Object.keys(this.mutationBuckets).forEach((key) => {\n this.mutationBuckets[key] = this.mutationBuckets[key] + this.refillRate\n\n if (this.mutationBuckets[key] >= this.bucketSize) {\n delete this.mutationBuckets[key]\n }\n })\n }\n\n private getNodeOrRelevantParent = (id: number): [number, Node | null] => {\n // For some nodes we know they are part of a larger tree such as an SVG.\n // For those we want to block the entire node, not just the specific attribute\n\n const node = this.rrweb.mirror.getNode(id)\n\n // Check if the node is an Element and then find the closest parent that is an SVG\n if (node?.nodeName !== 'svg' && node instanceof Element) {\n const closestSVG = node.closest('svg')\n\n if (closestSVG) {\n return [this.rrweb.mirror.getId(closestSVG), closestSVG]\n }\n }\n\n return [id, node]\n }\n\n private numberOfChanges = (data: Partial) => {\n return (\n (data.removes?.length ?? 0) +\n (data.attributes?.length ?? 0) +\n (data.texts?.length ?? 0) +\n (data.adds?.length ?? 0)\n )\n }\n\n public throttleMutations = (event: eventWithTime) => {\n if (event.type !== INCREMENTAL_SNAPSHOT_EVENT_TYPE || event.data.source !== MUTATION_SOURCE_TYPE) {\n return event\n }\n\n const data = event.data as Partial\n const initialMutationCount = this.numberOfChanges(data)\n\n if (data.attributes) {\n // Most problematic mutations come from attrs where the style or minor properties are changed rapidly\n data.attributes = data.attributes.filter((attr) => {\n const [nodeId, node] = this.getNodeOrRelevantParent(attr.id)\n\n if (this.mutationBuckets[nodeId] === 0) {\n return false\n }\n\n this.mutationBuckets[nodeId] = this.mutationBuckets[nodeId] ?? this.bucketSize\n this.mutationBuckets[nodeId] = Math.max(this.mutationBuckets[nodeId] - 1, 0)\n\n if (this.mutationBuckets[nodeId] === 0) {\n if (!this.loggedTracker[nodeId]) {\n this.loggedTracker[nodeId] = true\n this.options.onBlockedNode?.(nodeId, node)\n }\n }\n\n return attr\n })\n }\n\n // Check if every part of the mutation is empty in which case there is nothing to do\n const mutationCount = this.numberOfChanges(data)\n\n if (mutationCount === 0 && initialMutationCount !== mutationCount) {\n // If we have modified the mutation count and the remaining count is 0, then we don't need the event.\n return\n }\n return event\n }\n}\n","import {\n CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE,\n SESSION_RECORDING_CANVAS_RECORDING,\n SESSION_RECORDING_ENABLED_SERVER_SIDE,\n SESSION_RECORDING_IS_SAMPLED,\n SESSION_RECORDING_MINIMUM_DURATION,\n SESSION_RECORDING_NETWORK_PAYLOAD_CAPTURE,\n SESSION_RECORDING_SAMPLE_RATE,\n} from '../../constants'\nimport {\n estimateSize,\n FULL_SNAPSHOT_EVENT_TYPE,\n INCREMENTAL_SNAPSHOT_EVENT_TYPE,\n META_EVENT_TYPE,\n recordOptions,\n rrwebRecord,\n splitBuffer,\n truncateLargeConsoleLogs,\n} from './sessionrecording-utils'\nimport { PostHog } from '../../posthog-core'\nimport { DecideResponse, FlagVariant, NetworkRecordOptions, NetworkRequest, Properties } from '../../types'\nimport { EventType, type eventWithTime, IncrementalSource, type listenerHandler, RecordPlugin } from '@rrweb/types'\nimport Config from '../../config'\nimport { timestamp } from '../../utils'\n\nimport {\n isBoolean,\n isFunction,\n isNull,\n isNullish,\n isNumber,\n isObject,\n isString,\n isUndefined,\n} from '../../utils/type-utils'\nimport { logger } from '../../utils/logger'\nimport { assignableWindow, document, window } from '../../utils/globals'\nimport { buildNetworkRequestOptions } from './config'\nimport { isLocalhost } from '../../utils/request-utils'\nimport { MutationRateLimiter } from './mutation-rate-limiter'\n\nconst BASE_ENDPOINT = '/s/'\n\nconst FIVE_MINUTES = 1000 * 60 * 5\nconst TWO_SECONDS = 2000\nexport const RECORDING_IDLE_ACTIVITY_TIMEOUT_MS = FIVE_MINUTES\nexport const RECORDING_MAX_EVENT_SIZE = 1024 * 1024 * 0.9 // ~1mb (with some wiggle room)\nexport const RECORDING_BUFFER_TIMEOUT = 2000 // 2 seconds\nexport const SESSION_RECORDING_BATCH_KEY = 'recordings'\n\n// NOTE: Importing this type is problematic as we can't safely bundle it to a TS definition so, instead we redefine.\n// import type { record } from 'rrweb2/typings'\n// import type { recordOptions } from 'rrweb/typings/types'\n\nconst ACTIVE_SOURCES = [\n IncrementalSource.MouseMove,\n IncrementalSource.MouseInteraction,\n IncrementalSource.Scroll,\n IncrementalSource.ViewportResize,\n IncrementalSource.Input,\n IncrementalSource.TouchMove,\n IncrementalSource.MediaInteraction,\n IncrementalSource.Drag,\n]\n\n/**\n * Session recording starts in buffering mode while waiting for decide response\n * Once the response is received it might be disabled, active or sampled\n * When sampled that means a sample rate is set and the last time the session id was rotated\n * the sample rate determined this session should be sent to the server.\n */\ntype SessionRecordingStatus = 'disabled' | 'sampled' | 'active' | 'buffering'\n\nexport interface SnapshotBuffer {\n size: number\n data: any[]\n sessionId: string\n windowId: string\n}\n\ninterface QueuedRRWebEvent {\n rrwebMethod: () => void\n attempt: number\n // the timestamp this was first put into this queue\n enqueuedAt: number\n}\n\nconst newQueuedEvent = (rrwebMethod: () => void): QueuedRRWebEvent => ({\n rrwebMethod,\n enqueuedAt: Date.now(),\n attempt: 1,\n})\n\nconst LOGGER_PREFIX = '[SessionRecording]'\n\nexport class SessionRecording {\n private _endpoint: string\n private flushBufferTimer?: any\n\n // we have a buffer - that contains PostHog snapshot events ready to be sent to the server\n private buffer: SnapshotBuffer\n // and a queue - that contains rrweb events that we want to send to rrweb, but rrweb wasn't able to accept them yet\n private queuedRRWebEvents: QueuedRRWebEvent[] = []\n\n private mutationRateLimiter?: MutationRateLimiter\n private _captureStarted: boolean\n private stopRrweb: listenerHandler | undefined\n private receivedDecide: boolean\n private isIdle = false\n\n private _linkedFlagSeen: boolean = false\n private _lastActivityTimestamp: number = Date.now()\n private windowId: string\n private sessionId: string\n private _linkedFlag: string | FlagVariant | null = null\n\n private _fullSnapshotTimer?: ReturnType\n\n // if pageview capture is disabled\n // then we can manually track href changes\n private _lastHref?: string\n\n // Util to help developers working on this feature manually override\n _forceAllowLocalhostNetworkCapture = false\n\n private get rrwebRecord(): rrwebRecord | undefined {\n return assignableWindow?.rrweb?.record\n }\n\n public get started(): boolean {\n // TODO could we use status instead of _captureStarted?\n return this._captureStarted\n }\n\n private get sessionManager() {\n if (!this.instance.sessionManager) {\n throw new Error(LOGGER_PREFIX + ' must be started with a valid sessionManager.')\n }\n\n return this.instance.sessionManager\n }\n\n private get fullSnapshotIntervalMillis(): number {\n return this.instance.config.session_recording?.full_snapshot_interval_millis || FIVE_MINUTES\n }\n\n private get isSampled(): boolean | null {\n const currentValue = this.instance.get_property(SESSION_RECORDING_IS_SAMPLED)\n return isBoolean(currentValue) ? currentValue : null\n }\n\n private get sessionDuration(): number | null {\n const mostRecentSnapshot = this.buffer?.data[this.buffer?.data.length - 1]\n const { sessionStartTimestamp } = this.sessionManager.checkAndGetSessionAndWindowId(true)\n return mostRecentSnapshot ? mostRecentSnapshot.timestamp - sessionStartTimestamp : null\n }\n\n private get isRecordingEnabled() {\n const enabled_server_side = !!this.instance.get_property(SESSION_RECORDING_ENABLED_SERVER_SIDE)\n const enabled_client_side = !this.instance.config.disable_session_recording\n return window && enabled_server_side && enabled_client_side\n }\n\n private get isConsoleLogCaptureEnabled() {\n const enabled_server_side = !!this.instance.get_property(CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE)\n const enabled_client_side = this.instance.config.enable_recording_console_log\n return enabled_client_side ?? enabled_server_side\n }\n\n private get canvasRecording(): { enabled: boolean; fps: number; quality: number } | undefined {\n const canvasRecording_server_side = this.instance.get_property(SESSION_RECORDING_CANVAS_RECORDING)\n return canvasRecording_server_side && canvasRecording_server_side.fps && canvasRecording_server_side.quality\n ? {\n enabled: canvasRecording_server_side.enabled,\n fps: canvasRecording_server_side.fps,\n quality: canvasRecording_server_side.quality,\n }\n : undefined\n }\n\n // network payload capture config has three parts\n // each can be configured server side or client side\n private get networkPayloadCapture():\n | Pick\n | undefined {\n const networkPayloadCapture_server_side = this.instance.get_property(SESSION_RECORDING_NETWORK_PAYLOAD_CAPTURE)\n const networkPayloadCapture_client_side = {\n recordHeaders: this.instance.config.session_recording?.recordHeaders,\n recordBody: this.instance.config.session_recording?.recordBody,\n }\n const headersEnabled =\n networkPayloadCapture_client_side?.recordHeaders || networkPayloadCapture_server_side?.recordHeaders\n const bodyEnabled =\n networkPayloadCapture_client_side?.recordBody || networkPayloadCapture_server_side?.recordBody\n const clientConfigForPerformanceCapture = isObject(this.instance.config.capture_performance)\n ? this.instance.config.capture_performance.network_timing\n : this.instance.config.capture_performance\n const networkTimingEnabled = !!(isBoolean(clientConfigForPerformanceCapture)\n ? clientConfigForPerformanceCapture\n : networkPayloadCapture_server_side?.capturePerformance)\n\n return headersEnabled || bodyEnabled || networkTimingEnabled\n ? { recordHeaders: headersEnabled, recordBody: bodyEnabled, recordPerformance: networkTimingEnabled }\n : undefined\n }\n\n private get sampleRate(): number | null {\n const rate = this.instance.get_property(SESSION_RECORDING_SAMPLE_RATE)\n return isNumber(rate) ? rate : null\n }\n\n private get minimumDuration(): number | null {\n const duration = this.instance.get_property(SESSION_RECORDING_MINIMUM_DURATION)\n return isNumber(duration) ? duration : null\n }\n\n /**\n * defaults to buffering mode until a decide response is received\n * once a decide response is received status can be disabled, active or sampled\n */\n private get status(): SessionRecordingStatus {\n if (!this.receivedDecide) {\n return 'buffering'\n }\n\n if (!this.isRecordingEnabled) {\n return 'disabled'\n }\n\n if (!isNullish(this._linkedFlag) && !this._linkedFlagSeen) {\n return 'buffering'\n }\n\n if (isBoolean(this.isSampled)) {\n return this.isSampled ? 'sampled' : 'disabled'\n } else {\n return 'active'\n }\n }\n\n constructor(private readonly instance: PostHog) {\n this._captureStarted = false\n this._endpoint = BASE_ENDPOINT\n this.stopRrweb = undefined\n this.receivedDecide = false\n\n window?.addEventListener('beforeunload', () => {\n this._flushBuffer()\n })\n\n window?.addEventListener('offline', () => {\n this._tryAddCustomEvent('browser offline', {})\n })\n\n window?.addEventListener('online', () => {\n this._tryAddCustomEvent('browser online', {})\n })\n\n window?.addEventListener('visibilitychange', () => {\n if (document?.visibilityState) {\n const label = 'window ' + document.visibilityState\n this._tryAddCustomEvent(label, {})\n }\n })\n\n if (!this.instance.sessionManager) {\n logger.error(LOGGER_PREFIX + ' started without valid sessionManager')\n throw new Error(LOGGER_PREFIX + ' started without valid sessionManager. This is a bug.')\n }\n\n // we know there's a sessionManager, so don't need to start without a session id\n const { sessionId, windowId } = this.sessionManager.checkAndGetSessionAndWindowId()\n this.sessionId = sessionId\n this.windowId = windowId\n\n this.buffer = this.clearBuffer()\n\n // on reload there might be an already sampled session that should be continued before decide response,\n // so we call this here _and_ in the decide response\n this._setupSampling()\n }\n\n startIfEnabledOrStop() {\n if (this.isRecordingEnabled) {\n this._startCapture()\n logger.info(LOGGER_PREFIX + ' started')\n } else {\n this.stopRecording()\n this.clearBuffer()\n }\n }\n\n stopRecording() {\n if (this._captureStarted && this.stopRrweb) {\n this.stopRrweb()\n this.stopRrweb = undefined\n this._captureStarted = false\n logger.info(LOGGER_PREFIX + ' stopped')\n }\n }\n\n private makeSamplingDecision(sessionId: string): void {\n const sessionIdChanged = this.sessionId !== sessionId\n\n // capture the current sample rate,\n // because it is re-used multiple times\n // and the bundler won't minimise any of the references\n const currentSampleRate = this.sampleRate\n\n if (!isNumber(currentSampleRate)) {\n this.instance.persistence?.register({\n [SESSION_RECORDING_IS_SAMPLED]: null,\n })\n return\n }\n\n const storedIsSampled = this.isSampled\n\n /**\n * if we get this far then we should make a sampling decision.\n * When the session id changes or there is no stored sampling decision for this session id\n * then we should make a new decision.\n *\n * Otherwise, we should use the stored decision.\n */\n let shouldSample: boolean\n const makeDecision = sessionIdChanged || !isBoolean(storedIsSampled)\n if (makeDecision) {\n const randomNumber = Math.random()\n shouldSample = randomNumber < currentSampleRate\n } else {\n shouldSample = storedIsSampled\n }\n\n if (!shouldSample && makeDecision) {\n logger.warn(\n LOGGER_PREFIX +\n ` Sample rate (${currentSampleRate}) has determined that this sessionId (${sessionId}) will not be sent to the server.`\n )\n }\n this._tryAddCustomEvent('samplingDecisionMade', {\n sampleRate: currentSampleRate,\n })\n\n this.instance.persistence?.register({\n [SESSION_RECORDING_IS_SAMPLED]: shouldSample,\n })\n }\n\n afterDecideResponse(response: DecideResponse) {\n this._persistDecideResponse(response)\n\n this._linkedFlag = response.sessionRecording?.linkedFlag || null\n\n if (response.sessionRecording?.endpoint) {\n this._endpoint = response.sessionRecording?.endpoint\n }\n\n this._setupSampling()\n\n if (!isNullish(this._linkedFlag)) {\n const linkedFlag = isString(this._linkedFlag) ? this._linkedFlag : this._linkedFlag.flag\n const linkedVariant = isString(this._linkedFlag) ? null : this._linkedFlag.variant\n this.instance.onFeatureFlags((_flags, variants) => {\n const flagIsPresent = isObject(variants) && linkedFlag in variants\n const linkedFlagMatches = linkedVariant ? variants[linkedFlag] === linkedVariant : flagIsPresent\n if (linkedFlagMatches) {\n const payload = {\n linkedFlag,\n linkedVariant,\n }\n const tag = 'linked flag matched'\n logger.info(LOGGER_PREFIX + ' ' + tag, payload)\n this._tryAddCustomEvent(tag, payload)\n }\n this._linkedFlagSeen = linkedFlagMatches\n })\n }\n\n this.receivedDecide = true\n this.startIfEnabledOrStop()\n }\n\n private _samplingSessionListener: (() => void) | null = null\n\n /**\n * This might be called more than once so needs to be idempotent\n */\n private _setupSampling() {\n if (isNumber(this.sampleRate) && isNull(this._samplingSessionListener)) {\n this._samplingSessionListener = this.sessionManager.onSessionId((sessionId) => {\n this.makeSamplingDecision(sessionId)\n })\n }\n }\n\n private _persistDecideResponse(response: DecideResponse): void {\n if (this.instance.persistence) {\n const persistence = this.instance.persistence\n\n const persistResponse = () => {\n const receivedSampleRate = response.sessionRecording?.sampleRate\n\n const parsedSampleRate = isNullish(receivedSampleRate) ? null : parseFloat(receivedSampleRate)\n const receivedMinimumDuration = response.sessionRecording?.minimumDurationMilliseconds\n\n persistence.register({\n [SESSION_RECORDING_ENABLED_SERVER_SIDE]: !!response['sessionRecording'],\n [CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE]: response.sessionRecording?.consoleLogRecordingEnabled,\n [SESSION_RECORDING_NETWORK_PAYLOAD_CAPTURE]: {\n capturePerformance: response.capturePerformance,\n ...response.sessionRecording?.networkPayloadCapture,\n },\n [SESSION_RECORDING_CANVAS_RECORDING]: {\n enabled: response.sessionRecording?.recordCanvas,\n fps: response.sessionRecording?.canvasFps,\n quality: response.sessionRecording?.canvasQuality,\n },\n [SESSION_RECORDING_SAMPLE_RATE]: parsedSampleRate,\n [SESSION_RECORDING_MINIMUM_DURATION]: isUndefined(receivedMinimumDuration)\n ? null\n : receivedMinimumDuration,\n })\n }\n\n persistResponse()\n this.sessionManager.onSessionId(persistResponse)\n }\n }\n\n log(message: string, level: 'log' | 'warn' | 'error' = 'log') {\n this.instance.sessionRecording?.onRRwebEmit({\n type: 6,\n data: {\n plugin: 'rrweb/console@1',\n payload: {\n level,\n trace: [],\n // Even though it is a string we stringify it as that's what rrweb expects\n payload: [JSON.stringify(message)],\n },\n },\n timestamp: timestamp(),\n })\n }\n\n private _startCapture() {\n if (isUndefined(Object.assign)) {\n // According to the rrweb docs, rrweb is not supported on IE11 and below:\n // \"rrweb does not support IE11 and below because it uses the MutationObserver API which was supported by these browsers.\"\n // https://github.com/rrweb-io/rrweb/blob/master/guide.md#compatibility-note\n //\n // However, MutationObserver does exist on IE11, it just doesn't work well and does not detect all changes.\n // Instead, when we load \"recorder.js\", the first JS error is about \"Object.assign\" being undefined.\n // Thus instead of MutationObserver, we look for this function and block recording if it's undefined.\n return\n }\n\n // We do not switch recorder versions midway through a recording.\n // do not start if explicitly disabled or if the user has opted out\n if (\n this._captureStarted ||\n this.instance.config.disable_session_recording ||\n this.instance.consent.isOptedOut()\n ) {\n return\n }\n\n this._captureStarted = true\n // We want to ensure the sessionManager is reset if necessary on load of the recorder\n this.sessionManager.checkAndGetSessionAndWindowId()\n\n // If recorder.js is already loaded (if array.full.js snippet is used or posthog-js/dist/recorder is\n // imported), don't load script. Otherwise, remotely import recorder.js from cdn since it hasn't been loaded.\n if (!this.rrwebRecord) {\n this.instance.requestRouter.loadScript(`/static/recorder.js?v=${Config.LIB_VERSION}`, (err) => {\n if (err) {\n return logger.error(LOGGER_PREFIX + ` could not load recorder.js`, err)\n }\n\n this._onScriptLoaded()\n })\n } else {\n this._onScriptLoaded()\n }\n }\n\n private isInteractiveEvent(event: eventWithTime) {\n return (\n event.type === INCREMENTAL_SNAPSHOT_EVENT_TYPE &&\n ACTIVE_SOURCES.indexOf(event.data?.source as IncrementalSource) !== -1\n )\n }\n\n private _updateWindowAndSessionIds(event: eventWithTime) {\n // Some recording events are triggered by non-user events (e.g. \"X minutes ago\" text updating on the screen).\n // We don't want to extend the session or trigger a new session in these cases. These events are designated by event\n // type -> incremental update, and source -> mutation.\n\n const isUserInteraction = this.isInteractiveEvent(event)\n\n if (!isUserInteraction && !this.isIdle) {\n // We check if the lastActivityTimestamp is old enough to go idle\n if (event.timestamp - this._lastActivityTimestamp > RECORDING_IDLE_ACTIVITY_TIMEOUT_MS) {\n this.isIdle = true\n // don't take full snapshots while idle\n clearTimeout(this._fullSnapshotTimer)\n // proactively flush the buffer in case the session is idle for a long time\n this._flushBuffer()\n }\n }\n\n let returningFromIdle = false\n if (isUserInteraction) {\n this._lastActivityTimestamp = event.timestamp\n if (this.isIdle) {\n // Remove the idle state\n this.isIdle = false\n this._tryAddCustomEvent('sessionNoLongerIdle', {\n reason: 'user activity',\n type: event.type,\n })\n returningFromIdle = true\n }\n }\n\n if (this.isIdle) {\n return\n }\n\n // We only want to extend the session if it is an interactive event.\n const { windowId, sessionId } = this.sessionManager.checkAndGetSessionAndWindowId(\n !isUserInteraction,\n event.timestamp\n )\n\n const sessionIdChanged = this.sessionId !== sessionId\n const windowIdChanged = this.windowId !== windowId\n\n this.windowId = windowId\n this.sessionId = sessionId\n\n if (\n returningFromIdle ||\n ([FULL_SNAPSHOT_EVENT_TYPE, META_EVENT_TYPE].indexOf(event.type) === -1 &&\n (windowIdChanged || sessionIdChanged || isUndefined(this._fullSnapshotTimer)))\n ) {\n this._tryTakeFullSnapshot()\n }\n }\n\n private _tryRRWebMethod(queuedRRWebEvent: QueuedRRWebEvent): boolean {\n try {\n queuedRRWebEvent.rrwebMethod()\n return true\n } catch (e) {\n // Sometimes a race can occur where the recorder is not fully started yet\n if (this.queuedRRWebEvents.length < 10) {\n this.queuedRRWebEvents.push({\n enqueuedAt: queuedRRWebEvent.enqueuedAt || Date.now(),\n attempt: queuedRRWebEvent.attempt++,\n rrwebMethod: queuedRRWebEvent.rrwebMethod,\n })\n } else {\n logger.warn(LOGGER_PREFIX + ' could not emit queued rrweb event.', e, queuedRRWebEvent)\n }\n\n return false\n }\n }\n\n private _tryAddCustomEvent(tag: string, payload: any): boolean {\n return this._tryRRWebMethod(newQueuedEvent(() => this.rrwebRecord!.addCustomEvent(tag, payload)))\n }\n\n private _tryTakeFullSnapshot(): boolean {\n return this._tryRRWebMethod(newQueuedEvent(() => this.rrwebRecord!.takeFullSnapshot()))\n }\n\n private _onScriptLoaded() {\n // rrweb config info: https://github.com/rrweb-io/rrweb/blob/7d5d0033258d6c29599fb08412202d9a2c7b9413/src/record/index.ts#L28\n const sessionRecordingOptions: recordOptions = {\n // select set of rrweb config options we expose to our users\n // see https://github.com/rrweb-io/rrweb/blob/master/guide.md\n blockClass: 'ph-no-capture',\n blockSelector: undefined,\n ignoreClass: 'ph-ignore-input',\n maskTextClass: 'ph-mask',\n maskTextSelector: undefined,\n maskTextFn: undefined,\n maskAllInputs: true,\n maskInputOptions: {},\n maskInputFn: undefined,\n slimDOMOptions: {},\n collectFonts: false,\n inlineStylesheet: true,\n recordCrossOriginIframes: false,\n }\n\n // only allows user to set our allow-listed options\n const userSessionRecordingOptions = this.instance.config.session_recording\n for (const [key, value] of Object.entries(userSessionRecordingOptions || {})) {\n if (key in sessionRecordingOptions) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n sessionRecordingOptions[key] = value\n }\n }\n\n if (this.canvasRecording && this.canvasRecording.enabled) {\n sessionRecordingOptions.recordCanvas = true\n sessionRecordingOptions.sampling = { canvas: this.canvasRecording.fps }\n sessionRecordingOptions.dataURLOptions = { type: 'image/webp', quality: this.canvasRecording.quality }\n }\n\n if (!this.rrwebRecord) {\n logger.error(\n LOGGER_PREFIX +\n 'onScriptLoaded was called but rrwebRecord is not available. This indicates something has gone wrong.'\n )\n return\n }\n\n this.mutationRateLimiter =\n this.mutationRateLimiter ??\n new MutationRateLimiter(this.rrwebRecord, {\n onBlockedNode: (id, node) => {\n const message = `Too many mutations on node '${id}'. Rate limiting. This could be due to SVG animations or something similar`\n logger.info(message, {\n node: node,\n })\n\n this.log(LOGGER_PREFIX + ' ' + message, 'warn')\n },\n })\n\n const activePlugins = this._gatherRRWebPlugins()\n this.stopRrweb = this.rrwebRecord({\n emit: (event) => {\n this.onRRwebEmit(event)\n },\n plugins: activePlugins,\n ...sessionRecordingOptions,\n })\n\n // :TRICKY: rrweb does not capture navigation within SPA-s, so hook into our $pageview events to get access to all events.\n // Dropping the initial event is fine (it's always captured by rrweb).\n this.instance._addCaptureHook((eventName) => {\n // If anything could go wrong here it has the potential to block the main loop,\n // so we catch all errors.\n try {\n if (eventName === '$pageview') {\n const href = window ? this._maskUrl(window.location.href) : ''\n if (!href) {\n return\n }\n this._tryAddCustomEvent('$pageview', { href })\n }\n } catch (e) {\n logger.error('Could not add $pageview to rrweb session', e)\n }\n })\n\n // We reset the last activity timestamp, resetting the idle timer\n this._lastActivityTimestamp = Date.now()\n this.isIdle = false\n\n this._tryAddCustomEvent('$session_options', {\n sessionRecordingOptions,\n activePlugins: activePlugins.map((p) => p?.name),\n })\n\n this._tryAddCustomEvent('$posthog_config', {\n config: this.instance.config,\n })\n }\n\n private _scheduleFullSnapshot(): void {\n if (this._fullSnapshotTimer) {\n clearInterval(this._fullSnapshotTimer)\n }\n // we don't schedule snapshots while idle\n if (this.isIdle) {\n return\n }\n\n const interval = this.fullSnapshotIntervalMillis\n if (!interval) {\n return\n }\n\n this._fullSnapshotTimer = setInterval(() => {\n this._tryTakeFullSnapshot()\n }, interval)\n }\n\n private _gatherRRWebPlugins() {\n const plugins: RecordPlugin[] = []\n\n if (assignableWindow.rrwebConsoleRecord && this.isConsoleLogCaptureEnabled) {\n plugins.push(assignableWindow.rrwebConsoleRecord.getRecordConsolePlugin())\n }\n\n if (this.networkPayloadCapture && isFunction(assignableWindow.getRecordNetworkPlugin)) {\n const canRecordNetwork = !isLocalhost() || this._forceAllowLocalhostNetworkCapture\n\n if (canRecordNetwork) {\n plugins.push(\n assignableWindow.getRecordNetworkPlugin(\n buildNetworkRequestOptions(this.instance.config, this.networkPayloadCapture)\n )\n )\n } else {\n logger.info(LOGGER_PREFIX + ' NetworkCapture not started because we are on localhost.')\n }\n }\n\n return plugins\n }\n\n onRRwebEmit(rawEvent: eventWithTime) {\n this._processQueuedEvents()\n\n if (!rawEvent || !isObject(rawEvent)) {\n return\n }\n\n if (rawEvent.type === EventType.Meta) {\n const href = this._maskUrl(rawEvent.data.href)\n this._lastHref = href\n if (!href) {\n return\n }\n rawEvent.data.href = href\n } else {\n this._pageViewFallBack()\n }\n\n // we're processing a full snapshot, so we should reset the timer\n if (rawEvent.type === EventType.FullSnapshot) {\n this._scheduleFullSnapshot()\n }\n\n const throttledEvent = this.mutationRateLimiter\n ? this.mutationRateLimiter.throttleMutations(rawEvent)\n : rawEvent\n\n if (!throttledEvent) {\n return\n }\n\n // TODO: Re-add ensureMaxMessageSize once we are confident in it\n const event = truncateLargeConsoleLogs(throttledEvent)\n const size = estimateSize(event)\n\n this._updateWindowAndSessionIds(event)\n\n // When in an idle state we keep recording, but don't capture the events\n // but we allow custom events even when idle\n if (this.isIdle && event.type !== EventType.Custom) {\n return\n }\n\n const properties = {\n $snapshot_bytes: size,\n $snapshot_data: event,\n $session_id: this.sessionId,\n $window_id: this.windowId,\n }\n\n if (this.status !== 'disabled') {\n this._captureSnapshotBuffered(properties)\n } else {\n this.clearBuffer()\n }\n }\n\n private _pageViewFallBack() {\n if (this.instance.config.capture_pageview || !window) {\n return\n }\n const currentUrl = this._maskUrl(window.location.href)\n if (this._lastHref !== currentUrl) {\n this._tryAddCustomEvent('$url_changed', { href: currentUrl })\n this._lastHref = currentUrl\n }\n }\n\n private _processQueuedEvents() {\n if (this.queuedRRWebEvents.length) {\n // if rrweb isn't ready to accept events earlier then we queued them up\n // now that emit has been called rrweb should be ready to accept them\n // so, before we process this event, we try our queued events _once_ each\n // we don't want to risk queuing more things and never exiting this loop!\n // if they fail here, they'll be pushed into a new queue,\n // and tried on the next loop.\n // there is a risk of this queue growing in an uncontrolled manner,\n // so its length is limited elsewhere\n // for now this is to help us ensure we can capture events that happen\n // and try to identify more about when it is failing\n const itemsToProcess = [...this.queuedRRWebEvents]\n this.queuedRRWebEvents = []\n itemsToProcess.forEach((queuedRRWebEvent) => {\n if (Date.now() - queuedRRWebEvent.enqueuedAt <= TWO_SECONDS) {\n this._tryRRWebMethod(queuedRRWebEvent)\n }\n })\n }\n }\n\n private _maskUrl(url: string): string | undefined {\n const userSessionRecordingOptions = this.instance.config.session_recording\n\n if (userSessionRecordingOptions.maskNetworkRequestFn) {\n let networkRequest: NetworkRequest | null | undefined = {\n url,\n }\n\n // TODO we should deprecate this and use the same function for this masking and the rrweb/network plugin\n // TODO or deprecate this and provide a new clearer name so this would be `maskURLPerformanceFn` or similar\n networkRequest = userSessionRecordingOptions.maskNetworkRequestFn(networkRequest)\n\n return networkRequest?.url\n }\n\n return url\n }\n\n private clearBuffer(): SnapshotBuffer {\n this.buffer = {\n size: 0,\n data: [],\n sessionId: this.sessionId,\n windowId: this.windowId,\n }\n return this.buffer\n }\n\n private _flushBuffer(): SnapshotBuffer {\n if (this.flushBufferTimer) {\n clearTimeout(this.flushBufferTimer)\n this.flushBufferTimer = undefined\n }\n\n const minimumDuration = this.minimumDuration\n const sessionDuration = this.sessionDuration\n // if we have old data in the buffer but the session has rotated then the\n // session duration might be negative, in that case we want to flush the buffer\n const isPositiveSessionDuration = isNumber(sessionDuration) && sessionDuration >= 0\n const isBelowMinimumDuration =\n isNumber(minimumDuration) && isPositiveSessionDuration && sessionDuration < minimumDuration\n\n if (this.status === 'buffering' || isBelowMinimumDuration) {\n this.flushBufferTimer = setTimeout(() => {\n this._flushBuffer()\n }, RECORDING_BUFFER_TIMEOUT)\n return this.buffer\n }\n\n if (this.buffer.data.length > 0) {\n const snapshotEvents = splitBuffer(this.buffer)\n snapshotEvents.forEach((snapshotBuffer) => {\n this._captureSnapshot({\n $snapshot_bytes: snapshotBuffer.size,\n $snapshot_data: snapshotBuffer.data,\n $session_id: snapshotBuffer.sessionId,\n $window_id: snapshotBuffer.windowId,\n })\n })\n }\n\n // buffer is empty, we clear it in case the session id has changed\n return this.clearBuffer()\n }\n\n private _captureSnapshotBuffered(properties: Properties) {\n const additionalBytes = 2 + (this.buffer?.data.length || 0) // 2 bytes for the array brackets and 1 byte for each comma\n if (\n this.buffer.size + properties.$snapshot_bytes + additionalBytes > RECORDING_MAX_EVENT_SIZE ||\n this.buffer.sessionId !== this.sessionId\n ) {\n this.buffer = this._flushBuffer()\n }\n\n this.buffer.size += properties.$snapshot_bytes\n this.buffer.data.push(properties.$snapshot_data)\n\n if (!this.flushBufferTimer) {\n this.flushBufferTimer = setTimeout(() => {\n this._flushBuffer()\n }, RECORDING_BUFFER_TIMEOUT)\n }\n }\n\n private _captureSnapshot(properties: Properties) {\n // :TRICKY: Make sure we batch these requests, use a custom endpoint and don't truncate the strings.\n this.instance.capture('$snapshot', properties, {\n _url: this.instance.requestRouter.endpointFor('api', this._endpoint),\n _noTruncate: true,\n _batchKey: SESSION_RECORDING_BATCH_KEY,\n })\n }\n}\n","import { PostHog } from './posthog-core'\nimport { Compression, DecideResponse } from './types'\nimport { STORED_GROUP_PROPERTIES_KEY, STORED_PERSON_PROPERTIES_KEY } from './constants'\n\nimport { logger } from './utils/logger'\nimport { document, assignableWindow } from './utils/globals'\n\nexport class Decide {\n constructor(private readonly instance: PostHog) {\n // don't need to wait for `decide` to return if flags were provided on initialisation\n this.instance.decideEndpointWasHit = this.instance._hasBootstrappedFeatureFlags()\n }\n\n call(): void {\n /*\n Calls /decide endpoint to fetch options for autocapture, session recording, feature flags & compression.\n */\n const data = {\n token: this.instance.config.token,\n distinct_id: this.instance.get_distinct_id(),\n groups: this.instance.getGroups(),\n person_properties: this.instance.get_property(STORED_PERSON_PROPERTIES_KEY),\n group_properties: this.instance.get_property(STORED_GROUP_PROPERTIES_KEY),\n disable_flags:\n this.instance.config.advanced_disable_feature_flags ||\n this.instance.config.advanced_disable_feature_flags_on_first_load ||\n undefined,\n }\n\n this.instance._send_request({\n method: 'POST',\n url: this.instance.requestRouter.endpointFor('api', '/decide/?v=3'),\n data,\n compression: this.instance.config.disable_compression ? undefined : Compression.Base64,\n timeout: this.instance.config.feature_flag_request_timeout_ms,\n callback: (response) => this.parseDecideResponse(response.json as DecideResponse | undefined),\n })\n }\n\n parseDecideResponse(response?: DecideResponse): void {\n this.instance.featureFlags.setReloadingPaused(false)\n // :TRICKY: Reload - start another request if queued!\n this.instance.featureFlags._startReloadTimer()\n\n const errorsLoading = !response\n\n if (\n !this.instance.config.advanced_disable_feature_flags_on_first_load &&\n !this.instance.config.advanced_disable_feature_flags\n ) {\n this.instance.featureFlags.receivedFeatureFlags(response ?? {}, errorsLoading)\n }\n\n if (errorsLoading) {\n logger.error('Failed to fetch feature flags from PostHog.')\n return\n }\n if (!(document && document.body)) {\n logger.info('document not ready yet, trying again in 500 milliseconds...')\n setTimeout(() => {\n this.parseDecideResponse(response)\n }, 500)\n return\n }\n\n this.instance._afterDecideResponse(response)\n\n if (response['siteApps']) {\n if (this.instance.config.opt_in_site_apps) {\n for (const { id, url } of response['siteApps']) {\n const scriptUrl = this.instance.requestRouter.endpointFor('api', url)\n\n assignableWindow[`__$$ph_site_app_${id}`] = this.instance\n\n this.instance.requestRouter.loadScript(scriptUrl, (err) => {\n if (err) {\n return logger.error(`Error while initializing PostHog app with config id ${id}`, err)\n }\n })\n }\n } else if (response['siteApps'].length > 0) {\n logger.error('PostHog site apps are disabled. Enable the \"opt_in_site_apps\" config to proceed.')\n }\n }\n }\n}\n","import { QueuedRequestOptions } from './types'\nimport { each } from './utils'\n\nimport { isArray, isUndefined } from './utils/type-utils'\n\nexport class RequestQueue {\n // We start in a paused state and only start flushing when enabled by the parent\n private isPaused: boolean = true\n private queue: QueuedRequestOptions[] = []\n private flushTimeout?: ReturnType\n private flushTimeoutMs = 3000\n private sendRequest: (req: QueuedRequestOptions) => void\n\n constructor(sendRequest: (req: QueuedRequestOptions) => void) {\n this.sendRequest = sendRequest\n }\n\n enqueue(req: QueuedRequestOptions): void {\n this.queue.push(req)\n\n if (!this.flushTimeout) {\n this.setFlushTimeout()\n }\n }\n\n unload(): void {\n this.clearFlushTimeout()\n const requests = this.queue.length > 0 ? this.formatQueue() : {}\n const requestValues = Object.values(requests)\n\n // Always force events to be sent before recordings, as events are more important, and recordings are bigger and thus less likely to arrive\n const sortedRequests = [\n ...requestValues.filter((r) => r.url.indexOf('/e') === 0),\n ...requestValues.filter((r) => r.url.indexOf('/e') !== 0),\n ]\n sortedRequests.map((req) => {\n this.sendRequest({ ...req, transport: 'sendBeacon' })\n })\n }\n\n enable(): void {\n this.isPaused = false\n this.setFlushTimeout()\n }\n\n private setFlushTimeout(): void {\n if (this.isPaused) {\n return\n }\n this.flushTimeout = setTimeout(() => {\n this.clearFlushTimeout()\n if (this.queue.length > 0) {\n const requests = this.formatQueue()\n for (const key in requests) {\n const req = requests[key]\n const now = new Date().getTime()\n\n if (req.data && isArray(req.data)) {\n each(req.data, (data) => {\n data['offset'] = Math.abs(data['timestamp'] - now)\n delete data['timestamp']\n })\n }\n this.sendRequest(req)\n }\n }\n }, this.flushTimeoutMs)\n }\n\n private clearFlushTimeout(): void {\n clearTimeout(this.flushTimeout)\n this.flushTimeout = undefined\n }\n\n private formatQueue(): Record {\n const requests: Record = {}\n each(this.queue, (request: QueuedRequestOptions) => {\n const req = request\n const key = (req ? req.batchKey : null) || req.url\n if (isUndefined(requests[key])) {\n // TODO: What about this -it seems to batch data into an array - do we always want that?\n requests[key] = { ...req, data: [] }\n }\n\n requests[key].data?.push(req.data)\n })\n\n this.queue = []\n return requests\n }\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var u = ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([c], { type: 'text/javascript' })));\n var w = new Worker(u);\n w.onerror = function (e) { return cb(e.error, null); };\n w.onmessage = function (e) { return cb(null, e.data); };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = 0xFFFFFFFF;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return c ^ 0xFFFFFFFF; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32)\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n if (!opts.consume)\n dat = new u8(dat);\n w.postMessage([dat, opts], [dat.buffer]);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (t)\n throw 'stream finished';\n if (!strm.ondata)\n throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16)) + (d[b + 3] << 23) * 2; };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + (2 * (d[l - 1] << 23));\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) >> 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = gzs(this.p);\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n throw 'no stream handler';\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k;\n if (val instanceof u8)\n t[n] = [val, o];\n else if (Array.isArray(val))\n t[n] = [val[0], mrg(o, val[1])];\n else\n fltn(val, n + '/', t, o);\n }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n;\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n};\n// write zip header\nvar wzh = function (d, b, c, cmp, su, fn, u, o, ce, t) {\n var fl = fn.length, l = cmp.length;\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b] = 20, b += 2;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0)), d[b++] = u && 8;\n d[b] = t, b += 2;\n var dt = new Date(o.mtime || Date.now()), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n throw 'date not in range 1980-2099';\n wbytes(d, b, ((y << 24) * 2) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1));\n b += 4;\n wbytes(d, b, c);\n wbytes(d, b + 4, l);\n wbytes(d, b + 8, su);\n wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n if (ce != null)\n wbytes(d, b += 10, ce), b += 4;\n d.set(fn, b);\n b += fl;\n if (ce == null)\n d.set(cmp, b);\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n }\n catch (e) {\n return cb(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), m = file.length;\n c.p(file);\n var n = strToU8(fn), s = n.length;\n var t = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n var l = d.length;\n files[i] = {\n t: t,\n d: d,\n m: m,\n c: c.d(),\n u: fn.length != l,\n n: n,\n p: p\n };\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n if (!--lft)\n cbf();\n }\n };\n if (n.length > 65535)\n cbl('filename too long', null);\n if (!t)\n cbl(null, file);\n else if (m < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var t = p.level == 0 ? 0 : 8;\n var n = strToU8(fn), s = n.length;\n if (n.length > 65535)\n throw 'filename too long';\n var d = t ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push({\n t: t,\n d: d,\n m: file.length,\n c: c.d(),\n u: fn.length != s,\n n: n,\n o: o,\n p: p\n });\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\nexport function unzip(data, cb) {\n if (typeof cb != 'function')\n throw 'no callback';\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (!lft)\n cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var _loop_2 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n files[fn] = d;\n if (!--lft)\n cb(null, files);\n }\n };\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl('unknown compression type ' + c_1, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_2(i);\n }\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n throw 'invalid zip file';\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n throw 'unknown compression type ' + c_2;\n }\n return files;\n}\n","import { _base64Encode, each, find } from './utils'\nimport Config from './config'\nimport { Compression, RequestOptions, RequestResponse } from './types'\nimport { formDataToQuery } from './utils/request-utils'\n\nimport { logger } from './utils/logger'\nimport { fetch, XMLHttpRequest, AbortController, navigator } from './utils/globals'\nimport { gzipSync, strToU8 } from 'fflate'\n\n// eslint-disable-next-line compat/compat\nexport const SUPPORTS_REQUEST = !!XMLHttpRequest || !!fetch\n\nconst CONTENT_TYPE_PLAIN = 'text/plain'\nconst CONTENT_TYPE_JSON = 'application/json'\nconst CONTENT_TYPE_FORM = 'application/x-www-form-urlencoded'\n\ntype EncodedBody = {\n contentType: string\n body: string | BlobPart\n}\n\nexport const extendURLParams = (url: string, params: Record): string => {\n const [baseUrl, search] = url.split('?')\n const newParams = { ...params }\n\n search?.split('&').forEach((pair) => {\n const [key] = pair.split('=')\n delete newParams[key]\n })\n\n let newSearch = formDataToQuery(newParams)\n newSearch = newSearch ? (search ? search + '&' : '') + newSearch : search\n\n return `${baseUrl}?${newSearch}`\n}\n\nconst encodeToDataString = (data: string | Record): string => {\n return 'data=' + encodeURIComponent(typeof data === 'string' ? data : JSON.stringify(data))\n}\n\nconst encodePostData = ({ data, compression }: RequestOptions): EncodedBody | undefined => {\n if (!data) {\n return\n }\n\n if (compression === Compression.GZipJS) {\n const gzipData = gzipSync(strToU8(JSON.stringify(data)), { mtime: 0 })\n return {\n contentType: CONTENT_TYPE_PLAIN,\n body: new Blob([gzipData], { type: CONTENT_TYPE_PLAIN }),\n }\n }\n\n if (compression === Compression.Base64) {\n const b64data = _base64Encode(JSON.stringify(data))\n\n return {\n contentType: CONTENT_TYPE_FORM,\n body: encodeToDataString(b64data),\n }\n }\n\n return {\n contentType: CONTENT_TYPE_JSON,\n body: JSON.stringify(data),\n }\n}\n\nconst xhr = (options: RequestOptions) => {\n const req = new XMLHttpRequest!()\n req.open(options.method || 'GET', options.url, true)\n const { contentType, body } = encodePostData(options) ?? {}\n\n each(options.headers, function (headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue)\n })\n\n if (contentType) {\n req.setRequestHeader('Content-Type', contentType)\n }\n\n if (options.timeout) {\n req.timeout = options.timeout\n }\n // send the ph_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true\n req.onreadystatechange = () => {\n // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.readyState === 4) {\n const response: RequestResponse = {\n statusCode: req.status,\n text: req.responseText,\n }\n if (req.status === 200) {\n try {\n response.json = JSON.parse(req.responseText)\n } catch (e) {\n // logger.error(e)\n }\n }\n\n options.callback?.(response)\n }\n }\n req.send(body)\n}\n\nconst _fetch = (options: RequestOptions) => {\n const { contentType, body } = encodePostData(options) ?? {}\n\n // eslint-disable-next-line compat/compat\n const headers = new Headers()\n each(headers, function (headerValue, headerName) {\n headers.append(headerName, headerValue)\n })\n\n if (contentType) {\n headers.append('Content-Type', contentType)\n }\n\n const url = options.url\n let aborter: { signal: any; timeout: ReturnType } | null = null\n\n if (AbortController) {\n const controller = new AbortController()\n aborter = {\n signal: controller.signal,\n timeout: setTimeout(() => controller.abort(), options.timeout),\n }\n }\n\n fetch!(url, {\n method: options?.method || 'GET',\n headers,\n keepalive: options.method === 'POST',\n body,\n signal: aborter?.signal,\n })\n .then((response) => {\n return response.text().then((responseText) => {\n const res: RequestResponse = {\n statusCode: response.status,\n text: responseText,\n }\n\n if (response.status === 200) {\n try {\n res.json = JSON.parse(responseText)\n } catch (e) {\n logger.error(e)\n }\n }\n\n options.callback?.(res)\n })\n })\n .catch((error) => {\n logger.error(error)\n options.callback?.({ statusCode: 0, text: error })\n })\n .finally(() => (aborter ? clearTimeout(aborter.timeout) : null))\n\n return\n}\n\nconst _sendBeacon = (options: RequestOptions) => {\n // beacon documentation https://w3c.github.io/beacon/\n // beacons format the message and use the type property\n\n const url = extendURLParams(options.url, {\n beacon: '1',\n })\n\n try {\n const { contentType, body } = encodePostData(options) ?? {}\n // sendBeacon requires a blob so we convert it\n const sendBeaconBody = typeof body === 'string' ? new Blob([body], { type: contentType }) : body\n navigator!.sendBeacon!(url, sendBeaconBody)\n } catch (e) {\n // send beacon is a best-effort, fire-and-forget mechanism on page unload,\n // we don't want to throw errors here\n }\n}\n\nconst AVAILABLE_TRANSPORTS: { transport: RequestOptions['transport']; method: (options: RequestOptions) => void }[] = []\n\n// We add the transports in order of preference\n\nif (XMLHttpRequest) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'XHR',\n method: xhr,\n })\n}\n\nif (fetch) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'fetch',\n method: _fetch,\n })\n}\n\nif (navigator?.sendBeacon) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'sendBeacon',\n method: _sendBeacon,\n })\n}\n\n// This is the entrypoint. It takes care of sanitizing the options and then calls the appropriate request method.\nexport const request = (_options: RequestOptions) => {\n // Clone the options so we don't modify the original object\n const options = { ..._options }\n options.timeout = options.timeout || 60000\n\n options.url = extendURLParams(options.url, {\n _: new Date().getTime().toString(),\n ver: Config.LIB_VERSION,\n compression: options.compression,\n })\n\n const transport = options.transport ?? 'XHR'\n\n const transportMethod =\n find(AVAILABLE_TRANSPORTS, (t) => t.transport === transport)?.method ?? AVAILABLE_TRANSPORTS[0].method\n\n if (!transportMethod) {\n throw new Error('No available transport method')\n }\n\n transportMethod(options)\n}\n","import { PostHog } from '../posthog-core'\nimport { document } from '../utils/globals'\nimport { logger } from './logger'\n\n/**\n * The request router helps simplify the logic to determine which endpoints should be called for which things\n * The basic idea is that for a given region (US or EU), we have a set of endpoints that we should call depending\n * on the type of request (events, replays, decide, etc.) and handle overrides that may come from configs or the decide endpoint\n */\n\nexport enum RequestRouterRegion {\n US = 'us',\n EU = 'eu',\n CUSTOM = 'custom',\n}\n\nexport type RequestRouterTarget = 'api' | 'ui' | 'assets'\n\nconst ingestionDomain = 'i.posthog.com'\n\nexport class RequestRouter {\n instance: PostHog\n private _regionCache: Record = {}\n\n constructor(instance: PostHog) {\n this.instance = instance\n }\n\n get apiHost(): string {\n return this.instance.config.api_host.trim().replace(/\\/$/, '')\n }\n get uiHost(): string | undefined {\n const host = this.instance.config.ui_host?.replace(/\\/$/, '')\n\n if (host === 'https://app.posthog.com') {\n return 'https://us.posthog.com'\n }\n return host\n }\n\n get region(): RequestRouterRegion {\n // We don't need to compute this every time so we cache the result\n if (!this._regionCache[this.apiHost]) {\n if (/https:\\/\\/(app|us|us-assets)(\\.i)?\\.posthog\\.com/i.test(this.apiHost)) {\n this._regionCache[this.apiHost] = RequestRouterRegion.US\n } else if (/https:\\/\\/(eu|eu-assets)(\\.i)?\\.posthog\\.com/i.test(this.apiHost)) {\n this._regionCache[this.apiHost] = RequestRouterRegion.EU\n } else {\n this._regionCache[this.apiHost] = RequestRouterRegion.CUSTOM\n }\n }\n return this._regionCache[this.apiHost]\n }\n\n endpointFor(target: RequestRouterTarget, path: string = ''): string {\n if (path) {\n path = path[0] === '/' ? path : `/${path}`\n }\n\n if (target === 'ui') {\n return (this.uiHost || this.apiHost.replace(`.${ingestionDomain}`, '.posthog.com')) + path\n }\n\n if (this.region === RequestRouterRegion.CUSTOM) {\n return this.apiHost + path\n }\n\n const suffix = ingestionDomain + path\n\n switch (target) {\n case 'assets':\n return `https://${this.region}-assets.${suffix}`\n case 'api':\n return `https://${this.region}.${suffix}`\n }\n }\n\n loadScript(scriptUrlToLoad: string, callback: (error?: string | Event, event?: Event) => void): void {\n if (this.instance.config.disable_external_dependency_loading) {\n logger.warn(`${scriptUrlToLoad} was requested but loading of external scripts is disabled.`)\n return callback('Loading of external scripts is disabled')\n }\n\n const url = scriptUrlToLoad[0] === '/' ? this.endpointFor('assets', scriptUrlToLoad) : scriptUrlToLoad\n\n const addScript = () => {\n if (!document) {\n return callback('document not found')\n }\n const scriptTag = document.createElement('script')\n scriptTag.type = 'text/javascript'\n scriptTag.src = url\n scriptTag.onload = (event) => callback(undefined, event)\n scriptTag.onerror = (error) => callback(error)\n\n const scripts = document.querySelectorAll('body > script')\n if (scripts.length > 0) {\n scripts[0].parentNode?.insertBefore(scriptTag, scripts[0])\n } else {\n // In exceptional situations this call might load before the DOM is fully ready.\n document.body.appendChild(scriptTag)\n }\n }\n\n if (document?.body) {\n addScript()\n } else {\n document?.addEventListener('DOMContentLoaded', addScript)\n }\n }\n}\n","import { RetriableRequestOptions } from './types'\n\nimport { isNumber, isUndefined } from './utils/type-utils'\nimport { logger } from './utils/logger'\nimport { window } from './utils/globals'\nimport { PostHog } from './posthog-core'\nimport { extendURLParams } from './request'\n\nconst thirtyMinutes = 30 * 60 * 1000\n\n/**\n * Generates a jitter-ed exponential backoff delay in milliseconds\n *\n * The base value is 6 seconds, which is doubled with each retry\n * up to the maximum of 30 minutes\n *\n * Each value then has +/- 50% jitter\n *\n * Giving a range of 6 seconds up to 45 minutes\n */\nexport function pickNextRetryDelay(retriesPerformedSoFar: number): number {\n const rawBackoffTime = 3000 * 2 ** retriesPerformedSoFar\n const minBackoff = rawBackoffTime / 2\n const cappedBackoffTime = Math.min(thirtyMinutes, rawBackoffTime)\n const jitterFraction = Math.random() - 0.5 // A random number between -0.5 and 0.5\n const jitter = jitterFraction * (cappedBackoffTime - minBackoff)\n return Math.ceil(cappedBackoffTime + jitter)\n}\n\ninterface RetryQueueElement {\n retryAt: number\n requestOptions: RetriableRequestOptions\n}\n\nexport class RetryQueue {\n private isPolling: boolean = false // flag to continue to recursively poll or not\n private poller: number | undefined // to become interval for reference to clear later\n private pollIntervalMs: number = 3000\n private queue: RetryQueueElement[] = []\n private areWeOnline: boolean\n\n constructor(private instance: PostHog) {\n this.queue = []\n this.areWeOnline = true\n\n if (!isUndefined(window) && 'onLine' in window.navigator) {\n this.areWeOnline = window.navigator.onLine\n window.addEventListener('online', () => {\n this.areWeOnline = true\n this.flush()\n })\n window.addEventListener('offline', () => {\n this.areWeOnline = false\n })\n }\n }\n\n retriableRequest({ retriesPerformedSoFar, ...options }: RetriableRequestOptions): void {\n if (isNumber(retriesPerformedSoFar) && retriesPerformedSoFar > 0) {\n options.url = extendURLParams(options.url, { retry_count: retriesPerformedSoFar })\n }\n\n this.instance._send_request({\n ...options,\n callback: (response) => {\n if (response.statusCode !== 200 && (response.statusCode < 400 || response.statusCode >= 500)) {\n if ((retriesPerformedSoFar ?? 0) < 10) {\n this.enqueue({\n retriesPerformedSoFar,\n ...options,\n })\n return\n }\n }\n\n options.callback?.(response)\n },\n })\n }\n\n private enqueue(requestOptions: RetriableRequestOptions): void {\n const retriesPerformedSoFar = requestOptions.retriesPerformedSoFar || 0\n requestOptions.retriesPerformedSoFar = retriesPerformedSoFar + 1\n\n const msToNextRetry = pickNextRetryDelay(retriesPerformedSoFar)\n const retryAt = Date.now() + msToNextRetry\n\n this.queue.push({ retryAt, requestOptions })\n\n let logMessage = `Enqueued failed request for retry in ${msToNextRetry}`\n if (!navigator.onLine) {\n logMessage += ' (Browser is offline)'\n }\n logger.warn(logMessage)\n\n if (!this.isPolling) {\n this.isPolling = true\n this.poll()\n }\n }\n\n private poll(): void {\n this.poller && clearTimeout(this.poller)\n this.poller = setTimeout(() => {\n if (this.areWeOnline && this.queue.length > 0) {\n this.flush()\n }\n this.poll()\n }, this.pollIntervalMs) as any as number\n }\n\n private flush(): void {\n const now = Date.now()\n const notToFlush: RetryQueueElement[] = []\n const toFlush = this.queue.filter((item) => {\n if (item.retryAt < now) {\n return true\n }\n notToFlush.push(item)\n return false\n })\n\n this.queue = notToFlush\n\n if (toFlush.length > 0) {\n for (const { requestOptions } of toFlush) {\n this.retriableRequest(requestOptions)\n }\n }\n }\n\n unload(): void {\n if (this.poller) {\n clearTimeout(this.poller)\n this.poller = undefined\n }\n\n for (const { requestOptions } of this.queue) {\n try {\n // we've had send beacon in place for at least 2 years\n // eslint-disable-next-line compat/compat\n this.instance._send_request({\n ...requestOptions,\n transport: 'sendBeacon',\n })\n } catch (e) {\n // Note sendBeacon automatically retries, and after the first retry it will lose reference to contextual `this`.\n // This means in some cases `this.getConfig` will be undefined.\n logger.error(e)\n }\n }\n this.queue = []\n }\n}\n","import { PostHogPersistence } from './posthog-persistence'\nimport { SESSION_ID } from './constants'\nimport { sessionStore } from './storage'\nimport { PostHogConfig, SessionIdChangedCallback } from './types'\nimport { uuid7ToTimestampMs, uuidv7 } from './uuidv7'\nimport { window } from './utils/globals'\n\nimport { isArray, isNumber, isUndefined } from './utils/type-utils'\nimport { logger } from './utils/logger'\n\nconst MAX_SESSION_IDLE_TIMEOUT = 30 * 60 // 30 minutes\nconst MIN_SESSION_IDLE_TIMEOUT = 60 // 1 minute\nconst SESSION_LENGTH_LIMIT = 24 * 3600 * 1000 // 24 hours\n\nexport class SessionIdManager {\n private readonly _sessionIdGenerator: () => string\n private readonly _windowIdGenerator: () => string\n private config: Partial\n private persistence: PostHogPersistence\n private _windowId: string | null | undefined\n private _sessionId: string | null | undefined\n private readonly _window_id_storage_key: string\n private readonly _primary_window_exists_storage_key: string\n private _sessionStartTimestamp: number | null\n\n private _sessionActivityTimestamp: number | null\n private readonly _sessionTimeoutMs: number\n private _sessionIdChangedHandlers: SessionIdChangedCallback[] = []\n\n constructor(\n config: Partial,\n persistence: PostHogPersistence,\n sessionIdGenerator?: () => string,\n windowIdGenerator?: () => string\n ) {\n this.config = config\n this.persistence = persistence\n this._windowId = undefined\n this._sessionId = undefined\n this._sessionStartTimestamp = null\n this._sessionActivityTimestamp = null\n this._sessionIdGenerator = sessionIdGenerator || uuidv7\n this._windowIdGenerator = windowIdGenerator || uuidv7\n\n const persistenceName = config['persistence_name'] || config['token']\n let desiredTimeout = config['session_idle_timeout_seconds'] || MAX_SESSION_IDLE_TIMEOUT\n\n if (!isNumber(desiredTimeout)) {\n logger.warn('session_idle_timeout_seconds must be a number. Defaulting to 30 minutes.')\n desiredTimeout = MAX_SESSION_IDLE_TIMEOUT\n } else if (desiredTimeout > MAX_SESSION_IDLE_TIMEOUT) {\n logger.warn('session_idle_timeout_seconds cannot be greater than 30 minutes. Using 30 minutes instead.')\n } else if (desiredTimeout < MIN_SESSION_IDLE_TIMEOUT) {\n logger.warn('session_idle_timeout_seconds cannot be less than 60 seconds. Using 60 seconds instead.')\n }\n\n this._sessionTimeoutMs =\n Math.min(Math.max(desiredTimeout, MIN_SESSION_IDLE_TIMEOUT), MAX_SESSION_IDLE_TIMEOUT) * 1000\n this._window_id_storage_key = 'ph_' + persistenceName + '_window_id'\n this._primary_window_exists_storage_key = 'ph_' + persistenceName + '_primary_window_exists'\n\n // primary_window_exists is set when the DOM has been loaded and is cleared on unload\n // if it exists here it means there was no unload which suggests this window is opened as a tab duplication, window.open, etc.\n if (this._canUseSessionStorage()) {\n const lastWindowId = sessionStore.parse(this._window_id_storage_key)\n\n const primaryWindowExists = sessionStore.parse(this._primary_window_exists_storage_key)\n if (lastWindowId && !primaryWindowExists) {\n // Persist window from previous storage state\n this._windowId = lastWindowId\n } else {\n // Wipe any reference to previous window id\n sessionStore.remove(this._window_id_storage_key)\n }\n // Flag this session as having a primary window\n sessionStore.set(this._primary_window_exists_storage_key, true)\n }\n\n if (this.config.bootstrap?.sessionID) {\n try {\n const sessionStartTimestamp = uuid7ToTimestampMs(this.config.bootstrap.sessionID)\n this._setSessionId(this.config.bootstrap.sessionID, new Date().getTime(), sessionStartTimestamp)\n } catch (e) {\n logger.error('Invalid sessionID in bootstrap', e)\n }\n }\n\n this._listenToReloadWindow()\n }\n\n onSessionId(callback: SessionIdChangedCallback): () => void {\n // KLUDGE: when running in tests the handlers array was always undefined\n // it's yucky but safe to set it here so that it's always definitely available\n if (isUndefined(this._sessionIdChangedHandlers)) {\n this._sessionIdChangedHandlers = []\n }\n\n this._sessionIdChangedHandlers.push(callback)\n if (this._sessionId) {\n callback(this._sessionId, this._windowId)\n }\n return () => {\n this._sessionIdChangedHandlers = this._sessionIdChangedHandlers.filter((h) => h !== callback)\n }\n }\n\n private _canUseSessionStorage(): boolean {\n // We only want to use sessionStorage if persistence is enabled and not memory storage\n return this.config.persistence !== 'memory' && !this.persistence.disabled && sessionStore.is_supported()\n }\n\n // Note: this tries to store the windowId in sessionStorage. SessionStorage is unique to the current window/tab,\n // and persists page loads/reloads. So it's uniquely suited for storing the windowId. This function also respects\n // when persistence is disabled (by user config) and when sessionStorage is not supported (it *should* be supported on all browsers),\n // and in that case, it falls back to memory (which sadly, won't persist page loads)\n private _setWindowId(windowId: string): void {\n if (windowId !== this._windowId) {\n this._windowId = windowId\n if (this._canUseSessionStorage()) {\n sessionStore.set(this._window_id_storage_key, windowId)\n }\n }\n }\n\n private _getWindowId(): string | null {\n if (this._windowId) {\n return this._windowId\n }\n if (this._canUseSessionStorage()) {\n return sessionStore.parse(this._window_id_storage_key)\n }\n // New window id will be generated\n return null\n }\n\n // Note: 'this.persistence.register' can be disabled in the config.\n // In that case, this works by storing sessionId and the timestamp in memory.\n private _setSessionId(\n sessionId: string | null,\n sessionActivityTimestamp: number | null,\n sessionStartTimestamp: number | null\n ): void {\n if (\n sessionId !== this._sessionId ||\n sessionActivityTimestamp !== this._sessionActivityTimestamp ||\n sessionStartTimestamp !== this._sessionStartTimestamp\n ) {\n this._sessionStartTimestamp = sessionStartTimestamp\n this._sessionActivityTimestamp = sessionActivityTimestamp\n this._sessionId = sessionId\n\n this.persistence.register({\n [SESSION_ID]: [sessionActivityTimestamp, sessionId, sessionStartTimestamp],\n })\n }\n }\n\n private _getSessionId(): [number, string, number] {\n if (this._sessionId && this._sessionActivityTimestamp && this._sessionStartTimestamp) {\n return [this._sessionActivityTimestamp, this._sessionId, this._sessionStartTimestamp]\n }\n const sessionId = this.persistence.props[SESSION_ID]\n\n if (isArray(sessionId) && sessionId.length === 2) {\n // Storage does not yet have a session start time. Add the last activity timestamp as the start time\n sessionId.push(sessionId[0])\n }\n\n return sessionId || [0, null, 0]\n }\n\n // Resets the session id by setting it to null. On the subsequent call to checkAndGetSessionAndWindowId,\n // new ids will be generated.\n resetSessionId(): void {\n this._setSessionId(null, null, null)\n }\n\n /*\n * Listens to window unloads and removes the primaryWindowExists key from sessionStorage.\n * Reloaded or fresh tabs created after a DOM unloads (reloading the same tab) WILL NOT have this primaryWindowExists flag in session storage.\n * Cloned sessions (new tab, tab duplication, window.open(), ...) WILL have this primaryWindowExists flag in their copied session storage.\n * We conditionally check the primaryWindowExists value in the constructor to decide if the window id in the last session storage should be carried over.\n */\n private _listenToReloadWindow(): void {\n window?.addEventListener('beforeunload', () => {\n if (this._canUseSessionStorage()) {\n sessionStore.remove(this._primary_window_exists_storage_key)\n }\n })\n }\n\n /*\n * This function returns the current sessionId and windowId. It should be used to\n * access these values over directly calling `._sessionId` or `._windowId`.\n * In addition to returning the sessionId and windowId, this function also manages cycling the\n * sessionId and windowId when appropriate by doing the following:\n *\n * 1. If the sessionId or windowId is not set, it will generate a new one and store it.\n * 2. If the readOnly param is set to false, it will:\n * a. Check if it has been > SESSION_CHANGE_THRESHOLD since the last call with this flag set.\n * If so, it will generate a new sessionId and store it.\n * b. Update the timestamp stored with the sessionId to ensure the current session is extended\n * for the appropriate amount of time.\n *\n * @param {boolean} readOnly (optional) Defaults to False. Should be set to True when the call to the function should not extend or cycle the session (e.g. being called for non-user generated events)\n * @param {Number} timestamp (optional) Defaults to the current time. The timestamp to be stored with the sessionId (used when determining if a new sessionId should be generated)\n */\n checkAndGetSessionAndWindowId(readOnly = false, _timestamp: number | null = null) {\n const timestamp = _timestamp || new Date().getTime()\n\n // eslint-disable-next-line prefer-const\n let [lastTimestamp, sessionId, startTimestamp] = this._getSessionId()\n let windowId = this._getWindowId()\n\n const sessionPastMaximumLength =\n startTimestamp && startTimestamp > 0 && Math.abs(timestamp - startTimestamp) > SESSION_LENGTH_LIMIT\n\n let valuesChanged = false\n const noSessionId = !sessionId\n const activityTimeout = !readOnly && Math.abs(timestamp - lastTimestamp) > this._sessionTimeoutMs\n if (noSessionId || activityTimeout || sessionPastMaximumLength) {\n sessionId = this._sessionIdGenerator()\n windowId = this._windowIdGenerator()\n logger.info('[SessionId] new session ID generated', {\n sessionId,\n windowId,\n changeReason: { noSessionId, activityTimeout, sessionPastMaximumLength },\n })\n startTimestamp = timestamp\n valuesChanged = true\n } else if (!windowId) {\n windowId = this._windowIdGenerator()\n valuesChanged = true\n }\n\n const newTimestamp = lastTimestamp === 0 || !readOnly || sessionPastMaximumLength ? timestamp : lastTimestamp\n const sessionStartTimestamp = startTimestamp === 0 ? new Date().getTime() : startTimestamp\n\n this._setWindowId(windowId)\n this._setSessionId(sessionId, newTimestamp, sessionStartTimestamp)\n\n if (valuesChanged) {\n this._sessionIdChangedHandlers.forEach((handler) => handler(sessionId, windowId))\n }\n\n return {\n sessionId,\n windowId,\n sessionStartTimestamp,\n }\n }\n}\n","import { window } from '../../utils/globals'\nimport { PostHog } from '../../posthog-core'\nimport { DecideResponse, Properties } from '../../types'\n\nimport { isObject } from '../../utils/type-utils'\nimport { logger } from '../../utils/logger'\nimport { EXCEPTION_CAPTURE_ENABLED_SERVER_SIDE, EXCEPTION_CAPTURE_ENDPOINT } from '../../constants'\nimport Config from '../../config'\n\n// TODO: move this to /x/ as default\nexport const BASE_ERROR_ENDPOINT = '/e/'\nconst LOGGER_PREFIX = '[Exception Capture]'\n\nexport class ExceptionObserver {\n private _endpoint: string\n instance: PostHog\n remoteEnabled: boolean | undefined\n private originalOnUnhandledRejectionHandler: Window['onunhandledrejection'] | null | undefined = undefined\n private unwrapOnError: (() => void) | undefined\n private unwrapUnhandledRejection: (() => void) | undefined\n\n constructor(instance: PostHog) {\n this.instance = instance\n this.remoteEnabled = !!this.instance.persistence?.props[EXCEPTION_CAPTURE_ENABLED_SERVER_SIDE]\n\n // TODO: once BASE_ERROR_ENDPOINT is no longer /e/ this can be removed\n this._endpoint = this.instance.persistence?.props[EXCEPTION_CAPTURE_ENDPOINT] || BASE_ERROR_ENDPOINT\n\n this.startIfEnabled()\n }\n\n get endpoint() {\n return this._endpoint\n }\n\n get isEnabled() {\n return this.remoteEnabled ?? false\n }\n\n get isCapturing() {\n return !!(window?.onerror as any)?.__POSTHOG_INSTRUMENTED__\n }\n\n get hasHandlers() {\n return this.originalOnUnhandledRejectionHandler || this.unwrapOnError\n }\n\n startIfEnabled(): void {\n if (this.isEnabled && !this.isCapturing) {\n logger.info(LOGGER_PREFIX + ' enabled, starting...')\n this.loadScript(this.startCapturing)\n }\n }\n\n private loadScript(cb: () => void): void {\n if (this.hasHandlers) {\n // already loaded\n cb()\n }\n\n this.instance.requestRouter.loadScript(\n this.instance.requestRouter.endpointFor(\n 'assets',\n `/static/exception-autocapture.js?v=${Config.LIB_VERSION}`\n ),\n (err) => {\n if (err) {\n return logger.error(LOGGER_PREFIX + ' failed to load script', err)\n }\n cb()\n }\n )\n }\n\n private startCapturing = () => {\n if (!window || !this.isEnabled || this.hasHandlers || (window.onerror as any)?.__POSTHOG_INSTRUMENTED__) {\n return\n }\n\n const wrapOnError = (window as any).posthogErrorWrappingFunctions.wrapOnError\n const wrapUnhandledRejection = (window as any).posthogErrorWrappingFunctions.wrapUnhandledRejection\n\n if (!wrapOnError || !wrapUnhandledRejection) {\n logger.error(LOGGER_PREFIX + ' failed to load error wrapping functions - cannot start')\n return\n }\n\n try {\n this.unwrapOnError = wrapOnError(this.captureException.bind(this))\n this.unwrapUnhandledRejection = wrapUnhandledRejection(this.captureException.bind(this))\n } catch (e) {\n logger.error(LOGGER_PREFIX + ' failed to start', e)\n this.stopCapturing()\n }\n }\n\n private stopCapturing() {\n this.unwrapOnError?.()\n this.unwrapUnhandledRejection?.()\n }\n\n afterDecideResponse(response: DecideResponse) {\n const autocaptureExceptionsResponse = response.autocaptureExceptions\n\n // store this in-memory in case persistence is disabled\n this.remoteEnabled = !!autocaptureExceptionsResponse || false\n this._endpoint = isObject(autocaptureExceptionsResponse)\n ? autocaptureExceptionsResponse.endpoint || BASE_ERROR_ENDPOINT\n : BASE_ERROR_ENDPOINT\n\n if (this.instance.persistence) {\n this.instance.persistence.register({\n [EXCEPTION_CAPTURE_ENABLED_SERVER_SIDE]: this.remoteEnabled,\n })\n // when we come to moving the endpoint to not /e/\n // we'll want that to persist between startup and decide response\n // TODO: once BASE_ENDPOINT is no longer /e/ this can be removed\n this.instance.persistence.register({\n [EXCEPTION_CAPTURE_ENDPOINT]: this._endpoint,\n })\n }\n\n this.startIfEnabled()\n }\n\n captureException(errorProperties: Properties) {\n const posthogHost = this.instance.requestRouter.endpointFor('ui')\n\n errorProperties.$exception_personURL = `${posthogHost}/project/${\n this.instance.config.token\n }/person/${this.instance.get_distinct_id()}`\n\n this.sendExceptionEvent(errorProperties)\n }\n\n /**\n * :TRICKY: Make sure we batch these requests\n */\n sendExceptionEvent(properties: { [key: string]: any }) {\n this.instance.capture('$exception', properties, {\n _noTruncate: true,\n _batchKey: 'exceptionEvent',\n _url: this.endpoint,\n })\n }\n}\n","/**\n * Integrate Sentry with PostHog. This will add a direct link to the person in Sentry, and an $exception event in PostHog\n *\n * ### Usage\n *\n * Sentry.init({\n * dsn: 'https://example',\n * integrations: [\n * new posthog.SentryIntegration(posthog)\n * ]\n * })\n *\n * @param {Object} [posthog] The posthog object\n * @param {string} [organization] Optional: The Sentry organization, used to send a direct link from PostHog to Sentry\n * @param {Number} [projectId] Optional: The Sentry project id, used to send a direct link from PostHog to Sentry\n * @param {string} [prefix] Optional: Url of a self-hosted sentry instance (default: https://sentry.io/organizations/)\n */\n\nimport { PostHog } from '../posthog-core'\nimport { SeverityLevel } from '../types'\nimport { BASE_ERROR_ENDPOINT } from './exception-autocapture'\n\n// NOTE - we can't import from @sentry/types because it changes frequently and causes clashes\n// We only use a small subset of the types, so we can just define the integration overall and use any for the rest\n\n// import {\n// Event as _SentryEvent,\n// EventProcessor as _SentryEventProcessor,\n// Hub as _SentryHub,\n// Integration as _SentryIntegration,\n// SeverityLevel as _SeverityLevel,\n// IntegrationClass as _SentryIntegrationClass,\n// } from '@sentry/types'\n\n// Uncomment the above and comment the below to get type checking for development\n\ntype _SentryEvent = any\ntype _SentryEventProcessor = any\ntype _SentryHub = any\n\ninterface _SentryIntegrationClass {\n name: string\n setupOnce(addGlobalEventProcessor: (callback: _SentryEventProcessor) => void, getCurrentHub: () => _SentryHub): void\n}\n\ninterface _SentryIntegration {\n name: string\n processEvent(event: _SentryEvent): _SentryEvent\n}\n\ninterface SentryExceptionProperties {\n $sentry_event_id: any\n $sentry_exception: any\n $sentry_exception_message: any\n $sentry_exception_type: any\n $sentry_tags: any\n $sentry_url?: string\n}\n\nexport type SentryIntegrationOptions = {\n organization?: string\n projectId?: number\n prefix?: string\n /**\n * By default, only errors are sent to PostHog. You can set this to '*' to send all events.\n * Or to an error of SeverityLevel to only send events matching the provided levels.\n * e.g. ['error', 'fatal'] to send only errors and fatals\n * e.g. ['error'] to send only errors -- the default when omitted\n * e.g. '*' to send all events\n */\n severityAllowList?: SeverityLevel[] | '*'\n}\n\nconst NAME = 'posthog-js'\n\nexport function createEventProcessor(\n _posthog: PostHog,\n { organization, projectId, prefix, severityAllowList = ['error'] }: SentryIntegrationOptions = {}\n): (event: _SentryEvent) => _SentryEvent {\n return (event) => {\n const shouldProcessLevel = severityAllowList === '*' || severityAllowList.includes(event.level as SeverityLevel)\n if (!shouldProcessLevel || !_posthog.__loaded) return event\n if (!event.tags) event.tags = {}\n\n const personUrl = _posthog.requestRouter.endpointFor(\n 'ui',\n `/project/${_posthog.config.token}/person/${_posthog.get_distinct_id()}`\n )\n event.tags['PostHog Person URL'] = personUrl\n if (_posthog.sessionRecordingStarted()) {\n event.tags['PostHog Recording URL'] = _posthog.get_session_replay_url({ withTimestamp: true })\n }\n\n const exceptions = event.exception?.values || []\n\n const data: SentryExceptionProperties & {\n // two properties added to match any exception auto-capture\n // added manually to avoid any dependency on the lazily loaded content\n $exception_message: any\n $exception_type: any\n $exception_personURL: string\n $exception_level: SeverityLevel\n $level: SeverityLevel\n } = {\n // PostHog Exception Properties,\n $exception_message: exceptions[0]?.value || event.message,\n $exception_type: exceptions[0]?.type,\n $exception_personURL: personUrl,\n $exception_level: event.level,\n // Sentry Exception Properties\n $sentry_event_id: event.event_id,\n $sentry_exception: event.exception,\n $sentry_exception_message: exceptions[0]?.value || event.message,\n $sentry_exception_type: exceptions[0]?.type,\n $sentry_tags: event.tags,\n $level: event.level,\n }\n\n if (organization && projectId) {\n data['$sentry_url'] =\n (prefix || 'https://sentry.io/organizations/') +\n organization +\n '/issues/?project=' +\n projectId +\n '&query=' +\n event.event_id\n }\n\n // we take the URL from the exception observer\n // so that when we add error specific URL for ingestion\n // these errors are sent there too\n _posthog.capture('$exception', data, { _url: _posthog.exceptionObserver?.endpoint || BASE_ERROR_ENDPOINT })\n\n return event\n }\n}\n\n// V8 integration - function based\nexport function sentryIntegration(_posthog: PostHog, options?: SentryIntegrationOptions): _SentryIntegration {\n const processor = createEventProcessor(_posthog, options)\n return {\n name: NAME,\n processEvent(event) {\n return processor(event)\n },\n }\n}\n// V7 integration - class based\nexport class SentryIntegration implements _SentryIntegrationClass {\n name: string\n\n setupOnce: (\n addGlobalEventProcessor: (callback: _SentryEventProcessor) => void,\n getCurrentHub: () => _SentryHub\n ) => void\n\n constructor(\n _posthog: PostHog,\n organization?: string,\n projectId?: number,\n prefix?: string,\n /**\n * By default, only errors are sent to PostHog. You can set this to '*' to send all events.\n * Or to an error of SeverityLevel to only send events matching the provided levels.\n * e.g. ['error', 'fatal'] to send only errors and fatals\n * e.g. ['error'] to send only errors -- the default when omitted\n * e.g. '*' to send all events\n */\n severityAllowList?: SeverityLevel[] | '*'\n ) {\n // setupOnce gets called by Sentry when it intializes the plugin\n this.name = NAME\n this.setupOnce = function (addGlobalEventProcessor: (callback: _SentryEventProcessor) => void) {\n addGlobalEventProcessor(\n createEventProcessor(_posthog, { organization, projectId, prefix, severityAllowList })\n )\n }\n }\n}\n","import { window } from './utils/globals'\nimport { PostHog } from './posthog-core'\nimport { isUndefined } from './utils/type-utils'\n\ninterface PageViewEventProperties {\n $prev_pageview_pathname?: string\n $prev_pageview_last_scroll?: number\n $prev_pageview_last_scroll_percentage?: number\n $prev_pageview_max_scroll?: number\n $prev_pageview_max_scroll_percentage?: number\n $prev_pageview_last_content?: number\n $prev_pageview_last_content_percentage?: number\n $prev_pageview_max_content?: number\n $prev_pageview_max_content_percentage?: number\n}\n\nexport class PageViewManager {\n _currentPath?: string\n _instance: PostHog\n\n constructor(instance: PostHog) {\n this._instance = instance\n }\n\n doPageView(): PageViewEventProperties {\n const response = this._previousScrollProperties()\n\n // On a pageview we reset the contexts\n this._currentPath = window?.location.pathname ?? ''\n this._instance.scrollManager.resetContext()\n\n return response\n }\n\n doPageLeave(): PageViewEventProperties {\n return this._previousScrollProperties()\n }\n\n private _previousScrollProperties(): PageViewEventProperties {\n const previousPath = this._currentPath\n const scrollContext = this._instance.scrollManager.getContext()\n\n if (!previousPath || !scrollContext) {\n return {}\n }\n\n let { maxScrollHeight, lastScrollY, maxScrollY, maxContentHeight, lastContentY, maxContentY } = scrollContext\n\n if (\n isUndefined(maxScrollHeight) ||\n isUndefined(lastScrollY) ||\n isUndefined(maxScrollY) ||\n isUndefined(maxContentHeight) ||\n isUndefined(lastContentY) ||\n isUndefined(maxContentY)\n ) {\n return {}\n }\n\n // Use ceil, so that e.g. scrolling 999.5px of a 1000px page is considered 100% scrolled\n maxScrollHeight = Math.ceil(maxScrollHeight)\n lastScrollY = Math.ceil(lastScrollY)\n maxScrollY = Math.ceil(maxScrollY)\n maxContentHeight = Math.ceil(maxContentHeight)\n lastContentY = Math.ceil(lastContentY)\n maxContentY = Math.ceil(maxContentY)\n\n // if the maximum scroll height is near 0, then the percentage is 1\n const lastScrollPercentage = maxScrollHeight <= 1 ? 1 : clamp(lastScrollY / maxScrollHeight, 0, 1)\n const maxScrollPercentage = maxScrollHeight <= 1 ? 1 : clamp(maxScrollY / maxScrollHeight, 0, 1)\n const lastContentPercentage = maxContentHeight <= 1 ? 1 : clamp(lastContentY / maxContentHeight, 0, 1)\n const maxContentPercentage = maxContentHeight <= 1 ? 1 : clamp(maxContentY / maxContentHeight, 0, 1)\n\n return {\n $prev_pageview_pathname: previousPath,\n $prev_pageview_last_scroll: lastScrollY,\n $prev_pageview_last_scroll_percentage: lastScrollPercentage,\n $prev_pageview_max_scroll: maxScrollY,\n $prev_pageview_max_scroll_percentage: maxScrollPercentage,\n $prev_pageview_last_content: lastContentY,\n $prev_pageview_last_content_percentage: lastContentPercentage,\n $prev_pageview_max_content: maxContentY,\n $prev_pageview_max_content_percentage: maxContentPercentage,\n }\n }\n}\n\nfunction clamp(x: number, min: number, max: number) {\n return Math.max(min, Math.min(x, max))\n}\n","/**\n * Having Survey types in types.ts was confusing tsc\n * and generating an invalid module.d.ts\n * See https://github.com/PostHog/posthog-js/issues/698\n */\n\nexport interface SurveyAppearance {\n // keep in sync with frontend/src/types.ts -> SurveyAppearance\n backgroundColor?: string\n submitButtonColor?: string\n // text color is deprecated, use auto contrast text color instead\n textColor?: string\n // deprecate submit button text eventually\n submitButtonText?: string\n descriptionTextColor?: string\n ratingButtonColor?: string\n ratingButtonActiveColor?: string\n ratingButtonHoverColor?: string\n whiteLabel?: boolean\n autoDisappear?: boolean\n displayThankYouMessage?: boolean\n thankYouMessageHeader?: string\n thankYouMessageDescription?: string\n thankYouMessageDescriptionContentType?: SurveyQuestionDescriptionContentType\n thankYouMessageCloseButtonText?: string\n borderColor?: string\n position?: 'left' | 'right' | 'center'\n placeholder?: string\n shuffleQuestions?: boolean\n surveyPopupDelaySeconds?: number\n // widget options\n widgetType?: 'button' | 'tab' | 'selector'\n widgetSelector?: string\n widgetLabel?: string\n widgetColor?: string\n // questionable: Not in frontend/src/types.ts -> SurveyAppearance, but used in site app\n maxWidth?: string\n zIndex?: string\n}\n\nexport enum SurveyType {\n Popover = 'popover',\n API = 'api',\n Widget = 'widget',\n}\n\nexport type SurveyQuestion = BasicSurveyQuestion | LinkSurveyQuestion | RatingSurveyQuestion | MultipleSurveyQuestion\n\nexport type SurveyQuestionDescriptionContentType = 'html' | 'text'\n\ninterface SurveyQuestionBase {\n question: string\n description?: string | null\n descriptionContentType?: SurveyQuestionDescriptionContentType\n optional?: boolean\n buttonText?: string\n originalQuestionIndex: number\n branching?: NextQuestionBranching | EndBranching | ResponseBasedBranching | SpecificQuestionBranching\n}\n\nexport interface BasicSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Open\n}\n\nexport interface LinkSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Link\n link?: string | null\n}\n\nexport interface RatingSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Rating\n display: 'number' | 'emoji'\n scale: 3 | 5 | 7 | 10\n lowerBoundLabel: string\n upperBoundLabel: string\n}\n\nexport interface MultipleSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.SingleChoice | SurveyQuestionType.MultipleChoice\n choices: string[]\n hasOpenChoice?: boolean\n shuffleOptions?: boolean\n}\n\nexport enum SurveyQuestionType {\n Open = 'open',\n MultipleChoice = 'multiple_choice',\n SingleChoice = 'single_choice',\n Rating = 'rating',\n Link = 'link',\n}\n\nexport enum SurveyQuestionBranchingType {\n NextQuestion = 'next_question',\n End = 'end',\n ResponseBased = 'response_based',\n SpecificQuestion = 'specific_question',\n}\n\ninterface NextQuestionBranching {\n type: SurveyQuestionBranchingType.NextQuestion\n}\n\ninterface EndBranching {\n type: SurveyQuestionBranchingType.End\n}\n\ninterface ResponseBasedBranching {\n type: SurveyQuestionBranchingType.ResponseBased\n responseValues: Record\n}\n\ninterface SpecificQuestionBranching {\n type: SurveyQuestionBranchingType.SpecificQuestion\n index: number\n}\n\nexport interface SurveyResponse {\n surveys: Survey[]\n}\n\nexport type SurveyCallback = (surveys: Survey[]) => void\n\nexport type SurveyUrlMatchType = 'regex' | 'not_regex' | 'exact' | 'is_not' | 'icontains' | 'not_icontains'\n\nexport interface SurveyElement {\n text?: string\n $el_text?: string\n tag_name?: string\n href?: string\n attr_id?: string\n attr_class?: string[]\n nth_child?: number\n nth_of_type?: number\n attributes?: Record\n event_id?: number\n order?: number\n group_id?: number\n}\nexport interface Survey {\n // Sync this with the backend's SurveyAPISerializer!\n id: string\n name: string\n description: string\n type: SurveyType\n linked_flag_key: string | null\n targeting_flag_key: string | null\n internal_targeting_flag_key: string | null\n questions: SurveyQuestion[]\n appearance: SurveyAppearance | null\n conditions: {\n url?: string\n selector?: string\n seenSurveyWaitPeriodInDays?: number\n urlMatchType?: SurveyUrlMatchType\n events: {\n repeatedActivation?: boolean\n values: {\n name: string\n }[]\n } | null\n actions: {\n values: ActionType[]\n } | null\n } | null\n start_date: string | null\n end_date: string | null\n current_iteration: number | null\n current_iteration_start_date: string | null\n}\n\nexport interface ActionType {\n count?: number\n created_at: string\n deleted?: boolean\n id: number\n name: string | null\n steps?: ActionStepType[]\n tags?: string[]\n is_action?: true\n action_id?: number // alias of id to make it compatible with event definitions uuid\n}\n\n/** Sync with plugin-server/src/types.ts */\nexport type ActionStepStringMatching = 'contains' | 'exact' | 'regex'\n\nexport interface ActionStepType {\n event?: string | null\n selector?: string | null\n /** @deprecated Only `selector` should be used now. */\n tag_name?: string\n text?: string | null\n /** @default StringMatching.Exact */\n text_matching?: ActionStepStringMatching | null\n href?: string | null\n /** @default ActionStepStringMatching.Exact */\n href_matching?: ActionStepStringMatching | null\n url?: string | null\n /** @default StringMatching.Contains */\n url_matching?: ActionStepStringMatching | null\n}\n","export class SimpleEventEmitter {\n private events: { [key: string]: ((...args: any[]) => void)[] } = {}\n\n constructor() {\n this.events = {}\n }\n\n on(event: string, listener: (...args: any[]) => void): () => void {\n if (!this.events[event]) {\n this.events[event] = []\n }\n this.events[event].push(listener)\n\n return () => {\n this.events[event] = this.events[event].filter((x) => x !== listener)\n }\n }\n\n emit(event: string, payload: any): void {\n for (const listener of this.events[event] || []) {\n listener(payload)\n }\n for (const listener of this.events['*'] || []) {\n listener(event, payload)\n }\n }\n}\n","import { PostHog } from '../../posthog-core'\nimport { ActionStepStringMatching, ActionStepType, ActionType, SurveyElement } from '../../posthog-surveys-types'\nimport { SimpleEventEmitter } from '../../utils/simple-event-emitter'\nimport { CaptureResult } from '../../types'\nimport { isUndefined } from '../../utils/type-utils'\nimport { window } from '../../utils/globals'\nimport { isUrlMatchingRegex } from '../../utils/request-utils'\n\nexport class ActionMatcher {\n private readonly actionRegistry?: Set\n private readonly instance?: PostHog\n private readonly actionEvents: Set\n private _debugEventEmitter = new SimpleEventEmitter()\n\n constructor(instance?: PostHog) {\n this.instance = instance\n this.actionEvents = new Set()\n this.actionRegistry = new Set()\n }\n\n init() {\n if (!isUndefined(this.instance?._addCaptureHook)) {\n const matchEventToAction = (eventName: string, eventPayload: any) => {\n this.on(eventName, eventPayload)\n }\n this.instance?._addCaptureHook(matchEventToAction)\n }\n }\n\n register(actions: ActionType[]): void {\n if (isUndefined(this.instance?._addCaptureHook)) {\n return\n }\n\n actions.forEach((action) => {\n this.actionRegistry?.add(action)\n action.steps?.forEach((step) => {\n this.actionEvents?.add(step?.event || '')\n })\n })\n\n if (this.instance?.autocapture) {\n const selectorsToWatch: Set = new Set()\n actions.forEach((action) => {\n action.steps?.forEach((step) => {\n if (step?.selector) {\n selectorsToWatch.add(step?.selector)\n }\n })\n })\n this.instance?.autocapture.setElementSelectors(selectorsToWatch)\n }\n }\n\n on(eventName: string, eventPayload?: CaptureResult) {\n if (eventPayload == null || eventName.length == 0) {\n return\n }\n\n if (!this.actionEvents.has(eventName) && !this.actionEvents.has(eventPayload?.event)) {\n return\n }\n\n if (this.actionRegistry && this.actionRegistry?.size > 0) {\n this.actionRegistry.forEach((action) => {\n if (this.checkAction(eventPayload, action)) {\n this._debugEventEmitter.emit('actionCaptured', action.name)\n }\n })\n }\n }\n\n _addActionHook(callback: (actionName: string, eventPayload?: any) => void): void {\n this.onAction('actionCaptured', (data) => callback(data))\n }\n\n private checkAction(event?: CaptureResult, action?: ActionType): boolean {\n if (action?.steps == null) {\n return false\n }\n\n for (const step of action.steps) {\n if (this.checkStep(event, step)) {\n return true\n }\n }\n\n return false\n }\n\n onAction(event: 'actionCaptured', cb: (...args: any[]) => void): () => void {\n return this._debugEventEmitter.on(event, cb)\n }\n\n private checkStep = (event?: CaptureResult, step?: ActionStepType): boolean => {\n return this.checkStepEvent(event, step) && this.checkStepUrl(event, step) && this.checkStepElement(event, step)\n }\n\n private checkStepEvent = (event?: CaptureResult, step?: ActionStepType): boolean => {\n // CHECK CONDITIONS, OTHERWISE SKIPPED\n if (step?.event && event?.event !== step?.event) {\n return false // EVENT NAME IS A MISMATCH\n }\n return true\n }\n\n private checkStepUrl(event?: CaptureResult, step?: ActionStepType): boolean {\n // CHECK CONDITIONS, OTHERWISE SKIPPED\n if (step?.url) {\n const eventUrl = event?.properties?.$current_url\n if (!eventUrl || typeof eventUrl !== 'string') {\n return false // URL IS UNKNOWN\n }\n if (!ActionMatcher.matchString(eventUrl, step?.url, step?.url_matching || 'contains')) {\n return false // URL IS A MISMATCH\n }\n }\n return true\n }\n\n private static matchString(url: string, pattern: string, matching: ActionStepStringMatching): boolean {\n switch (matching) {\n case 'regex':\n return !!window && isUrlMatchingRegex(url, pattern)\n case 'exact':\n return pattern === url\n case 'contains':\n // Simulating SQL LIKE behavior (_ = any single character, % = any zero or more characters)\n // eslint-disable-next-line no-case-declarations\n const adjustedRegExpStringPattern = ActionMatcher.escapeStringRegexp(pattern)\n .replace(/_/g, '.')\n .replace(/%/g, '.*')\n return isUrlMatchingRegex(url, adjustedRegExpStringPattern)\n\n default:\n return false\n }\n }\n\n private static escapeStringRegexp(pattern: string): string {\n // Escape characters with special meaning either inside or outside character sets.\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n return pattern.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d')\n }\n\n private checkStepElement(event?: CaptureResult, step?: ActionStepType): boolean {\n // CHECK CONDITIONS, OTHERWISE SKIPPED\n if (step?.href || step?.tag_name || step?.text) {\n const elements = this.getElementsList(event)\n if (\n !elements.some((element) => {\n if (\n step?.href &&\n !ActionMatcher.matchString(element.href || '', step?.href, step?.href_matching || 'exact')\n ) {\n return false // ELEMENT HREF IS A MISMATCH\n }\n if (step?.tag_name && element.tag_name !== step?.tag_name) {\n return false // ELEMENT TAG NAME IS A MISMATCH\n }\n if (\n step?.text &&\n !(\n ActionMatcher.matchString(element.text || '', step?.text, step?.text_matching || 'exact') ||\n ActionMatcher.matchString(\n element.$el_text || '',\n step?.text,\n step?.text_matching || 'exact'\n )\n )\n ) {\n return false // ELEMENT TEXT IS A MISMATCH\n }\n return true\n })\n ) {\n // AT LEAST ONE ELEMENT MUST BE A SUBMATCH\n return false\n }\n }\n\n if (step?.selector) {\n const elementSelectors = event?.properties?.$element_selectors as unknown as string[]\n if (!elementSelectors) {\n return false // SELECTOR IS A MISMATCH\n }\n if (!elementSelectors.includes(step?.selector)) {\n return false // SELECTOR IS A MISMATCH\n }\n }\n\n return true\n }\n\n private getElementsList(event?: CaptureResult): SurveyElement[] {\n if (event?.properties.$elements == null) {\n return []\n }\n\n return event?.properties.$elements as unknown as SurveyElement[]\n }\n}\n","import { Survey } from '../posthog-surveys-types'\nimport { SURVEYS_ACTIVATED } from '../constants'\n\nimport { CaptureResult } from '../types'\nimport { ActionMatcher } from '../extensions/surveys/action-matcher'\nimport { PostHog } from '../posthog-core'\nimport { isUndefined } from './type-utils'\n\nexport class SurveyEventReceiver {\n // eventToSurveys is a mapping of event name to all the surveys that are activated by it\n private readonly eventToSurveys: Map\n // actionToSurveys is a mapping of action name to all the surveys that are activated by it\n private readonly actionToSurveys: Map\n // actionMatcher can look at CaptureResult payloads and match an event to its corresponding action.\n private actionMatcher?: ActionMatcher | null\n private readonly instance?: PostHog\n private static SURVEY_SHOWN_EVENT_NAME = 'survey shown'\n\n constructor(instance: PostHog) {\n this.instance = instance\n this.eventToSurveys = new Map()\n this.actionToSurveys = new Map()\n }\n\n register(surveys: Survey[]): void {\n if (isUndefined(this.instance?._addCaptureHook)) {\n return\n }\n\n this.setupEventBasedSurveys(surveys)\n this.setupActionBasedSurveys(surveys)\n }\n\n private setupActionBasedSurveys(surveys: Survey[]) {\n const actionBasedSurveys = surveys.filter(\n (survey: Survey) => survey.conditions?.actions && survey.conditions?.actions?.values?.length > 0\n )\n\n if (actionBasedSurveys.length === 0) {\n return\n }\n\n if (this.actionMatcher == null) {\n this.actionMatcher = new ActionMatcher(this.instance)\n this.actionMatcher.init()\n // match any actions to its corresponding survey.\n const matchActionToSurvey = (actionName: string) => {\n this.onAction(actionName)\n }\n\n this.actionMatcher._addActionHook(matchActionToSurvey)\n }\n\n actionBasedSurveys.forEach((survey) => {\n if (\n survey.conditions &&\n survey.conditions?.actions &&\n survey.conditions?.actions?.values &&\n survey.conditions?.actions?.values?.length > 0\n ) {\n // register the known set of actions with\n // the action-matcher so it can match\n // events to actions\n this.actionMatcher?.register(survey.conditions.actions.values)\n\n // maintain a mapping of (Action1) => [Survey1, Survey2, Survey3]\n // where Surveys 1-3 are all activated by Action1\n survey.conditions?.actions?.values?.forEach((action) => {\n if (action && action.name) {\n const knownSurveys: string[] | undefined = this.actionToSurveys.get(action.name)\n if (knownSurveys) {\n knownSurveys.push(survey.id)\n }\n this.actionToSurveys.set(action.name, knownSurveys || [survey.id])\n }\n })\n }\n })\n }\n\n private setupEventBasedSurveys(surveys: Survey[]) {\n const eventBasedSurveys = surveys.filter(\n (survey: Survey) => survey.conditions?.events && survey.conditions?.events?.values?.length > 0\n )\n\n if (eventBasedSurveys.length === 0) {\n return\n }\n\n // match any events to its corresponding survey.\n const matchEventToSurvey = (eventName: string) => {\n this.onEvent(eventName)\n }\n this.instance?._addCaptureHook(matchEventToSurvey)\n\n surveys.forEach((survey) => {\n // maintain a mapping of (Event1) => [Survey1, Survey2, Survey3]\n // where Surveys 1-3 are all activated by Event1\n survey.conditions?.events?.values?.forEach((event) => {\n if (event && event.name) {\n const knownSurveys: string[] | undefined = this.eventToSurveys.get(event.name)\n if (knownSurveys) {\n knownSurveys.push(survey.id)\n }\n this.eventToSurveys.set(event.name, knownSurveys || [survey.id])\n }\n })\n })\n }\n\n onEvent(event: string, eventPayload?: CaptureResult): void {\n const existingActivatedSurveys: string[] = this.instance?.persistence?.props[SURVEYS_ACTIVATED] || []\n if (\n SurveyEventReceiver.SURVEY_SHOWN_EVENT_NAME == event &&\n eventPayload &&\n existingActivatedSurveys.length > 0\n ) {\n // remove survey that from activatedSurveys here.\n const surveyId = eventPayload?.properties?.$survey_id\n if (surveyId) {\n const index = existingActivatedSurveys.indexOf(surveyId)\n if (index >= 0) {\n existingActivatedSurveys.splice(index, 1)\n this._updateActivatedSurveys(existingActivatedSurveys)\n }\n }\n } else {\n if (this.eventToSurveys.has(event)) {\n this._updateActivatedSurveys(existingActivatedSurveys.concat(this.eventToSurveys.get(event) || []))\n }\n }\n }\n\n onAction(actionName: string): void {\n const existingActivatedSurveys: string[] = this.instance?.persistence?.props[SURVEYS_ACTIVATED] || []\n if (this.actionToSurveys.has(actionName)) {\n this._updateActivatedSurveys(existingActivatedSurveys.concat(this.actionToSurveys.get(actionName) || []))\n }\n }\n\n private _updateActivatedSurveys(activatedSurveys: string[]) {\n // we use a new Set here to remove duplicates.\n this.instance?.persistence?.register({\n [SURVEYS_ACTIVATED]: [...new Set(activatedSurveys)],\n })\n }\n\n getSurveys(): string[] {\n const existingActivatedSurveys = this.instance?.persistence?.props[SURVEYS_ACTIVATED]\n return existingActivatedSurveys ? existingActivatedSurveys : []\n }\n\n getEventToSurveys(): Map {\n return this.eventToSurveys\n }\n\n _getActionMatcher(): ActionMatcher | null | undefined {\n return this.actionMatcher\n }\n}\n","import { PostHog } from './posthog-core'\nimport { SURVEYS } from './constants'\nimport {\n Survey,\n SurveyCallback,\n SurveyQuestionBranchingType,\n SurveyQuestionType,\n SurveyUrlMatchType,\n} from './posthog-surveys-types'\nimport { isUrlMatchingRegex } from './utils/request-utils'\nimport { SurveyEventReceiver } from './utils/survey-event-receiver'\nimport { assignableWindow, document, window } from './utils/globals'\nimport { DecideResponse } from './types'\nimport { logger } from './utils/logger'\nimport { isNullish } from './utils/type-utils'\n\nconst LOGGER_PREFIX = '[Surveys]'\n\nexport const surveyUrlValidationMap: Record boolean> = {\n icontains: (conditionsUrl) =>\n !!window && window.location.href.toLowerCase().indexOf(conditionsUrl.toLowerCase()) > -1,\n not_icontains: (conditionsUrl) =>\n !!window && window.location.href.toLowerCase().indexOf(conditionsUrl.toLowerCase()) === -1,\n regex: (conditionsUrl) => !!window && isUrlMatchingRegex(window.location.href, conditionsUrl),\n not_regex: (conditionsUrl) => !!window && !isUrlMatchingRegex(window.location.href, conditionsUrl),\n exact: (conditionsUrl) => window?.location.href === conditionsUrl,\n is_not: (conditionsUrl) => window?.location.href !== conditionsUrl,\n}\n\nfunction getRatingBucketForResponseValue(responseValue: number, scale: number) {\n if (scale === 3) {\n if (responseValue < 1 || responseValue > 3) {\n throw new Error('The response must be in range 1-3')\n }\n\n return responseValue === 1 ? 'negative' : responseValue === 2 ? 'neutral' : 'positive'\n } else if (scale === 5) {\n if (responseValue < 1 || responseValue > 5) {\n throw new Error('The response must be in range 1-5')\n }\n\n return responseValue <= 2 ? 'negative' : responseValue === 3 ? 'neutral' : 'positive'\n } else if (scale === 10) {\n if (responseValue < 0 || responseValue > 10) {\n throw new Error('The response must be in range 0-10')\n }\n\n return responseValue <= 6 ? 'detractors' : responseValue <= 8 ? 'passives' : 'promoters'\n }\n\n throw new Error('The scale must be one of: 3, 5, 10')\n}\n\nexport class PostHogSurveys {\n private _decideServerResponse?: boolean\n public _surveyEventReceiver: SurveyEventReceiver | null\n\n constructor(private readonly instance: PostHog) {\n // we set this to undefined here because we need the persistence storage for this type\n // but that's not initialized until loadIfEnabled is called.\n this._surveyEventReceiver = null\n }\n\n afterDecideResponse(response: DecideResponse) {\n this._decideServerResponse = !!response['surveys']\n this.loadIfEnabled()\n }\n\n loadIfEnabled() {\n const surveysGenerator = assignableWindow?.extendPostHogWithSurveys\n\n if (!this.instance.config.disable_surveys && this._decideServerResponse && !surveysGenerator) {\n if (this._surveyEventReceiver == null) {\n this._surveyEventReceiver = new SurveyEventReceiver(this.instance)\n }\n this.instance.requestRouter.loadScript('/static/surveys.js', (err) => {\n if (err) {\n return logger.error(LOGGER_PREFIX, 'Could not load surveys script', err)\n }\n\n assignableWindow.extendPostHogWithSurveys(this.instance)\n })\n }\n }\n\n getSurveys(callback: SurveyCallback, forceReload = false) {\n // In case we manage to load the surveys script, but config says not to load surveys\n // then we shouldn't return survey data\n if (this.instance.config.disable_surveys) {\n return callback([])\n }\n\n if (this._surveyEventReceiver == null) {\n this._surveyEventReceiver = new SurveyEventReceiver(this.instance)\n }\n\n const existingSurveys = this.instance.get_property(SURVEYS)\n if (!existingSurveys || forceReload) {\n this.instance._send_request({\n url: this.instance.requestRouter.endpointFor(\n 'api',\n `/api/surveys/?token=${this.instance.config.token}`\n ),\n method: 'GET',\n transport: 'XHR',\n callback: (response) => {\n if (response.statusCode !== 200 || !response.json) {\n return callback([])\n }\n const surveys = response.json.surveys || []\n\n const eventOrActionBasedSurveys = surveys.filter(\n (survey: Survey) =>\n (survey.conditions?.events &&\n survey.conditions?.events?.values &&\n survey.conditions?.events?.values?.length > 0) ||\n (survey.conditions?.actions &&\n survey.conditions?.actions?.values &&\n survey.conditions?.actions?.values?.length > 0)\n )\n\n if (eventOrActionBasedSurveys.length > 0) {\n this._surveyEventReceiver?.register(eventOrActionBasedSurveys)\n }\n\n this.instance.persistence?.register({ [SURVEYS]: surveys })\n return callback(surveys)\n },\n })\n } else {\n return callback(existingSurveys)\n }\n }\n\n getActiveMatchingSurveys(callback: SurveyCallback, forceReload = false) {\n this.getSurveys((surveys) => {\n const activeSurveys = surveys.filter((survey) => {\n return !!(survey.start_date && !survey.end_date)\n })\n\n const conditionMatchedSurveys = activeSurveys.filter((survey) => {\n if (!survey.conditions) {\n return true\n }\n\n // use urlMatchType to validate url condition, fallback to contains for backwards compatibility\n const urlCheck = survey.conditions?.url\n ? surveyUrlValidationMap[survey.conditions?.urlMatchType ?? 'icontains'](survey.conditions.url)\n : true\n const selectorCheck = survey.conditions?.selector\n ? document?.querySelector(survey.conditions.selector)\n : true\n return urlCheck && selectorCheck\n })\n\n // get all the surveys that have been activated so far with user actions.\n const activatedSurveys: string[] | undefined = this._surveyEventReceiver?.getSurveys()\n const targetingMatchedSurveys = conditionMatchedSurveys.filter((survey) => {\n if (!survey.linked_flag_key && !survey.targeting_flag_key && !survey.internal_targeting_flag_key) {\n return true\n }\n const linkedFlagCheck = survey.linked_flag_key\n ? this.instance.featureFlags.isFeatureEnabled(survey.linked_flag_key)\n : true\n const targetingFlagCheck = survey.targeting_flag_key\n ? this.instance.featureFlags.isFeatureEnabled(survey.targeting_flag_key)\n : true\n\n const hasEvents =\n survey.conditions?.events &&\n survey.conditions?.events?.values &&\n survey.conditions?.events?.values.length > 0\n\n const hasActions =\n survey.conditions?.actions &&\n survey.conditions?.actions?.values &&\n survey.conditions?.actions?.values.length > 0\n const eventBasedTargetingFlagCheck =\n hasEvents || hasActions ? activatedSurveys?.includes(survey.id) : true\n\n const overrideInternalTargetingFlagCheck = this._canActivateRepeatedly(survey)\n const internalTargetingFlagCheck =\n survey.internal_targeting_flag_key && !overrideInternalTargetingFlagCheck\n ? this.instance.featureFlags.isFeatureEnabled(survey.internal_targeting_flag_key)\n : true\n\n return (\n linkedFlagCheck && targetingFlagCheck && internalTargetingFlagCheck && eventBasedTargetingFlagCheck\n )\n })\n\n return callback(targetingMatchedSurveys)\n }, forceReload)\n }\n\n getNextSurveyStep(survey: Survey, currentQuestionIndex: number, response: string | string[] | number | null) {\n const question = survey.questions[currentQuestionIndex]\n const nextQuestionIndex = currentQuestionIndex + 1\n\n if (!question.branching?.type) {\n if (currentQuestionIndex === survey.questions.length - 1) {\n return SurveyQuestionBranchingType.End\n }\n\n return nextQuestionIndex\n }\n\n if (question.branching.type === SurveyQuestionBranchingType.End) {\n return SurveyQuestionBranchingType.End\n } else if (question.branching.type === SurveyQuestionBranchingType.SpecificQuestion) {\n if (Number.isInteger(question.branching.index)) {\n return question.branching.index\n }\n } else if (question.branching.type === SurveyQuestionBranchingType.ResponseBased) {\n // Single choice\n if (question.type === SurveyQuestionType.SingleChoice) {\n // :KLUDGE: for now, look up the choiceIndex based on the response\n // TODO: once QuestionTypes.MultipleChoiceQuestion is refactored, pass the selected choiceIndex into this method\n const selectedChoiceIndex = question.choices.indexOf(`${response}`)\n\n if (question.branching?.responseValues?.hasOwnProperty(selectedChoiceIndex)) {\n const nextStep = question.branching.responseValues[selectedChoiceIndex]\n\n // Specific question\n if (Number.isInteger(nextStep)) {\n return nextStep\n }\n\n if (nextStep === SurveyQuestionBranchingType.End) {\n return SurveyQuestionBranchingType.End\n }\n\n return nextQuestionIndex\n }\n } else if (question.type === SurveyQuestionType.Rating) {\n if (typeof response !== 'number' || !Number.isInteger(response)) {\n throw new Error('The response type must be an integer')\n }\n\n const ratingBucket = getRatingBucketForResponseValue(response, question.scale)\n\n if (question.branching?.responseValues?.hasOwnProperty(ratingBucket)) {\n const nextStep = question.branching.responseValues[ratingBucket]\n\n // Specific question\n if (Number.isInteger(nextStep)) {\n return nextStep\n }\n\n if (nextStep === SurveyQuestionBranchingType.End) {\n return SurveyQuestionBranchingType.End\n }\n\n return nextQuestionIndex\n }\n }\n\n return nextQuestionIndex\n }\n\n logger.warn(LOGGER_PREFIX, 'Falling back to next question index due to unexpected branching type')\n return nextQuestionIndex\n }\n\n // this method is lazily loaded onto the window to avoid loading preact and other dependencies if surveys is not enabled\n private _canActivateRepeatedly(survey: Survey) {\n if (isNullish(assignableWindow.__PosthogExtensions__.canActivateRepeatedly)) {\n logger.warn(LOGGER_PREFIX, 'canActivateRepeatedly is not defined, must init before calling')\n }\n return assignableWindow.__PosthogExtensions__.canActivateRepeatedly(survey)\n }\n}\n","import { CAPTURE_RATE_LIMIT } from './constants'\nimport type { PostHog } from './posthog-core'\nimport { RequestResponse } from './types'\nimport { logger } from './utils/logger'\n\nconst ONE_MINUTE_IN_MILLISECONDS = 60 * 1000\nconst RATE_LIMIT_EVENT = '$$client_ingestion_warning'\n\ninterface CaptureResponse {\n quota_limited?: string[]\n}\n\nexport class RateLimiter {\n instance: PostHog\n serverLimits: Record = {}\n\n captureEventsPerSecond: number\n captureEventsBurstLimit: number\n lastEventRateLimited = false\n\n constructor(instance: PostHog) {\n this.instance = instance\n\n this.captureEventsPerSecond = instance.config.rate_limiting?.events_per_second || 10\n this.captureEventsBurstLimit = Math.max(\n instance.config.rate_limiting?.events_burst_limit || this.captureEventsPerSecond * 10,\n this.captureEventsPerSecond\n )\n\n this.lastEventRateLimited = this.clientRateLimitContext(true).isRateLimited\n }\n\n public clientRateLimitContext(checkOnly = false): {\n isRateLimited: boolean\n remainingTokens: number\n } {\n // This is primarily to prevent runaway loops from flooding capture with millions of events for a single user.\n // It's as much for our protection as theirs.\n const now = new Date().getTime()\n const bucket = this.instance.persistence?.get_property(CAPTURE_RATE_LIMIT) ?? {\n tokens: this.captureEventsBurstLimit,\n last: now,\n }\n\n bucket.tokens += ((now - bucket.last) / 1000) * this.captureEventsPerSecond\n bucket.last = now\n\n if (bucket.tokens > this.captureEventsBurstLimit) {\n bucket.tokens = this.captureEventsBurstLimit\n }\n\n const isRateLimited = bucket.tokens < 1\n\n if (!isRateLimited && !checkOnly) {\n bucket.tokens = Math.max(0, bucket.tokens - 1)\n }\n\n if (isRateLimited && !this.lastEventRateLimited && !checkOnly) {\n this.instance.capture(\n RATE_LIMIT_EVENT,\n {\n $$client_ingestion_warning_message: `posthog-js client rate limited. Config is set to ${this.captureEventsPerSecond} events per second and ${this.captureEventsBurstLimit} events burst limit.`,\n },\n {\n skip_client_rate_limiting: true,\n }\n )\n }\n\n this.lastEventRateLimited = isRateLimited\n this.instance.persistence?.set_property(CAPTURE_RATE_LIMIT, bucket)\n\n return {\n isRateLimited,\n remainingTokens: bucket.tokens,\n }\n }\n\n public isServerRateLimited(batchKey: string | undefined): boolean {\n const retryAfter = this.serverLimits[batchKey || 'events'] || false\n\n if (retryAfter === false) {\n return false\n }\n return new Date().getTime() < retryAfter\n }\n\n public checkForLimiting = (httpResponse: RequestResponse): void => {\n const text = httpResponse.text\n\n if (!text || !text.length) {\n return\n }\n\n try {\n const response: CaptureResponse = JSON.parse(text)\n const quotaLimitedProducts = response.quota_limited || []\n quotaLimitedProducts.forEach((batchKey) => {\n logger.info(`[RateLimiter] ${batchKey || 'events'} is quota limited.`)\n this.serverLimits[batchKey] = new Date().getTime() + ONE_MINUTE_IN_MILLISECONDS\n })\n } catch (e: any) {\n logger.warn(`[RateLimiter] could not rate limit - continuing. Error: \"${e?.message}\"`, { text })\n return\n }\n }\n}\n","/* Client-side session parameters. These are primarily used by web analytics,\n * which relies on these for session analytics without the plugin server being\n * available for the person level set-once properties. Obviously not consistent\n * between client-side events and server-side events but this is acceptable\n * as web analytics only uses client-side.\n *\n * These have the same lifespan as a session_id\n */\nimport { location } from './utils/globals'\nimport { Info } from './utils/event-utils'\nimport { SessionIdManager } from './sessionid'\nimport { PostHogPersistence } from './posthog-persistence'\nimport { CLIENT_SESSION_PROPS } from './constants'\n\ninterface SessionSourceProps {\n initialPathName: string\n referringDomain: string // Is actually host, but named domain for internal consistency. Should contain a port if there is one.\n utm_medium?: string\n utm_source?: string\n utm_campaign?: string\n utm_content?: string\n utm_term?: string\n}\n\ninterface StoredSessionSourceProps {\n sessionId: string\n props: SessionSourceProps\n}\n\nconst generateSessionSourceParams = (): SessionSourceProps => {\n return {\n initialPathName: location?.pathname || '',\n referringDomain: Info.referringDomain(),\n ...Info.campaignParams(),\n }\n}\n\nexport class SessionPropsManager {\n private readonly _sessionIdManager: SessionIdManager\n private readonly _persistence: PostHogPersistence\n private readonly _sessionSourceParamGenerator: () => SessionSourceProps\n\n constructor(\n sessionIdManager: SessionIdManager,\n persistence: PostHogPersistence,\n sessionSourceParamGenerator?: () => SessionSourceProps\n ) {\n this._sessionIdManager = sessionIdManager\n this._persistence = persistence\n this._sessionSourceParamGenerator = sessionSourceParamGenerator || generateSessionSourceParams\n\n this._sessionIdManager.onSessionId(this._onSessionIdCallback)\n }\n\n _getStoredProps(): StoredSessionSourceProps | undefined {\n return this._persistence.props[CLIENT_SESSION_PROPS]\n }\n\n _onSessionIdCallback = (sessionId: string) => {\n const stored = this._getStoredProps()\n if (stored && stored.sessionId === sessionId) {\n return\n }\n\n const newProps: StoredSessionSourceProps = {\n sessionId,\n props: this._sessionSourceParamGenerator(),\n }\n this._persistence.register({ [CLIENT_SESSION_PROPS]: newProps })\n }\n\n getSessionProps() {\n const p = this._getStoredProps()?.props\n if (!p) {\n return {}\n }\n\n return {\n $client_session_initial_referring_host: p.referringDomain,\n $client_session_initial_pathname: p.initialPathName,\n $client_session_initial_utm_source: p.utm_source,\n $client_session_initial_utm_campaign: p.utm_campaign,\n $client_session_initial_utm_medium: p.utm_medium,\n $client_session_initial_utm_content: p.utm_content,\n $client_session_initial_utm_term: p.utm_term,\n }\n }\n}\n","export const DEFAULT_BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'ahrefssiteaudit',\n 'applebot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'bot.htm',\n 'bot.php',\n 'crawler',\n 'deepscan',\n 'duckduckbot',\n 'facebookexternal',\n 'facebookcatalog',\n 'gptbot',\n 'http://yandex.com/bots',\n 'hubspot',\n 'ia_archiver',\n 'linkedinbot',\n 'mj12bot',\n 'msnbot',\n 'nessus',\n 'petalbot',\n 'pinterest',\n 'prerender',\n 'rogerbot',\n 'screaming frog',\n 'semrushbot',\n 'sitebulb',\n 'slurp',\n 'turnitin',\n 'twitterbot',\n 'vercelbot',\n 'yahoo! slurp',\n 'yandexbot',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'Google-HotelAdsVerifier',\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google',\n 'Bytespider;',\n]\n\n/**\n * Block various web spiders from executing our JS and sending false capturing data\n */\nexport const isBlockedUA = function (ua: string, customBlockedUserAgents: string[]): boolean {\n if (!ua) {\n return false\n }\n const uaLower = ua.toLowerCase()\n return DEFAULT_BLOCKED_UA_STRS.concat(customBlockedUserAgents || []).some((blockedUA) => {\n const blockedUaLower = blockedUA.toLowerCase()\n\n // can't use includes because IE 11 :/\n return uaLower.indexOf(blockedUaLower) !== -1\n })\n}\n","// Naive rage click implementation: If mouse has not moved than RAGE_CLICK_THRESHOLD_PX\n// over RAGE_CLICK_CLICK_COUNT clicks with max RAGE_CLICK_TIMEOUT_MS between clicks, it's\n// counted as a rage click\n\nconst RAGE_CLICK_THRESHOLD_PX = 30\nconst RAGE_CLICK_TIMEOUT_MS = 1000\nconst RAGE_CLICK_CLICK_COUNT = 3\n\nexport default class RageClick {\n clicks: { x: number; y: number; timestamp: number }[]\n\n constructor() {\n this.clicks = []\n }\n\n isRageClick(x: number, y: number, timestamp: number): boolean {\n const lastClick = this.clicks[this.clicks.length - 1]\n if (\n lastClick &&\n Math.abs(x - lastClick.x) + Math.abs(y - lastClick.y) < RAGE_CLICK_THRESHOLD_PX &&\n timestamp - lastClick.timestamp < RAGE_CLICK_TIMEOUT_MS\n ) {\n this.clicks.push({ x, y, timestamp })\n\n if (this.clicks.length === RAGE_CLICK_CLICK_COUNT) {\n return true\n }\n } else {\n this.clicks = [{ x, y, timestamp }]\n }\n\n return false\n }\n}\n","import { includes, registerEvent } from './utils'\nimport RageClick from './extensions/rageclick'\nimport { DecideResponse, Properties } from './types'\nimport { PostHog } from './posthog-core'\n\nimport { document, window } from './utils/globals'\nimport { getParentElement, isTag } from './autocapture-utils'\nimport { HEATMAPS_ENABLED_SERVER_SIDE, TOOLBAR_ID } from './constants'\nimport { isEmptyObject, isObject, isUndefined } from './utils/type-utils'\nimport { logger } from './utils/logger'\n\nconst DEFAULT_FLUSH_INTERVAL = 5000\nconst HEATMAPS = 'heatmaps'\nconst LOGGER_PREFIX = '[' + HEATMAPS + ']'\n\ntype HeatmapEventBuffer =\n | {\n [key: string]: Properties[]\n }\n | undefined\n\nfunction elementOrParentPositionMatches(el: Element, matches: string[], breakOnElement?: Element): boolean {\n let curEl: Element | false = el\n\n while (curEl && !isTag(curEl, 'body')) {\n if (curEl === breakOnElement) {\n return false\n }\n\n if (includes(matches, window?.getComputedStyle(curEl).position)) {\n return true\n }\n\n curEl = getParentElement(curEl)\n }\n\n return false\n}\n\nfunction elementInToolbar(el: Element): boolean {\n // NOTE: .closest is not supported in IE11 hence the operator check\n return el.id === TOOLBAR_ID || !!el.closest?.('#' + TOOLBAR_ID)\n}\n\nexport class Heatmaps {\n instance: PostHog\n rageclicks = new RageClick()\n _enabledServerSide: boolean = false\n _initialized = false\n _mouseMoveTimeout: number | undefined\n\n // TODO: Periodically flush this if no other event has taken care of it\n private buffer: HeatmapEventBuffer\n private _flushInterval: number | null = null\n\n constructor(instance: PostHog) {\n this.instance = instance\n this._enabledServerSide = !!this.instance.persistence?.props[HEATMAPS_ENABLED_SERVER_SIDE]\n\n window?.addEventListener('beforeunload', () => {\n this.flush()\n })\n }\n\n public get flushIntervalMilliseconds(): number {\n let flushInterval = DEFAULT_FLUSH_INTERVAL\n if (\n isObject(this.instance.config.capture_heatmaps) &&\n this.instance.config.capture_heatmaps.flush_interval_milliseconds\n ) {\n flushInterval = this.instance.config.capture_heatmaps.flush_interval_milliseconds\n }\n return flushInterval\n }\n\n public get isEnabled(): boolean {\n if (!isUndefined(this.instance.config.capture_heatmaps)) {\n return this.instance.config.capture_heatmaps !== false\n }\n if (!isUndefined(this.instance.config.enable_heatmaps)) {\n return this.instance.config.enable_heatmaps\n }\n return this._enabledServerSide\n }\n\n public startIfEnabled(): void {\n if (this.isEnabled) {\n // nested if here since we only want to run the else\n // if this.enabled === false\n // not if this method is called more than once\n if (this._initialized) {\n return\n }\n logger.info(LOGGER_PREFIX + ' starting...')\n this._setupListeners()\n this._flushInterval = setInterval(this.flush.bind(this), this.flushIntervalMilliseconds)\n } else {\n clearInterval(this._flushInterval ?? undefined)\n this.getAndClearBuffer()\n }\n }\n\n public afterDecideResponse(response: DecideResponse) {\n const optIn = !!response['heatmaps']\n\n if (this.instance.persistence) {\n this.instance.persistence.register({\n [HEATMAPS_ENABLED_SERVER_SIDE]: optIn,\n })\n }\n // store this in-memory in case persistence is disabled\n this._enabledServerSide = optIn\n this.startIfEnabled()\n }\n\n public getAndClearBuffer(): HeatmapEventBuffer {\n const buffer = this.buffer\n this.buffer = undefined\n return buffer\n }\n\n private _setupListeners(): void {\n if (!window || !document) {\n return\n }\n\n registerEvent(document, 'click', (e) => this._onClick((e || window?.event) as MouseEvent), false, true)\n registerEvent(document, 'mousemove', (e) => this._onMouseMove((e || window?.event) as MouseEvent), false, true)\n\n this._initialized = true\n }\n\n private _getProperties(e: MouseEvent, type: string): Properties {\n // We need to know if the target element is fixed or not\n // If fixed then we won't account for scrolling\n // If not then we will account for scrolling\n\n const scrollY = this.instance.scrollManager.scrollY()\n const scrollX = this.instance.scrollManager.scrollX()\n const scrollElement = this.instance.scrollManager.scrollElement()\n\n const isFixedOrSticky = elementOrParentPositionMatches(e.target as Element, ['fixed', 'sticky'], scrollElement)\n\n return {\n x: e.clientX + (isFixedOrSticky ? 0 : scrollX),\n y: e.clientY + (isFixedOrSticky ? 0 : scrollY),\n target_fixed: isFixedOrSticky,\n type,\n }\n }\n\n private _onClick(e: MouseEvent): void {\n if (elementInToolbar(e.target as Element)) {\n return\n }\n const properties = this._getProperties(e, 'click')\n\n if (this.rageclicks?.isRageClick(e.clientX, e.clientY, new Date().getTime())) {\n this._capture({\n ...properties,\n type: 'rageclick',\n })\n }\n\n // TODO: Detect deadclicks\n\n this._capture(properties)\n }\n\n private _onMouseMove(e: Event): void {\n if (elementInToolbar(e.target as Element)) {\n return\n }\n clearTimeout(this._mouseMoveTimeout)\n\n this._mouseMoveTimeout = setTimeout(() => {\n this._capture(this._getProperties(e as MouseEvent, 'mousemove'))\n }, 500)\n }\n\n private _capture(properties: Properties): void {\n if (!window) {\n return\n }\n\n // TODO we should be able to mask this\n const url = window.location.href\n\n this.buffer = this.buffer || {}\n\n if (!this.buffer[url]) {\n this.buffer[url] = []\n }\n\n this.buffer[url].push(properties)\n }\n\n private flush(): void {\n if (!this.buffer || isEmptyObject(this.buffer)) {\n return\n }\n\n this.instance.capture('$$heatmap', {\n $heatmap_data: this.getAndClearBuffer(),\n })\n }\n}\n","import { window } from './utils/globals'\nimport { PostHog } from './posthog-core'\nimport { isArray } from './utils/type-utils'\n\nexport interface ScrollContext {\n // scroll is how far down the page the user has scrolled,\n // content is how far down the page the user can view content\n // (e.g. if the page is 1000 tall, but the user's screen is only 500 tall,\n // and they don't scroll at all, then scroll is 0 and content is 500)\n maxScrollHeight?: number\n maxScrollY?: number\n lastScrollY?: number\n maxContentHeight?: number\n maxContentY?: number\n lastContentY?: number\n}\n\n// This class is responsible for tracking scroll events and maintaining the scroll context\nexport class ScrollManager {\n private context: ScrollContext | undefined\n\n constructor(private instance: PostHog) {}\n\n getContext(): ScrollContext | undefined {\n return this.context\n }\n\n resetContext(): ScrollContext | undefined {\n const ctx = this.context\n\n // update the scroll properties for the new page, but wait until the next tick\n // of the event loop\n setTimeout(this._updateScrollData, 0)\n\n return ctx\n }\n\n private _updateScrollData = () => {\n if (!this.context) {\n this.context = {}\n }\n\n const el = this.scrollElement()\n\n const scrollY = this.scrollY()\n const scrollHeight = el ? Math.max(0, el.scrollHeight - el.clientHeight) : 0\n const contentY = scrollY + (el?.clientHeight || 0)\n const contentHeight = el?.scrollHeight || 0\n\n this.context.lastScrollY = Math.ceil(scrollY)\n this.context.maxScrollY = Math.max(scrollY, this.context.maxScrollY ?? 0)\n this.context.maxScrollHeight = Math.max(scrollHeight, this.context.maxScrollHeight ?? 0)\n\n this.context.lastContentY = contentY\n this.context.maxContentY = Math.max(contentY, this.context.maxContentY ?? 0)\n this.context.maxContentHeight = Math.max(contentHeight, this.context.maxContentHeight ?? 0)\n }\n\n startMeasuringScrollPosition() {\n // setting the third argument to `true` means that we will receive scroll events for other scrollable elements\n // on the page, not just the window\n // see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#usecapture\n window?.addEventListener('scroll', this._updateScrollData, true)\n window?.addEventListener('scrollend', this._updateScrollData, true)\n window?.addEventListener('resize', this._updateScrollData)\n }\n\n public scrollElement(): Element | undefined {\n if (this.instance.config.scroll_root_selector) {\n const selectors = isArray(this.instance.config.scroll_root_selector)\n ? this.instance.config.scroll_root_selector\n : [this.instance.config.scroll_root_selector]\n for (const selector of selectors) {\n const element = window?.document.querySelector(selector)\n if (element) {\n return element\n }\n }\n return undefined\n } else {\n return window?.document.documentElement\n }\n }\n\n public scrollY(): number {\n if (this.instance.config.scroll_root_selector) {\n const element = this.scrollElement()\n return (element && element.scrollTop) || 0\n } else {\n return window ? window.scrollY || window.pageYOffset || window.document.documentElement.scrollTop || 0 : 0\n }\n }\n\n public scrollX(): number {\n if (this.instance.config.scroll_root_selector) {\n const element = this.scrollElement()\n return (element && element.scrollLeft) || 0\n } else {\n return window ? window.scrollX || window.pageXOffset || window.document.documentElement.scrollLeft || 0 : 0\n }\n }\n}\n","import { each, extend, includes, registerEvent } from './utils'\nimport {\n autocaptureCompatibleElements,\n getClassNames,\n getDirectAndNestedSpanText,\n getElementsChainString,\n getSafeText,\n isAngularStyleAttr,\n isDocumentFragment,\n isElementNode,\n isSensitiveElement,\n isTag,\n isTextNode,\n makeSafeText,\n shouldCaptureDomEvent,\n shouldCaptureElement,\n shouldCaptureValue,\n splitClassString,\n} from './autocapture-utils'\nimport RageClick from './extensions/rageclick'\nimport { AutocaptureConfig, DecideResponse, Properties } from './types'\nimport { PostHog } from './posthog-core'\nimport { AUTOCAPTURE_DISABLED_SERVER_SIDE } from './constants'\n\nimport { isBoolean, isFunction, isNull, isObject, isUndefined } from './utils/type-utils'\nimport { logger } from './utils/logger'\nimport { document, window } from './utils/globals'\nimport { convertToURL } from './utils/request-utils'\n\nconst COPY_AUTOCAPTURE_EVENT = '$copy_autocapture'\n\nfunction limitText(length: number, text: string): string {\n if (text.length > length) {\n return text.slice(0, length) + '...'\n }\n return text\n}\n\nexport class Autocapture {\n instance: PostHog\n _initialized: boolean = false\n _isDisabledServerSide: boolean | null = null\n _elementSelectors: Set | null\n rageclicks = new RageClick()\n _elementsChainAsString = false\n\n constructor(instance: PostHog) {\n this.instance = instance\n this._elementSelectors = null\n }\n\n private get config(): AutocaptureConfig {\n const config = isObject(this.instance.config.autocapture) ? this.instance.config.autocapture : {}\n // precompile the regex\n config.url_allowlist = config.url_allowlist?.map((url) => new RegExp(url))\n config.url_ignorelist = config.url_ignorelist?.map((url) => new RegExp(url))\n return config\n }\n\n private _addDomEventHandlers(): void {\n if (!this.isBrowserSupported()) {\n logger.info('Disabling Automatic Event Collection because this browser is not supported')\n return\n }\n\n if (!window || !document) {\n return\n }\n const handler = (e: Event) => {\n e = e || window?.event\n try {\n this._captureEvent(e)\n } catch (error) {\n logger.error('Failed to capture event', error)\n }\n }\n\n const copiedTextHandler = (e: Event) => {\n e = e || window?.event\n this._captureEvent(e, COPY_AUTOCAPTURE_EVENT)\n }\n\n registerEvent(document, 'submit', handler, false, true)\n registerEvent(document, 'change', handler, false, true)\n registerEvent(document, 'click', handler, false, true)\n\n if (this.config.capture_copied_text) {\n registerEvent(document, 'copy', copiedTextHandler, false, true)\n registerEvent(document, 'cut', copiedTextHandler, false, true)\n }\n }\n\n public startIfEnabled() {\n if (this.isEnabled && !this._initialized) {\n this._addDomEventHandlers()\n this._initialized = true\n }\n }\n\n public afterDecideResponse(response: DecideResponse) {\n if (response.elementsChainAsString) {\n this._elementsChainAsString = response.elementsChainAsString\n }\n\n if (this.instance.persistence) {\n this.instance.persistence.register({\n [AUTOCAPTURE_DISABLED_SERVER_SIDE]: !!response['autocapture_opt_out'],\n })\n }\n // store this in-memory in case persistence is disabled\n this._isDisabledServerSide = !!response['autocapture_opt_out']\n this.startIfEnabled()\n }\n\n public setElementSelectors(selectors: Set): void {\n this._elementSelectors = selectors\n }\n\n public getElementSelectors(element: Element | null): string[] | null {\n const elementSelectors: string[] = []\n\n this._elementSelectors?.forEach((selector) => {\n const matchedElements = document?.querySelectorAll(selector)\n matchedElements?.forEach((matchedElement: Element) => {\n if (element === matchedElement) {\n elementSelectors.push(selector)\n }\n })\n })\n\n return elementSelectors\n }\n\n public get isEnabled(): boolean {\n const persistedServerDisabled = this.instance.persistence?.props[AUTOCAPTURE_DISABLED_SERVER_SIDE]\n const memoryDisabled = this._isDisabledServerSide\n\n if (\n isNull(memoryDisabled) &&\n !isBoolean(persistedServerDisabled) &&\n !this.instance.config.advanced_disable_decide\n ) {\n // We only enable if we know that the server has not disabled it (unless decide is disabled)\n return false\n }\n\n const disabledServer = this._isDisabledServerSide ?? !!persistedServerDisabled\n const disabledClient = !this.instance.config.autocapture\n return !disabledClient && !disabledServer\n }\n\n private _previousElementSibling(el: Element): Element | null {\n if (el.previousElementSibling) {\n return el.previousElementSibling\n }\n let _el: Element | null = el\n do {\n _el = _el.previousSibling as Element | null // resolves to ChildNode->Node, which is Element's parent class\n } while (_el && !isElementNode(_el))\n return _el\n }\n\n private _getAugmentPropertiesFromElement(elem: Element): Properties {\n const shouldCaptureEl = shouldCaptureElement(elem)\n if (!shouldCaptureEl) {\n return {}\n }\n\n const props: Properties = {}\n\n each(elem.attributes, function (attr: Attr) {\n if (attr.name && attr.name.indexOf('data-ph-capture-attribute') === 0) {\n const propertyKey = attr.name.replace('data-ph-capture-attribute-', '')\n const propertyValue = attr.value\n if (propertyKey && propertyValue && shouldCaptureValue(propertyValue)) {\n props[propertyKey] = propertyValue\n }\n }\n })\n\n return props\n }\n\n private _getPropertiesFromElement(elem: Element, maskInputs: boolean, maskText: boolean): Properties {\n const tag_name = elem.tagName.toLowerCase()\n const props: Properties = {\n tag_name: tag_name,\n }\n if (autocaptureCompatibleElements.indexOf(tag_name) > -1 && !maskText) {\n if (tag_name.toLowerCase() === 'a' || tag_name.toLowerCase() === 'button') {\n props['$el_text'] = limitText(1024, getDirectAndNestedSpanText(elem))\n } else {\n props['$el_text'] = limitText(1024, getSafeText(elem))\n }\n }\n\n const classes = getClassNames(elem)\n if (classes.length > 0)\n props['classes'] = classes.filter(function (c) {\n return c !== ''\n })\n\n // capture the deny list here because this not-a-class class makes it tricky to use this.config in the function below\n const elementAttributeIgnorelist = this.config?.element_attribute_ignorelist\n each(elem.attributes, function (attr: Attr) {\n // Only capture attributes we know are safe\n if (isSensitiveElement(elem) && ['name', 'id', 'class', 'aria-label'].indexOf(attr.name) === -1) return\n\n if (elementAttributeIgnorelist?.includes(attr.name)) return\n\n if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name)) {\n let value = attr.value\n if (attr.name === 'class') {\n // html attributes can _technically_ contain linebreaks,\n // but we're very intolerant of them in the class string,\n // so we strip them.\n value = splitClassString(value).join(' ')\n }\n props['attr__' + attr.name] = limitText(1024, value)\n }\n })\n\n let nthChild = 1\n let nthOfType = 1\n let currentElem: Element | null = elem\n while ((currentElem = this._previousElementSibling(currentElem))) {\n // eslint-disable-line no-cond-assign\n nthChild++\n if (currentElem.tagName === elem.tagName) {\n nthOfType++\n }\n }\n props['nth_child'] = nthChild\n props['nth_of_type'] = nthOfType\n\n return props\n }\n\n private _getDefaultProperties(eventType: string): Properties {\n return {\n $event_type: eventType,\n $ce_version: 1,\n }\n }\n\n private _getEventTarget(e: Event): Element | null {\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/target#Compatibility_notes\n if (isUndefined(e.target)) {\n return (e.srcElement as Element) || null\n } else {\n if ((e.target as HTMLElement)?.shadowRoot) {\n return (e.composedPath()[0] as Element) || null\n }\n return (e.target as Element) || null\n }\n }\n\n private _captureEvent(e: Event, eventName = '$autocapture'): boolean | void {\n if (!this.isEnabled) {\n return\n }\n\n /*** Don't mess with this code without running IE8 tests on it ***/\n let target = this._getEventTarget(e)\n if (isTextNode(target)) {\n // defeat Safari bug (see: http://www.quirksmode.org/js/events_properties.html)\n target = (target.parentNode || null) as Element | null\n }\n\n if (eventName === '$autocapture' && e.type === 'click' && e instanceof MouseEvent) {\n if (\n this.instance.config.rageclick &&\n this.rageclicks?.isRageClick(e.clientX, e.clientY, new Date().getTime())\n ) {\n this._captureEvent(e, '$rageclick')\n }\n }\n\n const isCopyAutocapture = eventName === COPY_AUTOCAPTURE_EVENT\n if (\n target &&\n shouldCaptureDomEvent(\n target,\n e,\n this.config,\n // mostly this method cares about the target element, but in the case of copy events,\n // we want some of the work this check does without insisting on the target element's type\n isCopyAutocapture,\n // we also don't want to restrict copy checks to clicks,\n // so we pass that knowledge in here, rather than add the logic inside the check\n isCopyAutocapture ? ['copy', 'cut'] : undefined\n )\n ) {\n const targetElementList = [target]\n let curEl = target\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n if (isDocumentFragment(curEl.parentNode)) {\n targetElementList.push((curEl.parentNode as any).host)\n curEl = (curEl.parentNode as any).host\n continue\n }\n targetElementList.push(curEl.parentNode as Element)\n curEl = curEl.parentNode as Element\n }\n\n const elementsJson: Properties[] = []\n const autocaptureAugmentProperties: Properties = {}\n let href,\n explicitNoCapture = false\n\n each(targetElementList, (el) => {\n const shouldCaptureEl = shouldCaptureElement(el)\n\n // if the element or a parent element is an anchor tag\n // include the href as a property\n if (el.tagName.toLowerCase() === 'a') {\n href = el.getAttribute('href')\n href = shouldCaptureEl && shouldCaptureValue(href) && href\n }\n\n // allow users to programmatically prevent capturing of elements by adding class 'ph-no-capture'\n const classes = getClassNames(el)\n if (includes(classes, 'ph-no-capture')) {\n explicitNoCapture = true\n }\n\n elementsJson.push(\n this._getPropertiesFromElement(\n el,\n this.instance.config.mask_all_element_attributes,\n this.instance.config.mask_all_text\n )\n )\n\n const augmentProperties = this._getAugmentPropertiesFromElement(el)\n extend(autocaptureAugmentProperties, augmentProperties)\n })\n\n if (!this.instance.config.mask_all_text) {\n // if the element is a button or anchor tag get the span text from any\n // children and include it as/with the text property on the parent element\n if (target.tagName.toLowerCase() === 'a' || target.tagName.toLowerCase() === 'button') {\n elementsJson[0]['$el_text'] = getDirectAndNestedSpanText(target)\n } else {\n elementsJson[0]['$el_text'] = getSafeText(target)\n }\n }\n\n let externalHref: string | undefined\n if (href) {\n elementsJson[0]['attr__href'] = href\n const hrefHost = convertToURL(href)?.host\n const locationHost = window?.location?.host\n if (hrefHost && locationHost && hrefHost !== locationHost) {\n externalHref = href\n }\n }\n\n if (explicitNoCapture) {\n return false\n }\n\n const props = extend(\n this._getDefaultProperties(e.type),\n this._elementsChainAsString\n ? {\n $elements_chain: getElementsChainString(elementsJson),\n }\n : {\n $elements: elementsJson,\n },\n elementsJson[0]?.['$el_text'] ? { $el_text: elementsJson[0]?.['$el_text'] } : {},\n externalHref && e.type === 'click' ? { $external_click_url: externalHref } : {},\n autocaptureAugmentProperties\n )\n\n const elementSelectors = this.getElementSelectors(target)\n if (elementSelectors && elementSelectors.length > 0) {\n props['$element_selectors'] = elementSelectors\n }\n\n if (eventName === COPY_AUTOCAPTURE_EVENT) {\n // you can't read the data from the clipboard event,\n // but you can guess that you can read it from the window's current selection\n const selectedContent = makeSafeText(window?.getSelection()?.toString())\n const clipType = (e as ClipboardEvent).type || 'clipboard'\n if (!selectedContent) {\n return false\n }\n props['$selected_content'] = selectedContent\n props['$copy_type'] = clipType\n }\n\n this.instance.capture(eventName, props)\n return true\n }\n }\n\n isBrowserSupported(): boolean {\n return isFunction(document?.querySelectorAll)\n }\n}\n","import { PostHog } from './posthog-core'\nimport { find, includes } from './utils'\nimport { assignableWindow, navigator } from './utils/globals'\nimport { cookieStore, localStore } from './storage'\nimport { PersistentStore } from './types'\n\nconst OPT_OUT_PREFIX = '__ph_opt_in_out_'\n\nexport enum ConsentStatus {\n PENDING = -1,\n DENIED = 0,\n GRANTED = 1,\n}\n\n/**\n * ConsentManager provides tools for managing user consent as configured by the application.\n */\nexport class ConsentManager {\n private _storage?: PersistentStore\n\n constructor(private instance: PostHog) {}\n\n private get config() {\n return this.instance.config\n }\n\n public get consent(): ConsentStatus {\n if (this.getDnt()) {\n return ConsentStatus.DENIED\n }\n\n return this.storedConsent\n }\n\n public isOptedOut() {\n return (\n this.consent === ConsentStatus.DENIED ||\n (this.consent === ConsentStatus.PENDING && this.config.opt_out_capturing_by_default)\n )\n }\n\n public isOptedIn() {\n return !this.isOptedOut()\n }\n\n public optInOut(isOptedIn: boolean) {\n this.storage.set(\n this.storageKey,\n isOptedIn ? 1 : 0,\n this.config.cookie_expiration,\n this.config.cross_subdomain_cookie,\n this.config.secure_cookie\n )\n }\n\n public reset() {\n this.storage.remove(this.storageKey, this.config.cross_subdomain_cookie)\n }\n\n private get storageKey() {\n const { token, opt_out_capturing_cookie_prefix } = this.instance.config\n return (opt_out_capturing_cookie_prefix || OPT_OUT_PREFIX) + token\n }\n\n private get storedConsent(): ConsentStatus {\n const value = this.storage.get(this.storageKey)\n return value === '1' ? ConsentStatus.GRANTED : value === '0' ? ConsentStatus.DENIED : ConsentStatus.PENDING\n }\n\n private get storage() {\n if (!this._storage) {\n const persistenceType = this.config.opt_out_capturing_persistence_type\n this._storage = persistenceType === 'localStorage' ? localStore : cookieStore\n const otherStorage = persistenceType === 'localStorage' ? cookieStore : localStore\n\n if (otherStorage.get(this.storageKey)) {\n if (!this._storage.get(this.storageKey)) {\n // This indicates we have moved to a new storage format so we migrate the value over\n this.optInOut(otherStorage.get(this.storageKey) === '1')\n }\n\n otherStorage.remove(this.storageKey, this.config.cross_subdomain_cookie)\n }\n }\n\n return this._storage\n }\n\n private getDnt(): boolean {\n if (!this.config.respect_dnt) {\n return false\n }\n return !!find(\n [\n navigator?.doNotTrack, // standard\n (navigator as any)?.['msDoNotTrack'],\n assignableWindow['doNotTrack'],\n ],\n (dntValue): boolean => {\n return includes([true, 1, '1', 'yes'], dntValue)\n }\n )\n }\n}\n","import { PostHog } from '../posthog-core'\nimport { assignableWindow } from '../utils/globals'\nimport { logger } from '../utils/logger'\nimport Config from '../config'\nimport { isUndefined } from '../utils/type-utils'\n\nconst LOGGER_PREFIX = '[TRACING-HEADERS]'\n\nexport class TracingHeaders {\n private _restoreXHRPatch: (() => void) | undefined = undefined\n private _restoreFetchPatch: (() => void) | undefined = undefined\n\n constructor(private readonly instance: PostHog) {}\n\n private _loadScript(cb: () => void): void {\n if (assignableWindow.postHogTracingHeadersPatchFns) {\n // already loaded\n cb()\n }\n\n this.instance.requestRouter.loadScript(`/static/tracing-headers.js?v=${Config.LIB_VERSION}`, (err) => {\n if (err) {\n return logger.error(LOGGER_PREFIX + ' failed to load script', err)\n }\n cb()\n })\n }\n public startIfEnabledOrStop() {\n if (this.instance.config.__add_tracing_headers) {\n this._loadScript(this._startCapturing)\n } else {\n this._restoreXHRPatch?.()\n this._restoreFetchPatch?.()\n // we don't want to call these twice so we reset them\n this._restoreXHRPatch = undefined\n this._restoreFetchPatch = undefined\n }\n }\n\n private _startCapturing = () => {\n // NB: we can assert sessionManager is present only because we've checked previously\n if (isUndefined(this._restoreXHRPatch)) {\n assignableWindow.postHogTracingHeadersPatchFns._patchXHR(this.instance.sessionManager!)\n }\n if (isUndefined(this._restoreFetchPatch)) {\n assignableWindow.postHogTracingHeadersPatchFns._patchFetch(this.instance.sessionManager!)\n }\n }\n}\n","import { PostHog } from '../../posthog-core'\nimport { DecideResponse } from '../../types'\nimport { logger } from '../../utils/logger'\nimport { isBoolean, isNullish, isNumber, isObject, isUndefined } from '../../utils/type-utils'\nimport { WEB_VITALS_ENABLED_SERVER_SIDE } from '../../constants'\nimport { assignableWindow, window } from '../../utils/globals'\nimport Config from '../../config'\n\nexport const FLUSH_TO_CAPTURE_TIMEOUT_MILLISECONDS = 8000\nconst ONE_MINUTE_IN_MILLIS = 60 * 1000\nexport const FIFTEEN_MINUTES_IN_MILLIS = 15 * ONE_MINUTE_IN_MILLIS\n\nconst LOGGER_PREFIX = '[Web Vitals]'\ntype WebVitalsEventBuffer = { url: string | undefined; metrics: any[]; firstMetricTimestamp: number | undefined }\n\nexport class WebVitalsAutocapture {\n private _enabledServerSide: boolean = false\n private _initialized = false\n\n private buffer: WebVitalsEventBuffer = { url: undefined, metrics: [], firstMetricTimestamp: undefined }\n private _delayedFlushTimer: number | undefined\n\n constructor(private readonly instance: PostHog) {\n this._enabledServerSide = !!this.instance.persistence?.props[WEB_VITALS_ENABLED_SERVER_SIDE]\n this.startIfEnabled()\n }\n\n public get _maxAllowedValue(): number {\n const configured =\n isObject(this.instance.config.capture_performance) &&\n isNumber(this.instance.config.capture_performance.__web_vitals_max_value)\n ? this.instance.config.capture_performance.__web_vitals_max_value\n : FIFTEEN_MINUTES_IN_MILLIS\n // you can set to 0 to disable the check or any value over ten seconds\n // 1 milli to 1 minute will be set to 15 minutes, cos that would be a silly low maximum\n return 0 < configured && configured <= ONE_MINUTE_IN_MILLIS ? FIFTEEN_MINUTES_IN_MILLIS : configured\n }\n\n public get isEnabled(): boolean {\n const clientConfig = isObject(this.instance.config.capture_performance)\n ? this.instance.config.capture_performance.web_vitals\n : undefined\n return isBoolean(clientConfig) ? clientConfig : this._enabledServerSide\n }\n\n public startIfEnabled(): void {\n if (this.isEnabled && !this._initialized) {\n logger.info(LOGGER_PREFIX + ' enabled, starting...')\n this.loadScript(this._startCapturing)\n }\n }\n\n public afterDecideResponse(response: DecideResponse) {\n const webVitalsOptIn = isObject(response.capturePerformance) && !!response.capturePerformance.web_vitals\n\n if (this.instance.persistence) {\n this.instance.persistence.register({\n [WEB_VITALS_ENABLED_SERVER_SIDE]: webVitalsOptIn,\n })\n }\n // store this in-memory in case persistence is disabled\n this._enabledServerSide = webVitalsOptIn\n\n this.startIfEnabled()\n }\n\n private loadScript(cb: () => void): void {\n if ((window as any).postHogWebVitalsCallbacks) {\n // already loaded\n cb()\n }\n\n this.instance.requestRouter.loadScript(\n this.instance.requestRouter.endpointFor('assets', `/static/web-vitals.js?v=${Config.LIB_VERSION}`),\n (err) => {\n if (err) {\n logger.error(LOGGER_PREFIX + ' failed to load script', err)\n return\n }\n cb()\n }\n )\n }\n\n private _currentURL(): string | undefined {\n // TODO you should be able to mask the URL here\n const href = window ? window.location.href : undefined\n if (!href) {\n logger.error(LOGGER_PREFIX + 'Could not determine current URL')\n }\n return href\n }\n\n private _flushToCapture = () => {\n clearTimeout(this._delayedFlushTimer)\n if (this.buffer.metrics.length === 0) {\n return\n }\n\n this.instance.capture(\n '$web_vitals',\n this.buffer.metrics.reduce(\n (acc, metric) => ({\n ...acc,\n // the entire event so we can use it in the future e.g. includes google's rating\n [`$web_vitals_${metric.name}_event`]: { ...metric },\n [`$web_vitals_${metric.name}_value`]: metric.value,\n }),\n {}\n )\n )\n this.buffer = { url: undefined, metrics: [], firstMetricTimestamp: undefined }\n }\n\n private _addToBuffer = (metric: any) => {\n const sessionIds = this.instance.sessionManager?.checkAndGetSessionAndWindowId(true)\n if (isUndefined(sessionIds)) {\n logger.error(LOGGER_PREFIX + 'Could not read session ID. Dropping metrics!')\n return\n }\n\n this.buffer = this.buffer || {}\n\n const $currentUrl = this._currentURL()\n if (isUndefined($currentUrl)) {\n return\n }\n\n if (isNullish(metric?.name) || isNullish(metric?.value)) {\n logger.error(LOGGER_PREFIX + 'Invalid metric received', metric)\n return\n }\n\n // we observe some very large values sometimes, we'll ignore them\n // since the likelihood of LCP > 1 hour being correct is very low\n if (this._maxAllowedValue && metric.value >= this._maxAllowedValue) {\n logger.error(LOGGER_PREFIX + 'Ignoring metric with value >= ' + this._maxAllowedValue, metric)\n return\n }\n\n const urlHasChanged = this.buffer.url !== $currentUrl\n\n if (urlHasChanged) {\n // we need to send what we have\n this._flushToCapture()\n // poor performance is >4s, we wait twice that time to send\n // this is in case we haven't received all metrics\n // we'll at least gather some\n this._delayedFlushTimer = setTimeout(this._flushToCapture, FLUSH_TO_CAPTURE_TIMEOUT_MILLISECONDS)\n }\n\n if (isUndefined(this.buffer.url)) {\n this.buffer.url = $currentUrl\n }\n\n this.buffer.firstMetricTimestamp = isUndefined(this.buffer.firstMetricTimestamp)\n ? Date.now()\n : this.buffer.firstMetricTimestamp\n\n this.buffer.metrics.push({\n ...metric,\n $current_url: $currentUrl,\n $session_id: sessionIds.sessionId,\n $window_id: sessionIds.windowId,\n timestamp: Date.now(),\n })\n\n if (this.buffer.metrics.length === 4) {\n // we have all 4 metrics\n this._flushToCapture()\n }\n }\n\n private _startCapturing = () => {\n const { onLCP, onCLS, onFCP, onINP } = assignableWindow.postHogWebVitalsCallbacks\n\n if (!onLCP || !onCLS || !onFCP || !onINP) {\n logger.error(LOGGER_PREFIX + 'web vitals callbacks not loaded - not starting')\n return\n }\n\n // register performance observers\n onLCP(this._addToBuffer)\n onCLS(this._addToBuffer)\n onFCP(this._addToBuffer)\n onINP(this._addToBuffer)\n\n this._initialized = true\n }\n}\n","import Config from './config'\nimport {\n _copyAndTruncateStrings,\n each,\n eachArray,\n extend,\n includes,\n registerEvent,\n safewrapClass,\n isCrossDomainCookie,\n isDistinctIdStringLike,\n} from './utils'\nimport { assignableWindow, document, location, userAgent, window } from './utils/globals'\nimport { PostHogFeatureFlags } from './posthog-featureflags'\nimport { PostHogPersistence } from './posthog-persistence'\nimport {\n ALIAS_ID_KEY,\n FLAG_CALL_REPORTED,\n PEOPLE_DISTINCT_ID_KEY,\n SESSION_RECORDING_IS_SAMPLED,\n USER_STATE,\n ENABLE_PERSON_PROCESSING,\n} from './constants'\nimport { SessionRecording } from './extensions/replay/sessionrecording'\nimport { Decide } from './decide'\nimport { Toolbar } from './extensions/toolbar'\nimport { localStore } from './storage'\nimport { RequestQueue } from './request-queue'\nimport { RetryQueue } from './retry-queue'\nimport { SessionIdManager } from './sessionid'\nimport { RequestRouter, RequestRouterRegion } from './utils/request-router'\nimport {\n CaptureOptions,\n CaptureResult,\n Compression,\n DecideResponse,\n EarlyAccessFeatureCallback,\n IsFeatureEnabledOptions,\n JsonType,\n PostHogConfig,\n Properties,\n Property,\n QueuedRequestOptions,\n RequestCallback,\n SessionIdChangedCallback,\n SnippetArrayItem,\n ToolbarParams,\n} from './types'\nimport { SentryIntegration, SentryIntegrationOptions, sentryIntegration } from './extensions/sentry-integration'\nimport { setupSegmentIntegration } from './extensions/segment-integration'\nimport { PageViewManager } from './page-view'\nimport { PostHogSurveys } from './posthog-surveys'\nimport { RateLimiter } from './rate-limiter'\nimport { uuidv7 } from './uuidv7'\nimport { Survey, SurveyCallback, SurveyQuestionBranchingType } from './posthog-surveys-types'\nimport {\n isArray,\n isEmptyObject,\n isEmptyString,\n isFunction,\n isNumber,\n isObject,\n isString,\n isUndefined,\n} from './utils/type-utils'\nimport { Info } from './utils/event-utils'\nimport { logger } from './utils/logger'\nimport { SessionPropsManager } from './session-props'\nimport { isBlockedUA } from './utils/blocked-uas'\nimport { extendURLParams, request, SUPPORTS_REQUEST } from './request'\nimport { Heatmaps } from './heatmaps'\nimport { ScrollManager } from './scroll-manager'\nimport { SimpleEventEmitter } from './utils/simple-event-emitter'\nimport { Autocapture } from './autocapture'\nimport { TracingHeaders } from './extensions/tracing-headers'\nimport { ConsentManager } from './consent'\nimport { ExceptionObserver } from './extensions/exception-autocapture'\nimport { WebVitalsAutocapture } from './extensions/web-vitals'\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\n/* posthog.init is called with `Partial`\n * and we want to ensure that only valid keys are passed to the config object.\n * TypeScript does not enforce that the object passed does not have extra keys.\n * So someone can call with { bootstrap: { distinctId: '123'} }\n * which is not a valid key. They should have passed distinctID (upper case D).\n * That's a really tricky mistake to spot.\n * The OnlyValidKeys type ensures that only keys that are valid in the PostHogConfig type are allowed.\n */\ntype OnlyValidKeys = T extends Shape ? (Exclude extends never ? T : never) : never\n\nconst instances: Record = {}\n\n// some globals for comparisons\nconst __NOOP = () => {}\n\nconst PRIMARY_INSTANCE_NAME = 'posthog'\n\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\n\n// IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\nlet ENQUEUE_REQUESTS = !SUPPORTS_REQUEST && userAgent?.indexOf('MSIE') === -1 && userAgent?.indexOf('Mozilla') === -1\n\nexport const defaultConfig = (): PostHogConfig => ({\n api_host: 'https://us.i.posthog.com',\n ui_host: null,\n token: '',\n autocapture: true,\n rageclick: true,\n cross_subdomain_cookie: isCrossDomainCookie(document?.location),\n persistence: 'localStorage+cookie', // up to 1.92.0 this was 'cookie'. It's easy to migrate as 'localStorage+cookie' will migrate data from cookie storage\n persistence_name: '',\n loaded: __NOOP,\n store_google: true,\n custom_campaign_params: [],\n custom_blocked_useragents: [],\n save_referrer: true,\n capture_pageview: true,\n capture_pageleave: 'if_capture_pageview', // We'll only capture pageleave events if capture_pageview is also true\n debug: (location && isString(location?.search) && location.search.indexOf('__posthog_debug=true') !== -1) || false,\n verbose: false,\n cookie_expiration: 365,\n upgrade: false,\n disable_session_recording: false,\n disable_persistence: false,\n disable_surveys: false,\n enable_recording_console_log: undefined, // When undefined, it falls back to the server-side setting\n secure_cookie: window?.location?.protocol === 'https:',\n ip: true,\n opt_out_capturing_by_default: false,\n opt_out_persistence_by_default: false,\n opt_out_useragent_filter: false,\n opt_out_capturing_persistence_type: 'localStorage',\n opt_out_capturing_cookie_prefix: null,\n opt_in_site_apps: false,\n property_denylist: [],\n respect_dnt: false,\n sanitize_properties: null,\n request_headers: {}, // { header: value, header2: value }\n inapp_protocol: '//',\n inapp_link_new_window: false,\n request_batching: true,\n properties_string_max_length: 65535,\n session_recording: {},\n mask_all_element_attributes: false,\n mask_all_text: false,\n advanced_disable_decide: false,\n advanced_disable_feature_flags: false,\n advanced_disable_feature_flags_on_first_load: false,\n advanced_disable_toolbar_metrics: false,\n feature_flag_request_timeout_ms: 3000,\n on_request_error: (res) => {\n const error = 'Bad HTTP status: ' + res.statusCode + ' ' + res.text\n logger.error(error)\n },\n get_device_id: (uuid) => uuid,\n // Used for internal testing\n _onCapture: __NOOP,\n capture_performance: undefined,\n name: 'posthog',\n bootstrap: {},\n disable_compression: false,\n session_idle_timeout_seconds: 30 * 60, // 30 minutes\n person_profiles: 'always',\n __add_tracing_headers: false,\n})\n\nexport const configRenames = (origConfig: Partial): Partial => {\n const renames: Partial = {}\n if (!isUndefined(origConfig.process_person)) {\n renames.person_profiles = origConfig.process_person\n }\n if (!isUndefined(origConfig.xhr_headers)) {\n renames.request_headers = origConfig.xhr_headers\n }\n if (!isUndefined(origConfig.cookie_name)) {\n renames.persistence_name = origConfig.cookie_name\n }\n if (!isUndefined(origConfig.disable_cookie)) {\n renames.disable_persistence = origConfig.disable_cookie\n }\n // on_xhr_error is not present, as the type is different to on_request_error\n\n // the original config takes priority over the renames\n const newConfig = extend({}, renames, origConfig)\n\n // merge property_blacklist into property_denylist\n if (isArray(origConfig.property_blacklist)) {\n if (isUndefined(origConfig.property_denylist)) {\n newConfig.property_denylist = origConfig.property_blacklist\n } else if (isArray(origConfig.property_denylist)) {\n newConfig.property_denylist = [...origConfig.property_blacklist, ...origConfig.property_denylist]\n } else {\n logger.error('Invalid value for property_denylist config: ' + origConfig.property_denylist)\n }\n }\n\n return newConfig\n}\n\nclass DeprecatedWebPerformanceObserver {\n get _forceAllowLocalhost(): boolean {\n return this.__forceAllowLocalhost\n }\n\n set _forceAllowLocalhost(value: boolean) {\n logger.error(\n 'WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`'\n )\n this.__forceAllowLocalhost = value\n }\n\n private __forceAllowLocalhost: boolean = false\n}\n\n/**\n * PostHog Library Object\n * @constructor\n */\nexport class PostHog {\n __loaded: boolean\n config: PostHogConfig\n\n rateLimiter: RateLimiter\n scrollManager: ScrollManager\n pageViewManager: PageViewManager\n featureFlags: PostHogFeatureFlags\n surveys: PostHogSurveys\n toolbar: Toolbar\n consent: ConsentManager\n\n // These are instance-specific state created after initialisation\n persistence?: PostHogPersistence\n sessionPersistence?: PostHogPersistence\n sessionManager?: SessionIdManager\n sessionPropsManager?: SessionPropsManager\n requestRouter: RequestRouter\n autocapture?: Autocapture\n heatmaps?: Heatmaps\n webVitalsAutocapture?: WebVitalsAutocapture\n exceptionObserver?: ExceptionObserver\n\n _requestQueue?: RequestQueue\n _retryQueue?: RetryQueue\n sessionRecording?: SessionRecording\n webPerformance = new DeprecatedWebPerformanceObserver()\n\n _triggered_notifs: any\n compression?: Compression\n __request_queue: QueuedRequestOptions[]\n decideEndpointWasHit: boolean\n analyticsDefaultEndpoint: string\n\n SentryIntegration: typeof SentryIntegration\n sentryIntegration: (options?: SentryIntegrationOptions) => ReturnType\n\n private _internalEventEmitter = new SimpleEventEmitter()\n\n /** DEPRECATED: We keep this to support existing usage but now one should just call .setPersonProperties */\n people: {\n set: (prop: string | Properties, to?: string, callback?: RequestCallback) => void\n set_once: (prop: string | Properties, to?: string, callback?: RequestCallback) => void\n }\n\n constructor() {\n this.config = defaultConfig()\n\n this.decideEndpointWasHit = false\n this.SentryIntegration = SentryIntegration\n this.sentryIntegration = (options?: SentryIntegrationOptions) => sentryIntegration(this, options)\n this.__request_queue = []\n this.__loaded = false\n this.analyticsDefaultEndpoint = '/e/'\n\n this.featureFlags = new PostHogFeatureFlags(this)\n this.toolbar = new Toolbar(this)\n this.scrollManager = new ScrollManager(this)\n this.pageViewManager = new PageViewManager(this)\n this.surveys = new PostHogSurveys(this)\n this.rateLimiter = new RateLimiter(this)\n this.requestRouter = new RequestRouter(this)\n this.consent = new ConsentManager(this)\n\n // NOTE: See the property definition for deprecation notice\n this.people = {\n set: (prop: string | Properties, to?: string, callback?: RequestCallback) => {\n const setProps = isString(prop) ? { [prop]: to } : prop\n this.setPersonProperties(setProps)\n callback?.({} as any)\n },\n set_once: (prop: string | Properties, to?: string, callback?: RequestCallback) => {\n const setProps = isString(prop) ? { [prop]: to } : prop\n this.setPersonProperties(undefined, setProps)\n callback?.({} as any)\n },\n }\n\n this.on('eventCaptured', (data) => logger.info('send', data))\n }\n\n // Initialization methods\n\n /**\n * This function initializes a new instance of the PostHog capturing object.\n * All new instances are added to the main posthog object as sub properties (such as\n * posthog.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * posthog.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * posthog.library_name.capture(...);\n *\n * @param {String} token Your PostHog API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options.\n * @param {String} [name] The name for the new posthog instance that you want created\n */\n init(\n token: string,\n config?: OnlyValidKeys, Partial>,\n name?: string\n ): PostHog | void {\n if (!name || name === PRIMARY_INSTANCE_NAME) {\n // This means we are initializing the primary instance (i.e. this)\n return this._init(token, config, name)\n } else {\n const namedPosthog = instances[name] ?? new PostHog()\n namedPosthog._init(token, config, name)\n instances[name] = namedPosthog\n // Add as a property to the primary instance (this isn't type-safe but its how it was always done)\n ;(instances[PRIMARY_INSTANCE_NAME] as any)[name] = namedPosthog\n\n return namedPosthog\n }\n }\n\n // posthog._init(token:string, config:object, name:string)\n //\n // This function sets up the current instance of the posthog\n // library. The difference between this method and the init(...)\n // method is this one initializes the actual instance, whereas the\n // init(...) method sets up a new library and calls _init on it.\n //\n // Note that there are operations that can be asynchronous, so we\n // accept a callback that is called when all the asynchronous work\n // is done. Note that we do not use promises because we want to be\n // IE11 compatible. We could use polyfills, which would make the\n // code a bit cleaner, but will add some overhead.\n //\n _init(token: string, config: Partial = {}, name?: string): PostHog {\n if (isUndefined(token) || isEmptyString(token)) {\n logger.critical(\n 'PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()'\n )\n return this\n }\n\n if (this.__loaded) {\n logger.warn('You have already initialized PostHog! Re-initializing is a no-op')\n return this\n }\n\n this.__loaded = true\n this.config = {} as PostHogConfig // will be set right below\n this._triggered_notifs = []\n\n this.set_config(\n extend({}, defaultConfig(), configRenames(config), {\n name: name,\n token: token,\n })\n )\n\n if (this.config.on_xhr_error) {\n logger.error('[posthog] on_xhr_error is deprecated. Use on_request_error instead')\n }\n\n this.compression = config.disable_compression ? undefined : Compression.Base64\n\n this.persistence = new PostHogPersistence(this.config)\n this.sessionPersistence =\n this.config.persistence === 'sessionStorage'\n ? this.persistence\n : new PostHogPersistence({ ...this.config, persistence: 'sessionStorage' })\n\n this._requestQueue = new RequestQueue((req) => this._send_retriable_request(req))\n this._retryQueue = new RetryQueue(this)\n this.__request_queue = []\n\n this.sessionManager = new SessionIdManager(this.config, this.persistence)\n this.sessionPropsManager = new SessionPropsManager(this.sessionManager, this.persistence)\n\n new TracingHeaders(this).startIfEnabledOrStop()\n\n this.sessionRecording = new SessionRecording(this)\n this.sessionRecording.startIfEnabledOrStop()\n\n if (!this.config.disable_scroll_properties) {\n this.scrollManager.startMeasuringScrollPosition()\n }\n\n this.autocapture = new Autocapture(this)\n this.autocapture.startIfEnabled()\n this.surveys.loadIfEnabled()\n\n this.heatmaps = new Heatmaps(this)\n this.heatmaps.startIfEnabled()\n\n this.webVitalsAutocapture = new WebVitalsAutocapture(this)\n\n this.exceptionObserver = new ExceptionObserver(this)\n this.exceptionObserver.startIfEnabled()\n\n // if any instance on the page has debug = true, we set the\n // global debug to be true\n Config.DEBUG = Config.DEBUG || this.config.debug\n if (Config.DEBUG) {\n // eslint-disable-next-line no-console\n console.log('[PostHog.js] Starting in debug mode', this)\n }\n\n this._sync_opt_out_with_persistence()\n\n // isUndefined doesn't provide typehint here so wouldn't reduce bundle as we'd need to assign\n // eslint-disable-next-line posthog-js/no-direct-undefined-check\n if (config.bootstrap?.distinctID !== undefined) {\n const uuid = this.config.get_device_id(uuidv7())\n const deviceID = config.bootstrap?.isIdentifiedID ? uuid : config.bootstrap.distinctID\n this.persistence.set_property(USER_STATE, config.bootstrap?.isIdentifiedID ? 'identified' : 'anonymous')\n this.register({\n distinct_id: config.bootstrap.distinctID,\n $device_id: deviceID,\n })\n }\n\n if (this._hasBootstrappedFeatureFlags()) {\n const activeFlags = Object.keys(config.bootstrap?.featureFlags || {})\n .filter((flag) => !!config.bootstrap?.featureFlags?.[flag])\n .reduce(\n (res: Record, key) => (\n (res[key] = config.bootstrap?.featureFlags?.[key] || false), res\n ),\n {}\n )\n const featureFlagPayloads = Object.keys(config.bootstrap?.featureFlagPayloads || {})\n .filter((key) => activeFlags[key])\n .reduce((res: Record, key) => {\n if (config.bootstrap?.featureFlagPayloads?.[key]) {\n res[key] = config.bootstrap?.featureFlagPayloads?.[key]\n }\n return res\n }, {})\n\n this.featureFlags.receivedFeatureFlags({ featureFlags: activeFlags, featureFlagPayloads })\n }\n\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n const uuid = this.config.get_device_id(uuidv7())\n\n this.register_once(\n {\n distinct_id: uuid,\n $device_id: uuid,\n },\n ''\n )\n // distinct id == $device_id is a proxy for anonymous user\n this.persistence.set_property(USER_STATE, 'anonymous')\n }\n // Set up event handler for pageleave\n // Use `onpagehide` if available, see https://calendar.perfplanet.com/2020/beaconing-in-practice/#beaconing-reliability-avoiding-abandons\n window?.addEventListener?.('onpagehide' in self ? 'pagehide' : 'unload', this._handle_unload.bind(this))\n\n this.toolbar.maybeLoadToolbar()\n\n // We wan't to avoid promises for IE11 compatibility, so we use callbacks here\n if (config.segment) {\n setupSegmentIntegration(this, () => this._loaded())\n } else {\n this._loaded()\n }\n\n if (isFunction(this.config._onCapture)) {\n this.on('eventCaptured', (data) => this.config._onCapture(data.event, data))\n }\n\n return this\n }\n\n // Private methods\n _afterDecideResponse(response: DecideResponse) {\n this.compression = undefined\n if (response.supportedCompression && !this.config.disable_compression) {\n this.compression = includes(response['supportedCompression'], Compression.GZipJS)\n ? Compression.GZipJS\n : includes(response['supportedCompression'], Compression.Base64)\n ? Compression.Base64\n : undefined\n }\n\n if (response.analytics?.endpoint) {\n this.analyticsDefaultEndpoint = response.analytics.endpoint\n }\n\n this.sessionRecording?.afterDecideResponse(response)\n this.autocapture?.afterDecideResponse(response)\n this.heatmaps?.afterDecideResponse(response)\n this.surveys?.afterDecideResponse(response)\n this.webVitalsAutocapture?.afterDecideResponse(response)\n this.exceptionObserver?.afterDecideResponse(response)\n }\n\n _loaded(): void {\n // Pause `reloadFeatureFlags` calls in config.loaded callback.\n // These feature flags are loaded in the decide call made right\n // afterwards\n const disableDecide = this.config.advanced_disable_decide\n if (!disableDecide) {\n this.featureFlags.setReloadingPaused(true)\n }\n\n try {\n this.config.loaded(this)\n } catch (err) {\n logger.critical('`loaded` function failed', err)\n }\n\n this._start_queue_if_opted_in()\n\n // this happens after \"loaded\" so a user can call identify or any other things before the pageview fires\n if (this.config.capture_pageview) {\n // NOTE: We want to fire this on the next tick as the previous implementation had this side effect\n // and some clients may rely on it\n setTimeout(() => {\n if (document) {\n this.capture('$pageview', { title: document.title }, { send_instantly: true })\n }\n }, 1)\n }\n\n // Call decide to get what features are enabled and other settings.\n // As a reminder, if the /decide endpoint is disabled, feature flags, toolbar, session recording, autocapture,\n // and compression will not be available.\n if (!disableDecide) {\n new Decide(this).call()\n\n // TRICKY: Reset any decide reloads queued during config.loaded because they'll be\n // covered by the decide call right above.\n this.featureFlags.resetRequestQueue()\n }\n }\n\n _start_queue_if_opted_in(): void {\n if (!this.has_opted_out_capturing()) {\n if (this.config.request_batching) {\n this._requestQueue?.enable()\n }\n }\n }\n\n _dom_loaded(): void {\n if (!this.has_opted_out_capturing()) {\n eachArray(this.__request_queue, (item) => this._send_retriable_request(item))\n }\n\n this.__request_queue = []\n this._start_queue_if_opted_in()\n }\n\n _handle_unload(): void {\n if (!this.config.request_batching) {\n if (this._shouldCapturePageleave()) {\n this.capture('$pageleave', null, { transport: 'sendBeacon' })\n }\n return\n }\n\n if (this._shouldCapturePageleave()) {\n this.capture('$pageleave')\n }\n\n this._requestQueue?.unload()\n this._retryQueue?.unload()\n }\n\n _send_request(options: QueuedRequestOptions): void {\n if (!this.__loaded) {\n return\n }\n\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push(options)\n return\n }\n\n if (this.rateLimiter.isServerRateLimited(options.batchKey)) {\n return\n }\n\n options.transport = options.transport || this.config.api_transport\n options.url = extendURLParams(options.url, {\n // Whether to detect ip info or not\n ip: this.config.ip ? 1 : 0,\n })\n options.headers = this.config.request_headers\n options.compression = options.compression === 'best-available' ? this.compression : options.compression\n\n request({\n ...options,\n callback: (response) => {\n this.rateLimiter.checkForLimiting(response)\n\n if (response.statusCode >= 400) {\n this.config.on_request_error?.(response)\n }\n\n options.callback?.(response)\n },\n })\n }\n\n _send_retriable_request(options: QueuedRequestOptions): void {\n if (this._retryQueue) {\n this._retryQueue.retriableRequest(options)\n } else {\n this._send_request(options)\n }\n }\n\n /**\n * _execute_array() deals with processing any posthog function\n * calls that were called before the PostHog library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the posthog function calls && user defined\n * functions BEFORE we fire off posthog capturing calls. This is so\n * identify/register/set_config calls can properly modify early\n * capturing calls.\n *\n * @param {Array} array\n */\n _execute_array(array: SnippetArrayItem[]): void {\n let fn_name\n const alias_calls: SnippetArrayItem[] = []\n const other_calls: SnippetArrayItem[] = []\n const capturing_calls: SnippetArrayItem[] = []\n eachArray(array, (item) => {\n if (item) {\n fn_name = item[0]\n if (isArray(fn_name)) {\n capturing_calls.push(item) // chained call e.g. posthog.get_group().set()\n } else if (isFunction(item)) {\n ;(item as any).call(this)\n } else if (isArray(item) && fn_name === 'alias') {\n alias_calls.push(item)\n } else if (isArray(item) && fn_name.indexOf('capture') !== -1 && isFunction((this as any)[fn_name])) {\n capturing_calls.push(item)\n } else {\n other_calls.push(item)\n }\n }\n })\n\n const execute = function (calls: SnippetArrayItem[], thisArg: any) {\n eachArray(\n calls,\n function (item) {\n if (isArray(item[0])) {\n // chained call\n let caller = thisArg\n each(item, function (call) {\n caller = caller[call[0]].apply(caller, call.slice(1))\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[item[0]].apply(this, item.slice(1))\n }\n },\n thisArg\n )\n }\n\n execute(alias_calls, this)\n execute(other_calls, this)\n execute(capturing_calls, this)\n }\n\n _hasBootstrappedFeatureFlags(): boolean {\n return (\n (this.config.bootstrap?.featureFlags && Object.keys(this.config.bootstrap?.featureFlags).length > 0) ||\n false\n )\n }\n\n /**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * posthog.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\n push(item: SnippetArrayItem): void {\n this._execute_array([item])\n }\n\n /**\n * Capture an event. This is the most important and\n * frequently used PostHog function.\n *\n * ### Usage:\n *\n * // capture an event named 'Registered'\n * posthog.capture('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // capture an event using navigator.sendBeacon\n * posthog.capture('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [config] Optional configuration for this capture request.\n * @param {String} [config.transport] Transport method for network request ('XHR' or 'sendBeacon').\n * @param {Date} [config.timestamp] Timestamp is a Date object. If not set, it'll automatically be set to the current time.\n */\n capture(event_name: string, properties?: Properties | null, options?: CaptureOptions): CaptureResult | void {\n // While developing, a developer might purposefully _not_ call init(),\n // in this case, we would like capture to be a noop.\n if (!this.__loaded || !this.persistence || !this.sessionPersistence || !this._requestQueue) {\n return logger.uninitializedWarning('posthog.capture')\n }\n\n if (this.consent.isOptedOut()) {\n return\n }\n\n // typing doesn't prevent interesting data\n if (isUndefined(event_name) || !isString(event_name)) {\n logger.error('No event name provided to posthog.capture')\n return\n }\n\n if (\n userAgent &&\n !this.config.opt_out_useragent_filter &&\n isBlockedUA(userAgent, this.config.custom_blocked_useragents)\n ) {\n return\n }\n\n const clientRateLimitContext = !options?.skip_client_rate_limiting\n ? this.rateLimiter.clientRateLimitContext()\n : undefined\n\n if (clientRateLimitContext?.isRateLimited) {\n logger.critical('This capture call is ignored due to client rate limiting.')\n return\n }\n\n // update persistence\n this.sessionPersistence.update_search_keyword()\n\n // The initial campaign/referrer props need to be stored in the regular persistence, as they are there to mimic\n // the person-initial props. The non-initial versions are stored in the sessionPersistence, as they are sent\n // with every event and used by the session table to create session-initial props.\n if (this.config.store_google) {\n this.sessionPersistence.update_campaign_params()\n }\n if (this.config.save_referrer) {\n this.sessionPersistence.update_referrer_info()\n }\n if (this.config.store_google || this.config.save_referrer) {\n this.persistence.set_initial_person_info()\n }\n\n let data: CaptureResult = {\n uuid: uuidv7(),\n event: event_name,\n properties: this._calculate_event_properties(event_name, properties || {}),\n }\n\n if (clientRateLimitContext) {\n data.properties['$lib_rate_limit_remaining_tokens'] = clientRateLimitContext.remainingTokens\n }\n\n const setProperties = options?.$set\n if (setProperties) {\n data.$set = options?.$set\n }\n const setOnceProperties = this._calculate_set_once_properties(options?.$set_once)\n if (setOnceProperties) {\n data.$set_once = setOnceProperties\n }\n\n data = _copyAndTruncateStrings(data, options?._noTruncate ? null : this.config.properties_string_max_length)\n data.timestamp = options?.timestamp || new Date()\n if (!isUndefined(options?.timestamp)) {\n data.properties['$event_time_override_provided'] = true\n data.properties['$event_time_override_system_time'] = new Date()\n }\n\n // Top-level $set overriding values from the one from properties is taken from the plugin-server normalizeEvent\n // This doesn't handle $set_once, because posthog-people doesn't either\n const finalSet = { ...data.properties['$set'], ...data['$set'] }\n if (!isEmptyObject(finalSet)) {\n this.setPersonPropertiesForFlags(finalSet)\n }\n\n this._internalEventEmitter.emit('eventCaptured', data)\n\n const requestOptions: QueuedRequestOptions = {\n method: 'POST',\n url: options?._url ?? this.requestRouter.endpointFor('api', this.analyticsDefaultEndpoint),\n data,\n compression: 'best-available',\n batchKey: options?._batchKey,\n }\n\n if (this.config.request_batching && (!options || options?._batchKey) && !options?.send_instantly) {\n this._requestQueue.enqueue(requestOptions)\n } else {\n this._send_retriable_request(requestOptions)\n }\n\n return data\n }\n\n _addCaptureHook(callback: (eventName: string, eventPayload?: CaptureResult) => void): void {\n this.on('eventCaptured', (data) => callback(data.event, data))\n }\n\n _calculate_event_properties(event_name: string, event_properties: Properties): Properties {\n if (!this.persistence || !this.sessionPersistence) {\n return event_properties\n }\n\n // set defaults\n const startTimestamp = this.persistence.remove_event_timer(event_name)\n let properties = { ...event_properties }\n properties['token'] = this.config.token\n\n if (event_name === '$snapshot') {\n const persistenceProps = { ...this.persistence.properties(), ...this.sessionPersistence.properties() }\n properties['distinct_id'] = persistenceProps.distinct_id\n if (\n // we spotted one customer that was managing to send `false` for ~9k events a day\n !(isString(properties['distinct_id']) || isNumber(properties['distinct_id'])) ||\n isEmptyString(properties['distinct_id'])\n ) {\n logger.error('Invalid distinct_id for replay event. This indicates a bug in your implementation')\n }\n return properties\n }\n\n const infoProperties = Info.properties()\n\n if (this.sessionManager) {\n const { sessionId, windowId } = this.sessionManager.checkAndGetSessionAndWindowId()\n properties['$session_id'] = sessionId\n properties['$window_id'] = windowId\n }\n\n if (this.requestRouter.region === RequestRouterRegion.CUSTOM) {\n properties['$lib_custom_api_host'] = this.config.api_host\n }\n\n if (\n this.sessionPropsManager &&\n this.config.__preview_send_client_session_params &&\n (event_name === '$pageview' || event_name === '$pageleave' || event_name === '$autocapture')\n ) {\n const sessionProps = this.sessionPropsManager.getSessionProps()\n properties = extend(properties, sessionProps)\n }\n\n if (!this.config.disable_scroll_properties) {\n let performanceProperties: Record = {}\n if (event_name === '$pageview') {\n performanceProperties = this.pageViewManager.doPageView()\n } else if (event_name === '$pageleave') {\n performanceProperties = this.pageViewManager.doPageLeave()\n }\n properties = extend(properties, performanceProperties)\n }\n\n if (event_name === '$pageview' && document) {\n properties['title'] = document.title\n }\n\n // set $duration if time_event was previously called for this event\n if (!isUndefined(startTimestamp)) {\n const duration_in_ms = new Date().getTime() - startTimestamp\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3))\n }\n\n // this is only added when this.config.opt_out_useragent_filter is true,\n // or it would always add \"browser\"\n if (userAgent && this.config.opt_out_useragent_filter) {\n properties['$browser_type'] = isBlockedUA(userAgent, this.config.custom_blocked_useragents)\n ? 'bot'\n : 'browser'\n }\n\n // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n\n // update properties with pageview info and super-properties\n properties = extend(\n {},\n infoProperties,\n this.persistence.properties(),\n this.sessionPersistence.properties(),\n properties\n )\n\n properties['$is_identified'] = this._isIdentified()\n\n if (isArray(this.config.property_denylist)) {\n each(this.config.property_denylist, function (denylisted_prop) {\n delete properties[denylisted_prop]\n })\n } else {\n logger.error(\n 'Invalid value for property_denylist config: ' +\n this.config.property_denylist +\n ' or property_blacklist config: ' +\n this.config.property_blacklist\n )\n }\n\n const sanitize_properties = this.config.sanitize_properties\n if (sanitize_properties) {\n properties = sanitize_properties(properties, event_name)\n }\n\n // add person processing flag as very last step, so it cannot be overridden. process_person=true is default\n properties['$process_person_profile'] = this._hasPersonProcessing()\n\n return properties\n }\n\n _calculate_set_once_properties(dataSetOnce?: Properties): Properties | undefined {\n if (!this.persistence || !this._hasPersonProcessing()) {\n return dataSetOnce\n }\n // if we're an identified person, send initial params with every event\n const setOnceProperties = extend({}, this.persistence.get_initial_props(), dataSetOnce || {})\n if (isEmptyObject(setOnceProperties)) {\n return undefined\n }\n return setOnceProperties\n }\n\n /**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values, except\n * for session properties (see `register_for_session(properties)`).\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * posthog.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * posthog.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // Display the properties\n * console.log(posthog.persistence.properties())\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number} [days] How many days since the user's last visit to store the super properties\n */\n register(properties: Properties, days?: number): void {\n this.persistence?.register(properties, days)\n }\n\n /**\n * Register a set of super properties only once. These will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * posthog.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // Display the properties\n * console.log(posthog.persistence.properties())\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number} [days] How many days since the users last visit to store the super properties\n */\n register_once(properties: Properties, default_value?: Property, days?: number): void {\n this.persistence?.register_once(properties, default_value, days)\n }\n\n /**\n * Register a set of super properties, which are included with all events, but only\n * for THIS SESSION. These will overwrite all other super property values.\n *\n * Unlike regular super properties, which last in LocalStorage for a long time,\n * session super properties get cleared after a session ends.\n *\n * ### Usage:\n *\n * // register on all events this session\n * posthog.register_for_session({'referer': customGetReferer()});\n *\n * // register several session super properties when a user signs up\n * posthog.register_for_session({\n * 'selectedPlan': 'pro',\n * 'completedSteps': 4,\n * });\n *\n * // Display the properties\n * console.log(posthog.sessionPersistence.properties())\n *\n * @param {Object} properties An associative array of properties to store about the user\n */\n register_for_session(properties: Properties): void {\n this.sessionPersistence?.register(properties)\n }\n\n /**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n */\n unregister(property: string): void {\n this.persistence?.unregister(property)\n }\n\n /**\n * Delete a session super property stored with the current user.\n *\n * @param {String} property The name of the session super property to remove\n */\n unregister_for_session(property: string): void {\n this.sessionPersistence?.unregister(property)\n }\n\n _register_single(prop: string, value: Property) {\n this.register({ [prop]: value })\n }\n\n /*\n * Get feature flag value for user (supports multivariate flags).\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('beta-feature') === 'some-value') { // do something }\n *\n * @param {Object|String} prop Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n getFeatureFlag(key: string, options?: { send_event?: boolean }): boolean | string | undefined {\n return this.featureFlags.getFeatureFlag(key, options)\n }\n\n /*\n * Get feature flag payload value matching key for user (supports multivariate flags).\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('beta-feature') === 'some-value') {\n * const someValue = posthog.getFeatureFlagPayload('beta-feature')\n * // do something\n * }\n *\n * @param {Object|String} prop Key of the feature flag.\n */\n getFeatureFlagPayload(key: string): JsonType {\n const payload = this.featureFlags.getFeatureFlagPayload(key)\n try {\n return JSON.parse(payload as any)\n } catch {\n return payload\n }\n }\n\n /*\n * See if feature flag is enabled for user.\n *\n * ### Usage:\n *\n * if(posthog.isFeatureEnabled('beta-feature')) { // do something }\n *\n * @param {Object|String} prop Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n isFeatureEnabled(key: string, options?: IsFeatureEnabledOptions): boolean | undefined {\n return this.featureFlags.isFeatureEnabled(key, options)\n }\n\n reloadFeatureFlags(): void {\n this.featureFlags.reloadFeatureFlags()\n }\n\n /** Opt the user in or out of an early access feature. */\n updateEarlyAccessFeatureEnrollment(key: string, isEnrolled: boolean): void {\n this.featureFlags.updateEarlyAccessFeatureEnrollment(key, isEnrolled)\n }\n\n /** Get the list of early access features. To check enrollment status, use `isFeatureEnabled`. */\n getEarlyAccessFeatures(callback: EarlyAccessFeatureCallback, force_reload = false): void {\n return this.featureFlags.getEarlyAccessFeatures(callback, force_reload)\n }\n\n /**\n * Exposes a set of events that PostHog will emit.\n * e.g. `eventCaptured` is emitted immediately before trying to send an event\n *\n * Unlike `onFeatureFlags` and `onSessionId` these are not called when the\n * listener is registered, the first callback will be the next event\n * _after_ registering a listener\n */\n on(event: 'eventCaptured', cb: (...args: any[]) => void): () => void {\n return this._internalEventEmitter.on(event, cb)\n }\n\n /*\n * Register an event listener that runs when feature flags become available or when they change.\n * If there are flags, the listener is called immediately in addition to being called on future changes.\n *\n * ### Usage:\n *\n * posthog.onFeatureFlags(function(featureFlags) { // do something })\n *\n * @param {Function} [callback] The callback function will be called once the feature flags are ready or when they are updated.\n * It'll return a list of feature flags enabled for the user.\n * @returns {Function} A function that can be called to unsubscribe the listener. Used by useEffect when the component unmounts.\n */\n onFeatureFlags(callback: (flags: string[], variants: Record) => void): () => void {\n return this.featureFlags.onFeatureFlags(callback)\n }\n\n /*\n * Register an event listener that runs whenever the session id or window id change.\n * If there is already a session id, the listener is called immediately in addition to being called on future changes.\n *\n * Can be used, for example, to sync the PostHog session id with a backend session.\n *\n * ### Usage:\n *\n * posthog.onSessionId(function(sessionId, windowId) { // do something })\n *\n * @param {Function} [callback] The callback function will be called once a session id is present or when it or the window id are updated.\n * @returns {Function} A function that can be called to unsubscribe the listener. E.g. Used by useEffect when the component unmounts.\n */\n onSessionId(callback: SessionIdChangedCallback): () => void {\n return this.sessionManager?.onSessionId(callback) ?? (() => {})\n }\n\n /** Get list of all surveys. */\n getSurveys(callback: SurveyCallback, forceReload = false): void {\n this.surveys.getSurveys(callback, forceReload)\n }\n\n /** Get surveys that should be enabled for the current user. */\n getActiveMatchingSurveys(callback: SurveyCallback, forceReload = false): void {\n this.surveys.getActiveMatchingSurveys(callback, forceReload)\n }\n\n /** Get the next step of the survey: a question index or `end` */\n getNextSurveyStep(\n survey: Survey,\n currentQuestionIndex: number,\n response: string | string[] | number | null\n ): number | SurveyQuestionBranchingType.End {\n return this.surveys.getNextSurveyStep(survey, currentQuestionIndex, response)\n }\n\n /**\n * Identify a user with a unique ID instead of a PostHog\n * randomly generated distinct_id. If the method is never called,\n * then unique visitors will be identified by a UUID that is generated\n * the first time they visit the site.\n *\n * If user properties are passed, they are also sent to posthog.\n *\n * ### Usage:\n *\n * posthog.identify('[user unique id]')\n * posthog.identify('[user unique id]', { email: 'john@example.com' })\n * posthog.identify('[user unique id]', {}, { referral_code: '12345' })\n *\n * ### Notes:\n *\n * You can call this function to overwrite a previously set\n * unique ID for the current user.\n *\n * If the user has been identified ($user_state in persistence is set to 'identified'),\n * then capture of $identify is skipped to avoid merging users. For example,\n * if your system allows an admin user to impersonate another user.\n *\n * Then a single browser instance can have:\n *\n * `identify('a') -> capture(1) -> identify('b') -> capture(2)`\n *\n * and capture 1 and capture 2 will have the correct distinct_id.\n * but users a and b will NOT be merged in posthog.\n *\n * However, if reset is called then:\n *\n * `identify('a') -> capture(1) -> reset() -> capture(2) -> identify('b') -> capture(3)`\n *\n * users a and b are not merged.\n * Capture 1 is associated with user a.\n * A new distinct id is generated for capture 2.\n * which is merged with user b.\n * So, capture 2 and 3 are associated with user b.\n *\n * If you want to merge two identified users, you can call posthog.alias\n *\n * @param {String} [new_distinct_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n * @param {Object} [userPropertiesToSet] Optional: An associative array of properties to store about the user\n * @param {Object} [userPropertiesToSetOnce] Optional: An associative array of properties to store about the user. If property is previously set, this does not override that value.\n */\n identify(new_distinct_id?: string, userPropertiesToSet?: Properties, userPropertiesToSetOnce?: Properties): void {\n if (!this.__loaded || !this.persistence) {\n return logger.uninitializedWarning('posthog.identify')\n }\n if (isNumber(new_distinct_id)) {\n new_distinct_id = (new_distinct_id as number).toString()\n logger.warn(\n 'The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.'\n )\n }\n\n //if the new_distinct_id has not been set ignore the identify event\n if (!new_distinct_id) {\n logger.error('Unique user id has not been set in posthog.identify')\n return\n }\n\n if (isDistinctIdStringLike(new_distinct_id)) {\n logger.critical(\n `The string \"${new_distinct_id}\" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.`\n )\n return\n }\n\n if (!this._requirePersonProcessing('posthog.identify')) {\n return\n }\n\n const previous_distinct_id = this.get_distinct_id()\n this.register({ $user_id: new_distinct_id })\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n const device_id = previous_distinct_id\n this.register_once(\n {\n $had_persisted_distinct_id: true,\n $device_id: device_id,\n },\n ''\n )\n }\n\n // if the previous distinct id had an alias stored, then we clear it\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY)\n this.register({ distinct_id: new_distinct_id })\n }\n\n const isKnownAnonymous = (this.persistence.get_property(USER_STATE) || 'anonymous') === 'anonymous'\n\n // send an $identify event any time the distinct_id is changing and the old ID is an anonymous ID\n // - logic on the server will determine whether or not to do anything with it.\n if (new_distinct_id !== previous_distinct_id && isKnownAnonymous) {\n this.persistence.set_property(USER_STATE, 'identified')\n\n // Update current user properties\n this.setPersonPropertiesForFlags(userPropertiesToSet || {}, false)\n\n this.capture(\n '$identify',\n {\n distinct_id: new_distinct_id,\n $anon_distinct_id: previous_distinct_id,\n },\n { $set: userPropertiesToSet || {}, $set_once: userPropertiesToSetOnce || {} }\n )\n // let the reload feature flag request know to send this previous distinct id\n // for flag consistency\n this.featureFlags.setAnonymousDistinctId(previous_distinct_id)\n } else if (userPropertiesToSet || userPropertiesToSetOnce) {\n // If the distinct_id is not changing, but we have user properties to set, we can go for a $set event\n this.setPersonProperties(userPropertiesToSet, userPropertiesToSetOnce)\n }\n\n // Reload active feature flags if the user identity changes.\n // Note we don't reload this on property changes as these get processed async\n if (new_distinct_id !== previous_distinct_id) {\n this.reloadFeatureFlags()\n // also clear any stored flag calls\n this.unregister(FLAG_CALL_REPORTED)\n }\n }\n\n /**\n * Sets properties for the Person associated with the current distinct_id. If config.person_profiles is set to\n * identified_only, and a Person profile has not been created yet, this will create one.\n *\n *\n * @param {Object} [userPropertiesToSet] Optional: An associative array of properties to store about the user\n * @param {Object} [userPropertiesToSetOnce] Optional: An associative array of properties to store about the user. If property is previously set, this does not override that value.\n */\n setPersonProperties(userPropertiesToSet?: Properties, userPropertiesToSetOnce?: Properties): void {\n if (!userPropertiesToSet && !userPropertiesToSetOnce) {\n return\n }\n\n if (!this._requirePersonProcessing('posthog.setPersonProperties')) {\n return\n }\n\n // Update current user properties\n this.setPersonPropertiesForFlags(userPropertiesToSet || {})\n\n this.capture('$set', { $set: userPropertiesToSet || {}, $set_once: userPropertiesToSetOnce || {} })\n }\n\n /**\n * Sets group analytics information for subsequent events and reloads feature flags.\n *\n * @param {String} groupType Group type (example: 'organization')\n * @param {String} groupKey Group key (example: 'org::5')\n * @param {Object} groupPropertiesToSet Optional properties to set for group\n */\n group(groupType: string, groupKey: string, groupPropertiesToSet?: Properties): void {\n if (!groupType || !groupKey) {\n logger.error('posthog.group requires a group type and group key')\n return\n }\n\n if (!this._requirePersonProcessing('posthog.group')) {\n return\n }\n\n const existingGroups = this.getGroups()\n\n // if group key changes, remove stored group properties\n if (existingGroups[groupType] !== groupKey) {\n this.resetGroupPropertiesForFlags(groupType)\n }\n\n this.register({ $groups: { ...existingGroups, [groupType]: groupKey } })\n\n if (groupPropertiesToSet) {\n this.capture('$groupidentify', {\n $group_type: groupType,\n $group_key: groupKey,\n $group_set: groupPropertiesToSet,\n })\n this.setGroupPropertiesForFlags({ [groupType]: groupPropertiesToSet })\n }\n\n // If groups change and no properties change, reload feature flags.\n // The property change reload case is handled in setGroupPropertiesForFlags.\n if (existingGroups[groupType] !== groupKey && !groupPropertiesToSet) {\n this.reloadFeatureFlags()\n }\n }\n\n /**\n * Resets only the group properties of the user currently logged in.\n */\n resetGroups(): void {\n this.register({ $groups: {} })\n this.resetGroupPropertiesForFlags()\n\n // If groups changed, reload feature flags.\n this.reloadFeatureFlags()\n }\n\n /**\n * Set override person properties for feature flags.\n * This is used when dealing with new persons / where you don't want to wait for ingestion\n * to update user properties.\n */\n setPersonPropertiesForFlags(properties: Properties, reloadFeatureFlags = true): void {\n if (!this._requirePersonProcessing('posthog.setPersonPropertiesForFlags')) {\n return\n }\n this.featureFlags.setPersonPropertiesForFlags(properties, reloadFeatureFlags)\n }\n\n resetPersonPropertiesForFlags(): void {\n this.featureFlags.resetPersonPropertiesForFlags()\n }\n\n /**\n * Set override group properties for feature flags.\n * This is used when dealing with new groups / where you don't want to wait for ingestion\n * to update properties.\n * Takes in an object, the key of which is the group type.\n * For example:\n * setGroupPropertiesForFlags({'organization': { name: 'CYZ', employees: '11' } })\n */\n setGroupPropertiesForFlags(properties: { [type: string]: Properties }, reloadFeatureFlags = true): void {\n if (!this._requirePersonProcessing('posthog.setGroupPropertiesForFlags')) {\n return\n }\n this.featureFlags.setGroupPropertiesForFlags(properties, reloadFeatureFlags)\n }\n\n resetGroupPropertiesForFlags(group_type?: string): void {\n this.featureFlags.resetGroupPropertiesForFlags(group_type)\n }\n\n /**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\n reset(reset_device_id?: boolean): void {\n if (!this.__loaded) {\n return logger.uninitializedWarning('posthog.reset')\n }\n const device_id = this.get_property('$device_id')\n this.consent.reset()\n this.persistence?.clear()\n this.sessionPersistence?.clear()\n this.persistence?.set_property(USER_STATE, 'anonymous')\n this.sessionManager?.resetSessionId()\n const uuid = this.config.get_device_id(uuidv7())\n this.register_once(\n {\n distinct_id: uuid,\n $device_id: reset_device_id ? uuid : device_id,\n },\n ''\n )\n }\n\n /**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the PostHog library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the posthog library has loaded\n * posthog.init('YOUR PROJECT TOKEN', {\n * loaded: function(posthog) {\n * distinct_id = posthog.get_distinct_id();\n * }\n * });\n */\n get_distinct_id(): string {\n return this.get_property('distinct_id')\n }\n\n getGroups(): Record {\n return this.get_property('$groups') || {}\n }\n\n /**\n * Returns the current session_id.\n *\n * NOTE: This should only be used for informative purposes.\n * Any actual internal use case for the session_id should be handled by the sessionManager.\n */\n\n get_session_id(): string {\n return this.sessionManager?.checkAndGetSessionAndWindowId(true).sessionId ?? ''\n }\n\n /**\n * Returns the Replay url for the current session.\n *\n * @param options Options for the url\n * @param options.withTimestamp Whether to include the timestamp in the url (defaults to false)\n * @param options.timestampLookBack How many seconds to look back for the timestamp (defaults to 10)\n */\n get_session_replay_url(options?: { withTimestamp?: boolean; timestampLookBack?: number }): string {\n if (!this.sessionManager) {\n return ''\n }\n const { sessionId, sessionStartTimestamp } = this.sessionManager.checkAndGetSessionAndWindowId(true)\n let url = this.requestRouter.endpointFor('ui', `/project/${this.config.token}/replay/${sessionId}`)\n if (options?.withTimestamp && sessionStartTimestamp) {\n const LOOK_BACK = options.timestampLookBack ?? 10\n if (!sessionStartTimestamp) {\n return url\n }\n const recordingStartTime = Math.max(\n Math.floor((new Date().getTime() - sessionStartTimestamp) / 1000) - LOOK_BACK,\n 0\n )\n url += `?t=${recordingStartTime}`\n }\n\n return url\n }\n\n /**\n * Create an alias, which PostHog will use to link two distinct_ids going forward (not retroactively).\n * Multiple aliases can map to the same original ID, but not vice-versa. Aliases can also be chained - the\n * following is a valid scenario:\n *\n * posthog.alias('new_id', 'existing_id');\n * ...\n * posthog.alias('newer_id', 'new_id');\n *\n * If the original ID is not passed in, we will use the current distinct_id - probably the auto-generated GUID.\n *\n * ### Notes:\n *\n * The best practice is to call alias() when a unique ID is first created for a user\n * (e.g., when a user first registers for an account and provides an email address).\n * alias() should never be called more than once for a given user, except to\n * chain a newer ID to a previously new ID, as described above.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\n alias(alias: string, original?: string): CaptureResult | void | number {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // posthog.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n logger.critical('Attempting to create alias for existing People user - aborting.')\n return -2\n }\n if (!this._requirePersonProcessing('posthog.alias')) {\n return\n }\n\n if (isUndefined(original)) {\n original = this.get_distinct_id()\n }\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias)\n return this.capture('$create_alias', { alias: alias, distinct_id: original })\n } else {\n logger.warn('alias matches current distinct_id - skipping api call.')\n this.identify(alias)\n return -1\n }\n }\n\n /**\n * Update the configuration of a posthog library instance.\n *\n * The default config is:\n *\n * {\n * // PostHog API host\n * api_host: 'https://us.i.posthog.com',\n * *\n * // PostHog web app host, currently only used by the Sentry integration.\n * // This will only be different from api_host when using a reverse-proxied API host – in that case\n * // the original web app host needs to be passed here so that links to the web app are still convenient.\n * ui_host: 'https://us.posthog.com',\n *\n * // Automatically capture clicks, form submissions and change events\n * autocapture: true\n *\n * // Capture rage clicks\n * rageclick: true\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. PostHog\n * // capturing via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the posthog cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, PostHog will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of capturing by this PostHog instance by default\n * opt_out_capturing_by_default: false\n *\n * // opt users out of browser data storage by this PostHog instance by default\n * opt_out_persistence_by_default: false\n *\n * // opt out of user agent filtering such as googlebot or other bots\n * opt_out_useragent_filter: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_capturing_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_capturing_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // posthog cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // deprecated, use property_denylist instead.\n * // names of properties/superproperties which should never\n * // be sent with capture() calls.\n * property_blacklist: []\n *\n * // names of properties/superproperties which should never\n * // be sent with capture() calls.\n * property_denylist: []\n *\n * // if this is true, posthog cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // should we capture a page view on page load\n * capture_pageview: true\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // if this is true, session recording is always disabled.\n * disable_session_recording: false,\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * response_headers: {}\n *\n * // protocol for fetching in-app message resources, e.g.\n * // 'https://' or 'http://'; defaults to '//' (which defers to the\n * // current page's protocol)\n * inapp_protocol: '//'\n *\n * // whether to open in-app message link in new tab/window\n * inapp_link_new_window: false\n *\n * // a set of rrweb config options that PostHog users can configure\n * // see https://github.com/rrweb-io/rrweb/blob/master/guide.md\n * session_recording: {\n * blockClass: 'ph-no-capture',\n * blockSelector: null,\n * ignoreClass: 'ph-ignore-input',\n * maskAllInputs: true,\n * maskInputOptions: {},\n * maskInputFn: null,\n * slimDOMOptions: {},\n * collectFonts: false,\n * inlineStylesheet: true,\n * }\n *\n * // prevent autocapture from capturing any attribute names on elements\n * mask_all_element_attributes: false\n *\n * // prevent autocapture from capturing textContent on all elements\n * mask_all_text: false\n *\n * // Anonymous users get a random UUID as their device by default.\n * // This option allows overriding that option.\n * get_device_id: (uuid) => uuid\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\n\n set_config(config: Partial): void {\n const oldConfig = { ...this.config }\n if (isObject(config)) {\n extend(this.config, configRenames(config))\n\n this.persistence?.update_config(this.config, oldConfig)\n this.sessionPersistence =\n this.config.persistence === 'sessionStorage'\n ? this.persistence\n : new PostHogPersistence({ ...this.config, persistence: 'sessionStorage' })\n\n if (localStore.is_supported() && localStore.get('ph_debug') === 'true') {\n this.config.debug = true\n }\n if (this.config.debug) {\n Config.DEBUG = true\n }\n\n this.sessionRecording?.startIfEnabledOrStop()\n this.autocapture?.startIfEnabled()\n this.heatmaps?.startIfEnabled()\n this.surveys.loadIfEnabled()\n this._sync_opt_out_with_persistence()\n }\n }\n\n /**\n * turns session recording on, and updates the config option\n * disable_session_recording to false\n * @param override.sampling - optional boolean to override the default sampling behavior - ensures the next session recording to start will not be skipped by sampling config.\n */\n startSessionRecording(override?: { sampling?: boolean }): void {\n if (override?.sampling) {\n // allow the session id check to rotate session id if necessary\n const ids = this.sessionManager?.checkAndGetSessionAndWindowId()\n this.persistence?.register({\n // short-circuits the `makeSamplingDecision` function in the session recording module\n [SESSION_RECORDING_IS_SAMPLED]: true,\n })\n logger.info('Session recording started with sampling override for session: ', ids?.sessionId)\n }\n this.set_config({ disable_session_recording: false })\n }\n\n /**\n * turns session recording off, and updates the config option\n * disable_session_recording to true\n */\n stopSessionRecording(): void {\n this.set_config({ disable_session_recording: true })\n }\n\n /**\n * returns a boolean indicating whether session recording\n * is currently running\n */\n sessionRecordingStarted(): boolean {\n return !!this.sessionRecording?.started\n }\n\n /**\n * returns a boolean indicating whether the toolbar loaded\n * @param toolbarParams\n */\n\n loadToolbar(params: ToolbarParams): boolean {\n return this.toolbar.loadToolbar(params)\n }\n\n /**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the PostHog library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for '$user_id' after the posthog library has loaded\n * posthog.init('YOUR PROJECT TOKEN', {\n * loaded: function(posthog) {\n * user_id = posthog.get_property('$user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\n get_property(property_name: string): Property | undefined {\n return this.persistence?.props[property_name]\n }\n\n /**\n * Returns the value of the session super property named property_name. If no such\n * property is set, getSessionProperty() will return the undefined value.\n *\n * ### Notes:\n *\n * This is based on browser-level `sessionStorage`, NOT the PostHog session.\n * getSessionProperty() can only be called after the PostHog library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the posthog library has loaded\n * posthog.init('YOUR PROJECT TOKEN', {\n * loaded: function(posthog) {\n * user_id = posthog.getSessionProperty('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the session super property you want to retrieve\n */\n getSessionProperty(property_name: string): Property | undefined {\n return this.sessionPersistence?.props[property_name]\n }\n\n toString(): string {\n let name = this.config.name ?? PRIMARY_INSTANCE_NAME\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name\n }\n return name\n }\n\n _isIdentified(): boolean {\n return (\n this.persistence?.get_property(USER_STATE) === 'identified' ||\n this.sessionPersistence?.get_property(USER_STATE) === 'identified'\n )\n }\n\n _hasPersonProcessing(): boolean {\n return !(\n this.config.person_profiles === 'never' ||\n (this.config.person_profiles === 'identified_only' &&\n !this._isIdentified() &&\n isEmptyObject(this.getGroups()) &&\n !this.persistence?.props?.[ALIAS_ID_KEY] &&\n !this.persistence?.props?.[ENABLE_PERSON_PROCESSING])\n )\n }\n\n _shouldCapturePageleave(): boolean {\n return (\n this.config.capture_pageleave === true ||\n (this.config.capture_pageleave === 'if_capture_pageview' && this.config.capture_pageview)\n )\n }\n\n /**\n * Creates a person profile for the current user, if they don't already have one and config.person_profiles is set\n * to 'identified_only'. Produces a warning and does not create a profile if config.person_profiles is set to\n * 'never'.\n */\n createPersonProfile(): void {\n if (this._hasPersonProcessing()) {\n // if a person profile already exists, don't send an event when we don't need to\n return\n }\n if (!this._requirePersonProcessing('posthog.createPersonProfile')) {\n return\n }\n // sent a $set event. We don't set any properties here, but attribution props will be added later\n this.setPersonProperties({}, {})\n }\n\n /**\n * Enables person processing if possible, returns true if it does so or already enabled, false otherwise\n *\n * @param function_name\n */\n _requirePersonProcessing(function_name: string): boolean {\n if (this.config.person_profiles === 'never') {\n logger.error(\n function_name + ' was called, but process_person is set to \"never\". This call will be ignored.'\n )\n return false\n }\n this._register_single(ENABLE_PERSON_PROCESSING, true)\n return true\n }\n\n /**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [disabled] If true, will re-enable sdk persistence\n */\n private _sync_opt_out_with_persistence(): void {\n const isOptedOut = this.consent.isOptedOut()\n const defaultPersistenceDisabled = this.config.opt_out_persistence_by_default\n\n // TRICKY: We want a deterministic state for persistence so that a new pageload has the same persistence\n const persistenceDisabled = this.config.disable_persistence || (isOptedOut && !!defaultPersistenceDisabled)\n\n if (this.persistence?.disabled !== persistenceDisabled) {\n this.persistence?.set_disabled(persistenceDisabled)\n }\n if (this.sessionPersistence?.disabled !== persistenceDisabled) {\n this.sessionPersistence?.set_disabled(persistenceDisabled)\n }\n }\n\n /**\n * Opt the user in to data capturing and cookies/localstorage for this PostHog instance\n * If the config.opt_out_persistence_by_default is set to false, the SDK persistence will be enabled.\n *\n * ### Usage\n *\n * // opt user in\n * posthog.opt_in_capturing();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * posthog.opt_in_capturing({\n * capture_event_name: 'User opted in',\n * capture_event_properties: {\n * 'email': 'jdoe@example.com'\n * }\n * });\n *\n * @param {Object} [config] A dictionary of config options to override\n * @param {string} [config.capture_event_name=$opt_in] Event name to be used for capturing the opt-in action. Set to `null` or `false` to skip capturing the optin event\n * @param {Object} [config.capture_properties] Set of properties to be captured along with the opt-in action\n */\n opt_in_capturing(options?: {\n captureEventName?: string | null | false /** event name to be used for capturing the opt-in action */\n captureProperties?: Properties /** set of properties to be captured along with the opt-in action */\n }): void {\n this.consent.optInOut(true)\n this._sync_opt_out_with_persistence()\n\n if (!isUndefined(options?.captureEventName) && !options?.captureEventName) {\n // Don't capture if captureEventName is null or false\n return\n }\n\n this.capture(options?.captureEventName ?? '$opt_in', options?.captureProperties, { send_instantly: true })\n }\n\n /**\n * Opt the user out of data capturing and cookies/localstorage for this PostHog instance.\n * If the config.opt_out_persistence_by_default is set to true, the SDK persistence will be disabled.\n *\n * ### Usage\n *\n * // opt user out\n * posthog.opt_out_capturing()\n */\n opt_out_capturing(): void {\n this.consent.optInOut(false)\n this._sync_opt_out_with_persistence()\n }\n\n /**\n * Check whether the user has opted in to data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * const has_opted_in = posthog.has_opted_in_capturing();\n * // use has_opted_in value\n *\n * @returns {boolean} current opt-in status\n */\n has_opted_in_capturing(): boolean {\n return this.consent.isOptedIn()\n }\n\n /**\n * Check whether the user has opted out of data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * const has_opted_out = posthog.has_opted_out_capturing();\n * // use has_opted_out value\n *\n * @returns {boolean} current opt-out status\n */\n has_opted_out_capturing(): boolean {\n return this.consent.isOptedOut()\n }\n\n /**\n * Clear the user's opt in/out status of data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * // clear user's opt-in/out status\n * posthog.clear_opt_in_out_capturing();\n * *\n * @param {Object} [config] A dictionary of config options to override\n */\n clear_opt_in_out_capturing(): void {\n this.consent.reset()\n this._sync_opt_out_with_persistence()\n }\n\n debug(debug?: boolean): void {\n if (debug === false) {\n window?.console.log(\"You've disabled debug mode.\")\n localStorage && localStorage.removeItem('ph_debug')\n this.set_config({ debug: false })\n } else {\n window?.console.log(\n \"You're now in debug mode. All calls to PostHog will be logged in your console.\\nYou can disable this with `posthog.debug(false)`.\"\n )\n localStorage && localStorage.setItem('ph_debug', 'true')\n this.set_config({ debug: true })\n }\n }\n}\n\nsafewrapClass(PostHog, ['identify'])\n\nconst add_dom_loaded_handler = function () {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if ((dom_loaded_handler as any).done) {\n return\n }\n ;(dom_loaded_handler as any).done = true\n\n ENQUEUE_REQUESTS = false\n\n each(instances, function (inst: PostHog) {\n inst._dom_loaded()\n })\n }\n\n if (document?.addEventListener) {\n if (document.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler()\n } else {\n document.addEventListener('DOMContentLoaded', dom_loaded_handler, false)\n }\n }\n\n // fallback handler, always will work\n if (window) {\n registerEvent(window, 'load', dom_loaded_handler, true)\n }\n}\n\nexport function init_from_snippet(): void {\n const posthogMain = (instances[PRIMARY_INSTANCE_NAME] = new PostHog())\n\n const snippetPostHog = assignableWindow['posthog']\n\n if (snippetPostHog) {\n /**\n * The snippet uses some clever tricks to allow deferred loading of array.js (this code)\n *\n * window.posthog is an array which the queue of calls made before the lib is loaded\n * It has methods attached to it to simulate the posthog object so for instance\n *\n * window.posthog.init(\"TOKEN\", {api_host: \"foo\" })\n * window.posthog.capture(\"my-event\", {foo: \"bar\" })\n *\n * ... will mean that window.posthog will look like this:\n * window.posthog == [\n * [\"my-event\", {foo: \"bar\"}]\n * ]\n *\n * window.posthog[_i] == [\n * [\"TOKEN\", {api_host: \"foo\" }, \"posthog\"]\n * ]\n *\n * If a name is given to the init function then the same as above is true but as a sub-property on the object:\n *\n * window.posthog.init(\"TOKEN\", {}, \"ph2\")\n * window.posthog.ph2.people.set({foo: \"bar\"})\n *\n * window.posthog.ph2 == []\n * window.posthog.people == [\n * [\"set\", {foo: \"bar\"}]\n * ]\n *\n */\n\n // Call all pre-loaded init calls properly\n\n each(snippetPostHog['_i'], function (item: [token: string, config: Partial, name: string]) {\n if (item && isArray(item)) {\n const instance = posthogMain.init(item[0], item[1], item[2])\n\n const instanceSnippet = snippetPostHog[item[2]] || snippetPostHog\n\n if (instance) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance.people, instanceSnippet.people)\n instance._execute_array(instanceSnippet)\n }\n }\n })\n }\n\n assignableWindow['posthog'] = posthogMain\n\n add_dom_loaded_handler()\n}\n\nexport function init_as_module(): PostHog {\n const posthogMain = (instances[PRIMARY_INSTANCE_NAME] = new PostHog())\n\n add_dom_loaded_handler()\n\n return posthogMain\n}\n","/**\n * Extend Segment with extra PostHog JS functionality. Required for things like Recordings and feature flags to work correctly.\n *\n * ### Usage\n *\n * ```js\n * // After your standard segment anyalytics install\n * analytics.load(\"GOEDfA21zZTtR7clsBuDvmBKAtAdZ6Np\");\n *\n * analytics.ready(() => {\n * posthog.init('', {\n * capture_pageview: false,\n * segment: window.analytics, // NOTE: Be sure to use window.analytics here!\n * });\n * window.analytics.page();\n * })\n * ```\n */\nimport { PostHog } from '../posthog-core'\nimport { logger } from '../utils/logger'\n\nimport { uuidv7 } from '../uuidv7'\nimport { isFunction } from '../utils/type-utils'\nimport { USER_STATE } from '../constants'\n\nexport type SegmentUser = {\n anonymousId(): string | undefined\n id(): string | undefined\n}\n\nexport type SegmentAnalytics = {\n user: () => SegmentUser | Promise\n register: (integration: SegmentPlugin) => Promise\n}\n\n// Loosely based on https://github.com/segmentio/analytics-next/blob/master/packages/core/src/plugins/index.ts\ninterface SegmentContext {\n event: {\n event: string\n userId?: string\n anonymousId?: string\n properties: any\n }\n}\n\ntype SegmentFunction = (ctx: SegmentContext) => Promise | SegmentContext\n\ninterface SegmentPlugin {\n name: string\n version: string\n type: 'enrichment'\n isLoaded: () => boolean\n load: (ctx: SegmentContext, instance: any, config?: any) => Promise\n unload?: (ctx: SegmentContext, instance: any) => Promise | unknown\n ready?: () => Promise\n track?: SegmentFunction\n identify?: SegmentFunction\n page?: SegmentFunction\n group?: SegmentFunction\n alias?: SegmentFunction\n screen?: SegmentFunction\n}\n\nconst createSegmentIntegration = (posthog: PostHog): SegmentPlugin => {\n if (!Promise || !Promise.resolve) {\n logger.warn('This browser does not have Promise support, and can not use the segment integration')\n }\n\n const enrichEvent = (ctx: SegmentContext, eventName: string | undefined) => {\n if (!eventName) {\n return ctx\n }\n if (!ctx.event.userId && ctx.event.anonymousId !== posthog.get_distinct_id()) {\n // This is our only way of detecting that segment's analytics.reset() has been called so we also call it\n posthog.reset()\n }\n if (ctx.event.userId && ctx.event.userId !== posthog.get_distinct_id()) {\n posthog.register({\n distinct_id: ctx.event.userId,\n })\n posthog.reloadFeatureFlags()\n }\n\n const additionalProperties = posthog._calculate_event_properties(eventName, ctx.event.properties ?? {})\n ctx.event.properties = Object.assign({}, additionalProperties, ctx.event.properties)\n return ctx\n }\n\n return {\n name: 'PostHog JS',\n type: 'enrichment',\n version: '1.0.0',\n isLoaded: () => true,\n // check and early return above\n // eslint-disable-next-line compat/compat\n load: () => Promise.resolve(),\n track: (ctx) => enrichEvent(ctx, ctx.event.event),\n page: (ctx) => enrichEvent(ctx, '$pageview'),\n identify: (ctx) => enrichEvent(ctx, '$identify'),\n screen: (ctx) => enrichEvent(ctx, '$screen'),\n }\n}\n\nfunction setupPostHogFromSegment(posthog: PostHog, done: () => void) {\n const segment = posthog.config.segment\n if (!segment) {\n return done()\n }\n\n const bootstrapUser = (user: SegmentUser) => {\n // Use segments anonymousId instead\n const getSegmentAnonymousId = () => user.anonymousId() || uuidv7()\n posthog.config.get_device_id = getSegmentAnonymousId\n\n // If a segment user ID exists, set it as the distinct_id\n if (user.id()) {\n posthog.register({\n distinct_id: user.id(),\n $device_id: getSegmentAnonymousId(),\n })\n posthog.persistence!.set_property(USER_STATE, 'identified')\n }\n\n done()\n }\n\n const segmentUser = segment.user()\n\n // If segmentUser is a promise then we need to wait for it to resolve\n if ('then' in segmentUser && isFunction(segmentUser.then)) {\n segmentUser.then((user) => bootstrapUser(user))\n } else {\n bootstrapUser(segmentUser as SegmentUser)\n }\n}\n\nexport function setupSegmentIntegration(posthog: PostHog, done: () => void) {\n const segment = posthog.config.segment\n if (!segment) {\n return done()\n }\n\n setupPostHogFromSegment(posthog, () => {\n segment.register(createSegmentIntegration(posthog)).then(() => {\n done()\n })\n })\n}\n","import { init_as_module } from '../posthog-core'\nexport { PostHog } from '../posthog-core'\nexport * from '../types'\nexport * from '../posthog-surveys-types'\nexport const posthog = init_as_module()\nexport default posthog\n","import posthogJs from 'posthog-js';\nimport React, { createContext, useMemo, useContext, useState, useEffect, useRef, useCallback } from 'react';\n\nvar PostHogContext = createContext({ client: posthogJs });\n\nfunction PostHogProvider(_a) {\r\n var children = _a.children, client = _a.client, apiKey = _a.apiKey, options = _a.options;\r\n var posthog = useMemo(function () {\r\n if (client && apiKey) {\r\n console.warn('[PostHog.js] You have provided both a client and an apiKey to PostHogProvider. The apiKey will be ignored in favour of the client.');\r\n }\r\n if (client && options) {\r\n console.warn('[PostHog.js] You have provided both a client and options to PostHogProvider. The options will be ignored in favour of the client.');\r\n }\r\n if (client) {\r\n return client;\r\n }\r\n if (apiKey) {\r\n if (posthogJs.__loaded) {\r\n console.warn('[PostHog.js] was already loaded elsewhere. This may cause issues.');\r\n }\r\n posthogJs.init(apiKey, options);\r\n }\r\n return posthogJs;\r\n }, [client, apiKey]);\r\n return React.createElement(PostHogContext.Provider, { value: { client: posthog } }, children);\r\n}\n\nvar usePostHog = function () {\r\n var client = useContext(PostHogContext).client;\r\n return client;\r\n};\n\nfunction useFeatureFlagEnabled(flag) {\r\n var client = usePostHog();\r\n var _a = useState(), featureEnabled = _a[0], setFeatureEnabled = _a[1];\r\n useEffect(function () {\r\n return client.onFeatureFlags(function () {\r\n setFeatureEnabled(client.isFeatureEnabled(flag));\r\n });\r\n }, [client, flag]);\r\n return featureEnabled;\r\n}\n\nfunction useFeatureFlagPayload(flag) {\r\n var client = usePostHog();\r\n var _a = useState(), featureFlagPayload = _a[0], setFeatureFlagPayload = _a[1];\r\n useEffect(function () {\r\n return client.onFeatureFlags(function () {\r\n setFeatureFlagPayload(client.getFeatureFlagPayload(flag));\r\n });\r\n }, [client, flag]);\r\n return featureFlagPayload;\r\n}\n\nfunction useActiveFeatureFlags() {\r\n var client = usePostHog();\r\n var _a = useState(), featureFlags = _a[0], setFeatureFlags = _a[1];\r\n useEffect(function () {\r\n return client.onFeatureFlags(function (flags) {\r\n setFeatureFlags(flags);\r\n });\r\n }, [client]);\r\n return featureFlags;\r\n}\n\nfunction useFeatureFlagVariantKey(flag) {\r\n var client = usePostHog();\r\n var _a = useState(), featureFlagVariantKey = _a[0], setFeatureFlagVariantKey = _a[1];\r\n useEffect(function () {\r\n return client.onFeatureFlags(function () {\r\n setFeatureFlagVariantKey(client.getFeatureFlag(flag));\r\n });\r\n }, [client, flag]);\r\n return featureFlagVariantKey;\r\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction PostHogFeature(_a) {\r\n var flag = _a.flag, match = _a.match, children = _a.children, fallback = _a.fallback, visibilityObserverOptions = _a.visibilityObserverOptions, trackInteraction = _a.trackInteraction, trackView = _a.trackView, props = __rest(_a, [\"flag\", \"match\", \"children\", \"fallback\", \"visibilityObserverOptions\", \"trackInteraction\", \"trackView\"]);\r\n var payload = useFeatureFlagPayload(flag);\r\n var variant = useFeatureFlagVariantKey(flag);\r\n var shouldTrackInteraction = trackInteraction !== null && trackInteraction !== void 0 ? trackInteraction : true;\r\n var shouldTrackView = trackView !== null && trackView !== void 0 ? trackView : true;\r\n if (match === undefined || variant === match) {\r\n var childNode = typeof children === 'function' ? children(payload) : children;\r\n return (React.createElement(VisibilityAndClickTracker, __assign({ flag: flag, options: visibilityObserverOptions, trackInteraction: shouldTrackInteraction, trackView: shouldTrackView }, props), childNode));\r\n }\r\n return React.createElement(React.Fragment, null, fallback);\r\n}\r\nfunction captureFeatureInteraction(flag, posthog) {\r\n var _a;\r\n posthog.capture('$feature_interaction', { feature_flag: flag, $set: (_a = {}, _a[\"$feature_interaction/\".concat(flag)] = true, _a) });\r\n}\r\nfunction captureFeatureView(flag, posthog) {\r\n posthog.capture('$feature_view', { feature_flag: flag });\r\n}\r\nfunction VisibilityAndClickTracker(_a) {\r\n var flag = _a.flag, children = _a.children, trackInteraction = _a.trackInteraction, trackView = _a.trackView, options = _a.options, props = __rest(_a, [\"flag\", \"children\", \"trackInteraction\", \"trackView\", \"options\"]);\r\n var ref = useRef(null);\r\n var posthog = usePostHog();\r\n var visibilityTrackedRef = useRef(false);\r\n var clickTrackedRef = useRef(false);\r\n var cachedOnClick = useCallback(function () {\r\n if (!clickTrackedRef.current && trackInteraction) {\r\n captureFeatureInteraction(flag, posthog);\r\n clickTrackedRef.current = true;\r\n }\r\n }, [flag, posthog, trackInteraction]);\r\n useEffect(function () {\r\n if (ref.current === null || !trackView)\r\n return;\r\n var onIntersect = function (entry) {\r\n if (!visibilityTrackedRef.current && entry.isIntersecting) {\r\n captureFeatureView(flag, posthog);\r\n visibilityTrackedRef.current = true;\r\n }\r\n };\r\n var observer = new IntersectionObserver(function (_a) {\r\n var entry = _a[0];\r\n return onIntersect(entry);\r\n }, __assign({ threshold: 0.1 }, options));\r\n observer.observe(ref.current);\r\n return function () { return observer.disconnect(); };\r\n }, [flag, options, posthog, ref, trackView]);\r\n return (React.createElement(\"div\", __assign({ ref: ref }, props, { onClick: cachedOnClick }), children));\r\n}\n\nexport { PostHogContext, PostHogFeature, PostHogProvider, useActiveFeatureFlags, useFeatureFlagEnabled, useFeatureFlagPayload, useFeatureFlagVariantKey, usePostHog };\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"App_container__Rt8T2\",\"body\":\"App_body__PuluK\",\"header\":\"App_header__fhC8n\",\"footer\":\"App_footer__aawhi\",\"loaderContainer\":\"App_loaderContainer__7Zo9Y\",\"apploaderContainer\":\"App_apploaderContainer__w1ZVC\",\"spin\":\"App_spin__RBUaI\",\"spinner\":\"App_spinner__h+vrd\"};","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (object: T, path?: string, defaultValue?: unknown): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n\nexport const FORM_DEFAULT_STATE = {\n isDirty: false,\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n disabled: false,\n} as const;\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TransformedValues extends FieldValues | undefined = undefined,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {children}\n \n );\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n control: Control,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default (\n formStateData: Partial> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default (\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n next: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (object: FieldValues, path: string, value?: unknown) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport cloneObject from './utils/cloneObject';\nimport get from './utils/get';\nimport isBoolean from './utils/isBoolean';\nimport isUndefined from './utils/isUndefined';\nimport { EVENTS } from './constants';\nimport {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\nimport { set } from './utils';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

{fieldState.isTouched && \"Touched\"}

\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *
\n * );\n * }\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: UseControllerProps,\n): UseControllerReturn {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(\n control._formValues,\n name,\n get(control._defaultValues, name, props.defaultValue),\n ),\n exact: true,\n }) as FieldPathValue;\n const formState = useFormState({\n control,\n name,\n });\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }),\n );\n\n React.useEffect(() => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n\n return () => {\n (\n isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n React.useEffect(() => {\n if (get(control._fields, name)) {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n value: get(control._fields, name)._f.value,\n });\n }\n }, [disabled, name, control]);\n\n return {\n field: {\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: React.useCallback(\n (event) =>\n _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n }),\n [name],\n ),\n onBlur: React.useCallback(\n () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n [name, control],\n ),\n ref: (elm) => {\n const field = get(control._fields, name);\n\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message: string) =>\n elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n };\n}\n","import React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport cloneObject from './utils/cloneObject';\nimport {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Subscribe to the entire form values change and re-render at the hook level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * defaultValue: {\n * name: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(props: {\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath = FieldPath,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValue;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath[] = readonly FieldPath[],\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValues;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * // can skip passing down the control into useWatch if the form is wrapped with the FormProvider\n * const values = useWatch()\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nexport function useWatch(\n props?: UseWatchProps,\n) {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n defaultValue,\n disabled,\n exact,\n } = props || {};\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState: { name?: InternalFieldName; values?: FieldValues }) => {\n if (\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n formState.name,\n exact,\n )\n ) {\n updateValue(\n cloneObject(\n generateWatchOutput(\n _name.current as InternalFieldName | InternalFieldName[],\n control._names,\n formState.values || control._formValues,\n false,\n defaultValue,\n ),\n ),\n );\n }\n },\n });\n\n const [value, updateValue] = React.useState(\n control._getWatch(\n name as InternalFieldName,\n defaultValue as DeepPartialSkipArrayKey,\n ),\n );\n\n React.useEffect(() => control._removeUnmounted());\n\n return value;\n}\n","import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
\n * \n * {dirtyFields.firstName &&

Field is dirty.

}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useFormState(\n props?: UseFormStateProps,\n): UseFormStateReturn {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) =>\n _mounted.current &&\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n value.name,\n exact,\n ) &&\n shouldRenderFormState(\n value,\n _localProxyFormState.current,\n control._updateFormState,\n ) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n\n return getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n );\n}\n\nexport { useFormState };\n","import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set | InternalFieldName[] | 0,\n abortEarly?: boolean,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n break;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n break;\n } else {\n iterateFieldsByAction(currentField, action);\n }\n } else if (isObject(currentField)) {\n iterateFieldsByAction(currentField, action);\n }\n }\n }\n};\n\nexport default iterateFieldsByAction;\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport compact from '../utils/compact';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message => isString(value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default (): Subject => {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: T, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: Record<\n Extract,\n ReturnType | boolean\n >,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","import { ValidationModeFlags } from '../types';\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n PathValue,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n flushRootRender: () => void,\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (value: boolean) =>\n _proxyFormState.isValidating &&\n _subjects.state.next({\n isValidating: value,\n });\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n const disabledField = !!(\n get(_fields, name) && get(_fields, name)._f.disabled\n );\n\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine =\n disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n\n _updateIsValidating(false);\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) =>\n _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n fieldValue &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues)\n );\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n !_state.mount && flushRootRender();\n };\n\n const onChange: ChangeHandler = async (event) => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue: any): void => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n };\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n }\n } else {\n error = (\n await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(\n field._f.deps as\n | FieldPath\n | FieldPath[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.values.next({\n values: { ..._formValues },\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const _updateDisabledField: Control['_updateDisabledField'] = ({\n disabled,\n name,\n field,\n fields,\n value,\n }) => {\n if (isBoolean(disabled)) {\n const inputValue = disabled\n ? undefined\n : isUndefined(value)\n ? getFieldValue(field ? field._f : get(fields, name)._f)\n : value;\n set(_formValues, name, inputValue);\n updateTouchAndDirty(name, inputValue, false, false, true);\n }\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n value: options.value,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n let requiredDisabledState = disabled;\n const currentField = get(_fields, name);\n if (currentField && isBoolean(currentField._f.disabled)) {\n requiredDisabledState ||= currentField._f.disabled;\n }\n\n ref.disabled = requiredDisabledState;\n },\n 0,\n false,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n await onValid(fieldValues as TFieldValues, e);\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as PathValue<\n TFieldValues,\n FieldPath\n >,\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values =\n formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.values.next({\n values: { ...values },\n });\n }\n\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n !_state.mount && flushRootRender();\n\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n\n _state.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? formValues(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"Form_form__Jl6hT\",\"formSubHead\":\"Form_formSubHead__HD9qF\",\"formInputContainer\":\"Form_formInputContainer__Q3tOt\",\"formSelectContainer\":\"Form_formSelectContainer__re9FL\",\"formInput\":\"Form_formInput__lu29J\",\"formSelectInput\":\"Form_formSelectInput__VYSuu\",\"errorMessage\":\"Form_errorMessage__veWhc\",\"selectDiv\":\"Form_selectDiv__uEe79\",\"selectInputField\":\"Form_selectInputField__chVUh\",\"phoneInputStyle\":\"Form_phoneInputStyle__Tg0m5\",\"formBody\":\"Form_formBody__bW-Rq\",\"formDiv\":\"Form_formDiv__4sfuX\",\"formDivDisabled\":\"Form_formDivDisabled__FTHnk\",\"payBtn\":\"Form_payBtn__gHpnM\",\"payBtnLogo\":\"Form_payBtnLogo__fzgR4\",\"cancelBtn\":\"Form_cancelBtn__NxGMp\"};","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgLogoLight(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 49,\n height: 18,\n viewBox: \"0 0 49 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_441_689)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.68328 14.2744C6.34492 14.2744 5.14359 13.4459 4.65659 12.1874L4.02582 10.559C3.96112 10.4111 3.89239 10.3154 3.81961 10.2709C3.74638 10.2264 3.62777 10.2042 3.46379 10.2042H3.183L3.01678 11.5807C2.83078 13.1183 1.53825 14.2744 0.00445557 14.2744L1.2925 3.69317C1.47939 2.15558 2.77282 1 4.30705 1L3.40269 8.43979H3.58689C3.73919 8.43979 3.86184 8.41619 3.95573 8.369C4.04918 8.32181 4.14307 8.23606 4.23653 8.11175L5.55601 6.28606C6.09694 5.53791 6.95682 5.09328 7.87378 5.08829L9.41699 5.07922L6.87056 8.35131C6.75331 8.50511 6.62482 8.64123 6.48419 8.75919C6.34357 8.8776 6.19711 8.98105 6.04526 9.06951C6.16836 9.17024 6.27484 9.28684 6.36559 9.41978C6.45634 9.5527 6.53676 9.70515 6.60685 9.87665L8.43311 14.2748H7.68328V14.2744Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.39941 14.2744L10.6731 3.69362C10.8582 2.15603 12.1507 1 13.6844 1L12.4108 11.5807C12.2253 13.1183 10.9332 14.2744 9.39941 14.2744Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.7302 12.2262C24.8533 12.3092 24.9993 12.3859 25.1691 12.4566C25.3389 12.5274 25.5614 12.5633 25.8363 12.5633C26.2227 12.5633 26.5092 12.4761 26.6966 12.3015C26.8839 12.1272 26.9774 11.9217 26.9774 11.6853C26.9774 11.502 26.9289 11.3514 26.8323 11.233C26.7358 11.1146 26.6085 11.013 26.4504 10.9272C26.2923 10.8415 26.1139 10.7648 25.9149 10.6967C25.7159 10.6291 25.511 10.5534 25.3003 10.4708C25.0896 10.3882 24.8847 10.292 24.6858 10.1827C24.4867 10.0733 24.3084 9.93587 24.1502 9.77027C23.9921 9.60467 23.8649 9.40095 23.7684 9.15823C23.6717 8.91594 23.6232 8.6233 23.6232 8.28031C23.6232 7.85474 23.701 7.44096 23.8559 7.03899C24.011 6.63701 24.2423 6.28085 24.5496 5.97052C24.8569 5.6602 25.2387 5.41066 25.6952 5.22146C26.1517 5.03227 26.6845 4.9379 27.2932 4.9379C27.902 4.9379 28.4448 5.04407 28.9223 5.25731C29.3994 5.4701 29.7929 5.73051 30.1034 6.03767L29.5459 6.75406C29.2197 7.17329 28.6441 7.29896 28.1761 7.05305C28.0445 6.985 27.8952 6.92465 27.7282 6.87111C27.5615 6.81804 27.3697 6.79126 27.1531 6.79126C26.7492 6.79126 26.4607 6.86976 26.2883 7.02629C26.1153 7.18326 26.029 7.38561 26.029 7.63379C26.029 7.79349 26.0772 7.9296 26.1737 8.04166C26.2703 8.15419 26.3974 8.25445 26.5555 8.34338C26.7137 8.43185 26.8938 8.51352 27.0956 8.58702C27.2973 8.66097 27.5039 8.74399 27.7147 8.83519C27.9254 8.92684 28.1316 9.03164 28.3338 9.15005C28.5355 9.26848 28.7156 9.4132 28.8738 9.5847C29.0319 9.7562 29.159 9.96037 29.2557 10.1967C29.3523 10.4331 29.4003 10.714 29.4003 11.0393C29.4003 11.5002 29.3096 11.9362 29.128 12.3473C28.9466 12.7583 28.6859 13.1159 28.3468 13.4203C28.0072 13.7247 27.5961 13.967 27.1131 14.1476C26.6301 14.3277 26.0874 14.418 25.4845 14.418C25.2113 14.418 24.9386 14.3917 24.6709 14.3372C24.3758 14.2773 24.0981 14.1952 23.838 14.0899C23.589 13.9892 23.3623 13.8699 23.1574 13.7306C22.9525 13.5918 22.7858 13.4425 22.6569 13.2828L23.1676 12.5251C23.5181 12.0061 24.2176 11.8727 24.7302 12.2262Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.1911 14.2744L31.4608 3.72901C31.6482 2.171 32.9573 1 34.5113 1L33.8702 6.28516C34.2858 5.8242 34.7247 5.48437 35.1874 5.26523C35.6497 5.04656 36.1268 4.93722 36.6188 4.93722C36.958 4.93722 37.2729 4.99937 37.5627 5.12323C37.8525 5.24754 38.0996 5.42902 38.3045 5.66857C38.5094 5.90813 38.6701 6.20213 38.7874 6.55102C38.9046 6.89992 38.9631 7.3019 38.9631 7.75696C38.9631 7.86359 38.9586 7.97292 38.95 8.08499C38.9416 8.1975 38.9311 8.31275 38.9195 8.4307L38.2348 14.2744H35.5127L36.1974 8.4307C36.2091 8.33634 36.2181 8.24877 36.2239 8.16937C36.2297 8.08952 36.2328 8.01421 36.2328 7.94344C36.2328 7.62402 36.1772 7.40262 36.0662 7.27831C35.9548 7.154 35.7881 7.09229 35.5657 7.09229C35.3843 7.09229 35.1937 7.14719 34.9952 7.25652C34.7961 7.36587 34.6042 7.52104 34.42 7.72202C34.2358 7.92301 34.0629 8.16529 33.9021 8.44931C33.7408 8.73286 33.6079 9.04955 33.5026 9.39799L33.2434 11.5463C33.0543 13.1034 31.7447 14.2744 30.1911 14.2744Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.4185 14.274H45.9611C45.7913 14.274 45.6493 14.2518 45.5352 14.2073C45.4211 14.1628 45.3304 14.1025 45.263 14.0254C45.1956 13.9487 45.1488 13.857 45.1223 13.7504C45.0958 13.6438 45.0827 13.5286 45.0827 13.4047V12.7487C44.7082 13.269 44.2926 13.6769 43.8361 13.9723C43.3796 14.2681 42.876 14.4155 42.3256 14.4155C41.9977 14.4155 41.6818 14.3488 41.3772 14.2159C41.0727 14.083 40.8036 13.882 40.5695 13.613C40.3354 13.3439 40.148 13.0009 40.0074 12.5844C39.8668 12.1675 39.7968 11.6756 39.7968 11.1081C39.7968 10.2746 39.9472 9.48381 40.2491 8.73611C40.5505 7.98842 40.9721 7.33373 41.5133 6.77205C42.0547 6.21037 42.6972 5.76438 43.4407 5.43318C44.1838 5.10198 45.0006 4.93638 45.8906 4.93638C46.3237 4.93638 46.7626 4.96587 47.2078 5.02484C47.6526 5.08383 48.0915 5.19046 48.5251 5.34426L47.4185 14.274ZM43.4147 12.2432C43.6137 12.2432 43.8068 12.1679 43.9942 12.0173C44.1815 11.8667 44.3586 11.6611 44.5253 11.4011C44.6919 11.1412 44.8455 10.8367 44.9862 10.4879C44.9875 10.4842 44.9889 10.481 44.9902 10.4774C45.2117 9.92573 45.3496 9.34363 45.4229 8.7529L45.6624 6.82605H45.5041C45.0594 6.82605 44.6537 6.92676 44.2881 7.12775C43.9223 7.32875 43.6073 7.60232 43.3442 7.94805C43.0809 8.29376 42.8773 8.69574 42.734 9.15398C42.5906 9.61221 42.5188 10.1013 42.5188 10.6217C42.5188 10.9175 42.5421 11.1684 42.5889 11.3753C42.6356 11.5822 42.6985 11.7491 42.7776 11.8762C42.8567 12.0032 42.9501 12.0962 43.0585 12.1557C43.1676 12.2137 43.2858 12.2432 43.4147 12.2432Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.4644 14.274H20.0071C19.8372 14.274 19.6952 14.2518 19.5811 14.2073C19.467 14.1628 19.3763 14.1025 19.3089 14.0254C19.2414 13.9487 19.1947 13.8571 19.1682 13.7504C19.1417 13.6438 19.1287 13.5286 19.1287 13.4047V12.7487C18.754 13.2691 18.3385 13.6769 17.882 13.9723C17.4256 14.2681 16.9219 14.4156 16.3716 14.4156C16.0437 14.4156 15.7278 14.3488 15.4232 14.2159C15.1186 14.083 14.8495 13.882 14.6153 13.613C14.3813 13.3439 14.194 13.0009 14.0534 12.5844C13.9127 12.1679 13.8427 11.6757 13.8427 11.1081C13.8427 10.2746 13.9932 9.48383 14.2951 8.73613C14.5965 7.98843 15.0179 7.33374 15.5593 6.77207C16.1006 6.21038 16.7431 5.76439 17.4866 5.43319C18.2297 5.10199 19.0465 4.93639 19.9365 4.93639C20.3695 4.93639 20.8086 4.96589 21.2537 5.02486C21.6986 5.08385 22.1375 5.19047 22.571 5.34428L21.4644 14.274ZM17.4601 12.2432C17.6592 12.2432 17.8524 12.1679 18.0397 12.0173C18.2271 11.8667 18.404 11.6611 18.5707 11.4012C18.7373 11.1412 18.8911 10.8368 19.0316 10.4879C19.033 10.4842 19.0344 10.4811 19.0357 10.4774C19.2572 9.92574 19.3951 9.34365 19.4683 8.75292L19.7078 6.82606H19.5497C19.1049 6.82606 18.6992 6.92678 18.3335 7.12777C17.9677 7.32876 17.6529 7.60233 17.3896 7.94806C17.1263 8.29378 16.9228 8.69576 16.7795 9.154C16.6362 9.61223 16.5643 10.1013 16.5643 10.6217C16.5643 10.9175 16.5877 11.1684 16.6344 11.3753C16.6812 11.5822 16.7441 11.7492 16.823 11.8762C16.9021 12.0032 16.9956 12.0962 17.1039 12.1557C17.213 12.2137 17.3312 12.2432 17.4601 12.2432Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_441_689\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 48.5205,\n height: 13.4483,\n fill: \"white\",\n transform: \"translate(0.0045166 1)\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoLight);\nexport default __webpack_public_path__ + \"static/media/logo-light.a98b0ebc8dea3bbb3dfda9f56d7b151b.svg\";\nexport { ForwardRef as ReactComponent };","import styles from '../../styles/Form.module.css';\n\nconst FormInput = ({ label, readOnly, value, setValue, inputType = 'text', pattern, field, dataContent, errorMessage, onFocus }) => {\n\tconst onChangeValue = (e) => {\n\t\tfield && field.onChange(e)\n\t\tsetValue(e.target.value)\n\n\t}\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{\n\t\t\t\t\tlabel &&

{label}

\n\t\t\t\t}\n\t\t\t\t\n\t\t\t
\n\t\t\t{\n\t\t\t\terrorMessage && {errorMessage}\n\t\t\t}\n\t\t
\n\n\t)\n}\n\nexport default FormInput;\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDropdown(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 8,\n viewBox: \"0 0 13 8\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.03369 1.14719L6.56494 6.67844L12.0962 1.14719\",\n stroke: \"black\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDropdown);\nexport default __webpack_public_path__ + \"static/media/dropdown.2acba3ade68e1d9e1378e3154ce38707.svg\";\nexport { ForwardRef as ReactComponent };","import styles from '../../styles/Form.module.css';\nimport { ReactComponent as Caret } from \"../../assets/icons/dropdown.svg\";\n\nconst CurrencySelect = ({ label, options = [], disabled, value, setValue }) => {\n\treturn (\n\t\t
\n\t\t\t

{label}

\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t setValue(e.target.value)}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\toptions.map((opt, index) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default CurrencySelect;\n","import styles from '../../styles/Form.module.css';\n\nconst PayingCurrencySelect = ({ label, options = [], disabled, value, setValue, dataContent }) => {\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{\n\t\t\t\t\tlabel &&

{label}

\n\t\t\t\t}\n\t\t\t\t
\n\n\t\t\t\t\t setValue(e.target.value)}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\toptions.map((opt, index) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default PayingCurrencySelect;\n","import styles from '../../styles/Form.module.css';\nimport ReactPhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\n\nconst FormPhone = ({ label, value, setValue, field, dataContent, errorMessage }) => {\n\tconst onChangeValue = (value) => {\n\t\tfield.onChange(value);\n\t\tsetValue(value);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{label &&

{label}

}\n\n\t\t\t\t\n\t\t\t
\n\t\t\t{errorMessage && {errorMessage}}\n\t\t
\n\t);\n};\n\nexport default FormPhone;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport { useForm, Controller } from \"react-hook-form\";\nimport styles from '../../styles/Form.module.css';\nimport { ReactComponent as LogoWhiteIcon } from \"../../assets/icons/logo-light.svg\";\nimport FormInput from \"../FormInput\";\nimport { useEffect, useState } from \"react\";\nimport CurrencySelect from \"../CurrencySelect\";\nimport PayingCurrencySelect from \"../CurrencySelect/PayingCurrency\";\nimport FormPhone from \"../FormPhone\";\n\nfunction Form(\n\t{\n\t\tcurrencyPreconfigured, amountPreconfigured, setFirstName, setLastName, setEmail, setPhoneNumber, currency,\n\t\tsetCurrency, payCurrency, setPayCurrency, currencyList, amount, setAmount, payLinkType, interval, setInterval,\n\t\tsetLimit, onSubmit, thePayingCurrencies, convertedAmount, onClear, email, phoneNumber, firstName, lastName,\n\t\tlimit, errorText, onFocus\n\n\t}) {\n\tconst { control, handleSubmit, formState: { errors }, reset } = useForm();\n\tconst [showRecurringInterval, setShowRecurringInterval] = useState(null)\n\n\tuseEffect(() => {\n\t\tsetShowRecurringInterval(!interval && payLinkType === 'RECURRING')\n\t},\n\t\t[]);\n\n\tconst onCancelClick = () => {\n\t\treset({\n\t\t\tfirstName: '',\n\t\t\tlastName: '',\n\t\t\temail: '',\n\t\t\tphone: '',\n\t\t})\n\t\tonClear()\n\t}\n\n\treturn (\n\t\t
\n\t\t\t{\n\t\t\t\tpayLinkType === 'RECURRING' && (\n\t\t\t\t\t
\n\t\t\t\t\t\t

You will be\n\t\t\t\t\t\t\tcharged {amount ? {currency} {amount} : null}every {interval ?? 30} days

\n\t\t\t\t\t
\n\t\t\t\t)\n\t\t\t}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrencyPreconfigured ?\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t { }} inputType={'number'} />\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tshowRecurringInterval && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n}\n\nexport default Form;\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () =>\n updateFormState((formState) => ({ ...formState })),\n ),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(\n () => control._disableForm(props.disabled),\n [control, props.disabled],\n );\n\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n","/**\n * This file exports environmental variables depending on the server environment\n */\n\nconst {\n REACT_APP_API_URL,\n REACT_APP_DASHBOARD_ACCESS_TOKEN,\n} = process.env\n\nexport const BACKEND_URL = REACT_APP_API_URL\n// REACT_APP_API_URL\n// REACT_APP_API_URL\nexport const PROD_RATE_BASE_URL = REACT_APP_API_URL\nexport const REACT_APP_POSTHOG_KEY = \"\"\n\n\nexport const DASHBOARD_ACCESS_TOKEN = REACT_APP_DASHBOARD_ACCESS_TOKEN\n","// extracted by mini-css-extract-plugin\nexport default {\"paymentSuccessfulContainer\":\"PaymentSuccessful_paymentSuccessfulContainer__iGH3L\",\"message\":\"PaymentSuccessful_message__Sgtxr\"};","var _path, _ellipse, _path2, _path3, _path4, _path5, _path6, _path7, _path8;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgFeebackMessageSuccess(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128,\n height: 128,\n viewBox: \"0 0 128 128\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.5416 105.234C27.2467 106.679 23.8679 103.379 25.2351 100.051L46.8434 47.451L82.6187 82.3948L30.5416 105.234Z\",\n fill: \"#EF2C5A\",\n stroke: \"black\",\n strokeWidth: 1.54\n })), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 65.6107,\n cy: 64.02,\n rx: 25.3624,\n ry: 7.49345,\n transform: \"rotate(44.3263 65.6107 64.02)\",\n fill: \"white\",\n stroke: \"black\",\n strokeWidth: 1.54\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.5078 64.6211C63.9738 67.4878 69.5 74 78 78\",\n stroke: \"black\",\n strokeWidth: 2\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8203 67.7695L63.2548 90.7022\",\n stroke: \"black\",\n strokeWidth: 2\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.8984 83.25L47.5984 97.985\",\n stroke: \"black\",\n strokeWidth: 2\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.5317 30.9003L83.7216 31.6064C84.0321 32.7613 82.9745 33.8185 81.8197 33.5076V33.5076C80.5782 33.1734 79.4921 34.4075 79.9814 35.5965L80.2175 36.1703C80.7213 37.3944 79.82 38.7376 78.4964 38.7356L77.9136 38.7347C76.5783 38.7327 75.5356 39.8884 75.6746 41.2165L75.7791 42.215\",\n stroke: \"black\",\n strokeWidth: 1.54,\n strokeLinecap: \"square\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.2434 38.8573L60.4962 38.0031C60.9902 36.3342 59.9965 34.5893 58.3091 34.1627V34.1627C55.5721 33.4707 55.1477 29.7595 57.6578 28.4675L58.1695 28.2042C60.0804 27.2206 60.4126 24.6271 58.8111 23.1938V23.1938C56.4804 21.1077 52.9181 23.532 53.8776 26.5092V26.5092\",\n stroke: \"black\",\n strokeWidth: 1.54,\n strokeLinecap: \"square\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.6038 48.7226L96.0105 48.5659C94.8511 48.2597 93.6699 48.9795 93.4104 50.1502V50.1502C92.9897 52.049 90.4427 52.4168 89.5019 50.7146L89.3101 50.3676C88.5939 49.0717 86.8012 48.8959 85.8468 50.0278V50.0278C84.4577 51.6753 86.1997 54.079 88.2303 53.3576V53.3576\",\n stroke: \"black\",\n strokeWidth: 1.54,\n strokeLinecap: \"square\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.57 79.043C106.592 72.7027 100.179 64.8749 97.6922 68.6652C95.9675 71.2943 101.895 76.4277 106.402 65.949\",\n stroke: \"black\",\n strokeWidth: 1.54,\n strokeLinecap: \"square\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFeebackMessageSuccess);\nexport default __webpack_public_path__ + \"static/media/Feeback-Message-success.a9be6399b3cbc0cf63d6914c10c2a7db.svg\";\nexport { ForwardRef as ReactComponent };","import styles from '../../styles/PaymentSuccessful.module.css';\nimport { ReactComponent as SuccessPaymentIcon } from \"../../assets/icons/Feeback-Message-success.svg\"\n\nfunction PaymentSuccessful({ message = 'Payment successful' }) {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t
{message}
\n\t\t
\n\t);\n}\n\nexport default PaymentSuccessful;\n","// extracted by mini-css-extract-plugin\nexport default {\"invalidPaymentToken\":\"InvalidToken_invalidPaymentToken__oIB0P\",\"invalidPaymentTexts\":\"InvalidToken_invalidPaymentTexts__kg2PA\",\"invalidPaymentText\":\"InvalidToken_invalidPaymentText__c2Cdt\",\"invalidPaymentSubText\":\"InvalidToken_invalidPaymentSubText__++45V\"};","var _circle, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgFeebackMessageFail(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128,\n height: 129,\n viewBox: \"0 0 128 129\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 64,\n cy: 64.24,\n r: 38,\n fill: \"#EF2C5A\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30 65.2398C30 53.2847 36.1703 42.7707 45.5 36.7087\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M79.7036 77.1144C80.4847 77.8955 80.4847 79.1618 79.7036 79.9428C78.9226 80.7239 77.6563 80.7239 76.8752 79.9428L64.4619 67.5295L52.0478 79.9437C51.2667 80.7247 50.0004 80.7247 49.2193 79.9437C48.4383 79.1626 48.4383 77.8963 49.2193 77.1153L61.6335 64.7011L49.2193 52.287C48.4383 51.5059 48.4383 50.2396 49.2193 49.4585C50.0004 48.6775 51.2667 48.6775 52.0478 49.4585L64.4619 61.8727L76.8752 49.4594C77.6563 48.6783 78.9226 48.6783 79.7036 49.4594C80.4847 50.2404 80.4847 51.5068 79.7036 52.2878L67.2903 64.7011L79.7036 77.1144Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFeebackMessageFail);\nexport default __webpack_public_path__ + \"static/media/Feeback-Message-fail.3e2e5d928299fb18f05d9b48928ea7fc.svg\";\nexport { ForwardRef as ReactComponent };","import styles from './InvalidToken.module.css';\nimport { ReactComponent as FailedPaymentIcon } from \"../../assets/icons/Feeback-Message-fail.svg\"\n\nconst InvalidPaymentToken = ({ errorType, message }) => {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t

{message}

\n\t\t\t\t

\n\t\t\t\t\t{\n\t\t\t\t\t\terrorType === 'INVALID'\n\t\t\t\t\t\t\t? 'Please reach out to the merchant'\n\t\t\t\t\t\t\t: 'Please try again later'\n\t\t\t\t\t}\n\t\t\t\t

\n\t\t\t
\n\t\t
\n\t);\n}\n\nexport default InvalidPaymentToken;\n","import { useState, useEffect } from \"react\";\n\nconst cachedScripts = [];\n\nexport default function useKlashaScript(isTestMode = false) {\n let src1 = process.env.REACT_APP_ENV === \"dev\" ? \"https://dev.d3r485nqo1ffyt.amplifyapp.com/pay.js\" : \"https://main.d3r485nqo1ffyt.amplifyapp.com/pay.js\";\n\n const [state, setState] = useState({\n loaded: false,\n error: false,\n });\n\n useEffect(() => {\n if (cachedScripts.includes(src1)) {\n setState({\n loaded: true,\n error: false,\n });\n } else {\n const divScript = window.document.createElement(\"div\");\n divScript.id = \"ktest\";\n window.document.body.appendChild(divScript);\n\n const script1 = document.createElement(\"script\");\n script1.src = src1;\n script1.async = true;\n\n const onScriptLoad = () => {\n setState({\n loaded: true,\n error: false,\n });\n };\n\n const onScriptError = () => {\n const index1 = cachedScripts.indexOf(src1);\n if (index1 >= 0) cachedScripts.splice(index1, 1);\n script1.remove();\n\n setState({\n loaded: true,\n error: true,\n });\n };\n\n script1.addEventListener(\"load\", onScriptLoad);\n script1.addEventListener(\"complete\", onScriptLoad);\n script1.addEventListener(\"error\", onScriptError);\n\n document.body.appendChild(script1);\n\n return () => {\n script1.removeEventListener(\"load\", onScriptLoad);\n script1.removeEventListener(\"error\", onScriptError);\n };\n }\n }, [src1]);\n\n return [state.loaded, state.error];\n}\n","export const callKlashaClient = (klashaArgs) => {\n const handler = new window.KlashaClient(\n klashaArgs.merchantKey,\n klashaArgs.businessId || 1,\n klashaArgs.amount,\n 'ktest',\n klashaArgs.callbackUrl,\n klashaArgs.destinationCurrency,\n klashaArgs.sourceCurrency,\n klashaArgs.kit,\n klashaArgs.isTestMode\n );\n // handler.init();\n};\n","import { useEffect } from \"react\";\nimport useKlashaScript from \"./klasha-script\";\nimport { callKlashaClient } from \"./klasha-actions\";\n\nexport default function useKlashaPayment(options) {\n const [scriptLoaded, scriptError] = useKlashaScript(options.isTestMode);\n const {\n isTestMode,\n merchantKey,\n businessId,\n amount,\n tx_ref,\n sourceCurrency,\n destinationCurrency,\n fullname,\n email,\n phone_number,\n paymentDescription,\n callbackUrl,\n metadata,\n kit,\n } = options;\n\n function clean(obj) {\n for (const propName in obj) {\n if (obj[propName] === null || obj[propName] === undefined) {\n delete obj[propName];\n }\n }\n return obj;\n }\n\n function initializePayment(callBack) {\n if (scriptError) {\n throw new Error(\"Unable to load klasha inline script\");\n }\n\n if (scriptLoaded) {\n const klashaArgs = {\n callBack: callBack ? callBack : () => null,\n isTestMode,\n merchantKey,\n businessId,\n amount,\n tx_ref,\n destinationCurrency: destinationCurrency || \"NGN\",\n sourceCurrency: sourceCurrency || \"NGN\",\n fullname: fullname || \"\",\n email: email || \"\",\n phone_number: phone_number || \"\",\n paymentDescription: paymentDescription || \"\",\n callbackUrl: callbackUrl || \"\",\n metadata: metadata || {},\n kit: kit || null,\n \"data-custom-button\": options[\"data-custom-button\"] || \"\",\n };\n callKlashaClient(clean(klashaArgs));\n }\n }\n\n useEffect(() => {\n if (scriptError) {\n throw new Error(\"Unable to load klasha inline script\");\n }\n }, [scriptError]);\n\n return initializePayment;\n}\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgLoadericon(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 45,\n viewBox: \"0 0 32 45\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.0395 44.7137C21.5376 44.7137 17.4967 41.9231 15.8585 37.6837L13.7368 32.1988C13.5192 31.7006 13.288 31.3781 13.0432 31.2284C12.7969 31.0786 12.3979 31.0037 11.8463 31.0037H10.9018L10.3427 35.6404C9.71704 40.8197 5.36934 44.7137 0.210114 44.7137L4.54271 9.07173C5.17136 3.89247 9.52208 0 14.6828 0L11.6408 25.0603H12.2604C12.7727 25.0603 13.1852 24.9809 13.501 24.8219C13.8154 24.663 14.1312 24.3741 14.4456 23.9554L18.8839 17.8057C20.7034 15.2856 23.5958 13.7879 26.6802 13.7711L31.8712 13.7405L23.3057 24.7623C22.9113 25.2804 22.4791 25.7389 22.0061 26.1362C21.5331 26.5351 21.0404 26.8835 20.5296 27.1815C20.9437 27.5208 21.3019 27.9136 21.6071 28.3614C21.9124 28.8091 22.1829 29.3226 22.4186 29.9003L28.5617 44.7152H26.0395V44.7137Z\",\n fill: \"#EF2C5A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLoadericon);\nexport default __webpack_public_path__ + \"static/media/loadericon.220a314b076b05e00c4d913d4f28e5b1.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 71,\n height: 21,\n viewBox: \"0 0 71 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1825 20.0263C9.23344 20.0263 7.48397 18.7914 6.77477 16.9155L5.8562 14.4883C5.76199 14.2679 5.66188 14.1252 5.5559 14.0589C5.44925 13.9926 5.27653 13.9595 5.03773 13.9595H4.62882L4.38675 16.0113C4.11589 18.3032 2.23361 20.0263 0 20.0263L1.87574 4.25442C2.1479 1.96255 4.03149 0.240105 6.26576 0.240105L4.94875 11.3295H5.21699C5.43879 11.3295 5.6174 11.2943 5.75413 11.224C5.89022 11.1537 6.02696 11.0259 6.16304 10.8406L8.08457 8.11928C8.87229 7.00411 10.1245 6.34137 11.4599 6.33393L13.7072 6.32041L9.99891 11.1976C9.82815 11.4269 9.64104 11.6298 9.43626 11.8056C9.23148 11.9821 9.01819 12.1363 8.79705 12.2682C8.97632 12.4183 9.13138 12.5921 9.26353 12.7902C9.39569 12.9884 9.5128 13.2156 9.61487 13.4712L12.2744 20.027H11.1825V20.0263Z\",\n fill: \"#EF2C5A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6809 20.0262L15.5357 4.25498C15.8053 1.96311 17.6875 0.23999 19.9212 0.23999L18.0664 16.0112C17.7961 18.303 15.9145 20.0262 13.6809 20.0262Z\",\n fill: \"#EF2C5A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.0069 16.9729C36.1862 17.0967 36.3988 17.211 36.6461 17.3165C36.8934 17.422 37.2173 17.4754 37.6177 17.4754C38.1803 17.4754 38.5978 17.3456 38.8706 17.0852C39.1434 16.8255 39.2795 16.5192 39.2795 16.1668C39.2795 15.8936 39.2088 15.6691 39.0682 15.4926C38.9275 15.3161 38.7423 15.1646 38.5121 15.0368C38.2818 14.909 38.022 14.7947 37.7322 14.6933C37.4423 14.5925 37.144 14.4796 36.8372 14.3565C36.5303 14.2334 36.232 14.09 35.9421 13.927C35.6523 13.7641 35.3926 13.5592 35.1623 13.3123C34.932 13.0655 34.7468 12.7618 34.6062 12.4C34.4655 12.0389 34.3948 11.6027 34.3948 11.0915C34.3948 10.4571 34.508 9.84037 34.7337 9.2412C34.9595 8.64203 35.2964 8.11116 35.7439 7.64859C36.1914 7.18603 36.7475 6.81408 37.4123 6.53208C38.077 6.25008 38.8529 6.10941 39.7394 6.10941C40.6259 6.10941 41.4163 6.26766 42.1117 6.5855C42.8066 6.90267 43.3797 7.29085 43.8318 7.74868L43.0198 8.8165C42.5449 9.44137 41.7068 9.6287 41.025 9.26216C40.8333 9.16072 40.6161 9.07078 40.3727 8.99098C40.13 8.91186 39.8506 8.87196 39.5353 8.87196C38.9471 8.87196 38.5271 8.98895 38.2759 9.22226C38.024 9.45625 37.8984 9.75787 37.8984 10.1278C37.8984 10.3658 37.9684 10.5687 38.109 10.7357C38.2497 10.9035 38.4348 11.0529 38.6651 11.1855C38.8954 11.3173 39.1578 11.4391 39.4516 11.5486C39.7453 11.6588 40.0463 11.7826 40.3531 11.9185C40.66 12.0551 40.9603 12.2114 41.2547 12.3879C41.5484 12.5644 41.8108 12.7801 42.0411 13.0357C42.2714 13.2914 42.4565 13.5957 42.5972 13.948C42.7379 14.3003 42.8079 14.719 42.8079 15.2038C42.8079 15.8909 42.6757 16.5408 42.4114 17.1535C42.1471 17.7662 41.7676 18.2991 41.2736 18.7529C40.779 19.2066 40.1804 19.5678 39.4771 19.8369C38.7738 20.1054 37.9834 20.24 37.1054 20.24C36.7076 20.24 36.3105 20.2008 35.9206 20.1196C35.4907 20.0303 35.0864 19.9079 34.7076 19.751C34.3451 19.6009 34.0147 19.4231 33.7164 19.2154C33.418 19.0085 33.1753 18.786 32.9875 18.548L33.7314 17.4186C34.2418 16.645 35.2604 16.4461 36.0069 16.9729Z\",\n fill: \"#EF2C5A\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.9595 20.0262L45.8084 4.30773C46.0812 1.98543 47.9877 0.23999 50.2507 0.23999L49.3171 8.11781C49.9223 7.43072 50.5615 6.9242 51.2354 6.59756C51.9086 6.2716 52.6034 6.10862 53.3198 6.10862C53.8138 6.10862 54.2724 6.20127 54.6944 6.38589C55.1164 6.57119 55.4762 6.84169 55.7746 7.19876C56.0729 7.55583 56.3071 7.99405 56.4779 8.5141C56.6486 9.03414 56.7337 9.63332 56.7337 10.3116C56.7337 10.4705 56.7272 10.6335 56.7147 10.8006C56.7023 10.9683 56.6873 11.14 56.6702 11.3159L55.6732 20.0262H51.7091L52.7061 11.3159C52.7231 11.1752 52.7362 11.0447 52.7447 10.9263C52.7532 10.8073 52.7578 10.6951 52.7578 10.5896C52.7578 10.1135 52.6767 9.78345 52.5151 9.59815C52.3528 9.41285 52.1101 9.32088 51.7863 9.32088C51.5219 9.32088 51.2445 9.40271 50.9554 9.56569C50.6655 9.72867 50.3862 9.95995 50.1179 10.2595C49.8497 10.5591 49.5978 10.9202 49.3636 11.3436C49.1287 11.7663 48.935 12.2383 48.7819 12.7577L48.4044 15.9598C48.129 18.2807 46.2219 20.0262 43.9595 20.0262Z\",\n fill: \"#EF2C5A\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.0483 20.0258H66.9259C66.6786 20.0258 66.4719 19.9927 66.3057 19.9264C66.1395 19.8602 66.0074 19.7702 65.9092 19.6552C65.8111 19.541 65.7431 19.4043 65.7045 19.2454C65.6659 19.0865 65.6469 18.9147 65.6469 18.7301V17.7522C65.1012 18.5279 64.4961 19.1359 63.8313 19.5761C63.1666 20.017 62.4332 20.2368 61.6318 20.2368C61.1542 20.2368 60.6942 20.1374 60.2506 19.9393C59.807 19.7411 59.4152 19.4415 59.0743 19.0405C58.7334 18.6395 58.4606 18.1282 58.2558 17.5074C58.051 16.8859 57.949 16.1529 57.949 15.3069C57.949 14.0646 58.1681 12.8858 58.6078 11.7713C59.0468 10.6569 59.6605 9.68101 60.4489 8.84379C61.2372 8.00657 62.1728 7.3418 63.2556 6.84813C64.3377 6.35446 65.5272 6.10762 66.8232 6.10762C67.4539 6.10762 68.0931 6.15158 68.7415 6.23949C69.3892 6.32741 70.0284 6.48633 70.6598 6.71558L69.0483 20.0258ZM63.2177 16.9989C63.5075 16.9989 63.7888 16.8866 64.0616 16.6621C64.3345 16.4376 64.5922 16.1312 64.835 15.7437C65.0777 15.3562 65.3014 14.9025 65.5062 14.3824C65.5082 14.377 65.5102 14.3723 65.5121 14.3668C65.8347 13.5445 66.0355 12.6769 66.1422 11.7964L66.4909 8.92427H66.2606C65.6129 8.92427 65.0221 9.0744 64.4895 9.37398C63.957 9.67357 63.4983 10.0814 63.1149 10.5967C62.7315 11.112 62.4352 11.7112 62.2265 12.3942C62.0178 13.0772 61.9131 13.8062 61.9131 14.5819C61.9131 15.0228 61.9471 15.3968 62.0151 15.7052C62.0832 16.0136 62.1748 16.2624 62.2899 16.4518C62.4051 16.6411 62.5412 16.7798 62.6988 16.8684C62.8578 16.9549 63.0299 16.9989 63.2177 16.9989Z\",\n fill: \"#EF2C5A\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.2519 20.0258H29.1296C28.8822 20.0258 28.6755 19.9927 28.5093 19.9264C28.3431 19.8602 28.211 19.7702 28.1128 19.6552C28.0147 19.541 27.9467 19.4043 27.9081 19.2454C27.8695 19.0865 27.8505 18.9147 27.8505 18.7301V17.7522C27.3049 18.5279 26.6997 19.1359 26.035 19.5761C25.3702 20.017 24.6368 20.2368 23.8354 20.2368C23.3578 20.2368 22.8978 20.1374 22.4542 19.9393C22.0107 19.7411 21.6188 19.4415 21.2779 19.0405C20.937 18.6395 20.6642 18.1282 20.4594 17.5074C20.2547 16.8866 20.1526 16.1529 20.1526 15.3069C20.1526 14.0646 20.3718 12.8858 20.8114 11.7713C21.2504 10.6569 21.8641 9.68101 22.6525 8.84379C23.4408 8.00657 24.3764 7.3418 25.4592 6.84813C26.5413 6.35446 27.7308 6.10762 29.0268 6.10762C29.6575 6.10762 30.2967 6.15158 30.9451 6.23949C31.5928 6.32741 32.232 6.48633 32.8634 6.71558L31.2519 20.0258ZM25.4206 16.9989C25.7104 16.9989 25.9918 16.8866 26.2646 16.6621C26.5374 16.4376 26.7952 16.1312 27.0379 15.7437C27.2806 15.3562 27.5044 14.9025 27.7092 14.3824C27.7111 14.377 27.7131 14.3723 27.7151 14.3668C28.0376 13.5445 28.2385 12.6769 28.3451 11.7964L28.6938 8.92427H28.4635C27.8158 8.92427 27.225 9.0744 26.6925 9.37398C26.1599 9.67357 25.7013 10.0814 25.3179 10.5967C24.9345 11.112 24.6381 11.7112 24.4294 12.3942C24.2207 13.0772 24.116 13.8062 24.116 14.5819C24.116 15.0228 24.1501 15.3968 24.2181 15.7052C24.2861 16.0136 24.3777 16.2624 24.4929 16.4518C24.608 16.6411 24.7441 16.7798 24.9018 16.8684C25.0608 16.9549 25.2328 16.9989 25.4206 16.9989Z\",\n fill: \"#EF2C5A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.bf69e49ea93b59a167dd5b3165f70d06.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable react-hooks/exhaustive-deps */\nimport { useEffect, useState } from \"react\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { countries } from \"countries-list\";\nimport { useFeatureFlagEnabled } from 'posthog-js/react'\nimport styles from \"./App.module.css\";\nimport Form from \"./components/Form\";\nimport { BACKEND_URL, PROD_RATE_BASE_URL, DASHBOARD_ACCESS_TOKEN } from \"./utils/env\";\n\nimport PaymentSuccessful from \"./components/PaymentSuccessFul\";\nimport InvalidPaymentToken from \"./components/InvalidToken\";\nimport useKlashaPayment from \"./libs/use-klasha\";\nimport { ReactComponent as LogoPink } from \"./assets/icons/loadericon.svg\";\nimport { ReactComponent as LogoIcon } from \"./assets/icons/logo.svg\";\n\nconst whitelistedOrigins = [\n \"https://stitch-redirect.herokuapp.com\",\n \"https://stitch-redirect-o542m.ondigitalocean.app\",\n \"https://secure.stitch.money\",\n \"https://plugins-redirect.klasha.com\",\n];\n\nfunction App() {\n const [currencyPreconfigured, setCurrencyPreconfigured] = useState(false);\n const [amountPreconfigured, setAmountPreconfigured] = useState(false);\n const flagEnabled = useFeatureFlagEnabled('enable_inspect') \n const [firstName, setFirstName] = useState(\"\");\n const [lastName, setLastName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [phoneNumber, setPhoneNumber] = useState(\"\");\n\n const [merchantKey, setMerchantKey] = useState(\"\");\n const [businessObj, setBusinessObj] = useState(\"\");\n const [taxRefId, setTaxRefId] = useState(\"\");\n\n const [currency, setCurrency] = useState(\"\");\n const [payCurrency, setPayCurrency] = useState(\"\");\n const [currencyList, setCurrencyList] = useState([]);\n const [amount, setAmount] = useState(1);\n const [payLinkType, setPayLinkType] = useState(\"\");\n const [interval, setInterval] = useState(null);\n const [limit, setLimit] = useState(30);\n const [paylinkId, setPaylinkId] = useState(null);\n const [referred, setReferred] = useState(false)\n const [extraPayload, setExtraPayload] = useState({});\n const [paymentSucceeded, setPaymentSucceeded] = useState(false);\n const [thePayingCurrencies, setThePayingCurrencies] = useState([]);\n const [payCurrencyWithoutIndex, setPayCurrencyWithoutIndex] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [appLoading, setAppLoading] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [successMessage, setSuccessMessage] = useState(\"\");\n const [errorType, setErrorType] = useState(\"\");\n const [isBaePayLink, setIsBaePayLink] = useState(false);\n const [baeEmail, setBaeEmail] = useState(\"\");\n const [convertedAmount, setConvertedAmount] = useState(\"0.00\");\n const [emailError, setEmailError] = useState(\"\");\n const mailformat = /^\\w+([._+-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,})+$/;\n\n const origin = window.location.search\n const urlParams = new URLSearchParams(origin);\n\n \n\n const token = urlParams.get('token');\n\n const onClear = () => {\n setFirstName(\"\");\n setLastName(\"\");\n setEmail(\"\");\n setPhoneNumber(\"\");\n setPayCurrency(\"\");\n setConvertedAmount(\"\");\n };\n\n function addTwoDecimalPlaces(number) {\n return parseFloat(number).toFixed(2);\n}\n\n\n async function fetchData() {\n setLoading(true);\n const merchantToken = window.location.search.split(\"=\")[1] || \"\";\n let errorStatus;\n try {\n const getPaymentByToken = await fetch(\n `${BACKEND_URL}/merchant/paylink/token/${merchantToken}`,\n {\n headers: {\n 'Content-Type': 'application/json',\n 'x-fe-token': DASHBOARD_ACCESS_TOKEN\n }\n }\n );\n\n if (!getPaymentByToken.ok) {\n errorStatus = getPaymentByToken.status;\n throw new Error(errorStatus);\n }\n const paymentData = await getPaymentByToken.json();\n\n const {\n currency,\n amount: payAmount,\n payLinkType,\n interval,\n merchantKey,\n business,\n name,\n } = paymentData;\n\n \n setCurrencyPreconfigured(currency !== null && currency !== undefined);\n setAmountPreconfigured(payAmount !== null && payAmount !== undefined);\n const isBaeLinkType = name.includes(\"BaePayApp\") || name === \"BaePay\";\n setIsBaePayLink(isBaeLinkType);\n setCurrency(currency);\n setAmount(payAmount);\n \n if (payLinkType === \"RECURRING\") {\n setExtraPayload({ rememberMe: true, limit: limit });\n }\n \n setPayLinkType(payLinkType);\n \n setInterval(interval);\n \n setBusinessObj(business ?? {});\n setMerchantKey(merchantKey);\n let transactionId = uuidv4();\n if (isBaeLinkType) {\n if (name.includes(\"BaePayApp\")) {\n transactionId = \"bae-\" + transactionId + \"-app\";\n } else {\n transactionId = \"bae-\" + transactionId;\n }\n setBaeEmail(paymentData.email);\n } else {\n transactionId = \"paylink-\" + transactionId;\n }\n setTaxRefId(transactionId);\n setPaylinkId(merchantToken);\n \n const africaPlusFlagAndCurrencies = getAfricanPlusFlagAndCurrencies(name);\n setThePayingCurrencies(africaPlusFlagAndCurrencies);\n} catch (e) {\n setHasError(true);\n if ([400, 404].includes(errorStatus)) {\n setErrorType(\"INVALID\");\n setErrorMessage(\"Paylink does not exist\");\n } else {\n setErrorType(\"INTERNAL\");\n setErrorMessage(\"Something went wrong\");\n }\n}\n\nsetLoading(false);\n}\n\n //The exchange rate baseUrl is the prod baseUrl\n// This is to avoid any glitch on our rates\n const fetchExcRate = async ({ sourceCurrency, destinationCurrency }) => {\n setAppLoading(true);\n let payload = JSON.stringify({\n amount: amount,\n sourceCurrency: destinationCurrency,\n destinationCurrency: sourceCurrency,\n source: \"checkout\",\n provider: \"butter\",\n businessId: businessObj?.id,\n productType: \"PAYMENT_LINK\"\n\n });\n\n try {\n await fetch(`${PROD_RATE_BASE_URL}/nucleus/general/exchange`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n 'x-fe-token': DASHBOARD_ACCESS_TOKEN\n },\n body: payload,\n })\n .then((res) => res.json())\n .then((resData) => {\n const convertedRate = resData.data.amount;\n setConvertedAmount(convertedRate);\n \n })\n } catch (e) {}\n setAppLoading(false);\n };\n\n\n const sortByCurrency = (currencyFlayObjects) => {\n const [...currObjCopy] = currencyFlayObjects;\n return currObjCopy.sort(function (a, b) {\n let nameA = a.currency.toUpperCase(); // ignore upper and lowercase\n let nameB = b.currency.toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n // names must be equal\n return 0;\n });\n };\n\n const getAllCurrenciesAndFlag = () => {\n // All countries + EU\n let countriesCurrency = [];\n for (const [key, value] of Object.entries(countries)) {\n if (key === \"AQ\") continue;\n const currencies = value.currency.split(\",\");\n\n // Take only first currency\n countriesCurrency.push({ flag: value.emoji, currency: currencies[0] });\n }\n\n const excludedAfricanCurrencies = [\n \"AOA\",\n \"AFN\",\n \"BIF\",\n \"CDF\",\n \"CVE\",\n \"DJF\",\n \"DZD\",\n \"EGP\",\n \"ERN\",\n \"LYD\",\n \"LSL\",\n \"LRD\",\n \"KMF\",\n \"MRU\",\n \"MGA\",\n \"NAD\",\n \"MZN\",\n \"TND\",\n \"SZL\",\n \"STN\",\n \"SSP\",\n \"GNF\",\n \"SOS\",\n \"SHP\",\n \"SDG\",\n \"SCR\",\n \"GBP\"\n ];\n const filteredResult = countriesCurrency.filter(\n (afCount) => !excludedAfricanCurrencies.includes(afCount.currency)\n );\n return sortByCurrency(filteredResult);\n };\n\n\n const getAfricanPlusFlagAndCurrencies = (linkName) => {\n const payingCurrencies = [\n { currency: \"NGN\", countries: [\"NG\"] },\n { currency: \"KES\", countries: [\"KE\"] },\n { currency: \"UGX\", countries: [\"UG\"] },\n { currency: \"TZS\", countries: [\"TZ\"] },\n { currency: \"ZMW\", countries: [\"ZM\"] },\n { currency: \"ZAR\", countries: [\"ZA\"] },\n { currency: \"CDF\", countries: [\"DRC\"] },\n { currency: \"XOF\", countries: [\"SN\", \"CI\", \"BJ\"] },\n { currency: \"XAF\", countries: [\"CM\"] },\n { currency: \"RWF\", countries: [\"RW\"] },\n { currency: \"MWK\", countries: [\"MW\"] },\n { currency: \"SLL\", countries: [\"SL\"] }\n ]\n if (!linkName.includes(\"BaePayApp\")) {\n payingCurrencies.push({ country: \"US\", currency: \"USD\" });\n }\n const payingCurrenciesOptions = payingCurrencies.map((payCur) => {\n return {\n flag: countries[payCur.country]?.emoji,\n currency: payCur.currency,\n };\n });\n\n return sortByCurrency(payingCurrenciesOptions);\n };\n\n const removePaymentGatewayFromDOM = () => {\n const gatewayPopup = document.getElementById(\"klashaPayment\");\n gatewayPopup.remove();\n };\n\n useEffect(() => {\n if(businessObj.publicReferrer === \"paystack\"){\n setReferred(true)\n }\n}, [businessObj])\n\n useEffect(() => {\n // listen to stitch payment response\n window.addEventListener(\"message\", (ev) => {\n if (whitelistedOrigins.includes(ev.origin)) {\n if (typeof ev.data !== \"object\") return;\n if (!ev.data.type) return;\n if (ev.data.type !== \"klasha:stitch\") return;\n if (!ev.data.status) return;\n callWhenDone(ev.data);\n removePaymentGatewayFromDOM();\n }\n });\n }, []);\n\n useEffect(() => {\n const allCurrencies = getAllCurrenciesAndFlag();\n setCurrencyList(allCurrencies);\n\n fetchData();\n }, []);\n\n useEffect(() => {\n if (payCurrency && payCurrency.length) {\n const payCurrencyWithoutI = payCurrency.split(\"-\")[0];\n setPayCurrencyWithoutIndex(payCurrencyWithoutI);\n }\n }, [payCurrency]);\n\n useEffect(() => {\n if (payCurrency && payCurrency.length && currency && currency.length) {\n const payCurrencyWithoutI = payCurrency.split(\"-\")[0];\n fetchExcRate({\n sourceCurrency: currency,\n destinationCurrency: payCurrencyWithoutI,\n });\n }\n }, [currency, payCurrency]);\n\n\n const callWhenDone = (data) => {\n if (data[\"status\"] === \"successful\") {\n setSuccessMessage(\"Payment successful\");\n setPaymentSucceeded(true);\n } else if (data[\"status\"] === \"pending\") {\n setSuccessMessage(\n \"Your payment is now being processed. You will be notified via email when payment is successful.\"\n );\n setPaymentSucceeded(true);\n } else {\n setPaymentSucceeded(false);\n }\n };\n\n\n const initializePayment = useKlashaPayment({\n isTestMode: process.env.REACT_APP_ENV === \"dev\",\n email: email,\n phoneNumber: phoneNumber,\n merchantKey: merchantKey,\n businessId: businessObj.id,\n amount: Number(amount).toFixed(2),\n destinationCurrency: payCurrencyWithoutIndex,\n sourceCurrency: currency,\n tx_ref: taxRefId,\n fullname: `${firstName} ${lastName}`,\n kit: {\n currency: currency,\n tx_ref: taxRefId,\n paymentType: payLinkType,\n fullname: `${firstName} ${lastName}`,\n firstName,\n lastName,\n email: email,\n phone_number: phoneNumber,\n hasBae: !isBaePayLink,\n extra: isBaePayLink ? \"baepay\" : \"\",\n paylinkToken: token,\n baeEmail: isBaePayLink ? baeEmail : undefined,\n paystack: referred,\n category: businessObj.riskCategory,\n productType: \"PAYMENT_LINK\",\n callBack: callWhenDone,\n },\n paymentDescription: \"\",\n channel: \"paylink\",\n extra: paylinkId, // paylink id,\n ...extraPayload,\n });\n\n const onSubmit = async () => {\n if (!email.match(mailformat) && email) {\n setEmailError(\"Please enter a valid email address\");\n } else {\n initializePayment();\n }\n };\n\n useEffect(() => {\n if (appLoading) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"auto\";\n }\n }, [appLoading]);\n\n\n useEffect(() => {\n const disableRightClick = (e) => e.preventDefault();\n const disableInspect = (e) => {\n if (e.ctrlKey && e.shiftKey && e.key === 'I') e.preventDefault();\n };\n \n if (flagEnabled) {\n\n document.addEventListener('contextmenu', disableRightClick);\n document.addEventListener('keydown', disableInspect);\n }\n \n return () => {\n document.removeEventListener('contextmenu', disableRightClick);\n document.removeEventListener('keydown', disableInspect);\n };\n }, [flagEnabled]);\n\n return (\n
\n
\n
\n \n
\n {loading && (\n
\n
\n
\n \n
\n
\n
\n
\n )}\n {appLoading && (\n
\n
\n
\n \n
\n
\n
\n
\n )}\n\n {hasError && (\n \n )}\n\n {paymentSucceeded && !hasError && !loading && (\n \n )}\n \n {!paymentSucceeded && !hasError && !loading && (\n setEmailError(\"\")}\n />\n )}\n\n
\n

\n Email: support@klasha.com\n

\n

\n WhatsApp: +1 (213) 863-0549\n

\n
\n
\n
\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { PostHogProvider} from 'posthog-js/react';\nimport \"./index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nconst options = {\n api_host: \"https://app.posthog.com\",\n autocapture: false,\n capture_pageview: false,\n capture_pageleave: false,\n }\n \n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["module","exports","n","AF","AN","AS","EU","NA","OC","SA","a","AD","name","native","phone","continent","capital","currency","languages","emoji","emojiU","AE","AG","AI","AL","AM","AO","AQ","AR","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","e","af","am","ar","rtl","ay","az","be","bg","bi","bn","bs","ca","ch","cs","da","de","dv","dz","el","en","es","et","eu","fa","ff","fi","fj","fo","fr","ga","gl","gn","gv","he","hi","hr","ht","hu","hy","id","is","it","ja","ka","kg","kk","kl","km","ko","ku","ky","la","lb","ln","lo","lt","lu","lv","mg","mh","mi","mk","mn","ms","mt","my","na","nb","nd","ne","nl","nn","no","nr","ny","oc","pa","pl","ps","pt","qu","rn","ro","ru","rw","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","sv","sw","ta","tg","th","ti","tk","tn","to","tr","ts","uk","ur","uz","ve","vi","xh","zh","zu","i","aa","ab","ak","an","as","av","ba","bh","bm","bo","br","ce","co","cr","cu","cv","cy","ee","eo","fy","gd","gu","ha","ho","hz","ia","ie","ig","ii","ik","io","iu","jv","ki","kj","kn","kr","ks","kv","kw","lg","li","ml","mo","mr","ng","nv","oj","om","or","os","pi","rm","sa","sc","sd","se","sh","su","te","tl","tt","tw","ty","ug","vo","wa","wo","yi","yo","za","t","o","m","r","c","l","overflow","u","Math","floor","F","String","fromCharCode","U","RangeError","s","split","length","replace","join","g","charCodeAt","push","v","p","h","lastIndexOf","splice","fromCodePoint","j","E","version","ucs2","decode","encode","toASCII","test","toUnicode","slice","toLowerCase","y","A","S","d","continents","countries","languagesAll","getEmojiFlag","map","getUnicode","Number","toString","toUpperCase","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","getOwnPropertyNames","test2","test3","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","val","undefined","TypeError","toObject","arguments","key","call","require","b","encodeURIComponent","Error","Set","ea","add","window","document","createElement","B","f","this","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","D","oa","qa","ma","isNaN","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ua","xa","ya","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Symbol","for","Ma","Ka","iterator","La","Na","stack","trim","match","Oa","Pa","prepareStackTrace","defineProperty","set","Reflect","construct","k","displayName","Qa","tag","render","_render","Ra","$$typeof","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","value","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","bb","cb","ownerDocument","eb","children","Children","db","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","Array","isArray","ib","jb","textContent","kb","html","mathml","svg","mb","ob","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","style","indexOf","setProperty","charAt","substring","ub","menuitem","area","base","col","embed","img","input","keygen","link","meta","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","addEventListener","removeEventListener","Rb","apply","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","flags","$b","memoizedState","dehydrated","ac","cc","child","sibling","current","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","hd","bind","uc","jd","kd","ld","md","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","location","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","documentMode","fe","ge","le","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","me","oe","event","listeners","pe","qe","re","ue","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","node","offset","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","start","selectionStart","end","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","concat","Ze","Yb","instance","listener","G","$e","has","bf","random","cf","df","capture","passive","Nb","x","w","z","q","ef","parentWindow","gf","hf","J","K","Q","L","je","char","ke","unshift","jf","kf","lf","mf","autoFocus","nf","__html","of","setTimeout","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","O","eg","fg","gg","hg","jg","ReactCurrentBatchConfig","defaultProps","og","pg","qg","rg","_currentValue","childLanes","dependencies","firstContext","lanes","vg","context","observedBits","next","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","callback","Ag","Bg","Cg","C","Dg","Eg","Fg","Component","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","contextType","state","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","props","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","ref","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","index","Tg","Ug","mode","elementType","Vg","implementation","Wg","Xg","done","Yg","Zg","$g","ah","dh","eh","documentElement","tagName","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","nh","oh","pendingProps","ph","qh","rh","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","R","T","yh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","useState","getSnapshot","subscribe","useEffect","setSnapshot","Oh","Ph","Qh","Rh","create","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","gi","ji","compare","baseLanes","ni","oi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Ci","Di","Ei","retryLane","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","wi","xi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","size","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","message","Ni","console","error","Oi","WeakMap","Pi","element","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","gj","hj","insertBefore","_reactRootContainer","ij","jj","lj","then","mj","nj","ceil","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","bk","dk","rangeCount","focusedElem","selectionRange","ek","min","extend","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","lk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","hasAttribute","hk","_calculateChangedBits","unstable_observedBits","unmount","querySelectorAll","JSON","stringify","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","toStringTag","__esModule","default","parseInt","self","Function","NaN","exec","IE_PROTO","RegExp","clear","_","__data__","cache","Cache","pop","hash","string","max","leading","maxWait","trailing","cancel","flush","process","binding","isTypedArray","$","Uint8Array","byteLength","byteOffset","buffer","ArrayBuffer","resolve","Ge","_e","webpackPolyfill","deprecate","paths","padEnd","writable","ReferenceError","setPrototypeOf","getPrototypeOf","__proto__","regions","iso2","countryCode","dialCode","format","filter","isAreaCode","areaCodeLength","mainCode","includes","hasAreaCodes","values","findIndex","filterRegions","some","sortTerritories","sort","getFilteredCountryList","find","localizeCountries","localName","getCustomAreas","parse","excludeCountries","onlyCountries","preferredCountries","hiddenAreaCodes","getProbableCandidate","guessSelectedCountry","enableAreaCodes","reduce","updateCountry","setState","selectedCountry","formattedNumber","disableCountryCode","formatNumber","scrollTo","dropdownRef","offsetHeight","getBoundingClientRect","enableSearch","scrollToTop","enableAreaCodeStretch","enableLongNumbers","autoFormat","prefix","remainingText","formattedText","cursorToEnd","numberInputRef","setSelectionRange","getElement","getCountryData","handleFlagDropdownClick","showDropdown","concatPreferredCountries","highlightCountryIndex","handleInput","onChange","freezeSelection","countryCodeEditable","country","disableCountryGuess","handleInputClick","handleDoubleClick","handleFlagItemClick","searchValue","handleInputFocus","jumpCursorToEnd","placeholder","onFocus","handleInputBlur","onBlur","handleInputCopy","copyNumbersOnly","setData","getHighlightCountryIndex","getSearchFilteredCountries","searchCountry","queryString","handleKeydown","className","ENTER","ESC","blur","UP","DOWN","TAB","SPACE","debouncedQueryStingSearcher","handleInputKeyDown","onEnterKeyPress","onKeyDown","handleClickOutside","dropdownContainerRef","handleSearchChange","getDropdownCountryName","getCountryDropdownList","disableDropdown","searchNotFound","disableSearchIcon","searchClass","searchStyle","searchPlaceholder","autocompleteSearch","preferred","active","highlight","tabIndex","role","hide","dropdownClass","dropdownStyle","autoComplete","enableTerritories","preserveOrder","masks","areaCodes","localization","defaultMask","alwaysDefaultMask","disableInitialCountryGuess","enableClickOutside","onMount","updateFormattedNumber","renderStringAsFlag","isValid","defaultErrorMessage","specialLabel","containerClass","arrow","up","open","inputClass","buttonClass","containerStyle","inputStyle","onDoubleClick","onCopy","inputProps","buttonStyle","title","flagsImagePath","RIGHT","LEFT","PLUS","__self","__source","jsx","jsxs","Fragment","StrictMode","Profiler","Suspense","forceUpdate","escape","_status","_result","IsSomeRendererActing","count","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","createFactory","createRef","forwardRef","isValidElement","lazy","memo","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","chunkId","Promise","all","promises","miniCssF","obj","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","src","onScriptComplete","prev","onerror","onload","doneFns","fn","head","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","DEBUG","LIB_VERSION","FormData","globalThis","navigator","fetch","XMLHttpRequest","AbortController","userAgent","_log","POSTHOG_DEBUG","__rrweb_original__","info","warn","critical","uninitializedWarning","entries","GZipJS","Base64","_override_warning","featureFlagEventHandlers","reloadFeatureFlagsQueued","reloadFeatureFlagsInAction","getFlagVariants","get_property","enabledFlags","overriddenFlags","finalFlags","_startReloadTimer","$anon_distinct_id","_reloadFeatureFlagsRequest","config","advanced_disable_feature_flags","setReloadingPaused","token","distinct_id","get_distinct_id","groups","getGroups","person_properties","group_properties","disable_flags","_send_request","method","requestRouter","endpointFor","compression","disable_compression","feature_flag_request_timeout_ms","statusCode","receivedFeatureFlags","json","decideEndpointWasHit","getFlags","send_event","persistence","register","$feature_flag","$feature_flag_response","getFlagPayloads","getFeatureFlag","featureFlags","featureFlagPayloads","errorsWhileComputingFlags","_fireFeatureFlagsCallbacks","__loaded","unregister","addFeatureFlagsHandler","_prepareFeatureFlagsForCallbacks","flagVariants","removeFeatureFlagsHandler","$feature_enrollment","$set","setPersonPropertiesForFlags","transport","earlyAccessFeatures","errorsLoading","reloadFeatureFlags","trunc","isInteger","isFinite","bytes","compareTo","sign","pow","generateOrAbort","timestamp","resetCounter","counter","fromFieldsV7","nextUint32","UUIDV7_DENY_WEAK_RNG","crypto","getRandomValues","Uint32Array","cursor","generate","nt","rt","is_supported","cookie","decodeURIComponent","hostname","setTime","getTime","toUTCString","remove","ot","at","localStorage","getItem","setItem","removeItem","ut","ct","dt","ft","sessionStorage","vt","gt","yt","bt","kt","wt","St","Et","It","Ft","Rt","xt","Pt","Tt","Ct","$t","Ot","Mt","At","Dt","Lt","qt","Nt","Bt","Ht","jt","Ut","Gt","Wt","zt","Vt","Qt","Jt","Yt","Xt","Kt","Zt","on","un","cn","hn","dn","vn","pn","_n","campaignParams","_campaignParamsFromUrl","URL","_searchEngine","_searchInfoFromReferrer","$search_engine","referrer","ph_keyword","searchInfo","browser","browserVersion","parseFloat","browserLanguage","language","userLanguage","device","deviceType","referringDomain","host","referrerInfo","$referrer","$referring_domain","initialPersonInfo","initialPersonPropsFromInfo","$initial_referrer","$initial_referring_domain","$initial_current_url","$initial_host","$initial_pathname","pathname","properties","$os","$os_version","$browser","vendor","$device","$device_type","$current_url","$host","$pathname","$raw_user_agent","$browser_version","$browser_language","$screen_height","screen","$screen_width","$viewport_height","innerHeight","$viewport_width","innerWidth","$lib","$lib_version","$insert_id","$time","people_properties","yn","campaign_params_saved","persistence_name","storage","buildStorage","load","update_config","save","expire_days","cross_subdomain","secure","default_expiry","custom_campaign_params","register_once","cookie_expiration","set_disabled","disable_persistence","set_cross_subdomain","cross_subdomain_cookie","set_secure","secure_cookie","wn","Sn","En","sessionId","windowId","flatMap","In","DomContentLoaded","Load","FullSnapshot","IncrementalSnapshot","Custom","Plugin","Fn","Mutation","MouseMove","MouseInteraction","ViewportResize","Input","TouchMove","MediaInteraction","StyleSheetRule","CanvasMutation","Font","Log","Drag","StyleDeclaration","Selection","AdoptedStyleSheet","CustomElement","Rn","xn","Pn","baseVal","Tn","Vn","Cn","Nn","Bn","childNodes","Mn","$n","On","An","Dn","Ln","qn","url_allowlist","url_ignorelist","dom_event_allowlist","getComputedStyle","getPropertyValue","element_allowlist","css_selector_allowlist","matches","Hn","jn","Un","Gn","Wn","zn","Qn","Jn","Yn","tag_name","attr_class","nth_child","nth_of_type","attr_id","attributes","localeCompare","Xn","$el_text","attr__href","Kn","attr__id","attr__class","Zn","initiatorTypes","maskRequestFn","recordHeaders","recordBody","recordInitialRequests","recordPerformance","performanceEntryTypeToObserve","payloadSizeLimitBytes","payloadHostDenyList","Blob","mutationBuckets","refillRate","bucketSize","rrweb","mirror","getNode","Element","closest","getId","removes","texts","adds","numberOfChanges","getNodeOrRelevantParent","loggedTracker","onBlockedNode","setInterval","refillBuckets","rrwebMethod","enqueuedAt","attempt","_captureStarted","_endpoint","stopRrweb","receivedDecide","_flushBuffer","_tryAddCustomEvent","visibilityState","sessionManager","checkAndGetSessionAndWindowId","clearBuffer","_setupSampling","record","session_recording","full_snapshot_interval_millis","sessionStartTimestamp","disable_session_recording","enable_recording_console_log","fps","quality","enabled","capture_performance","network_timing","capturePerformance","isRecordingEnabled","_linkedFlag","_linkedFlagSeen","isSampled","_startCapture","stopRecording","sampleRate","_persistDecideResponse","sessionRecording","linkedFlag","endpoint","flag","variant","onFeatureFlags","linkedVariant","startIfEnabledOrStop","_samplingSessionListener","onSessionId","makeSamplingDecision","minimumDurationMilliseconds","consoleLogRecordingEnabled","networkPayloadCapture","recordCanvas","canvasFps","canvasQuality","onRRwebEmit","plugin","level","trace","consent","isOptedOut","rrwebRecord","_onScriptLoaded","loadScript","isInteractiveEvent","isIdle","_lastActivityTimestamp","_fullSnapshotTimer","reason","_tryTakeFullSnapshot","queuedRRWebEvents","_tryRRWebMethod","addCustomEvent","takeFullSnapshot","blockClass","blockSelector","ignoreClass","maskTextClass","maskTextSelector","maskTextFn","maskAllInputs","maskInputOptions","maskInputFn","slimDOMOptions","collectFonts","inlineStylesheet","recordCrossOriginIframes","canvasRecording","sampling","canvas","dataURLOptions","mutationRateLimiter","_gatherRRWebPlugins","emit","plugins","_addCaptureHook","_maskUrl","sessionRecordingOptions","activePlugins","clearInterval","fullSnapshotIntervalMillis","rrwebConsoleRecord","isConsoleLogCaptureEnabled","getRecordConsolePlugin","getRecordNetworkPlugin","_forceAllowLocalhostNetworkCapture","requestBody","requestHeaders","responseBody","responseHeaders","maskNetworkRequestFn","maskCapturedNetworkRequestFn","_processQueuedEvents","_lastHref","_pageViewFallBack","_scheduleFullSnapshot","throttleMutations","_updateWindowAndSessionIds","$snapshot_bytes","$snapshot_data","$session_id","$window_id","status","_captureSnapshotBuffered","capture_pageview","flushBufferTimer","minimumDuration","sessionDuration","_captureSnapshot","_url","_noTruncate","_batchKey","_hasBootstrappedFeatureFlags","advanced_disable_feature_flags_on_first_load","parseDecideResponse","_afterDecideResponse","siteApps","opt_in_site_apps","_i","UNINITIALIZED","LOADING","LOADED","ph_toolbar_state","history","atob","desiredHash","replaceState","userIntent","loadToolbar","ph_load_toolbar","ph_load_editor","getElementById","region","advanced_disable_toolbar_metrics","apiURL","instrument","getToolbarState","_callLoadToolbar","setToolbarState","maybeLoadToolbar","sendRequest","flushTimeout","setFlushTimeout","clearFlushTimeout","formatQueue","isPaused","abs","flushTimeoutMs","batchKey","Uint16Array","subarray","er","mem","filename","mtime","ir","File","_t","rr","TextEncoder","contentType","headers","setRequestHeader","withCredentials","onreadystatechange","readyState","responseText","send","Headers","append","signal","abort","keepalive","catch","finally","sendBeacon","beacon","lr","areWeOnline","onLine","retriesPerformedSoFar","retry_count","enqueue","retryAt","requestOptions","isPolling","poll","poller","pollIntervalMs","retriableRequest","dr","_windowId","_sessionId","_sessionStartTimestamp","_sessionActivityTimestamp","_sessionIdGenerator","_windowIdGenerator","session_idle_timeout_seconds","_sessionTimeoutMs","_window_id_storage_key","_primary_window_exists_storage_key","_canUseSessionStorage","bootstrap","sessionID","_setSessionId","_listenToReloadWindow","_sessionIdChangedHandlers","_getSessionId","_getWindowId","changeReason","noSessionId","activityTimeout","sessionPastMaximumLength","_setWindowId","CUSTOM","api_host","ui_host","_regionCache","apiHost","uiHost","disable_external_dependency_loading","vr","pr","gr","isEnabled","hasHandlers","__POSTHOG_INSTRUMENTED__","posthogErrorWrappingFunctions","wrapOnError","wrapUnhandledRejection","unwrapOnError","captureException","unwrapUnhandledRejection","stopCapturing","remoteEnabled","startIfEnabled","originalOnUnhandledRejectionHandler","isCapturing","startCapturing","autocaptureExceptions","$exception_personURL","sendExceptionEvent","_r","organization","projectId","severityAllowList","tags","sessionRecordingStarted","get_session_replay_url","withTimestamp","exception","$exception_message","$exception_type","$exception_level","$sentry_event_id","event_id","$sentry_exception","$sentry_exception_message","$sentry_exception_type","$sentry_tags","$level","$sentry_url","exceptionObserver","yr","setupOnce","wr","Sr","Er","_instance","_previousScrollProperties","_currentPath","scrollManager","resetContext","getContext","maxScrollHeight","lastScrollY","maxScrollY","maxContentHeight","lastContentY","maxContentY","$prev_pageview_pathname","$prev_pageview_last_scroll","$prev_pageview_last_scroll_percentage","Ir","$prev_pageview_max_scroll","$prev_pageview_max_scroll_percentage","$prev_pageview_last_content","$prev_pageview_last_content_percentage","$prev_pageview_max_content","$prev_pageview_max_content_percentage","Popover","API","Widget","Open","MultipleChoice","SingleChoice","Rating","Link","NextQuestion","End","ResponseBased","SpecificQuestion","Fr","events","Rr","checkStepEvent","checkStepUrl","checkStepElement","actionEvents","actionRegistry","steps","autocapture","selector","setElementSelectors","checkAction","_debugEventEmitter","onAction","checkStep","matchString","url_matching","getElementsList","href_matching","text_matching","$element_selectors","$elements","escapeStringRegexp","xr","eventToSurveys","actionToSurveys","setupEventBasedSurveys","setupActionBasedSurveys","conditions","actions","actionMatcher","init","_addActionHook","onEvent","SURVEY_SHOWN_EVENT_NAME","$survey_id","_updateActivatedSurveys","Pr","Tr","icontains","not_icontains","regex","not_regex","exact","is_not","Cr","_surveyEventReceiver","_decideServerResponse","surveys","loadIfEnabled","extendPostHogWithSurveys","disable_surveys","getSurveys","start_date","end_date","urlMatchType","querySelector","linked_flag_key","targeting_flag_key","internal_targeting_flag_key","isFeatureEnabled","_canActivateRepeatedly","questions","branching","choices","responseValues","scale","__PosthogExtensions__","canActivateRepeatedly","$r","quota_limited","serverLimits","captureEventsPerSecond","rate_limiting","events_per_second","captureEventsBurstLimit","events_burst_limit","lastEventRateLimited","clientRateLimitContext","isRateLimited","tokens","$$client_ingestion_warning_message","skip_client_rate_limiting","set_property","remainingTokens","Or","initialPathName","Mr","_getStoredProps","_sessionSourceParamGenerator","_persistence","_sessionIdManager","_onSessionIdCallback","$client_session_initial_referring_host","$client_session_initial_pathname","$client_session_initial_utm_source","utm_source","$client_session_initial_utm_campaign","utm_campaign","$client_session_initial_utm_medium","utm_medium","$client_session_initial_utm_content","utm_content","$client_session_initial_utm_term","utm_term","Ar","Dr","Lr","clicks","qr","Nr","_enabledServerSide","capture_heatmaps","flush_interval_milliseconds","enable_heatmaps","_initialized","_setupListeners","_flushInterval","flushIntervalMilliseconds","getAndClearBuffer","heatmaps","_onClick","_onMouseMove","scrollY","scrollX","scrollElement","position","target_fixed","_getProperties","rageclicks","isRageClick","_capture","_mouseMoveTimeout","$heatmap_data","Br","scrollHeight","clientHeight","_updateScrollData","scroll_root_selector","pageYOffset","pageXOffset","Hr","jr","Ur","Gr","_elementSelectors","isBrowserSupported","_captureEvent","capture_copied_text","_addDomEventHandlers","elementsChainAsString","_elementsChainAsString","autocapture_opt_out","_isDisabledServerSide","advanced_disable_decide","previousElementSibling","classes","element_attribute_ignorelist","_previousElementSibling","$event_type","$ce_version","shadowRoot","composedPath","_getEventTarget","MouseEvent","rageclick","_getPropertiesFromElement","mask_all_element_attributes","mask_all_text","_getAugmentPropertiesFromElement","_getDefaultProperties","$elements_chain","$external_click_url","getElementSelectors","$selected_content","$copy_type","Wr","_restoreXHRPatch","postHogTracingHeadersPatchFns","_patchXHR","_restoreFetchPatch","_patchFetch","__add_tracing_headers","_loadScript","_startCapturing","PENDING","DENIED","GRANTED","zr","getDnt","storedConsent","opt_out_capturing_by_default","storageKey","opt_out_capturing_cookie_prefix","_storage","opt_out_capturing_persistence_type","optInOut","respect_dnt","doNotTrack","msDoNotTrack","Vr","Qr","Jr","metrics","firstMetricTimestamp","_delayedFlushTimer","_currentURL","_maxAllowedValue","_flushToCapture","postHogWebVitalsCallbacks","onLCP","onCLS","onFCP","onINP","_addToBuffer","__web_vitals_max_value","web_vitals","Yr","Xr","Kr","Zr","loaded","store_google","custom_blocked_useragents","save_referrer","capture_pageleave","debug","verbose","upgrade","protocol","ip","opt_out_persistence_by_default","opt_out_useragent_filter","property_denylist","sanitize_properties","request_headers","inapp_protocol","inapp_link_new_window","request_batching","properties_string_max_length","on_request_error","get_device_id","_onCapture","person_profiles","process_person","xhr_headers","cookie_name","disable_cookie","property_blacklist","ns","__forceAllowLocalhost","SentryIntegration","sentryIntegration","processEvent","__request_queue","analyticsDefaultEndpoint","toolbar","pageViewManager","rateLimiter","people","setPersonProperties","set_once","_triggered_notifs","set_config","on_xhr_error","sessionPersistence","_requestQueue","_send_retriable_request","_retryQueue","sessionPropsManager","disable_scroll_properties","startMeasuringScrollPosition","webVitalsAutocapture","_sync_opt_out_with_persistence","distinctID","isIdentifiedID","$device_id","_handle_unload","segment","anonymousId","user","userId","reset","_calculate_event_properties","isLoaded","page","identify","_loaded","supportedCompression","analytics","afterDecideResponse","_start_queue_if_opted_in","send_instantly","resetRequestQueue","has_opted_out_capturing","enable","_shouldCapturePageleave","unload","isServerRateLimited","api_transport","ver","checkForLimiting","_execute_array","update_search_keyword","update_campaign_params","update_referrer_info","set_initial_person_info","uuid","$lib_rate_limit_remaining_tokens","_calculate_set_once_properties","$set_once","$event_time_override_provided","$event_time_override_system_time","_internalEventEmitter","remove_event_timer","$lib_custom_api_host","__preview_send_client_session_params","getSessionProps","doPageView","doPageLeave","$duration","toFixed","$browser_type","$is_identified","_isIdentified","$process_person_profile","_hasPersonProcessing","get_initial_props","getFeatureFlagPayload","updateEarlyAccessFeatureEnrollment","getEarlyAccessFeatures","getActiveMatchingSurveys","getNextSurveyStep","_requirePersonProcessing","$user_id","$had_persisted_distinct_id","setAnonymousDistinctId","resetGroupPropertiesForFlags","$groups","$group_type","$group_key","$group_set","setGroupPropertiesForFlags","resetPersonPropertiesForFlags","resetSessionId","timestampLookBack","_register_single","alias","started","captureEventName","captureProperties","isOptedIn","rs","_dom_loaded","PostHogContext","client","posthogJs","PostHogProvider","_a","apiKey","posthog","React","usePostHog","rnds8","rng","msCrypto","REGEX","byteToHex","substr","arr","validate","buf","rnds","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","isObject","getEventValue","isNameInFieldArray","names","getNodeParentName","isPlainObject","tempObject","prototypeCopy","isWeb","HTMLElement","cloneObject","copy","FileList","compact","Boolean","isUndefined","object","path","result","isBoolean","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onSubmit","onTouched","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","getProxyFormState","formState","control","localProxyFormState","isRoot","defaultValues","_defaultValues","_key","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","currentName","startsWith","useSubscribe","_props","subscription","subject","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","isKey","stringToPath","tempPath","lastIndex","newValue","objValue","useController","methods","shouldUnregister","isArrayField","array","_name","_subjects","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","isDirty","isLoading","dirtyFields","touchedFields","isValidating","errors","_updateFormState","_updateValid","useFormState","_registerProps","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","_updateDisabledField","fields","elm","select","setCustomValidity","reportValidity","fieldState","defineProperties","invalid","isTouched","Controller","appendErrors","validateAllFieldCriteria","types","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isFunction","isHTMLElement","owner","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","option","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","async","shouldUseNativeValidation","isFieldArray","required","maxLength","minLength","pattern","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","unset","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","observers","observer","isPrimitive","deepEqual","object1","object2","keys1","keys2","val1","val2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","_ref2","setValueAs","getFieldValue","files","selectedOptions","_ref3","getResolverOptions","criteriaMode","getRuleValue","rule","hasValidation","schemaErrorLookup","foundError","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","defaultOptions","shouldFocusError","createFormControl","delayErrorCallback","flushRootRender","submitCount","isSubmitting","isSubmitSuccessful","unMount","timer","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","shouldUpdateValid","resolver","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","delayError","updateErrors","wait","updatedFormState","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","executeSchemaAndUpdateState","shouldFocus","getFieldState","setError","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","_ref4","disabledIsDefined","progressive","fieldRef","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","keepDirtyValues","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_updateFieldArray","args","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","_getFieldArray","_resetDefaultValues","resetOptions","_disableForm","requiredDisabledState","_setErrors","resetField","clearErrors","inputName","setFocus","shouldSelect","_g","_defs","_extends","SvgLogoLight","_ref","svgRef","titleId","viewBox","fill","xmlns","clipPath","transform","ForwardRef","label","readOnly","inputType","dataContent","errorMessage","_jsxs","styles","formInputContainer","formInput","_jsx","formInputLabel","_path","SvgDropdown","stroke","strokeLinecap","strokeLinejoin","formSelectInput","selectDivDiv","selectDiv","Caret","dropdownBtn","selectInputField","opt","formSelectContainer","ReactPhoneInput","_parseFloat","currencyPreconfigured","amountPreconfigured","setFirstName","setLastName","setEmail","setPhoneNumber","setCurrency","payCurrency","setPayCurrency","currencyList","amount","setAmount","payLinkType","interval","setLimit","thePayingCurrencies","convertedAmount","onClear","phoneNumber","firstName","lastName","limit","errorText","_formControl","_values","useForm","showRecurringInterval","setShowRecurringInterval","formSubHead","formBody","formDiv","_errors$firstName","FormInput","_errors$lastName","_errors$email","_ref5","_errors$phone","FormPhone","formDivDisabled","CurrencySelect","PayingCurrencySelect","recurringInterval","recurringIntervalInputs","payBtn","LogoWhiteIcon","payBtnLogo","cancelBtn","onCancelClick","REACT_APP_API_URL","REACT_APP_DASHBOARD_ACCESS_TOKEN","BACKEND_URL","PROD_RATE_BASE_URL","DASHBOARD_ACCESS_TOKEN","_ellipse","_path2","_path3","_path4","_path5","_path6","_path7","_path8","SvgFeebackMessageSuccess","cx","rx","ry","SuccessPaymentIcon","_circle","SvgFeebackMessageFail","fillRule","clipRule","FailedPaymentIcon","cachedScripts","callKlashaClient","klashaArgs","KlashaClient","merchantKey","businessId","callbackUrl","destinationCurrency","sourceCurrency","kit","isTestMode","useKlashaPayment","scriptLoaded","scriptError","src1","divScript","script1","onScriptLoad","onScriptError","index1","useKlashaScript","tx_ref","fullname","phone_number","paymentDescription","metadata","callBack","propName","clean","SvgLoadericon","SvgLogo","whitelistedOrigins","setCurrencyPreconfigured","setAmountPreconfigured","flagEnabled","featureEnabled","setFeatureEnabled","useFeatureFlagEnabled","setMerchantKey","businessObj","setBusinessObj","taxRefId","setTaxRefId","setCurrencyList","setPayLinkType","paylinkId","setPaylinkId","referred","setReferred","extraPayload","setExtraPayload","paymentSucceeded","setPaymentSucceeded","setThePayingCurrencies","payCurrencyWithoutIndex","setPayCurrencyWithoutIndex","loading","setLoading","appLoading","setAppLoading","hasError","setHasError","setErrorMessage","successMessage","setSuccessMessage","setErrorType","isBaePayLink","setIsBaePayLink","baeEmail","setBaeEmail","setConvertedAmount","emailError","setEmailError","mailformat","origin","URLSearchParams","sortByCurrency","currencyFlayObjects","currObjCopy","nameA","nameB","getAfricanPlusFlagAndCurrencies","linkName","payingCurrencies","payingCurrenciesOptions","payCur","_countries$payCur$cou","publicReferrer","ev","callWhenDone","allCurrencies","getAllCurrenciesAndFlag","countriesCurrency","currencies","excludedAfricanCurrencies","filteredResult","afCount","merchantToken","errorStatus","getPaymentByToken","paymentData","payAmount","business","isBaeLinkType","rememberMe","transactionId","uuidv4","africaPlusFlagAndCurrencies","fetchData","payCurrencyWithoutI","provider","productType","res","resData","convertedRate","fetchExcRate","initializePayment","paymentType","hasBae","extra","paylinkToken","paystack","category","riskCategory","channel","disableRightClick","disableInspect","container","header","LogoIcon","loaderContainer","spin","spinner_logo","LogoPink","spinner","apploaderContainer","InvalidPaymentToken","PaymentSuccessful","Form","footer","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","App","reportWebVitals"],"sourceRoot":""}