@capsitech/react-utilities 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/lib/Components.d.ts +2 -0
  2. package/lib/Components.js +5 -0
  3. package/lib/Components.js.map +1 -0
  4. package/lib/Hooks/index.d.ts +2 -2
  5. package/lib/Hooks.d.ts +2 -0
  6. package/lib/Hooks.js +67 -0
  7. package/lib/Hooks.js.map +1 -0
  8. package/lib/Utilities.d.ts +2 -0
  9. package/lib/Utilities.js +54 -0
  10. package/lib/Utilities.js.map +1 -0
  11. package/lib/dayjs-aKjfjjRl.mjs +605 -0
  12. package/lib/dayjs-aKjfjjRl.mjs.map +1 -0
  13. package/lib/index.js +69 -3458
  14. package/lib/index.js.map +1 -1
  15. package/lib/src/Components/SuspenseRoute.d.ts +2 -0
  16. package/lib/src/Components/SuspenseRoute.js +22 -0
  17. package/lib/src/Components/SuspenseRoute.js.map +1 -0
  18. package/lib/src/Components/index.d.ts +2 -0
  19. package/lib/src/Components/index.js +5 -0
  20. package/lib/src/Components/index.js.map +1 -0
  21. package/lib/src/Hooks/index.d.ts +2 -0
  22. package/lib/src/Hooks/index.js +20 -0
  23. package/lib/src/Hooks/index.js.map +1 -0
  24. package/lib/src/Hooks/useInfiniteScroll.d.ts +2 -0
  25. package/lib/src/Hooks/useInfiniteScroll.js +20 -0
  26. package/lib/src/Hooks/useInfiniteScroll.js.map +1 -0
  27. package/lib/src/Hooks/useNetworkState.d.ts +2 -0
  28. package/lib/src/Hooks/useNetworkState.js +33 -0
  29. package/lib/src/Hooks/useNetworkState.js.map +1 -0
  30. package/lib/src/Hooks/useShortcuts.d.ts +2 -0
  31. package/lib/src/Hooks/useShortcuts.js +43 -0
  32. package/lib/src/Hooks/useShortcuts.js.map +1 -0
  33. package/lib/src/Utilities/ApiUtility.axios.d.ts +2 -0
  34. package/lib/src/Utilities/ApiUtility.axios.js +222 -0
  35. package/lib/src/Utilities/ApiUtility.axios.js.map +1 -0
  36. package/lib/src/Utilities/BrowserInfo.d.ts +2 -0
  37. package/lib/src/Utilities/BrowserInfo.js +51 -0
  38. package/lib/src/Utilities/BrowserInfo.js.map +1 -0
  39. package/lib/src/Utilities/Countries.d.ts +2 -0
  40. package/lib/src/Utilities/Countries.js +512 -0
  41. package/lib/src/Utilities/Countries.js.map +1 -0
  42. package/lib/src/Utilities/CustomEventEmitter.d.ts +2 -0
  43. package/lib/src/Utilities/CustomEventEmitter.js +24 -0
  44. package/lib/src/Utilities/CustomEventEmitter.js.map +1 -0
  45. package/lib/src/Utilities/FastCompare.d.ts +2 -0
  46. package/lib/src/Utilities/FastCompare.js +56 -0
  47. package/lib/src/Utilities/FastCompare.js.map +1 -0
  48. package/lib/src/Utilities/HideablePromise.d.ts +2 -0
  49. package/lib/src/Utilities/HideablePromise.js +12 -0
  50. package/lib/src/Utilities/HideablePromise.js.map +1 -0
  51. package/lib/src/Utilities/LoadScripts.d.ts +2 -0
  52. package/lib/src/Utilities/LoadScripts.js +26 -0
  53. package/lib/src/Utilities/LoadScripts.js.map +1 -0
  54. package/lib/src/Utilities/MTDFraudPrevention.d.ts +2 -0
  55. package/lib/src/Utilities/MTDFraudPrevention.js +60 -0
  56. package/lib/src/Utilities/MTDFraudPrevention.js.map +1 -0
  57. package/lib/src/Utilities/Nationalities.d.ts +2 -0
  58. package/lib/src/Utilities/Nationalities.js +250 -0
  59. package/lib/src/Utilities/Nationalities.js.map +1 -0
  60. package/lib/src/Utilities/RouteUtils.d.ts +2 -0
  61. package/lib/src/Utilities/RouteUtils.js +192 -0
  62. package/lib/src/Utilities/RouteUtils.js.map +1 -0
  63. package/lib/src/Utilities/TimeZones.d.ts +2 -0
  64. package/lib/src/Utilities/TimeZones.js +1074 -0
  65. package/lib/src/Utilities/TimeZones.js.map +1 -0
  66. package/lib/src/Utilities/Types.d.ts +1 -0
  67. package/lib/src/Utilities/Types.js +2 -0
  68. package/lib/src/Utilities/Types.js.map +1 -0
  69. package/lib/src/Utilities/Utils.d.ts +2 -0
  70. package/lib/src/Utilities/Utils.js +271 -0
  71. package/lib/src/Utilities/Utils.js.map +1 -0
  72. package/lib/src/Utilities/dayjs.d.ts +2 -0
  73. package/lib/src/Utilities/dayjs.js +6 -0
  74. package/lib/src/Utilities/dayjs.js.map +1 -0
  75. package/lib/src/Utilities/index.d.ts +2 -0
  76. package/lib/src/Utilities/index.js +54 -0
  77. package/lib/src/Utilities/index.js.map +1 -0
  78. package/package.json +28 -3
  79. package/lib/index.cjs +0 -2
  80. package/lib/index.cjs.map +0 -1
package/lib/index.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/Components/SuspenseRoute.tsx","../src/Hooks/useInfiniteScroll.ts","../src/Hooks/useNetworkState.ts","../src/Hooks/useShortcuts.ts","../src/Hooks/index.ts","../src/Utilities/ApiUtility.axios.ts","../src/Utilities/BrowserInfo.ts","../node_modules/lodash/_baseClamp.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_root.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/isArray.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/isObject.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toString.js","../node_modules/lodash/startsWith.js","../node_modules/dayjs/locale/en-gb.js","../node_modules/dayjs/plugin/advancedFormat.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/duration.js","../node_modules/dayjs/plugin/isSameOrAfter.js","../node_modules/dayjs/plugin/isSameOrBefore.js","../node_modules/dayjs/plugin/relativeTime.js","../node_modules/dayjs/plugin/timezone.js","../node_modules/dayjs/plugin/utc.js","../node_modules/dayjs/plugin/weekday.js","../src/Utilities/dayjs.ts","../src/Utilities/Utils.tsx","../src/Utilities/Countries.ts","../src/Utilities/CustomEventEmitter.ts","../src/Utilities/FastCompare.ts","../src/Utilities/HideablePromise.ts","../src/Utilities/LoadScripts.ts","../src/Utilities/MTDFraudPrevention.ts","../src/Utilities/Nationalities.ts","../src/Utilities/RouteUtils.tsx","../src/Utilities/TimeZones.ts"],"sourcesContent":["import React from \"react\";\r\n\r\ninterface ISuspenseRouteProps {\r\n label?: string;\r\n children?: any;\r\n fallback?: any;\r\n}\r\n\r\nconst isSuspenseComponent = (component: any) =>\r\n typeof component === \"object\" &&\r\n component &&\r\n component.hasOwnProperty(\"$$typeof\") &&\r\n component.hasOwnProperty(\"_payload\") &&\r\n component.hasOwnProperty(\"_init\");\r\n\r\nexport const SuspenseRoute = ({\r\n children: Component,\r\n label = \"Loading components...\",\r\n fallback: FallbackComponent,\r\n}: ISuspenseRouteProps) => {\r\n if (isSuspenseComponent(Component)) {\r\n if (!FallbackComponent)\r\n FallbackComponent = SuspenseRouteFallback;\r\n\r\n return <React.Suspense fallback={<FallbackComponent label={label} />}>\r\n <Component />\r\n </React.Suspense>\r\n }\r\n return (\r\n <Component />\r\n );\r\n};\r\n\r\nconst SuspenseRouteFallback = ({ label = \"Loading components...\" }: { label?: string }) => {\r\n return <div style={{\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: 'rgba(0, 0, 0, 0.3)',\r\n zIndex: 9999,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n }}>{label}</div>;\r\n}","import React from 'react';\r\n\r\n/**\r\n * Infinite scrolling with intersection observer\r\n * @param scrollRef Reference object for observe bottom boundary\r\n * @param dispatch Trigger an action that updates the page number\r\n */\r\nexport const useInfiniteScroll = (scrollRef: React.MutableRefObject<any>, dispatch: any) => {\r\n const scrollObserver = React.useCallback(\r\n (node: any) => {\r\n new IntersectionObserver((entries) => {\r\n entries.forEach((en) => {\r\n if (en.intersectionRatio > 0) {\r\n dispatch({ type: 'next-page' });\r\n }\r\n });\r\n }).observe(node);\r\n },\r\n [dispatch]\r\n );\r\n\r\n React.useEffect(() => {\r\n if (scrollRef.current) {\r\n scrollObserver(scrollRef.current);\r\n }\r\n }, [scrollObserver, scrollRef]);\r\n};\r\n","import React from 'react';\r\n\r\nexport interface INetworkInformation extends EventTarget {\r\n readonly downlink: number;\r\n readonly downlinkMax: number;\r\n readonly effectiveType: 'slow-2g' | '2g' | '3g' | '4g';\r\n readonly rtt: number;\r\n readonly saveData: boolean;\r\n readonly type: 'bluetooth' | 'cellular' | 'ethernet' | 'none' | 'wifi' | 'wimax' | 'other' | 'unknown';\r\n\r\n onChange: (event: Event) => void;\r\n}\r\n\r\nexport interface IUseNetworkState {\r\n /**\r\n * @desc Whether browser connected to the network or not.\r\n */\r\n online: boolean | undefined;\r\n /**\r\n * @desc Previous value of `online` property. Helps to identify if browser\r\n * just connected or lost connection.\r\n */\r\n previous: boolean | undefined;\r\n /**\r\n * @desc The {Date} object pointing to the moment when state change occurred.\r\n */\r\n since: Date | undefined;\r\n /**\r\n * @desc Effective bandwidth estimate in megabits per second, rounded to the\r\n * nearest multiple of 25 kilobits per seconds.\r\n */\r\n downlink: INetworkInformation['downlink'] | undefined;\r\n /**\r\n * @desc Maximum downlink speed, in megabits per second (Mbps), for the\r\n * underlying connection technology\r\n */\r\n downlinkMax: INetworkInformation['downlinkMax'] | undefined;\r\n /**\r\n * @desc Effective type of the connection meaning one of 'slow-2g', '2g', '3g', or '4g'.\r\n * This value is determined using a combination of recently observed round-trip time\r\n * and downlink values.\r\n */\r\n effectiveType: INetworkInformation['effectiveType'] | undefined;\r\n /**\r\n * @desc Estimated effective round-trip time of the current connection, rounded\r\n * to the nearest multiple of 25 milliseconds\r\n */\r\n rtt: INetworkInformation['rtt'] | undefined;\r\n /**\r\n * @desc {true} if the user has set a reduced data usage option on the user agent.\r\n */\r\n saveData: INetworkInformation['saveData'] | undefined;\r\n /**\r\n * @desc The type of connection a device is using to communicate with the network.\r\n * It will be one of the following values:\r\n * - bluetooth\r\n * - cellular\r\n * - ethernet\r\n * - none\r\n * - wifi\r\n * - wimax\r\n * - other\r\n * - unknown\r\n */\r\n type: INetworkInformation['type'] | undefined;\r\n}\r\nexport const isBrowser = typeof window !== 'undefined';\r\nexport const isNavigator = typeof navigator !== 'undefined';\r\n\r\nconst nav: (Navigator & Partial<Record<'connection' | 'mozConnection' | 'webkitConnection', INetworkInformation>>) | undefined = isNavigator ? navigator : undefined;\r\nconst conn: INetworkInformation | undefined = nav && (nav.connection || nav.mozConnection || nav.webkitConnection);\r\n\r\nfunction getConnectionState(previousState?: IUseNetworkState): IUseNetworkState {\r\n const online = nav?.onLine;\r\n const previousOnline = previousState?.online;\r\n\r\n return {\r\n online,\r\n previous: previousOnline,\r\n since: online !== previousOnline ? new Date() : previousState?.since,\r\n downlink: conn?.downlink,\r\n downlinkMax: conn?.downlinkMax,\r\n effectiveType: conn?.effectiveType,\r\n rtt: conn?.rtt,\r\n saveData: conn?.saveData,\r\n type: conn?.type,\r\n };\r\n}\r\n\r\nexport type IHookStateInitialSetter<S> = () => S;\r\nexport type IHookStateInitAction<S> = S | IHookStateInitialSetter<S>;\r\n\r\nexport function useNetworkState(initialState?: IHookStateInitAction<IUseNetworkState>): IUseNetworkState {\r\n const [state, setState] = React.useState(initialState ?? getConnectionState);\r\n\r\n React.useEffect(() => {\r\n const handleStateChange = () => {\r\n setState(getConnectionState);\r\n };\r\n\r\n window.addEventListener('online', handleStateChange, { passive: true });\r\n window.addEventListener('offline', handleStateChange, { passive: true });\r\n\r\n if (conn) {\r\n window.addEventListener('change', handleStateChange, { passive: true });\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('online', handleStateChange);\r\n window.removeEventListener('offline', handleStateChange);\r\n\r\n if (conn) {\r\n window.removeEventListener('change', handleStateChange);\r\n }\r\n };\r\n }, []);\r\n\r\n return state;\r\n}\r\n","import React from 'react';\r\n\r\nconst blacklistedTargets = ['INPUT', 'TEXTAREA', 'SELECT'];\r\n\r\ntype KeysActions = { type: 'set-key-down' | 'set-key-up'; key: string } | { type: 'reset-keys'; data: any } | { type: '' };\r\ninterface IKeysState {\r\n [key: string]: any;\r\n}\r\n\r\nconst keysReducer = (state: IKeysState, action: KeysActions) => {\r\n switch (action.type) {\r\n case 'set-key-down':\r\n const keydownState = { ...state, [action.key]: true };\r\n return keydownState;\r\n case 'set-key-up':\r\n const keyUpState = { ...state, [action.key]: false };\r\n return keyUpState;\r\n case 'reset-keys':\r\n const resetState = { ...action.data };\r\n return resetState;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const useShortcuts = (shortcutKeys: string[] | string, callback: (keys: string) => void, options?: { overrideSystem: boolean }) => {\r\n if (!Array.isArray(shortcutKeys)) throw new Error('The first parameter to `useShortcuts` must be an ordered array of `KeyboardEvent.key` strings.');\r\n\r\n if (!shortcutKeys.length) throw new Error('The first parameter to `useShortcuts` must contain atleast one `KeyboardEvent.key` string.');\r\n\r\n if (!callback || typeof callback !== 'function') throw new Error('The second parameter to `useShortcuts` must be a function that will be envoked when the keys are pressed.');\r\n\r\n const { overrideSystem } = options || {};\r\n const initalKeyMapping = shortcutKeys.reduce((currentKeys: any, key) => {\r\n currentKeys[key.toLowerCase()] = false;\r\n return currentKeys;\r\n }, {});\r\n\r\n const [keys, setKeys] = React.useReducer(keysReducer, initalKeyMapping);\r\n\r\n const keydownListener = React.useCallback(\r\n (assignedKey: string) => (keydownEvent: KeyboardEvent) => {\r\n const loweredKey = assignedKey.toLowerCase();\r\n\r\n if (keydownEvent.repeat) return;\r\n if (blacklistedTargets.includes((keydownEvent.target as any).tagName)) return;\r\n if (loweredKey !== keydownEvent.key.toLowerCase()) return;\r\n if (keys[loweredKey] === undefined) return;\r\n\r\n if (overrideSystem) {\r\n keydownEvent.preventDefault();\r\n disabledEventPropagation(keydownEvent);\r\n }\r\n\r\n setKeys({ type: 'set-key-down', key: loweredKey });\r\n return false;\r\n },\r\n [keys, overrideSystem]\r\n );\r\n\r\n const keyupListener = React.useCallback(\r\n (assignedKey: string) => (keyupEvent: KeyboardEvent) => {\r\n const raisedKey = assignedKey.toLowerCase();\r\n\r\n if (blacklistedTargets.includes((keyupEvent.target as any).tagName)) return;\r\n if (keyupEvent.key.toLowerCase() !== raisedKey) return;\r\n if (keys[raisedKey] === undefined) return;\r\n\r\n if (overrideSystem) {\r\n keyupEvent.preventDefault();\r\n disabledEventPropagation(keyupEvent);\r\n }\r\n\r\n setKeys({ type: 'set-key-up', key: raisedKey });\r\n return false;\r\n },\r\n [keys, overrideSystem]\r\n );\r\n\r\n React.useEffect(() => {\r\n //console.log('keys', keys);\r\n if (!Object.values(keys).filter((value) => !value).length) {\r\n callback(keys);\r\n setKeys({ type: 'reset-keys', data: initalKeyMapping });\r\n } else {\r\n setKeys({ type: '' });\r\n }\r\n }, [callback, keys]);\r\n\r\n React.useEffect(() => {\r\n shortcutKeys.forEach((k) => window.addEventListener('keydown', keydownListener(k)));\r\n return () => shortcutKeys.forEach((k) => window.removeEventListener('keydown', keydownListener(k)));\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n shortcutKeys.forEach((k) => window.addEventListener('keyup', keyupListener(k)));\r\n return () => shortcutKeys.forEach((k) => window.removeEventListener('keyup', keyupListener(k)));\r\n }, []);\r\n};\r\n\r\nexport function disabledEventPropagation(e: KeyboardEvent) {\r\n if (e) {\r\n if (e.stopPropagation) {\r\n e.stopPropagation();\r\n } else if (window.event) {\r\n window.event.cancelBubble = true;\r\n }\r\n }\r\n}\r\n","import { useCallback, useEffect, useRef } from 'react';\r\n\r\nexport * from './useInfiniteScroll';\r\nexport * from './useNetworkState';\r\nexport * from './useShortcuts';\r\n\r\n/**\r\n * React effect hook that invokes only on update.\r\n * It doesn't invoke on mount\r\n */\r\nexport const useUpdateEffect: typeof useEffect = (effect, deps) => {\r\n const mounted = useRef(false);\r\n\r\n useEffect(() => {\r\n if (mounted.current) {\r\n return effect();\r\n }\r\n mounted.current = true;\r\n return undefined;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, deps);\r\n\r\n return mounted.current;\r\n};\r\n\r\n/**\r\n * React hook to persist any value between renders,\r\n * but keeps it up-to-date if it changes.\r\n *\r\n * @param value the value or function to persist\r\n */\r\nexport function useLatestRef<T>(value: T) {\r\n const ref = useRef(value);\r\n\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]);\r\n\r\n return ref;\r\n}\r\n\r\n/**\r\n * useCallbackRef hook\r\n *\r\n * A custom hook that converts a callback to a ref to avoid triggering re-renders\r\n * ..when passed as a prop or avoid re-executing effects when passed as a dependency\r\n *\r\n * @param callback The callback to write to a ref object\r\n */\r\nexport const useCallbackRef = <T extends (...args: any[]) => any>(callback: T | undefined): T => {\r\n const callbackRef = useRef(callback);\r\n\r\n useEffect(() => {\r\n callbackRef.current = callback;\r\n });\r\n\r\n return useCallback(\r\n ((...args) => {\r\n return callbackRef.current?.(...args);\r\n }) as T,\r\n []\r\n );\r\n};\r\n\r\n/**\r\n * useFirstRenderState hook\r\n *\r\n * Returns \"true\" if component is just mounted (first render), else \"false\".\r\n */\r\nexport const useFirstRenderState = (): boolean => {\r\n const isFirst = useRef(true);\r\n\r\n if (isFirst.current) {\r\n isFirst.current = false;\r\n return true;\r\n }\r\n\r\n return isFirst.current;\r\n};\r\n\r\n/**\r\n * React Hook that provides a declarative `setInterval`\r\n *\r\n * @param callback the callback to execute at interval\r\n * @param delay the `setInterval` delay (in ms)\r\n */\r\nexport function useInterval(callback: () => void, delay: number | null) {\r\n const savedCallback = useLatestRef(callback);\r\n\r\n useEffect(() => {\r\n const tick = () => {\r\n savedCallback.current?.();\r\n };\r\n if (delay !== null) {\r\n const id = setInterval(tick, delay);\r\n return () => clearInterval(id);\r\n }\r\n }, [delay, savedCallback]);\r\n}\r\n\r\n/**\r\n * React hook that provides a declarative `setTimeout`\r\n *\r\n * @param callback the callback to run after specified delay\r\n * @param delay the delay (in ms)\r\n */\r\nexport function useTimeout(callback: Function, delay: number | null) {\r\n const savedCallback = useLatestRef(callback);\r\n\r\n useEffect(() => {\r\n if (delay == null) return;\r\n\r\n const timeoutId = setTimeout(() => {\r\n savedCallback.current?.();\r\n }, delay);\r\n\r\n return () => clearTimeout(timeoutId);\r\n }, [delay, savedCallback]);\r\n}\r\n","import Axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\r\nimport { saveAs } from 'file-saver';\r\nimport { stringify } from 'qs';\r\n\r\nexport interface IApiResponse<T = any> {\r\n status: boolean;\r\n result: T;\r\n message?: string;\r\n errors?: {\r\n number: number;\r\n message: string;\r\n suggestion: string;\r\n exception: any;\r\n }[];\r\n}\r\nexport interface IApiListResult<T = any> {\r\n totalRecords: number;\r\n items: T[];\r\n moreRecords?: boolean;\r\n continuationToken?: string;\r\n}\r\n\r\nexport interface IApiListResultWithTotal<TItem = any, TTotal = any> extends IApiListResult<TItem> {\r\n total: TTotal;\r\n}\r\n\r\nexport enum HttpMethods {\r\n get = 'get',\r\n post = 'post',\r\n}\r\nexport enum FileDownloadStatus {\r\n downloading = 'downloading',\r\n done = 'done',\r\n error = 'error',\r\n}\r\nexport type DownloadCallback = (status: FileDownloadStatus, error?: any) => void;\r\n\r\nexport interface IAxiosRequestConfigWithoutParams extends Omit<AxiosRequestConfig, 'params' | 'paramsSerializer'> {\r\n contentType?: string;\r\n}\r\n\r\nexport interface IApiUtilityConfig {\r\n baseURL?: string;\r\n accessToken?: string;\r\n handleError?: (error: string, errors?: any) => void;\r\n}\r\n\r\nclass ApiUtilityBase {\r\n private config: IApiUtilityConfig = {};\r\n\r\n get accessToken() {\r\n return this.config.accessToken;\r\n }\r\n\r\n set accessToken(token: string | undefined) {\r\n this.config.accessToken = token;\r\n }\r\n\r\n get handleError() {\r\n return this.config.handleError || ((error, errors) => {});\r\n }\r\n\r\n set handleError(handler: (error: string, errors?: any) => void) {\r\n this.config.handleError = handler;\r\n }\r\n\r\n /**\r\n * Configure the API utility with base URL and other options\r\n * @param config Configuration object\r\n */\r\n configure(config: IApiUtilityConfig) {\r\n this.config = { ...this.config, ...config };\r\n }\r\n // private getParams = (params?: any) => {\r\n // if (params) {\r\n // for (const key in params) {\r\n // if (params[key] == null || params[key] === undefined || params[key] === '')\r\n // delete params[key];\r\n // }\r\n // }\r\n // return params;\r\n // };\r\n\r\n getResponse = async <T = any>(endpoint: string, params?: any, options?: IAxiosRequestConfigWithoutParams) => {\r\n return await Axios.get<T>(endpoint, {\r\n params,\r\n paramsSerializer: {\r\n serialize: (p, o) => {\r\n return stringify(params, {\r\n arrayFormat: 'indices',\r\n allowDots: true,\r\n skipNulls: true,\r\n });\r\n },\r\n },\r\n ...this._axiosOptions(options || {}),\r\n });\r\n };\r\n\r\n get = async <T = IApiResponse>(endpoint: string, params?: any, throwErrorOn401?: boolean, options?: IAxiosRequestConfigWithoutParams) => {\r\n const response = await this.getResponse<T>(endpoint, params, options);\r\n\r\n const data = this.handleResponse<T>(response, throwErrorOn401);\r\n return data;\r\n };\r\n getResult = async <T = any>(endpoint: string, params?: any, throwErrorOn401?: boolean, options?: IAxiosRequestConfigWithoutParams) => {\r\n try {\r\n const data = await this.get<IApiResponse<T>>(endpoint, params, undefined, options);\r\n\r\n if (data.status) {\r\n return data.result;\r\n } else {\r\n this.handleErrorResponse(data.message, data.errors);\r\n }\r\n } catch (error: any) {\r\n if (error!.isAxiosError) this.handleAxiosError(error, throwErrorOn401);\r\n else this.handleResponse(error, throwErrorOn401);\r\n }\r\n\r\n return null;\r\n };\r\n\r\n post = async <T = IApiResponse>(endpoint: string, body: any, contentType?: string, options?: IAxiosRequestConfigWithoutParams): Promise<T> => {\r\n try {\r\n const response = await Axios.post<T>(endpoint, body, this._axiosOptions({ contentType, ...(options || {}) }));\r\n const data = this.handleResponse<T>(response);\r\n return data;\r\n } catch (ex: any) {\r\n if (ex?.isAxiosError) {\r\n return this.handleAxiosError(ex);\r\n }\r\n }\r\n return {} as T;\r\n };\r\n put = async <T = IApiResponse>(endpoint: string, body: any, contentType?: string, options?: IAxiosRequestConfigWithoutParams): Promise<T> => {\r\n try {\r\n const response = await Axios.put<T>(endpoint, body, this._axiosOptions({ contentType, ...(options || {}) }));\r\n const data = this.handleResponse<T>(response);\r\n return data;\r\n } catch (ex: any) {\r\n if (ex?.isAxiosError) {\r\n return this.handleAxiosError(ex);\r\n }\r\n }\r\n return {} as T;\r\n };\r\n appendFormDataValues = (form: FormData, values: any, preFix?: string) => {\r\n if (!preFix || preFix.length <= 0) preFix = '';\r\n\r\n //check if given object is a string/number/boolean then add directly to the list with prefix\r\n if ((typeof values !== 'function' && typeof values !== 'object' && typeof values !== 'symbol') || values instanceof File) {\r\n if (values && preFix) {\r\n form.append(preFix, values);\r\n }\r\n return;\r\n }\r\n\r\n for (const key in values) {\r\n //prepare a field name\r\n const fieldName = `${preFix}${preFix && !preFix.endsWith('.') ? '.' : ''}${key}`;\r\n\r\n if (values[key] instanceof FileList) {\r\n const fileList: FileList = values[key];\r\n for (let fIndex = 0; fIndex < fileList.length; fIndex++) {\r\n form.append(`${fieldName}[${fIndex}]`, fileList[fIndex]);\r\n }\r\n } else {\r\n if (Array.isArray(values[key])) {\r\n values[key].forEach((el: any, idx: number) => {\r\n this.appendFormDataValues(form, el, `${fieldName}[${idx}]`);\r\n });\r\n } else {\r\n if (typeof values[key] === 'object') {\r\n this.appendFormDataValues(form, values[key], fieldName);\r\n } else if (values[key]) {\r\n form.append(fieldName, values[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n postForm = async <T = IApiResponse>(endpoint: string, params: any, options?: IAxiosRequestConfigWithoutParams) => {\r\n let formData = new FormData();\r\n\r\n if (params instanceof FormData) {\r\n formData = params;\r\n } else {\r\n this.appendFormDataValues(formData, params);\r\n }\r\n\r\n try {\r\n const response = await Axios.post<T>(endpoint, formData, this._axiosOptions({ contentType: 'multipart/form-data', ...(options || {}) }));\r\n const data = this.handleResponse(response);\r\n return data;\r\n } catch (ex: any) {\r\n if (ex?.isAxiosError) {\r\n return this.handleAxiosError(ex);\r\n }\r\n }\r\n return {} as T;\r\n };\r\n putForm = async <T = IApiResponse>(endpoint: string, params: any, options?: IAxiosRequestConfigWithoutParams) => {\r\n let formData = new FormData();\r\n\r\n if (params instanceof FormData) {\r\n formData = params;\r\n } else {\r\n this.appendFormDataValues(formData, params);\r\n }\r\n\r\n try {\r\n const response = await Axios.putForm<T>(endpoint, formData, this._axiosOptions({ contentType: 'multipart/form-data', ...(options || {}) }));\r\n const data = this.handleResponse(response);\r\n return data;\r\n } catch (ex: any) {\r\n if (ex?.isAxiosError) {\r\n return this.handleAxiosError(ex);\r\n }\r\n }\r\n return {} as T;\r\n };\r\n\r\n delete = async <T = IApiResponse>(endpoint: string, contentType?: string, options?: IAxiosRequestConfigWithoutParams) => {\r\n const response = await Axios.delete<T>(endpoint, this._axiosOptions({ contentType, ...(options || {}) }));\r\n const data = this.handleResponse<T>(response);\r\n return data;\r\n };\r\n\r\n private getFileName = (contentDispositionValue: string) => {\r\n var filename: string | undefined = undefined;\r\n if (contentDispositionValue && contentDispositionValue.indexOf('attachment') !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(contentDispositionValue);\r\n if (matches != null && matches[1]) {\r\n filename = matches[1].replace(/['\"]/g, '');\r\n }\r\n }\r\n return filename;\r\n };\r\n downloadFile = async (endpoint: string, params?: any, method?: HttpMethods, options?: IAxiosRequestConfigWithoutParams): Promise<{ status: FileDownloadStatus; error?: any }> => {\r\n let response: Promise<AxiosResponse<any>>;\r\n const headers: any = {};\r\n // return authorization header with jwt token\r\n const token = this.accessToken; // || AuthService.getAuthToken();\r\n if (token) {\r\n headers['Authorization'] = `Bearer ${token}`;\r\n }\r\n const axiosOptions: IAxiosRequestConfigWithoutParams = { headers, ...(options || {}) };\r\n if (method === HttpMethods.post) {\r\n response = Axios.post(endpoint, params, {\r\n ...this._axiosOptions(axiosOptions),\r\n responseType: 'blob',\r\n });\r\n } else {\r\n response = Axios.get(endpoint, {\r\n params,\r\n paramsSerializer: {\r\n serialize: (p, o) => {\r\n return stringify(params, {\r\n arrayFormat: 'indices',\r\n allowDots: true,\r\n skipNulls: true,\r\n });\r\n },\r\n },\r\n ...this._axiosOptions(axiosOptions),\r\n responseType: 'blob',\r\n });\r\n }\r\n\r\n try {\r\n const result_1 = await response;\r\n //extract file name from Content-Disposition header\r\n const fileName = this.getFileName((result_1.headers.get as any)('Content-Disposition'));\r\n //invoke 'Save As' dialog\r\n saveAs(result_1.data, fileName);\r\n return { status: FileDownloadStatus.done };\r\n } catch (error: any) {\r\n if (error!.isAxiosError) {\r\n this.handleResponse(error.response);\r\n } else this.handleResponse(error);\r\n if (error.response) {\r\n return {\r\n status: FileDownloadStatus.error,\r\n error: error.response.status,\r\n };\r\n } else {\r\n return { status: FileDownloadStatus.error, error: error.message };\r\n }\r\n }\r\n };\r\n\r\n getAuthHeader = (contentType?: string) => {\r\n const headers: any = {\r\n 'Content-Type': contentType || 'application/json',\r\n Accept: 'application/json',\r\n };\r\n\r\n // return authorization header with jwt token\r\n const token = this.accessToken; //||AuthService.getAuthToken();\r\n if (token) {\r\n headers['Authorization'] = `Bearer ${token}`;\r\n }\r\n return headers;\r\n };\r\n\r\n handleResponse = <T = IApiResponse>(response: AxiosResponse<T>, throwErrorOn401?: boolean) => {\r\n if (!response) {\r\n if (this.handleError) this.handleError('No response from the server, please try after some time.');\r\n } else if ([401, 403].indexOf(response.status) !== -1) {\r\n if (throwErrorOn401) {\r\n throw response;\r\n } else {\r\n console.error('401 Unauthorized or 403 Forbidden response returned from api');\r\n // // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\r\n // AuthService.logout();\r\n\r\n // window.location.reload();\r\n }\r\n }\r\n return response?.data;\r\n };\r\n handleAxiosError = <T = IApiResponse>(error: AxiosError, throwErrorOn401?: boolean): T => {\r\n if (throwErrorOn401 && error.response?.status === 401) throw error;\r\n else if (error.response?.status === 400) {\r\n const data = (error.response as any).data;\r\n if (data && data.errors) {\r\n const arr: any[] = [];\r\n for (const key in data.errors) {\r\n if (data.errors[key] && data.errors[key].length > 0) {\r\n arr.push(data.errors[key][0]);\r\n }\r\n }\r\n return {\r\n result: null,\r\n status: false,\r\n message: arr.length > 0 ? arr[0] : '',\r\n errors: arr,\r\n } as unknown as T;\r\n }\r\n }\r\n return {} as T;\r\n };\r\n handleErrorResponse = (message: any, errors?: any) => {\r\n if (this.handleError) this.handleError(message, errors);\r\n };\r\n\r\n _axiosOptions = (options?: IAxiosRequestConfigWithoutParams): AxiosRequestConfig => {\r\n const { contentType, headers, ...rest } = options || {};\r\n return {\r\n headers: headers || this.getAuthHeader(contentType),\r\n baseURL: this.getBaseUrl(),\r\n ...rest,\r\n };\r\n };\r\n getBaseUrl = () => {\r\n // Priority: 1. Configured baseURL, 2. Environment variable, 3. undefined\r\n return this.config.baseURL || process.env.REACT_APP_API_URL || (typeof window !== 'undefined' && (window as any).__API_BASE_URL__);\r\n };\r\n}\r\n\r\nexport const ApiUtility = new ApiUtilityBase();\r\n","const ICE_CANDIDATE_IP_INDEX = 4;\r\n\r\n// store deviceIpString as a global variable as generating it is expensive and often required several times\r\nconst deviceIpData = {\r\n deviceIpString: '',\r\n deviceIpTimeStamp: '',\r\n};\r\n\r\n/**\r\n * This reset function is valuable only for unit testing\r\n */\r\nexport const resetDeviceIpString = () => {\r\n deviceIpData.deviceIpString = '';\r\n};\r\n\r\nexport const resetDeviceIpTimeStamp = () => {\r\n deviceIpData.deviceIpTimeStamp = '';\r\n};\r\n\r\n/**\r\n * Function that returns the local IP address as a string as an async promise.\r\n * It uses RTCPeerConnection object's onicecandidate event handler which gets called\r\n * automatically when a new Ice Candidate is available.\r\n * @returns {Promise} Promise to get users devices IP address\r\n */\r\nexport const getDeviceLocalIPAsString = (): Promise<typeof deviceIpData> => {\r\n return new Promise((resolve, reject) => {\r\n if (deviceIpData.deviceIpString !== '' && deviceIpData.deviceIpTimeStamp !== '') {\r\n resolve(deviceIpData);\r\n }\r\n const WebRTCConnection = RTCPeerConnection;\r\n if (!WebRTCConnection) {\r\n reject({ message: 'WEBRTC_UNSUPPORTED_BROWSER', error: undefined });\r\n }\r\n //RTCPeerConection is supported, so will try to find the IP\r\n const ip: string[] = [];\r\n let pc: RTCPeerConnection;\r\n try {\r\n pc = new WebRTCConnection();\r\n } catch (err) {\r\n reject({ message: 'WEBRTC_CONSTRUCTION_FAILED', error: err });\r\n }\r\n\r\n pc!.onicecandidate = (event) => {\r\n if (!event || !event.candidate) {\r\n pc.close();\r\n if (ip.length < 1) {\r\n reject({ message: 'NO_IP_FOUND', error: undefined });\r\n }\r\n deviceIpData.deviceIpString = ip.join(',');\r\n deviceIpData.deviceIpTimeStamp = new Date().toISOString();\r\n resolve(deviceIpData);\r\n } else if (event.candidate.candidate) {\r\n const candidateValues = event.candidate.candidate.split(' ');\r\n if (candidateValues.length > ICE_CANDIDATE_IP_INDEX) {\r\n ip.push(candidateValues[ICE_CANDIDATE_IP_INDEX]);\r\n }\r\n }\r\n };\r\n pc!.createDataChannel('');\r\n pc!\r\n .createOffer()\r\n .then(pc!.setLocalDescription.bind(pc!))\r\n .catch((err) => {\r\n reject({ message: 'CREATE_CONNECTION_ERROR', error: err });\r\n });\r\n });\r\n};\r\n\r\n/**\r\n * Function that returns user's browser's all plugin as a comma separated string\r\n * @returns {string} comma separated user's browser's plugins\r\n */\r\nexport const getBrowserPluginsAsString = (): string => {\r\n return Array.from(navigator.plugins, (plugin) => plugin && plugin.name)\r\n .filter((name) => name)\r\n .join(',');\r\n};\r\n\r\nconst getFormattedOffset = () => {\r\n // Date().toString() is in format like \"Wed Sep 30 2020 23:11:02 GMT+0100 (British Summer Time)\"\r\n // To format the offset, we split on \"GMT\"\r\n // and then pick the relevant characters based on their position and reformat with a \":\"\r\n const offset = new Date().toString().split('GMT')[1];\r\n const hourOffset = `${offset[0]}${offset[1]}${offset[2]}`;\r\n const minuteOffset = `${offset[3]}${offset[4]}`;\r\n const formattedUTC = `${hourOffset}:${minuteOffset}`;\r\n return formattedUTC;\r\n};\r\n\r\n/**\r\n * Function that returns user's timezone offset relative to UTC\r\n * @returns {string} UTC concatenated with user's browser's timezone offset\r\n */\r\nexport const getTimezone = (): string => `UTC${getFormattedOffset()}`;\r\n\r\nconst validateAndGetScreenDetail = (value: number): number | null => {\r\n if (isNaN(value)) {\r\n return null;\r\n } else {\r\n return value;\r\n }\r\n};\r\n\r\n/**\r\n * Function that validates the user's screen's width value, and then returns it.\r\n * If it fails validation, it returns null\r\n * @returns {number | null} validated value of screen width\r\n */\r\nexport const getScreenWidth = (): number | null => validateAndGetScreenDetail(screen.width);\r\n\r\n/**\r\n * Function that validates the user's screen's height value, and then returns it.\r\n * If it fails validation, it returns null\r\n * @returns {number | null} validated value of screen height\r\n */\r\nexport const getScreenHeight = (): number | null => validateAndGetScreenDetail(screen.height);\r\n\r\n/**\r\n * Function that validates the user's device's pixel ratio, and then returns it.\r\n * If it fails validation, it returns null\r\n * @returns {number | null} validated value of window's devicePixelRatio\r\n */\r\nexport const getScreenScalingFactor = (): number | null => validateAndGetScreenDetail(window.devicePixelRatio);\r\n\r\n/**\r\n * Function that validates the user's screen's colorDepth, and then returns it.\r\n * If it fails validation, it returns null\r\n * @returns {number | null} validated value of screen's colorDepth\r\n */\r\nexport const getScreenColourDepth = (): number | null => validateAndGetScreenDetail(screen.colorDepth);\r\n\r\n/**\r\n * Function that validates the user's window's interior width in pixels, and then returns it.\r\n * If it fails validation, it returns null\r\n * @returns {number | null} validated value of window's innerWidth\r\n */\r\nexport const getWindowWidth = (): number | null => validateAndGetScreenDetail(window.innerWidth);\r\n\r\n/**\r\n * Function that validates the user's window's interior height in pixels, and then returns it.\r\n * If it fails validation, it returns null\r\n * @returns {number | null} validated value of window's innerHeight\r\n */\r\nexport const getWindowHeight = (): number | null => validateAndGetScreenDetail(window.innerHeight);\r\n\r\n/**\r\n * The function returns users browser's do not track setting by checking the navigator\r\n * and window object for the same\r\n * @returns {string} true or false based on users Do Not Track setting\r\n */\r\nexport const getBrowserDoNotTrackStatus = (): string => {\r\n const windowVar = window as any,\r\n navigatorVar = navigator as any;\r\n const isBrowserDoNotTrack =\r\n (windowVar.doNotTrack && windowVar.doNotTrack === '1') ||\r\n (navigatorVar.doNotTrack && (navigatorVar.doNotTrack === 'yes' || navigatorVar.doNotTrack === '1')) ||\r\n (navigatorVar.msDoNotTrack && navigatorVar.msDoNotTrack === '1') ||\r\n (windowVar.external && windowVar.external.msTrackingProtectionEnabled && windowVar.external.msTrackingProtectionEnabled());\r\n return isBrowserDoNotTrack ? 'true' : 'false';\r\n};\r\n\r\n/**\r\n * This function returns user agent by checking the navigator\r\n * @returns {String} user agent for the current browser\r\n */\r\nexport const getUserAgent = (): string => {\r\n return navigator.userAgent;\r\n};\r\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseClamp = require('./_baseClamp'),\n baseToString = require('./_baseToString'),\n toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\nfunction startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n}\n\nmodule.exports = startsWith;\n","!function(e,a){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=a(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],a):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_gb=a(e.dayjs)}(this,(function(e){\"use strict\";function a(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=a(e),_={name:\"en-gb\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekStart:1,yearStart:4,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},ordinal:function(e){var a=[\"th\",\"st\",\"nd\",\"rd\"],t=e%100;return\"[\"+e+(a[(t-20)%10]||a[t]||a[0])+\"]\"}};return t.default.locale(_,null,!0),_}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=31536e6,d=2628e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:u,months:d,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/d),t%=d,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,\"Y\"),s=v(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,\"D\"),e=v(this.$d.hours,\"H\"),r=v(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,\"S\"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",h=(d?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===h||\"-P\"===h?\"P0D\":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}(),p=function(t,s,n){return t.add(s.years()*n,\"y\").add(s.months()*n,\"M\").add(s.days()*n,\"d\").add(s.hours()*n,\"h\").add(s.minutes()*n,\"m\").add(s.seconds()*n,\"s\").add(s.milliseconds()*n,\"ms\")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,\"day\").add(e,\"day\")}}}));","import dayjsBase from 'dayjs';\r\nimport 'dayjs/locale/en-gb';\r\nimport AdvancedFormat from 'dayjs/plugin/advancedFormat';\r\nimport CustomParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport Duration from 'dayjs/plugin/duration';\r\nimport IsSameOrAfter from 'dayjs/plugin/isSameOrAfter';\r\nimport IsSameOrBefore from 'dayjs/plugin/isSameOrBefore';\r\nimport RelativeTime from 'dayjs/plugin/relativeTime';\r\nimport tz from 'dayjs/plugin/timezone';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport Weekday from 'dayjs/plugin/weekday';\r\n\r\ndayjsBase.locale('en-gb');\r\ndayjsBase.extend(AdvancedFormat);\r\ndayjsBase.extend(CustomParseFormat);\r\ndayjsBase.extend(Weekday);\r\ndayjsBase.extend(IsSameOrAfter);\r\ndayjsBase.extend(IsSameOrBefore);\r\ndayjsBase.extend(RelativeTime);\r\ndayjsBase.extend(utc);\r\ndayjsBase.extend(tz);\r\ndayjsBase.extend(Duration);\r\n\r\ndeclare module 'dayjs' {\r\n interface Dayjs {\r\n addWorkdays(amount: number): dayjsBase.Dayjs;\r\n }\r\n}\r\nconst addWorkdays: dayjsBase.PluginFunc = (option, c) => {\r\n function determineSign(x: number) {\r\n x = +x;\r\n return x > 0 ? 1 : -1;\r\n }\r\n\r\n c.prototype.addWorkdays = function (amount: number) {\r\n if (amount === 0 || isNaN(amount)) {\r\n return this;\r\n }\r\n\r\n var sign = determineSign(amount);\r\n var day = this.day();\r\n var absIncrement = Math.abs(amount);\r\n\r\n var days = 0;\r\n\r\n if (day === 0 && sign === -1) {\r\n days = 1;\r\n } else if (day === 6 && sign === 1) {\r\n days = 1;\r\n }\r\n // Add padding for weekends.\r\n var paddedAbsIncrement = absIncrement;\r\n if (day !== 0 && day !== 6 && sign > 0) {\r\n paddedAbsIncrement += day;\r\n } else if (day !== 0 && day !== 6 && sign < 0) {\r\n paddedAbsIncrement += 6 - day;\r\n }\r\n\r\n var weekendsInbetween = Math.max(Math.floor(paddedAbsIncrement / 5) - 1, 0) + (paddedAbsIncrement > 5 && paddedAbsIncrement % 5 > 0 ? 1 : 0);\r\n\r\n // Add the increment and number of weekends.\r\n days += absIncrement + weekendsInbetween * 2;\r\n\r\n return this.add(sign * days, 'day');\r\n };\r\n};\r\ndayjsBase.extend(addWorkdays);\r\n\r\nexport const dayjs = dayjsBase;\r\n\r\n//temp type to export plugin interfaces\r\nexport type tmpDayJs =\r\n | typeof dayjsBase\r\n | typeof AdvancedFormat\r\n | typeof CustomParseFormat\r\n | typeof Weekday\r\n | typeof IsSameOrAfter\r\n | typeof IsSameOrBefore\r\n | typeof RelativeTime\r\n | typeof utc\r\n | typeof tz\r\n | typeof Duration;\r\n","import { Dayjs } from 'dayjs';\r\nimport React from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { dayjs } from '../Utilities/dayjs';\r\nimport { IAddress } from './Types';\r\n\r\nexport const StorageMessageKey = 'ao-message';\r\n\r\nexport interface IStorageMessage extends Record<string, any> {\r\n type: string;\r\n t: string;\r\n domain: string;\r\n}\r\n\r\nexport interface IFormattedNumberOptions {\r\n decimalPlaces?: number;\r\n withComma?: boolean;\r\n useDashForZero?: boolean;\r\n}\r\n\r\nclass UtilsBase {\r\n DateRegEx = /(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)[0-9]{2}/;\r\n NiNoRegEx =\r\n /([ACEHJLMOPRSWXY][A-CEGHJ-NPR-TW-Z]|B[A-CEHJ-NPR-TW-Z]|G[ACEGHJ-NPR-TW-Z]|[KT][A-CEGHJ-MPR-TW-Z]|N[A-CEGHJL-NPR-SW-Z]|Z[A-CEGHJ-NPR-TW-Y])[0-9]{6}[A-D ]/;\r\n /**\r\n * Unique id for the tab (openned browser tab)\r\n */\r\n public TabIdKey: string;\r\n\r\n constructor() {\r\n this.TabIdKey = Math.random().toString(36).substring(2, 8);\r\n }\r\n\r\n /**\r\n * Get number from any type/value\r\n * @param num Value to get number\r\n */\r\n getNumber = (num?: string | number): number => {\r\n if (!num || num === '') return 0;\r\n if (typeof num === 'number') return isNaN(num) ? 0 : num;\r\n return this.getNumber(parseFloat(num.replaceAll(',', '')));\r\n };\r\n /**\r\n * Get formatted date in DD/MM/YYYY hh:mm A or DD/MM/YYYY\r\n * @param date Date to be formatted\r\n * @param emptyValue Value to return if date is empty or null\r\n * @param withTime Return date with time\r\n */\r\n getFormattedDate = (\r\n date: string | number | Date | Dayjs | undefined,\r\n emptyValue?: string,\r\n withTime?: boolean,\r\n timeZone: string = 'Europe/London'\r\n ) => {\r\n if (!date || date === '') return emptyValue;\r\n const dt =\r\n typeof date === 'string' &&\r\n /^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$/.test(\r\n date\r\n )\r\n ? dayjs(date, 'DD/MM/YYYY')\r\n : dayjs(date);\r\n return dt.isValid()\r\n ? withTime\r\n ? dt.tz(timeZone).format(`DD/MM/YYYY hh:mm A`)\r\n : dt.format(`DD/MM/YYYY`)\r\n : emptyValue;\r\n };\r\n /**\r\n * Get formatted number\r\n * @param number Number to format\r\n * @param decimalPlaces Number of decimal places\r\n * @param withComma Get number with separator\r\n * @param useDashForZero Use dash for zero\r\n * @param withCurrency Prepend £ before number\r\n */\r\n getFormattedNumber = (\r\n number: any,\r\n decimalPlaces: number = 2,\r\n withComma: boolean = true,\r\n useDashForZero: boolean = false,\r\n withCurrency: boolean = false\r\n ) => {\r\n if (isNaN(number)) number = 0;\r\n\r\n if (useDashForZero && (!number || number === '' || number === 0 || number === '0')) return '-';\r\n\r\n var isNegative = false;\r\n if (number < 0) {\r\n isNegative = true;\r\n number = Math.abs(number);\r\n }\r\n var t = parseFloat(number)\r\n .toFixed(decimalPlaces !== null && decimalPlaces !== undefined ? decimalPlaces : 2)\r\n .split('.');\r\n var str = number;\r\n if (t.length >= 1) {\r\n str = '';\r\n //var r = t[0].slice('');\r\n var r = t[0].slice(0);\r\n for (var i = r.length - 1, j = 1; i >= 0; i--, j++) {\r\n str = r[i] + str;\r\n if (withComma && j % 3 === 0 && i > 0) str = ',' + str;\r\n }\r\n if (t.length > 1) str += '.' + t[1];\r\n }\r\n return (withCurrency ? '£' : '') + (isNegative ? `(${str})` : str);\r\n };\r\n /**\r\n * Get formatted number\r\n * @param number Number to format\r\n * @param useDashForZero Use dash for zero\r\n */\r\n getFormattedCurrency = (number: any, useDashForZero: boolean = false) =>\r\n this.getFormattedNumber(number, 2, true, useDashForZero, true);\r\n\r\n /**\r\n * Append zero if number is less then 10\r\n * @param num Number to check\r\n */\r\n appendZero = (num: number) => (num < 10 ? `0${num}` : num);\r\n /**\r\n * Get formatted time (MM:SS)\r\n * @param seconds Seconds - to get time\r\n * @param minutes Minutes - to get time\r\n */\r\n getFormattedTime = (seconds: number, minutes: number = 0) => {\r\n const dateTime = new Date(0, 0, 0, 0, minutes, seconds, 0),\r\n dateTimeM = this.appendZero(dateTime.getMinutes()),\r\n dateTimeS = this.appendZero(dateTime.getSeconds());\r\n\r\n return `${dateTimeM}:${dateTimeS}`;\r\n };\r\n /**\r\n * Get formatted time from total seconds\r\n * @param seconds Total seconds to calculate hours and minutes\r\n * @param ignoreSeconds Skip seconds in output string\r\n */\r\n getFormattedSeconds = (seconds: number, ignoreSeconds?: boolean) => {\r\n if (seconds > 0) {\r\n var hours = Math.floor(seconds / 3600);\r\n seconds %= 3600;\r\n var minutes = Math.floor(seconds / 60);\r\n seconds = Math.floor(seconds % 60);\r\n return (\r\n `${this.appendZero(hours)}:${this.appendZero(minutes)}` +\r\n (ignoreSeconds ? '' : `:${this.appendZero(seconds)}`)\r\n );\r\n }\r\n return '-';\r\n };\r\n\r\n /**\r\n * Get a property value from local storage\r\n * @param {string} Key name to find the value\r\n */\r\n getLocal = (key: string): any => {\r\n const data = localStorage.getItem(key);\r\n if (data) return JSON.parse(data);\r\n return null;\r\n };\r\n /**\r\n * Set a property with value to local storage\r\n * @param {string} Key name to find the value\r\n * @param {any} data Data/value to be stored\r\n */\r\n setLocal = (key: string, data: any) => {\r\n localStorage.setItem(key, data ? JSON.stringify(data, this.jsonReplacer) : '');\r\n };\r\n /**\r\n * Remove a property with value from local storage\r\n * @param {string} Key name to find the value\r\n */\r\n removeLocal = (key: string) => {\r\n localStorage.removeItem(key);\r\n };\r\n /**\r\n * Get a property value from session storage\r\n * @param {string} Key name to find the value\r\n */\r\n getSession = (key: string): any => {\r\n const data = sessionStorage.getItem(key);\r\n if (data) return JSON.parse(data);\r\n return null;\r\n };\r\n /**\r\n * Set a property with value to session storage\r\n * @param {string} Key name to find the value\r\n * @param {any} data Data/value to be stored\r\n */\r\n setSession = (key: string, data: any) => {\r\n sessionStorage.setItem(key, data ? JSON.stringify(data, this.jsonReplacer) : '');\r\n };\r\n jsonReplacer = (key: string, value: any) => {\r\n if (value === null) return undefined;\r\n if (value === false) return undefined;\r\n return value;\r\n };\r\n /**\r\n * Get file size in kb/mb/gb etc.\r\n * @param {number} size File lenth/size\r\n */\r\n getFileSize = (size: number) => {\r\n var selectedSize = 0;\r\n var selectedUnit = 'b';\r\n\r\n if (size > 0) {\r\n var units = ['tb', 'gb', 'mb', 'kb', 'b'];\r\n\r\n for (var i = 0; i < units.length; i++) {\r\n var unit = units[i];\r\n var cutoff = Math.pow(1000, 4 - i) / 10;\r\n\r\n if (size >= cutoff) {\r\n selectedSize = size / Math.pow(1000, 4 - i);\r\n selectedUnit = unit;\r\n break;\r\n }\r\n }\r\n\r\n selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits\r\n }\r\n\r\n return `${selectedSize} ${selectedUnit.toUpperCase()}`;\r\n };\r\n\r\n /**\r\n * A custom hook that builds on useLocation to parse the query string for you.\r\n */\r\n useQuery = () => new URLSearchParams(useLocation().search);\r\n\r\n /**\r\n * Sum number array\r\n * @param {number[]} arr Number array\r\n */\r\n sumArray = (arr: number[]) => arr.reduce((a, b) => a + b);\r\n /**\r\n * Get sorted array by property\r\n * @param {any[]} arr Array of objects\r\n * @param {string} key Property/field name to sort\r\n * @returns {any[]}\r\n */\r\n sortArray<T = any>(arr: T[], key: keyof T): T[] {\r\n return arr.sort((a, b) => {\r\n if (a[key] < b[key]) {\r\n return -1;\r\n }\r\n if (a[key] > b[key]) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n /**\r\n * Replace an item in array with index\r\n * @param arr Array of objects\r\n * @param index Index where to replace the item\r\n * @param newValue New item to be replaced with\r\n * @returns Array of objects\r\n */\r\n replaceItemAtIndex<T = any>(arr: T[], index: number, newValue: T): T[] {\r\n return [...arr.slice(0, index), newValue, ...arr.slice(index + 1)];\r\n }\r\n /**\r\n * Remove an item from array with index\r\n * @param arr Array of objects\r\n * @param index Index which item to be removed\r\n * @returns Array of object\r\n */\r\n removeItemAtIndex<T = any>(arr: T[], index: number): T[] {\r\n return [...arr.slice(0, index), ...arr.slice(index + 1)];\r\n }\r\n /**\r\n * Capitalize the words of a string\r\n * @param {string} value String or value to be capitalized\r\n * @param {boolean} lower To lowercase other chars\r\n */\r\n capitalize = (value: string | null | undefined, lower: boolean = false) =>\r\n value\r\n ? (lower ? value.toLowerCase() : value).replace(/(?:^|\\s)\\S/g, (a) => a.toUpperCase())\r\n : '';\r\n\r\n /**\r\n * Validate current MongoDB ObjectId\r\n * @param id Id to check for ObjectId\r\n */\r\n isValidObjectId = (id?: string) => (id && /^[a-fA-F0-9]{24}$/i.test(id) ? true : false);\r\n\r\n /**\r\n * Set a property with value to local storage and then remove imidiatly, it is usefull to send message to all opened tabs\r\n * @param {string} Key name to find the value\r\n * @param {any} data Data/value to be stored\r\n */\r\n sendMessageToAllTabs = (type: string, data?: any) => {\r\n const message: IStorageMessage = {\r\n type,\r\n t: this.TabIdKey,\r\n domain: window.location.hostname,\r\n ...data,\r\n };\r\n localStorage.setItem(StorageMessageKey, JSON.stringify(message));\r\n localStorage.removeItem(StorageMessageKey);\r\n };\r\n /**\r\n * Check and get new event message, from event object\r\n * @param {StorageEvent} event Event object received in storage event listener\r\n */\r\n getStorageMessage = (event: StorageEvent): IStorageMessage | null => {\r\n if (event.key === StorageMessageKey && event.newValue) {\r\n const message: IStorageMessage = JSON.parse(event.newValue);\r\n if (message && message.t !== Utils.TabIdKey && message.domain === window.location.hostname) {\r\n return message;\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n /**\r\n * Assign value to an object by key/path name\r\n * @param obj Object to assign value to\r\n * @param path key full path\r\n * @param val value to be assigned\r\n * @param separator Path separator\r\n */\r\n setNestedKeyValue = (obj: any, path: string, val: any, separator: string = '.') => {\r\n const keys = path.split(separator);\r\n const lastKey = keys.pop();\r\n const lastObj = keys.reduce((obj, key) => (obj[key] = obj[key] || {}), obj);\r\n lastObj[lastKey as any] = val;\r\n };\r\n\r\n /**\r\n * Get comma separated address string\r\n * @param address address object to be converted\r\n */\r\n getAddressString = (address?: IAddress, emptyString: string = '') => {\r\n if (address) {\r\n return (\r\n [\r\n address.building,\r\n address.street,\r\n address.city,\r\n address.county,\r\n address.postcode,\r\n address.country,\r\n ]\r\n .filter((v) => v && v.length > 0)\r\n .join(', ') || emptyString\r\n );\r\n }\r\n return emptyString;\r\n };\r\n\r\n /**\r\n * Get new random UUID\r\n * @returns {string}\r\n */\r\n uuid = (): string => {\r\n let u = '',\r\n m = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx',\r\n i = 0,\r\n rb = (Math.random() * 0xffffffff) | 0;\r\n\r\n while (i++ < 36) {\r\n var c = m[i - 1],\r\n r = rb & 0xf,\r\n v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n\r\n u += c == '-' || c == '4' ? c : v.toString(16);\r\n rb = i % 8 == 0 ? (Math.random() * 0xffffffff) | 0 : rb >> 4;\r\n }\r\n return u;\r\n };\r\n}\r\nexport const Utils = new UtilsBase();\r\n\r\nexport function useIsMountedRef() {\r\n const isMountedRef = React.useRef<boolean | null>(null);\r\n React.useEffect(() => {\r\n isMountedRef.current = true;\r\n return () => {\r\n isMountedRef.current = false;\r\n };\r\n });\r\n return isMountedRef;\r\n}\r\n","import startsWith from 'lodash/startsWith';\r\nimport { Utils } from './Utils';\r\n\r\nexport interface ICountry {\r\n name: string;\r\n dialCode: string;\r\n code: string;\r\n code3: string;\r\n priority: number;\r\n}\r\n\r\nexport const AllCountries: ICountry[] = [\r\n { name: 'Afghanistan', dialCode: '93', code: 'AF', code3: 'AFG', priority: 0 },\r\n { name: 'Albania', dialCode: '355', code: 'AL', code3: 'ALB', priority: 0 },\r\n { name: 'Algeria', dialCode: '213', code: 'DZ', code3: 'DZA', priority: 0 },\r\n { name: 'American Samoa', dialCode: '1684', code: 'AS', code3: 'ASM', priority: 0 },\r\n { name: 'Andorra', dialCode: '376', code: 'AD', code3: 'AND', priority: 0 },\r\n { name: 'Angola', dialCode: '244', code: 'AO', code3: 'AGO', priority: 0 },\r\n { name: 'Anguilla', dialCode: '1264', code: 'AI', code3: 'AIA', priority: 0 },\r\n { name: 'Antarctica', dialCode: '672', code: 'AQ', code3: 'ATA', priority: 0 },\r\n { name: 'Antigua and Barbuda', dialCode: '1268', code: 'AG', code3: 'ATG', priority: 0 },\r\n { name: 'Argentina', dialCode: '54', code: 'AR', code3: 'ARG', priority: 0 },\r\n { name: 'Armenia', dialCode: '374', code: 'AM', code3: 'ARM', priority: 0 },\r\n { name: 'Aruba', dialCode: '297', code: 'AW', code3: 'ABW', priority: 0 },\r\n { name: 'Australia', dialCode: '61', code: 'AU', code3: 'AUS', priority: 0 },\r\n { name: 'Austria', dialCode: '43', code: 'AT', code3: 'AUT', priority: 0 },\r\n { name: 'Azerbaijan', dialCode: '994', code: 'AZ', code3: 'AZE', priority: 0 },\r\n { name: 'Bahamas', dialCode: '1242', code: 'BS', code3: 'BHS', priority: 0 },\r\n { name: 'Bahrain', dialCode: '973', code: 'BH', code3: 'BHR', priority: 0 },\r\n { name: 'Bangladesh', dialCode: '880', code: 'BD', code3: 'BGD', priority: 0 },\r\n { name: 'Barbados', dialCode: '1246', code: 'BB', code3: 'BRB', priority: 0 },\r\n { name: 'Belarus', dialCode: '375', code: 'BY', code3: 'BLR', priority: 0 },\r\n { name: 'Belgium', dialCode: '32', code: 'BE', code3: 'BEL', priority: 0 },\r\n { name: 'Belize', dialCode: '501', code: 'BZ', code3: 'BLZ', priority: 0 },\r\n { name: 'Benin', dialCode: '229', code: 'BJ', code3: 'BEN', priority: 0 },\r\n { name: 'Bermuda', dialCode: '1441', code: 'BM', code3: 'BMU', priority: 0 },\r\n { name: 'Bhutan', dialCode: '975', code: 'BT', code3: 'BTN', priority: 0 },\r\n { name: 'Bolivia', dialCode: '591', code: 'BO', code3: 'BOL', priority: 0 },\r\n { name: 'Bosnia and Herzegovina', dialCode: '387', code: 'BA', code3: 'BIH', priority: 0 },\r\n { name: 'Botswana', dialCode: '267', code: 'BW', code3: 'BWA', priority: 0 },\r\n { name: 'Brazil', dialCode: '55', code: 'BR', code3: 'BRA', priority: 0 },\r\n {\r\n name: 'British Indian Ocean Territory',\r\n dialCode: '246',\r\n code: 'IO',\r\n code3: 'IOT',\r\n priority: 0,\r\n },\r\n { name: 'British Virgin Islands', dialCode: '1284', code: 'VG', code3: 'VGB', priority: 0 },\r\n { name: 'Brunei', dialCode: '673', code: 'BN', code3: 'BRN', priority: 0 },\r\n { name: 'Bulgaria', dialCode: '359', code: 'BG', code3: 'BGR', priority: 0 },\r\n { name: 'Burkina Faso', dialCode: '226', code: 'BF', code3: 'BFA', priority: 0 },\r\n { name: 'Burundi', dialCode: '257', code: 'BI', code3: 'BDI', priority: 0 },\r\n { name: 'Cambodia', dialCode: '855', code: 'KH', code3: 'KHM', priority: 0 },\r\n { name: 'Cameroon', dialCode: '237', code: 'CM', code3: 'CMR', priority: 0 },\r\n { name: 'Canada', dialCode: '1', code: 'CA', code3: 'CAN', priority: 1 },\r\n { name: 'Cape Verde', dialCode: '238', code: 'CV', code3: 'CPV', priority: 0 },\r\n { name: 'Cayman Islands', dialCode: '1345', code: 'KY', code3: 'CYM', priority: 0 },\r\n { name: 'Central African Republic', dialCode: '236', code: 'CF', code3: 'CAF', priority: 0 },\r\n { name: 'Chad', dialCode: '235', code: 'TD', code3: 'TCD', priority: 0 },\r\n { name: 'Chile', dialCode: '56', code: 'CL', code3: 'CHL', priority: 0 },\r\n { name: 'China', dialCode: '86', code: 'CN', code3: 'CHN', priority: 0 },\r\n { name: 'Christmas Island', dialCode: '61', code: 'CX', code3: 'CXR', priority: 0 },\r\n { name: 'Cocos Islands', dialCode: '61', code: 'CC', code3: 'CCK', priority: 0 },\r\n { name: 'Colombia', dialCode: '57', code: 'CO', code3: 'COL', priority: 0 },\r\n { name: 'Comoros', dialCode: '269', code: 'KM', code3: 'COM', priority: 0 },\r\n { name: 'Cook Islands', dialCode: '682', code: 'CK', code3: 'COK', priority: 0 },\r\n { name: 'Costa Rica', dialCode: '506', code: 'CR', code3: 'CRI', priority: 0 },\r\n { name: 'Croatia', dialCode: '385', code: 'HR', code3: 'HRV', priority: 0 },\r\n { name: 'Cuba', dialCode: '53', code: 'CU', code3: 'CUB', priority: 0 },\r\n { name: 'Curacao', dialCode: '599', code: 'CW', code3: 'CUW', priority: 0 },\r\n { name: 'Cyprus', dialCode: '357', code: 'CY', code3: 'CYP', priority: 0 },\r\n { name: 'Czech Republic', dialCode: '420', code: 'CZ', code3: 'CZE', priority: 0 },\r\n {\r\n name: 'Democratic Republic of the Congo',\r\n dialCode: '243',\r\n code: 'CD',\r\n code3: 'COD',\r\n priority: 0,\r\n },\r\n { name: 'Denmark', dialCode: '45', code: 'DK', code3: 'DNK', priority: 0 },\r\n { name: 'Djibouti', dialCode: '253', code: 'DJ', code3: 'DJI', priority: 0 },\r\n { name: 'Dominica', dialCode: '1767', code: 'DM', code3: 'DMA', priority: 0 },\r\n { name: 'Dominican Republic', dialCode: '18', code: 'DO', code3: 'DOM', priority: 1 }, //'1809, 1829, 1849'\r\n { name: 'East Timor', dialCode: '670', code: 'TL', code3: 'TLS', priority: 0 },\r\n { name: 'Ecuador', dialCode: '593', code: 'EC', code3: 'ECU', priority: 0 },\r\n { name: 'Egypt', dialCode: '20', code: 'EG', code3: 'EGY', priority: 0 },\r\n { name: 'England', dialCode: '44', code: 'GB', code3: 'GBR', priority: 0 },\r\n { name: 'El Salvador', dialCode: '503', code: 'SV', code3: 'SLV', priority: 0 },\r\n { name: 'Equatorial Guinea', dialCode: '240', code: 'GQ', code3: 'GNQ', priority: 0 },\r\n { name: 'Eritrea', dialCode: '291', code: 'ER', code3: 'ERI', priority: 0 },\r\n { name: 'Estonia', dialCode: '372', code: 'EE', code3: 'EST', priority: 0 },\r\n { name: 'Ethiopia', dialCode: '251', code: 'ET', code3: 'ETH', priority: 0 },\r\n { name: 'Falkland Islands', dialCode: '500', code: 'FK', code3: 'FLK', priority: 0 },\r\n { name: 'Faroe Islands', dialCode: '298', code: 'FO', code3: 'FRO', priority: 0 },\r\n { name: 'Fiji', dialCode: '679', code: 'FJ', code3: 'FJI', priority: 0 },\r\n { name: 'Finland', dialCode: '358', code: 'FI', code3: 'FIN', priority: 0 },\r\n { name: 'France', dialCode: '33', code: 'FR', code3: 'FRA', priority: 0 },\r\n { name: 'French Polynesia', dialCode: '689', code: 'PF', code3: 'PYF', priority: 0 },\r\n { name: 'Gabon', dialCode: '241', code: 'GA', code3: 'GAB', priority: 0 },\r\n { name: 'Gambia', dialCode: '220', code: 'GM', code3: 'GMB', priority: 0 },\r\n { name: 'Georgia', dialCode: '995', code: 'GE', code3: 'GEO', priority: 0 },\r\n { name: 'Germany', dialCode: '49', code: 'DE', code3: 'DEU', priority: 0 },\r\n { name: 'Ghana', dialCode: '233', code: 'GH', code3: 'GHA', priority: 0 },\r\n { name: 'Gibraltar', dialCode: '350', code: 'GI', code3: 'GIB', priority: 0 },\r\n { name: 'Greece', dialCode: '30', code: 'GR', code3: 'GRC', priority: 0 },\r\n { name: 'Greenland', dialCode: '299', code: 'GL', code3: 'GRL', priority: 0 },\r\n { name: 'Grenada', dialCode: '1473', code: 'GD', code3: 'GRD', priority: 0 },\r\n { name: 'Guam', dialCode: '1671', code: 'GU', code3: 'GUM', priority: 0 },\r\n { name: 'Guatemala', dialCode: '502', code: 'GT', code3: 'GTM', priority: 0 },\r\n { name: 'Guernsey', dialCode: '441481', code: 'GG', code3: 'GGY', priority: 0 },\r\n { name: 'Guinea', dialCode: '224', code: 'GN', code3: 'GIN', priority: 0 },\r\n { name: 'GuineaBissau', dialCode: '245', code: 'GW', code3: 'GNB', priority: 0 },\r\n { name: 'Guyana', dialCode: '592', code: 'GY', code3: 'GUY', priority: 0 },\r\n { name: 'Haiti', dialCode: '509', code: 'HT', code3: 'HTI', priority: 0 },\r\n { name: 'Honduras', dialCode: '504', code: 'HN', code3: 'HND', priority: 0 },\r\n { name: 'Hong Kong', dialCode: '852', code: 'HK', code3: 'HKG', priority: 0 },\r\n { name: 'Hungary', dialCode: '36', code: 'HU', code3: 'HUN', priority: 0 },\r\n { name: 'Iceland', dialCode: '354', code: 'IS', code3: 'ISL', priority: 0 },\r\n { name: 'India', dialCode: '91', code: 'IN', code3: 'IND', priority: 0 },\r\n { name: 'Indonesia', dialCode: '62', code: 'ID', code3: 'IDN', priority: 0 },\r\n { name: 'Iran', dialCode: '98', code: 'IR', code3: 'IRN', priority: 0 },\r\n { name: 'Iraq', dialCode: '964', code: 'IQ', code3: 'IRQ', priority: 0 },\r\n { name: 'Ireland', dialCode: '353', code: 'IE', code3: 'IRL', priority: 0 },\r\n { name: 'Isle of Man', dialCode: '441624', code: 'IM', code3: 'IMN', priority: 0 },\r\n { name: 'Israel', dialCode: '972', code: 'IL', code3: 'ISR', priority: 0 },\r\n { name: 'Italy', dialCode: '39', code: 'IT', code3: 'ITA', priority: 0 },\r\n { name: 'Ivory Coast', dialCode: '225', code: 'CI', code3: 'CIV', priority: 0 },\r\n { name: 'Jamaica', dialCode: '1876', code: 'JM', code3: 'JAM', priority: 0 },\r\n { name: 'Japan', dialCode: '81', code: 'JP', code3: 'JPN', priority: 0 },\r\n { name: 'Jersey', dialCode: '441534', code: 'JE', code3: 'JEY', priority: 0 },\r\n { name: 'Jordan', dialCode: '962', code: 'JO', code3: 'JOR', priority: 0 },\r\n { name: 'Kazakhstan', dialCode: '7', code: 'KZ', code3: 'KAZ', priority: 1 },\r\n { name: 'Kenya', dialCode: '254', code: 'KE', code3: 'KEN', priority: 0 },\r\n { name: 'Kiribati', dialCode: '686', code: 'KI', code3: 'KIR', priority: 0 },\r\n { name: 'Kosovo', dialCode: '383', code: 'XK', code3: 'XKX', priority: 0 },\r\n { name: 'Kuwait', dialCode: '965', code: 'KW', code3: 'KWT', priority: 0 },\r\n { name: 'Kyrgyzstan', dialCode: '996', code: 'KG', code3: 'KGZ', priority: 0 },\r\n { name: 'Laos', dialCode: '856', code: 'LA', code3: 'LAO', priority: 0 },\r\n { name: 'Latvia', dialCode: '371', code: 'LV', code3: 'LVA', priority: 0 },\r\n { name: 'Lebanon', dialCode: '961', code: 'LB', code3: 'LBN', priority: 0 },\r\n { name: 'Lesotho', dialCode: '266', code: 'LS', code3: 'LSO', priority: 0 },\r\n { name: 'Liberia', dialCode: '231', code: 'LR', code3: 'LBR', priority: 0 },\r\n { name: 'Libya', dialCode: '218', code: 'LY', code3: 'LBY', priority: 0 },\r\n { name: 'Liechtenstein', dialCode: '423', code: 'LI', code3: 'LIE', priority: 0 },\r\n { name: 'Lithuania', dialCode: '370', code: 'LT', code3: 'LTU', priority: 0 },\r\n { name: 'Luxembourg', dialCode: '352', code: 'LU', code3: 'LUX', priority: 0 },\r\n { name: 'Macau', dialCode: '853', code: 'MO', code3: 'MAC', priority: 0 },\r\n { name: 'Macedonia', dialCode: '389', code: 'MK', code3: 'MKD', priority: 0 },\r\n { name: 'Madagascar', dialCode: '261', code: 'MG', code3: 'MDG', priority: 0 },\r\n { name: 'Malawi', dialCode: '265', code: 'MW', code3: 'MWI', priority: 0 },\r\n { name: 'Malaysia', dialCode: '60', code: 'MY', code3: 'MYS', priority: 0 },\r\n { name: 'Maldives', dialCode: '960', code: 'MV', code3: 'MDV', priority: 0 },\r\n { name: 'Mali', dialCode: '223', code: 'ML', code3: 'MLI', priority: 0 },\r\n { name: 'Malta', dialCode: '356', code: 'MT', code3: 'MLT', priority: 0 },\r\n { name: 'Marshall Islands', dialCode: '692', code: 'MH', code3: 'MHL', priority: 0 },\r\n { name: 'Mauritania', dialCode: '222', code: 'MR', code3: 'MRT', priority: 0 },\r\n { name: 'Mauritius', dialCode: '230', code: 'MU', code3: 'MUS', priority: 0 },\r\n { name: 'Mayotte', dialCode: '262', code: 'YT', code3: 'MYT', priority: 0 },\r\n { name: 'Mexico', dialCode: '52', code: 'MX', code3: 'MEX', priority: 0 },\r\n { name: 'Micronesia', dialCode: '691', code: 'FM', code3: 'FSM', priority: 0 },\r\n { name: 'Moldova', dialCode: '373', code: 'MD', code3: 'MDA', priority: 0 },\r\n { name: 'Monaco', dialCode: '377', code: 'MC', code3: 'MCO', priority: 0 },\r\n { name: 'Mongolia', dialCode: '976', code: 'MN', code3: 'MNG', priority: 0 },\r\n { name: 'Montenegro', dialCode: '382', code: 'ME', code3: 'MNE', priority: 0 },\r\n { name: 'Montserrat', dialCode: '1664', code: 'MS', code3: 'MSR', priority: 0 },\r\n { name: 'Morocco', dialCode: '212', code: 'MA', code3: 'MAR', priority: 0 },\r\n { name: 'Mozambique', dialCode: '258', code: 'MZ', code3: 'MOZ', priority: 0 },\r\n { name: 'Myanmar', dialCode: '95', code: 'MM', code3: 'MMR', priority: 0 },\r\n { name: 'Namibia', dialCode: '264', code: 'NA', code3: 'NAM', priority: 0 },\r\n { name: 'Nauru', dialCode: '674', code: 'NR', code3: 'NRU', priority: 0 },\r\n { name: 'Nepal', dialCode: '977', code: 'NP', code3: 'NPL', priority: 0 },\r\n { name: 'Netherlands', dialCode: '31', code: 'NL', code3: 'NLD', priority: 0 },\r\n { name: 'Netherlands Antilles', dialCode: '599', code: 'AN', code3: 'ANT', priority: 1 },\r\n { name: 'New Caledonia', dialCode: '687', code: 'NC', code3: 'NCL', priority: 0 },\r\n { name: 'New Zealand', dialCode: '64', code: 'NZ', code3: 'NZL', priority: 0 },\r\n { name: 'Nicaragua', dialCode: '505', code: 'NI', code3: 'NIC', priority: 0 },\r\n { name: 'Niger', dialCode: '227', code: 'NE', code3: 'NER', priority: 0 },\r\n { name: 'Nigeria', dialCode: '234', code: 'NG', code3: 'NGA', priority: 0 },\r\n { name: 'Niue', dialCode: '683', code: 'NU', code3: 'NIU', priority: 0 },\r\n { name: 'North Korea', dialCode: '850', code: 'KP', code3: 'PRK', priority: 0 },\r\n { name: 'Northern Mariana Islands', dialCode: '1670', code: 'MP', code3: 'MNP', priority: 0 },\r\n { name: 'Northern Ireland', dialCode: '44', code: 'GB', code3: 'GBR', priority: 0 },\r\n { name: 'Norway', dialCode: '47', code: 'NO', code3: 'NOR', priority: 0 },\r\n { name: 'Oman', dialCode: '968', code: 'OM', code3: 'OMN', priority: 0 },\r\n { name: 'Pakistan', dialCode: '92', code: 'PK', code3: 'PAK', priority: 0 },\r\n { name: 'Palau', dialCode: '680', code: 'PW', code3: 'PLW', priority: 0 },\r\n { name: 'Palestine', dialCode: '970', code: 'PS', code3: 'PSE', priority: 0 },\r\n { name: 'Panama', dialCode: '507', code: 'PA', code3: 'PAN', priority: 0 },\r\n { name: 'Papua New Guinea', dialCode: '675', code: 'PG', code3: 'PNG', priority: 0 },\r\n { name: 'Paraguay', dialCode: '595', code: 'PY', code3: 'PRY', priority: 0 },\r\n { name: 'Peru', dialCode: '51', code: 'PE', code3: 'PER', priority: 0 },\r\n { name: 'Philippines', dialCode: '63', code: 'PH', code3: 'PHL', priority: 0 },\r\n { name: 'Pitcairn', dialCode: '64', code: 'PN', code3: 'PCN', priority: 0 },\r\n { name: 'Poland', dialCode: '48', code: 'PL', code3: 'POL', priority: 0 },\r\n { name: 'Portugal', dialCode: '351', code: 'PT', code3: 'PRT', priority: 0 },\r\n { name: 'Puerto Rico', dialCode: '1', code: 'PR', code3: 'PRI', priority: 2 },\r\n { name: 'Qatar', dialCode: '974', code: 'QA', code3: 'QAT', priority: 0 },\r\n { name: 'Republic of the Congo', dialCode: '242', code: 'CG', code3: 'COG', priority: 0 },\r\n { name: 'Reunion', dialCode: '262', code: 'RE', code3: 'REU', priority: 0 },\r\n { name: 'Romania', dialCode: '40', code: 'RO', code3: 'ROU', priority: 0 },\r\n { name: 'Russia', dialCode: '7', code: 'RU', code3: 'RUS', priority: 0 },\r\n { name: 'Rwanda', dialCode: '250', code: 'RW', code3: 'RWA', priority: 0 },\r\n { name: 'Saint Barthelemy', dialCode: '590', code: 'BL', code3: 'BLM', priority: 0 },\r\n { name: 'Saint Helena', dialCode: '290', code: 'SH', code3: 'SHN', priority: 0 },\r\n { name: 'Saint Kitts and Nevis', dialCode: '1869', code: 'KN', code3: 'KNA', priority: 0 },\r\n { name: 'Saint Lucia', dialCode: '1758', code: 'LC', code3: 'LCA', priority: 0 },\r\n { name: 'Saint Martin', dialCode: '590', code: 'MF', code3: 'MAF', priority: 0 },\r\n { name: 'Saint Pierre and Miquelon', dialCode: '508', code: 'PM', code3: 'SPM', priority: 0 },\r\n {\r\n name: 'Saint Vincent and the Grenadines',\r\n dialCode: '1784',\r\n code: 'VC',\r\n code3: 'VCT',\r\n priority: 0,\r\n },\r\n { name: 'Samoa', dialCode: '685', code: 'WS', code3: 'WSM', priority: 0 },\r\n { name: 'San Marino', dialCode: '378', code: 'SM', code3: 'SMR', priority: 0 },\r\n { name: 'Sao Tome and Principe', dialCode: '239', code: 'ST', code3: 'STP', priority: 0 },\r\n { name: 'Saudi Arabia', dialCode: '966', code: 'SA', code3: 'SAU', priority: 0 },\r\n { name: 'Scotland', dialCode: '44', code: 'GB', code3: 'GBR', priority: 0 },\r\n { name: 'Senegal', dialCode: '221', code: 'SN', code3: 'SEN', priority: 0 },\r\n { name: 'Serbia', dialCode: '381', code: 'RS', code3: 'SRB', priority: 0 },\r\n { name: 'Seychelles', dialCode: '248', code: 'SC', code3: 'SYC', priority: 0 },\r\n { name: 'Sierra Leone', dialCode: '232', code: 'SL', code3: 'SLE', priority: 0 },\r\n { name: 'Singapore', dialCode: '65', code: 'SG', code3: 'SGP', priority: 0 },\r\n { name: 'Sint Maarten', dialCode: '1721', code: 'SX', code3: 'SXM', priority: 0 },\r\n { name: 'Slovakia', dialCode: '421', code: 'SK', code3: 'SVK', priority: 0 },\r\n { name: 'Slovenia', dialCode: '386', code: 'SI', code3: 'SVN', priority: 0 },\r\n { name: 'Solomon Islands', dialCode: '677', code: 'SB', code3: 'SLB', priority: 0 },\r\n { name: 'Somalia', dialCode: '252', code: 'SO', code3: 'SOM', priority: 0 },\r\n { name: 'South Africa', dialCode: '27', code: 'ZA', code3: 'ZAF', priority: 0 },\r\n { name: 'South Korea', dialCode: '82', code: 'KR', code3: 'KOR', priority: 0 },\r\n { name: 'South Sudan', dialCode: '211', code: 'SS', code3: 'SSD', priority: 0 },\r\n { name: 'Spain', dialCode: '34', code: 'ES', code3: 'ESP', priority: 0 },\r\n { name: 'Sri Lanka', dialCode: '94', code: 'LK', code3: 'LKA', priority: 0 },\r\n { name: 'Sudan', dialCode: '249', code: 'SD', code3: 'SDN', priority: 0 },\r\n { name: 'Suriname', dialCode: '597', code: 'SR', code3: 'SUR', priority: 0 },\r\n { name: 'Svalbard and Jan Mayen', dialCode: '47', code: 'SJ', code3: 'SJM', priority: 0 },\r\n { name: 'Swaziland', dialCode: '268', code: 'SZ', code3: 'SWZ', priority: 0 },\r\n { name: 'Sweden', dialCode: '46', code: 'SE', code3: 'SWE', priority: 0 },\r\n { name: 'Switzerland', dialCode: '41', code: 'CH', code3: 'CHE', priority: 0 },\r\n { name: 'Syria', dialCode: '963', code: 'SY', code3: 'SYR', priority: 0 },\r\n { name: 'Taiwan', dialCode: '886', code: 'TW', code3: 'TWN', priority: 0 },\r\n { name: 'Tajikistan', dialCode: '992', code: 'TJ', code3: 'TJK', priority: 0 },\r\n { name: 'Tanzania', dialCode: '255', code: 'TZ', code3: 'TZA', priority: 0 },\r\n { name: 'Thailand', dialCode: '66', code: 'TH', code3: 'THA', priority: 0 },\r\n { name: 'Togo', dialCode: '228', code: 'TG', code3: 'TGO', priority: 0 },\r\n { name: 'Tokelau', dialCode: '690', code: 'TK', code3: 'TKL', priority: 0 },\r\n { name: 'Tonga', dialCode: '676', code: 'TO', code3: 'TON', priority: 0 },\r\n { name: 'Trinidad and Tobago', dialCode: '1868', code: 'TT', code3: 'TTO', priority: 0 },\r\n { name: 'Tunisia', dialCode: '216', code: 'TN', code3: 'TUN', priority: 0 },\r\n { name: 'Turkey', dialCode: '90', code: 'TR', code3: 'TUR', priority: 0 },\r\n { name: 'Turkmenistan', dialCode: '993', code: 'TM', code3: 'TKM', priority: 0 },\r\n { name: 'Turks and Caicos Islands', dialCode: '1649', code: 'TC', code3: 'TCA', priority: 0 },\r\n { name: 'Tuvalu', dialCode: '688', code: 'TV', code3: 'TUV', priority: 0 },\r\n { name: 'U.S. Virgin Islands', dialCode: '1340', code: 'VI', code3: 'VIR', priority: 0 },\r\n { name: 'Uganda', dialCode: '256', code: 'UG', code3: 'UGA', priority: 0 },\r\n { name: 'Ukraine', dialCode: '380', code: 'UA', code3: 'UKR', priority: 0 },\r\n { name: 'United Arab Emirates', dialCode: '971', code: 'AE', code3: 'ARE', priority: 0 },\r\n { name: 'United Kingdom', dialCode: '44', code: 'GB', code3: 'GBR', priority: 0 },\r\n { name: 'United States', dialCode: '1', code: 'US', code3: 'USA', priority: 0 },\r\n { name: 'Uruguay', dialCode: '598', code: 'UY', code3: 'URY', priority: 0 },\r\n { name: 'Uzbekistan', dialCode: '998', code: 'UZ', code3: 'UZB', priority: 0 },\r\n { name: 'Vanuatu', dialCode: '678', code: 'VU', code3: 'VUT', priority: 0 },\r\n { name: 'Vatican', dialCode: '39', code: 'VA', code3: 'VAT', priority: 1 },\r\n { name: 'Venezuela', dialCode: '58', code: 'VE', code3: 'VEN', priority: 0 },\r\n { name: 'Vietnam', dialCode: '84', code: 'VN', code3: 'VNM', priority: 0 },\r\n { name: 'Wallis and Futuna', dialCode: '681', code: 'WF', code3: 'WLF', priority: 0 },\r\n { name: 'Wales', dialCode: '44', code: 'GB', code3: 'GBR', priority: 0 },\r\n { name: 'Western Sahara', dialCode: '212', code: 'EH', code3: 'ESH', priority: 0 },\r\n { name: 'Yemen', dialCode: '967', code: 'YE', code3: 'YEM', priority: 0 },\r\n { name: 'Zambia', dialCode: '260', code: 'ZM', code3: 'ZMB', priority: 0 },\r\n { name: 'Zimbabwe', dialCode: '263', code: 'ZW', code3: 'ZWE', priority: 0 },\r\n];\r\n\r\nexport function getCountries(sortBy?: keyof ICountry): ICountry[] {\r\n return sortBy && sortBy !== 'name' ? Utils.sortArray(AllCountries, sortBy) : AllCountries;\r\n}\r\n\r\nexport function getCountryOptions() {\r\n const countries = getCountries();\r\n return countries.map((v) => ({ key: v.name, text: v.name }));\r\n}\r\n\r\nexport function getCountryByPhoneNumber(phoneNumber: string) {\r\n if (!phoneNumber || phoneNumber.trim() === '') return;\r\n phoneNumber = phoneNumber.substring(0, 6);\r\n const c = AllCountries.reduce(\r\n (selectedCountry, country) => {\r\n if (startsWith(phoneNumber, country.dialCode)) {\r\n if (country.dialCode.length > selectedCountry?.dialCode?.length) {\r\n return country;\r\n }\r\n if (country.dialCode.length === selectedCountry.dialCode.length && country.priority < selectedCountry.priority) {\r\n return country;\r\n }\r\n }\r\n return selectedCountry;\r\n },\r\n { code: '', code3: '', dialCode: '', name: '', priority: 0 }\r\n );\r\n return c.code ? c : undefined;\r\n}\r\n","interface IEvents {\r\n [key: string]: Function[];\r\n}\r\nexport interface ICustomEventEmitter<EventNames = string> {\r\n on: (event: EventNames, callback: Function) => void;\r\n off: (event: EventNames, callback: Function) => void;\r\n emit: (event: EventNames, ...params: any) => void;\r\n}\r\nexport class CustomEventEmitter implements ICustomEventEmitter {\r\n private events: IEvents;\r\n constructor() {\r\n this.events = {};\r\n }\r\n\r\n on = (event: string, callback: Function) => {\r\n if (!this.events[event]) {\r\n this.events[event] = [];\r\n }\r\n this.events[event].push(callback);\r\n };\r\n off = (event: string, callback: Function) => {\r\n if (!this.events[event]) {\r\n return;\r\n }\r\n\r\n const index = this.events[event].indexOf(callback);\r\n this.events[event].splice(index, 1);\r\n };\r\n\r\n emit = (event: string, ...params: any[]) => {\r\n if (!this.events[event]) {\r\n return;\r\n }\r\n\r\n this.events[event].forEach((callback) => {\r\n //callback(params);\r\n if (callback) {\r\n callback.apply(null, params);\r\n }\r\n });\r\n };\r\n}\r\n","var hasElementType = typeof Element !== 'undefined';\r\nvar hasMap = typeof Map === 'function';\r\nvar hasSet = typeof Set === 'function';\r\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\r\n\r\nfunction deepEqual(a: any, b: any) {\r\n // START: fast-deep-equal es6/index.js 3.1.1\r\n if (a === b) return true;\r\n\r\n if (a && b && typeof a == 'object' && typeof b == 'object') {\r\n if (a.constructor !== b.constructor) return false;\r\n\r\n let length: number, i: any;\r\n if (Array.isArray(a)) {\r\n length = a.length;\r\n if (length != b.length) return false;\r\n for (i = length; i-- !== 0; ) if (!deepEqual(a[i], b[i])) return false;\r\n return true;\r\n }\r\n\r\n // START: Modifications:\r\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\r\n // to co-exist with es5.\r\n // 2. Replace `for of` with es5 compliant iteration using `for`.\r\n // Basically, take:\r\n //\r\n // ```js\r\n // for (i of a.entries())\r\n // if (!b.has(i[0])) return false;\r\n // ```\r\n //\r\n // ... and convert to:\r\n //\r\n // ```js\r\n // it = a.entries();\r\n // while (!(i = it.next()).done)\r\n // if (!b.has(i.value[0])) return false;\r\n // ```\r\n //\r\n // **Note**: `i` access switches to `i.value`.\r\n let it: any;\r\n if (hasMap && a instanceof Map && b instanceof Map) {\r\n if (a.size !== b.size) return false;\r\n let it = a.entries();\r\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\r\n it = a.entries();\r\n while (!(i = it.next()).done) if (!deepEqual(i.value[1], b.get(i.value[0]))) return false;\r\n return true;\r\n }\r\n\r\n if (hasSet && a instanceof Set && b instanceof Set) {\r\n if (a.size !== b.size) return false;\r\n it = a.entries();\r\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\r\n return true;\r\n }\r\n // END: Modifications\r\n\r\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\r\n length = (a as any).length;\r\n if (length != (b as any).length) return false;\r\n for (i = length; i-- !== 0; ) if ((a as any)[i] !== (b as any)[i]) return false;\r\n return true;\r\n }\r\n\r\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\r\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\r\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\r\n\r\n const keys = Object.keys(a);\r\n length = keys.length;\r\n if (length !== Object.keys(b).length) return false;\r\n\r\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\r\n\r\n // custom handling for DOM elements\r\n if (hasElementType && a instanceof Element) return false;\r\n\r\n // custom handling for React/Preact\r\n for (i = length; i-- !== 0; ) {\r\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\r\n // React-specific: avoid traversing React elements' _owner\r\n // Preact-specific: avoid traversing Preact elements' __v and __o\r\n // __v = $_original / $_vnode\r\n // __o = $_owner\r\n // These properties contain circular references and are not needed when\r\n // comparing the actual elements (and not their owners)\r\n // .$$typeof and ._store on just reasonable markers of elements\r\n\r\n continue;\r\n }\r\n\r\n // all other properties should be traversed as usual\r\n if (!deepEqual(a[keys[i]], b[keys[i]])) return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return a !== a && b !== b;\r\n}\r\n\r\nexport function fastCompare(a: any, b: any) {\r\n try {\r\n return deepEqual(a, b);\r\n } catch (error: any) {\r\n if ((error.message || '').match(/stack|recursion/i)) {\r\n // warn on circular references, don't crash\r\n // browsers give this different errors name and messages:\r\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\r\n // firefox: \"InternalError\", too much recursion\"\r\n // edge: \"Error\", \"Out of stack space\"\r\n console.warn('react-fast-compare cannot handle circular refs');\r\n return false;\r\n }\r\n // some other error. we should definitely know about these\r\n throw error;\r\n }\r\n}\r\n","export class HideablePromise<T = any> extends Promise<T> {\r\n public hide?: () => void;\r\n public id?: string | number;\r\n\r\n //cancel the operation\r\n public cancel() {\r\n if (this.hide) {\r\n this.hide();\r\n }\r\n }\r\n}\r\n","interface ILoadScriptOptions {\r\n type?: string;\r\n charset?: string;\r\n async?: boolean;\r\n attrs?: any[];\r\n text?: string;\r\n}\r\n\r\nexport const LoadScript = (src: string, opts?: ILoadScriptOptions | Function, callback?: Function) => {\r\n var head = document.head || document.getElementsByTagName('head')[0];\r\n var script = document.createElement('script');\r\n\r\n if (typeof opts === 'function') {\r\n callback = opts;\r\n opts = {};\r\n }\r\n\r\n opts = opts || {};\r\n callback = callback || function () {};\r\n\r\n script.type = opts.type || 'text/javascript';\r\n script.charset = opts.charset || 'utf8';\r\n script.async = 'async' in opts ? !!opts.async : true;\r\n script.src = src;\r\n\r\n if (opts.attrs) {\r\n for (var attr in opts.attrs) {\r\n script.setAttribute(attr, opts.attrs[attr]);\r\n }\r\n }\r\n\r\n if (opts.text) {\r\n script.text = '' + opts.text;\r\n }\r\n\r\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd;\r\n onend(script, callback);\r\n\r\n // some good legacy browsers (firefox) fail the 'in' detection above\r\n // so as a fallback we always set onload\r\n // old IE will ignore this and new IE will set onload\r\n if (!script.onload) {\r\n stdOnEnd(script, callback);\r\n }\r\n\r\n head.appendChild(script);\r\n};\r\nfunction stdOnEnd(script: any, callback: Function) {\r\n script.onload = function () {\r\n this.onerror = this.onload = null;\r\n callback(null, script);\r\n };\r\n script.onerror = function () {\r\n // this.onload = null here is necessary\r\n // because even IE9 works not like others\r\n this.onerror = this.onload = null;\r\n callback(new Error('Failed to load ' + this.src), script);\r\n };\r\n}\r\n\r\nfunction ieOnEnd(script: any, callback: Function) {\r\n script.onreadystatechange = function () {\r\n if (this.readyState !== 'complete' && this.readyState !== 'loaded') return;\r\n this.onreadystatechange = null;\r\n callback(null, script); // there is no way to catch loading errors in IE8\r\n };\r\n}\r\n","import { getScreenColourDepth, getScreenHeight, getScreenScalingFactor, getScreenWidth, getTimezone, getWindowHeight, getWindowWidth } from './BrowserInfo';\r\n\r\n// interface IHeaderValue {\r\n// headerValue?: string;\r\n// error?: any;\r\n// }\r\ninterface IHeaderValues {\r\n headers?: Record<string, string>;\r\n errors?: any[];\r\n}\r\n\r\n/**\r\n * Enum object of keys for each header in the Map returned by getFraudPreventionHeaders().headers\r\n */\r\nexport const fraudPreventionHeadersEnum = {\r\n TIMEZONE: 'Gov-Client-Timezone',\r\n SCREENS_DETAILS: 'Gov-Client-Screens',\r\n WINDOW_SIZE: 'Gov-Client-Window-Size',\r\n //BROWSER_PLUGINS: 'Gov-Client-Browser-Plugins',\r\n //BROWSER_DONOTTRACK: 'Gov-Client-Browser-Do-Not-Track',\r\n //DEVICE_LOCAL_IPS: 'Gov-Client-Local-IPs',\r\n //DEVICE_LOCAL_IPS_TIMESTAMP: 'Gov-Client-Local-IPs-Timestamp',\r\n //DEVICE_ID: 'Gov-Client-Device-ID',\r\n //BROWSER_USER_AGENT: 'Gov-Client-Browser-JS-User-Agent',\r\n};\r\n\r\nconst getScreenData = () => {\r\n const screenDetails = `width=${getScreenWidth()}&height=${getScreenHeight()}&scaling-factor=${getScreenScalingFactor()}&colour-depth=${getScreenColourDepth()}`;\r\n return encodeURI(screenDetails);\r\n};\r\n\r\nexport const getScreenDetails = () => {\r\n return {\r\n width: getScreenWidth(),\r\n height: getScreenHeight(),\r\n colorDepth: getScreenColourDepth(),\r\n scalingFactor: getScreenScalingFactor(),\r\n };\r\n};\r\n\r\nconst getWindowSize = () => {\r\n const windowSize = `width=${getWindowWidth()}&height=${getWindowHeight()}`;\r\n return encodeURI(windowSize);\r\n};\r\n\r\nexport const windowDetails = () => {\r\n return {\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n };\r\n};\r\n\r\n/**\r\n * Returns Map of HMRC Fraud prevention headers.\r\n * @returns {Promise<IHeaderValues>} with two fields headers and errors - The headers are a Map object and the errors are an array. If there are no errors, the array is empty\r\n */\r\nexport const getFraudPreventionHeaders = async (): Promise<IHeaderValues> => {\r\n const headers: Record<string, string> = {};\r\n const errors: any[] = [];\r\n const headerFunctions = [\r\n { header: fraudPreventionHeadersEnum.TIMEZONE, callback: getTimezone },\r\n {\r\n header: fraudPreventionHeadersEnum.SCREENS_DETAILS,\r\n callback: getScreenData,\r\n },\r\n { header: fraudPreventionHeadersEnum.WINDOW_SIZE, callback: getWindowSize },\r\n // {\r\n // header: fraudPreventionHeadersEnum.BROWSER_PLUGINS,\r\n // callback: () => encodeURI(getBrowserPluginsAsString()),\r\n // },\r\n // {\r\n // header: fraudPreventionHeadersEnum.BROWSER_DONOTTRACK,\r\n // callback: getBrowserDoNotTrackStatus,\r\n // },\r\n //{ header: fraudPreventionHeadersEnum.DEVICE_ID, callback: generateClientDeviceID},\r\n //{ header: fraudPreventionHeadersEnum.BROWSER_USER_AGENT, callback: getUserAgent },\r\n ];\r\n for (let i = 0; i < headerFunctions.length; i++) {\r\n try {\r\n const { header, callback } = headerFunctions[i];\r\n headers[header] = callback();\r\n } catch (error) {\r\n errors.push({ header: headerFunctions[i], error });\r\n }\r\n }\r\n\r\n // try {\r\n // const ipAddress = await getDeviceLocalIPAsString();\r\n // headers[fraudPreventionHeadersEnum.DEVICE_LOCAL_IPS] = encodeURI(ipAddress.deviceIpString);\r\n // headers[fraudPreventionHeadersEnum.DEVICE_LOCAL_IPS_TIMESTAMP] = ipAddress.deviceIpTimeStamp;\r\n // } catch (error) {\r\n // errors.push({ header: 'IPs', error });\r\n // }\r\n\r\n return { headers, errors };\r\n};\r\n// /**\r\n// * Returns \"Gov-Client-Browser-JS-User-Agent\" header.\r\n// * @returns {IHeaderValue} which has headerValue key having the value of the header or error key if there is an error\r\n// */\r\n// export const getGovClientBrowserJSUserAgentHeader = (): IHeaderValue => {\r\n// try {\r\n// return { headerValue: getUserAgent() };\r\n// } catch (error) {\r\n// return { error };\r\n// }\r\n// };\r\n\r\n// /**\r\n// * Returns the value for Gov-Client-Browser-Plugins HMRC Fraud prevention header.\r\n// */\r\n// export const getGovClientBrowserPluginsHeader = (): IHeaderValue => {\r\n// try {\r\n// return { headerValue: encodeURI(getBrowserPluginsAsString()) };\r\n// } catch (error) {\r\n// return { error };\r\n// }\r\n// };\r\n\r\n// /**\r\n// * Returns the value for Gov-Client-Browser-Do-Not-Track HMRC Fraud prevention header.\r\n// */\r\n// export const getGovClientBrowserDoNotTrackHeader = (): IHeaderValue => {\r\n// try {\r\n// return { headerValue: getBrowserDoNotTrackStatus() };\r\n// } catch (error) {\r\n// return { error };\r\n// }\r\n// };\r\n\r\n// /**\r\n// * Returns the value for Gov-Client-Timezone HMRC Fraud prevention header.\r\n// * @returns {IHeaderValue} with headerValue field or error field in case of an exception\r\n// */\r\n// export const getGovClientTimezoneHeader = (): IHeaderValue => {\r\n// try {\r\n// return { headerValue: getTimezone() };\r\n// } catch (error) {\r\n// return { error };\r\n// }\r\n// };\r\n\r\n// /**\r\n// * Returns Gov-Client-Local-IPs header value\r\n// * @returns {Promise<IHeaderValue>} which has header key having the value of the header or error key if there is an error\r\n// */\r\n// export const getGovClientLocalIPsHeader = async (): Promise<IHeaderValue> => {\r\n// try {\r\n// const ipAddress = await getDeviceLocalIPAsString();\r\n// return {\r\n// headerValue: encodeURI(ipAddress.deviceIpString),\r\n// };\r\n// } catch (error) {\r\n// return { error };\r\n// }\r\n// };\r\n\r\n// /**\r\n// * Returns the value for Gov-Client-Window-Size HMRC Fraud prevention header.\r\n// */\r\n// export const getGovClientWindowSizeHeader = () => {\r\n// try {\r\n// return { headerValue: getWindowSize() };\r\n// } catch (error) {\r\n// return { error };\r\n// }\r\n// };\r\n\r\n// /**\r\n// * Returns the value for Gov-Client-Screens HMRC Fraud prevention header.\r\n// * @returns {object} with headerValue key having the value of the header or error key if there is an error\r\n// */\r\n// export const getGovClientScreensHeader = () => {\r\n// try {\r\n// return { headerValue: getScreenData() };\r\n// } catch (error) {\r\n// return { error };\r\n// }\r\n// };\r\n","export const AllNationalities: string[] = [\r\n 'Afghan',\r\n 'Albanian',\r\n 'Algerian',\r\n 'American Samoan',\r\n 'Andorran',\r\n 'Angolan',\r\n 'Anguillan',\r\n 'Antarctic',\r\n 'Antiguan or Barbudan',\r\n 'Argentine',\r\n 'Armenian',\r\n 'Aruban',\r\n 'Australian',\r\n 'Austrian',\r\n 'Azerbaijani',\r\n 'Bahamian',\r\n 'Bahraini',\r\n 'Bangladeshi',\r\n 'Barbadian',\r\n 'Belarusian',\r\n 'Belgian',\r\n 'Belizean',\r\n 'Bermudian',\r\n 'Bhutanese',\r\n 'Bolivian',\r\n 'Bosnian or Herzegovinian',\r\n 'Botswanan',\r\n 'Brazilian',\r\n 'British Indian Ocean Territory',\r\n 'British Virgin Islander',\r\n 'Bruneian',\r\n 'Bulgarian',\r\n 'Burkinabe',\r\n 'Burundian',\r\n 'Cambodian',\r\n 'Cameroonian',\r\n 'Canadian',\r\n 'Cape Verdean',\r\n 'Caymanian',\r\n 'Central African',\r\n 'Beninese',\r\n 'Chadian',\r\n 'Chilean',\r\n 'Chinese',\r\n 'Cocos Islander',\r\n 'Colombian',\r\n 'Comoran',\r\n 'Cook Islander',\r\n 'Costa Rican',\r\n 'Croatian',\r\n 'Cuban',\r\n 'Curacaoan',\r\n 'Cypriot',\r\n 'Czech',\r\n 'Congolese',\r\n 'Danish',\r\n 'Djiboutian',\r\n 'Dominican (Note: Different from Dominican Republic)',\r\n 'Dominican',\r\n 'Timorese or East Timorese',\r\n 'Ecuadorian',\r\n 'Egyptian',\r\n 'Christmas Islander',\r\n 'Salvadoran',\r\n 'Equatorial Guinean',\r\n 'Eritrean',\r\n 'Ethiopian',\r\n 'Falkland Islander',\r\n 'Faroese',\r\n 'Fijian',\r\n 'Finnish',\r\n 'French',\r\n 'French Polynesian',\r\n 'Gabonese',\r\n 'Gambian',\r\n 'Georgian',\r\n 'German',\r\n 'Ghanaian',\r\n 'Gibraltarian',\r\n 'Greek',\r\n 'Greenlandic',\r\n 'Grenadian',\r\n 'Guamanian',\r\n 'Guatemalan',\r\n 'Estonian',\r\n 'Guernsey (or Channel Islander)',\r\n 'Guinean',\r\n 'Bissau-Guinean',\r\n 'Haitian',\r\n 'Honduran',\r\n 'Hong Konger',\r\n 'Hungarian',\r\n 'Icelander',\r\n 'Indian',\r\n 'Indonesian',\r\n 'Iranian',\r\n 'Iraqi',\r\n 'Irish',\r\n 'Manx',\r\n 'Israeli',\r\n 'Italian',\r\n 'Ivorian',\r\n 'Jamaican',\r\n 'Japanese',\r\n 'Jersey (or Channel Islander)',\r\n 'Jordanian',\r\n 'Guyanese',\r\n 'Kazakhstani',\r\n 'Kenyan',\r\n 'I-Kiribati',\r\n 'Kuwaiti',\r\n 'Kyrgyzstani',\r\n 'Lao or Laotian',\r\n 'Latvian',\r\n 'Lebanese',\r\n 'Basotho or Lesothan',\r\n 'Liberian',\r\n 'Libyan',\r\n 'Liechtensteiner',\r\n 'Lithuanian',\r\n 'Luxembourger',\r\n 'Macanese',\r\n 'Macedonian',\r\n 'Malagasy',\r\n 'Malawian',\r\n 'Malaysian',\r\n 'Maldivian',\r\n 'Malian',\r\n 'Kosovar',\r\n 'Maltese',\r\n 'Marshallese',\r\n 'Mauritanian',\r\n 'Mahoran or Mayotte',\r\n 'Mexican',\r\n 'Micronesian',\r\n 'Moldovan',\r\n 'Monégasque',\r\n 'Mongolian',\r\n 'Montenegrin',\r\n 'Montserratian',\r\n 'Moroccan',\r\n 'Mozambican',\r\n 'Burmese or Myanmarese',\r\n 'Namibian',\r\n 'Nauruan',\r\n 'Nepali or Nepalese',\r\n 'Dutch',\r\n 'Netherlands Antillean',\r\n 'New Caledonian',\r\n 'New Zealander',\r\n 'Mauritian',\r\n 'Nicaraguan',\r\n 'Nigerien',\r\n 'Nigerian',\r\n 'North Korean',\r\n 'Northern Marianan',\r\n 'Norwegian',\r\n 'Omani',\r\n 'Pakistani',\r\n 'Palauan',\r\n 'Palestinian',\r\n 'Panamanian',\r\n 'Papua New Guinean',\r\n 'Paraguayan',\r\n 'Peruvian',\r\n 'Filipino',\r\n 'Pitcairn Islander',\r\n 'Polish',\r\n 'Portuguese',\r\n 'Puerto Rican',\r\n 'Qatari',\r\n 'Congolese',\r\n 'Niuean',\r\n 'Réunionese or Réunionnais',\r\n 'Romanian',\r\n 'Russian',\r\n 'Barthélemois or Saint Barthélemy Islander',\r\n 'Saint Helenian',\r\n 'Kittitian or Nevisian',\r\n 'Saint Lucian',\r\n 'Saint-Martinoise',\r\n 'Saint-Pierrais or Miquelonnais',\r\n 'Vincentian or Vincy',\r\n 'Samoan',\r\n 'Sammarinese',\r\n 'São Toméan',\r\n 'Saudi or Saudi Arabian',\r\n 'Senegalese',\r\n 'Serbian',\r\n 'Seychellois',\r\n 'Sierra Leonean',\r\n 'Singaporean',\r\n 'Sint Maartener or Sint Maartian',\r\n 'Slovak',\r\n 'Rwandan',\r\n 'Slovenian',\r\n 'Solomon Islander',\r\n 'Somali',\r\n 'South Korean',\r\n 'South Sudanese',\r\n 'Spanish',\r\n 'Sri Lankan',\r\n 'Sudanese',\r\n 'Surinamese',\r\n 'Svalbardian or Jan Mayenian',\r\n 'Swazi',\r\n 'Swedish',\r\n 'Swiss',\r\n 'Syrian',\r\n 'Taiwanese',\r\n 'Tajikistani',\r\n 'Tanzanian',\r\n 'Thai',\r\n 'Togolese',\r\n 'Tokelauan',\r\n 'Tongan',\r\n 'South African',\r\n 'Trinidadian or Tobagonian',\r\n 'Tunisian',\r\n 'Turkish',\r\n 'Turks and Caicos Islander',\r\n 'Tuvaluan',\r\n 'Virgin Islander',\r\n 'Ugandan',\r\n 'Ukrainian',\r\n 'Emirati or Emirian',\r\n 'British',\r\n 'American',\r\n 'Uruguayan',\r\n 'Uzbekistani',\r\n 'Vanuatuan',\r\n 'Vatican (or Vatican City)',\r\n 'Venezuelan',\r\n 'Vietnamese',\r\n 'Wallisian or Futunan',\r\n 'Sahrawi',\r\n 'Turkmen',\r\n 'Zambian',\r\n 'Zimbabwean',\r\n 'Yemeni',\r\n];\r\n\r\nexport function getNationalityOptions() {\r\n return AllNationalities.map((v) => ({ key: v, text: v }));\r\n}\r\n","import React from \"react\";\r\nimport { matchPath, Route } from \"react-router-dom\";\r\nimport { SuspenseRoute } from \"../Components/SuspenseRoute\";\r\n\r\nexport enum FeatureStatus {\r\n placeholder = 0,\r\n alpha = 1,\r\n beta = 2,\r\n release = 3,\r\n}\r\n\r\nexport interface IRouteProps {\r\n name?: string;\r\n path?: string;\r\n url?: string;\r\n key?: string | number;\r\n icon?: string;\r\n isCategory?: boolean;\r\n children?: React.ReactNode;\r\n /**\r\n * The component to render for this route's content (or a loading placeholder if `getComponent` is provided).\r\n */\r\n component?: any;\r\n /**\r\n * Function that loads the component asynchronously.\r\n * Notify when loading has finished using `cb`.\r\n * If `component` is provided, it will be rendered while waiting for the callback.\r\n */\r\n getComponent?: (cb: (component: any) => void) => void;\r\n\r\n /**\r\n * User roles to check for route rendering\r\n */\r\n roles?: string[];\r\n /**\r\n * User permissions to check for route rendering\r\n */\r\n permissions?: string[];\r\n /**\r\n * Practice features to check for route rendering\r\n */\r\n features?: number[];\r\n /**\r\n * Business types to check for route rendering\r\n */\r\n businessTypes?: number[];\r\n /**\r\n * User config/tags to check for route rendering\r\n */\r\n userConfig?: string[];\r\n /**\r\n * User params to check for route rendering\r\n */\r\n userParams?: string[];\r\n /**\r\n * Other tags to check for route rendering\r\n */\r\n tags?: string[];\r\n\r\n /**\r\n * Sub/inner links\r\n */\r\n links?: IRouteProps[];\r\n /**\r\n * Other URL to show this link as active\r\n */\r\n activeUrl?: string;\r\n /**\r\n * Other URLs to show this link as active\r\n */\r\n activeUrls?: string[];\r\n /**\r\n * Default expanded or collapsed\r\n */\r\n isExpanded?: boolean;\r\n /**\r\n * Feature status (to show bedge on link)\r\n */\r\n status?: FeatureStatus;\r\n}\r\nexport interface IRouteGroupProps {\r\n /**\r\n * Links to render within this group\r\n */\r\n links: IRouteProps[];\r\n\r\n /**\r\n * User roles to check for route rendering\r\n */\r\n roles?: string[];\r\n /**\r\n * User permissions to check for route rendering\r\n */\r\n permissions?: string[];\r\n /**\r\n * Practice features to check for route rendering\r\n */\r\n features?: number[];\r\n /**\r\n * User config/tags to check for route rendering\r\n */\r\n userConfig?: string[];\r\n /**\r\n * Other tags to check for route rendering\r\n */\r\n tags?: string[];\r\n\r\n /**\r\n * Other URL to show this link as active\r\n */\r\n activeUrls?: string[];\r\n /**\r\n * Default expanded or collapsed\r\n */\r\n isExpanded?: boolean;\r\n}\r\n\r\nclass RouteUtilsBase {\r\n private hasValidRole = (rolesRequired?: string[], rolesExists?: string[]) => {\r\n if (!rolesRequired || !rolesExists) return true;\r\n return rolesRequired.some((r) => rolesExists.includes(r));\r\n };\r\n\r\n private hasValidPermission = (permissionsRequired?: string[], permissionsExists?: string[]) => {\r\n if (!permissionsRequired || !permissionsExists) return true;\r\n return permissionsRequired.some((p) => permissionsExists.includes(p));\r\n };\r\n\r\n private hasValidRoleOrPermission = (\r\n rolesRequired?: string[],\r\n rolesExists?: string[],\r\n permissionsRequired?: string[],\r\n permissionsExists?: string[]\r\n ) => {\r\n // If roles are specified and user has valid roles, grant access\r\n if (rolesRequired && rolesExists && this.hasValidRole(rolesRequired, rolesExists)) {\r\n return true;\r\n }\r\n\r\n // If roles are specified but user doesn't have valid roles, deny access\r\n if (rolesRequired && rolesExists && rolesRequired.length > 0) {\r\n return false;\r\n }\r\n\r\n // If no roles specified, check permissions\r\n return this.hasValidPermission(permissionsRequired, permissionsExists);\r\n };\r\n private hasValidFeatures = (featuresRequired?: number[], featuresExists?: number[]) => {\r\n if (featuresRequired === undefined || featuresRequired === null) return true;\r\n return featuresExists && featuresRequired.some((r) => featuresExists.includes(r));\r\n };\r\n private hasValidBusinessType = (\r\n typesRequired?: number[],\r\n businessType?: number\r\n ) => {\r\n if (\r\n typesRequired === undefined ||\r\n typesRequired === null ||\r\n businessType === undefined ||\r\n businessType === null\r\n )\r\n return true;\r\n return typesRequired?.some((v) => v === businessType);\r\n };\r\n private hasValidUserConfig = (\r\n configRequired?: string[],\r\n configExists?: any\r\n ) => {\r\n if (configRequired == undefined || configRequired === null || !configExists) return true;\r\n\r\n return Object.keys(configExists).some((key: any) => {\r\n return configExists[key] && configRequired?.some((v) => v === key);\r\n });\r\n };\r\n private hasValidUserParam = (\r\n paramsRequired?: string[],\r\n paramsExists?: any\r\n ) => {\r\n if (paramsRequired == undefined || paramsRequired === null || !paramsExists) return true;\r\n\r\n return Object.keys(paramsExists).some((key: any) => {\r\n return paramsExists[key] && paramsExists[key]?.enabled && paramsRequired?.some((v) => v === key);\r\n });\r\n };\r\n private hasValidTags = (tagsRequired?: string[], tagsExists?: any) => {\r\n if (!tagsRequired || !tagsExists) return true;\r\n\r\n return Object.keys(tagsExists).some((key: any) => {\r\n return tagsExists[key] && tagsRequired?.some((v) => v === key);\r\n });\r\n };\r\n private isValidLink = (\r\n link: IRouteProps,\r\n rolesExists?: string[],\r\n permissionsExists?: string[],\r\n featuresExists?: number[],\r\n businessType?: number,\r\n configExists?: any,\r\n paramsExists?: any,\r\n tagsExists?: any\r\n ) => {\r\n //check for user role or permission (roles take precedence)\r\n if (!this.hasValidRoleOrPermission(link.roles, rolesExists, link.permissions, permissionsExists)) return false;\r\n //check for app feature\r\n if (!this.hasValidFeatures(link.features, featuresExists)) return false;\r\n //check for user config\r\n if (!this.hasValidUserConfig(link.userConfig, configExists)) return false;\r\n //check for user params\r\n if (!this.hasValidUserParam(link.userParams, paramsExists)) return false;\r\n //check for business type\r\n if (!this.hasValidBusinessType(link.businessTypes, businessType)) return false;\r\n //check for tag\r\n if (!this.hasValidTags(link.tags, tagsExists)) return false;\r\n\r\n return true;\r\n };\r\n\r\n private getPath = (link: IRouteProps, trimUrl?: string) => {\r\n if (trimUrl && link?.url) {\r\n return link.url.replace(trimUrl, '');\r\n }\r\n return link.url;\r\n };\r\n\r\n getRoutesFromGroups = (\r\n groups: IRouteGroupProps[],\r\n SecureRoute: any,\r\n userRoles?: string[],\r\n userPermissions?: string[],\r\n features?: number[],\r\n businessType?: number,\r\n userConfig?: any,\r\n userParams?: any,\r\n tags?: any,\r\n trimUrl?: string\r\n ): any[] => {\r\n const routes = [];\r\n\r\n for (const group of groups) {\r\n routes.push(\r\n this.getRoutesFromGroup(\r\n group.links,\r\n SecureRoute,\r\n userRoles,\r\n userPermissions,\r\n features,\r\n businessType,\r\n userConfig,\r\n userParams,\r\n tags,\r\n trimUrl\r\n )\r\n );\r\n }\r\n\r\n return routes;\r\n };\r\n getRoutesFromGroup = (\r\n links: IRouteProps[],\r\n SecureRoute: any,\r\n userRoles?: string[],\r\n userPermissions?: string[],\r\n features?: number[],\r\n businessType?: number,\r\n userConfig?: any,\r\n userParams?: any,\r\n tags?: any,\r\n trimUrl?: string\r\n ): any[] => {\r\n const routes = [];\r\n for (const link of links) {\r\n if (link.component) {\r\n //check for valid link\r\n if (!this.isValidLink(link, userRoles, userPermissions, features, businessType, userConfig, userParams, tags)) continue;\r\n\r\n //const exact = typeof link.exact === 'undefined' ? true : link.exact;\r\n routes.push(\r\n link.roles || link.features ? (\r\n <Route\r\n key={link.key}\r\n path={this.getPath(link, trimUrl)}\r\n element={<SecureRoute component={link.component} roles={link.roles} />}\r\n />\r\n ) : (\r\n <Route\r\n key={link.key}\r\n path={this.getPath(link, trimUrl)}\r\n element={<SuspenseRoute children={link.component} />}\r\n />\r\n )\r\n );\r\n }\r\n\r\n //add nested links\r\n if (link.links) {\r\n routes.push(\r\n ...this.getRoutesFromGroup(\r\n link.links,\r\n SecureRoute,\r\n userRoles,\r\n userPermissions,\r\n features,\r\n businessType,\r\n userConfig,\r\n userParams,\r\n tags,\r\n trimUrl\r\n )\r\n );\r\n }\r\n }\r\n return routes;\r\n };\r\n getLinksFromGroups = (\r\n links: IRouteGroupProps[],\r\n userRoles?: string[],\r\n userPermissions?: string[],\r\n features?: number[],\r\n businessType?: number,\r\n userConfig?: any,\r\n userParams?: any,\r\n currentPath?: string,\r\n params?: any,\r\n tags?: any\r\n ): IRouteGroupProps[] => {\r\n const groups: IRouteGroupProps[] = [];\r\n\r\n for (const link of links) {\r\n //check for valid link\r\n if (!this.isValidLink(link, userRoles, userPermissions, features, businessType, userConfig, userParams, tags)) continue;\r\n\r\n groups.push(link);\r\n\r\n //add nested links\r\n if (link.links) {\r\n link.links = this.getLinksFromGroup(\r\n link.links,\r\n userRoles,\r\n userPermissions,\r\n features,\r\n businessType,\r\n userConfig,\r\n userParams,\r\n currentPath,\r\n params,\r\n tags\r\n );\r\n }\r\n }\r\n return groups;\r\n };\r\n getLinksFromGroup = (\r\n links: IRouteProps[],\r\n userRoles?: string[],\r\n userPermissions?: string[],\r\n features?: number[],\r\n businessType?: number,\r\n userConfig?: any,\r\n userParams?: any,\r\n currentPath?: string,\r\n params?: any,\r\n tags?: any\r\n ) => {\r\n const routes: IRouteProps[] = [];\r\n\r\n for (const link of links) {\r\n //check for valid link\r\n if (!this.isValidLink(link, userRoles, userPermissions, features, businessType, userConfig, userParams, tags)) continue;\r\n\r\n let url = link.url,\r\n activeUrl = link.activeUrl;\r\n if (url && params) {\r\n for (const key in params) {\r\n url = url?.replace(`:${key}`, params[key]);\r\n if (activeUrl) activeUrl = activeUrl.replace(`:${key}`, params[key]);\r\n }\r\n }\r\n link.url = url;\r\n link.activeUrl = activeUrl;\r\n routes.push(link);\r\n\r\n //add nested links\r\n if (link.links) {\r\n if (currentPath && link.activeUrl) {\r\n link.isExpanded = link.url === currentPath || currentPath.indexOf(link.activeUrl) === 0;\r\n }\r\n link.links = this.getLinksFromGroup(\r\n link.links,\r\n userRoles,\r\n userPermissions,\r\n features,\r\n businessType,\r\n userConfig,\r\n userParams,\r\n currentPath,\r\n params,\r\n tags\r\n );\r\n }\r\n }\r\n return routes;\r\n };\r\n\r\n getRoutesFromLinks = (\r\n links: IRouteProps[],\r\n SecureRoute: any,\r\n userRoles?: string[],\r\n userPermissions?: string[],\r\n features?: number[],\r\n businessType?: number,\r\n userConfig?: any,\r\n userParams?: any,\r\n tags?: any,\r\n trimUrl?: string\r\n ): any[] => {\r\n const routes = [];\r\n for (const link of links) {\r\n if (link.component) {\r\n //check for valid link\r\n if (!this.isValidLink(link, userRoles, userPermissions, features, businessType, userConfig, userParams, tags)) continue;\r\n\r\n //const exact = typeof link.exact === 'undefined' ? true : link.exact;\r\n routes.push(\r\n link.roles ? (\r\n <Route\r\n key={link.key}\r\n path={this.getPath(link, trimUrl)}\r\n element={<SecureRoute component={link.component} roles={link.roles} />}\r\n />\r\n ) : (\r\n <Route\r\n key={link.key}\r\n path={this.getPath(link, trimUrl) || '#'}\r\n element={<SuspenseRoute children={link.component} />}\r\n />\r\n )\r\n );\r\n }\r\n\r\n //add nested links\r\n if (link.links) {\r\n routes.push(\r\n ...this.getRoutesFromLinks(\r\n link.links,\r\n SecureRoute,\r\n userRoles,\r\n userPermissions,\r\n features,\r\n businessType,\r\n userConfig,\r\n userParams,\r\n tags,\r\n trimUrl\r\n )\r\n );\r\n }\r\n }\r\n return routes;\r\n };\r\n getLinksFromLinks = (\r\n links: IRouteProps[],\r\n userRoles?: string[],\r\n userPermissions?: string[],\r\n features?: number[],\r\n businessType?: number,\r\n userConfig?: any,\r\n userParams?: any,\r\n currentPath?: string,\r\n params?: any,\r\n tags?: any\r\n ): IRouteProps[] => {\r\n const routes: IRouteProps[] = [];\r\n\r\n for (const link of links) {\r\n //check for valid link\r\n if (!this.isValidLink(link, userRoles, userPermissions, features, businessType, userConfig, userParams, tags)) continue;\r\n\r\n let url = link.url,\r\n activeUrl = link.activeUrl;\r\n if (url && params) {\r\n for (const key in params) {\r\n url = url?.replace(`:${key}`, params[key]);\r\n if (activeUrl) activeUrl = activeUrl.replace(`:${key}`, params[key]);\r\n }\r\n }\r\n link.url = url;\r\n link.activeUrl = activeUrl;\r\n routes.push(link);\r\n\r\n //add nested links\r\n if (link.links) {\r\n if (currentPath && link.activeUrl) {\r\n link.isExpanded = link.url === currentPath || currentPath.indexOf(link.activeUrl) === 0;\r\n }\r\n link.links = this.getLinksFromLinks(\r\n link.links,\r\n userRoles,\r\n userPermissions,\r\n features,\r\n businessType,\r\n userConfig,\r\n userParams,\r\n currentPath,\r\n params,\r\n tags\r\n );\r\n }\r\n }\r\n return routes;\r\n };\r\n\r\n getSelectedNavKey = (pagesGroup: IRouteGroupProps[], currentPath: string) => {\r\n let selectedLink: IRouteProps | undefined = undefined;\r\n for (const group of pagesGroup) {\r\n selectedLink = group.links\r\n .flatMap((l) => {\r\n if (l.links) return l.links;\r\n else return [l];\r\n })\r\n .find(\r\n (l) => l.url === currentPath ||\r\n (l.activeUrls && l.activeUrls.some((la: string) => matchPath(la, currentPath))) ||\r\n matchPath(l.url!, currentPath)\r\n );\r\n if (selectedLink) break;\r\n }\r\n return selectedLink?.key;\r\n };\r\n}\r\nexport const RouteUtils = new RouteUtilsBase();","export interface ITimeZone {\r\n id: string;\r\n name: string;\r\n utc: string;\r\n}\r\n\r\nexport const AllTimeZones: ITimeZone[] = [\r\n { id: 'Pacific/Midway', name: 'Midway', utc: '-11:00' },\r\n { id: 'Pacific/Niue', name: 'Alofi', utc: '-11:00' },\r\n { id: 'Pacific/Pago_Pago', name: 'Pago Pago, Tāfuna, Ta`ū, Taulaga', utc: '-11:00' },\r\n { id: 'America/Adak', name: 'Adak', utc: '-10:00' },\r\n {\r\n id: 'Pacific/Honolulu',\r\n name: 'Honolulu, East Honolulu, Pearl City, Hilo, Kailua',\r\n utc: '-10:00',\r\n },\r\n { id: 'Pacific/Rarotonga', name: 'Avarua', utc: '-10:00' },\r\n { id: 'Pacific/Tahiti', name: 'Faaa, Papeete, Punaauia, Pirae, Mahina', utc: '-10:00' },\r\n { id: 'Pacific/Marquesas', name: 'Taiohae', utc: '-09:30' },\r\n {\r\n id: 'America/Anchorage',\r\n name: 'Anchorage, Fairbanks, Eagle River, Badger, Knik-Fairview',\r\n utc: '-09:00',\r\n },\r\n { id: 'America/Juneau', name: 'Juneau', utc: '-09:00' },\r\n { id: 'America/Metlakatla', name: 'Metlakatla', utc: '-09:00' },\r\n { id: 'America/Nome', name: 'Nome', utc: '-09:00' },\r\n { id: 'America/Sitka', name: 'Sitka, Ketchikan', utc: '-09:00' },\r\n { id: 'America/Yakutat', name: 'Yakutat', utc: '-09:00' },\r\n { id: 'Pacific/Gambier', name: 'Gambier', utc: '-09:00' },\r\n {\r\n id: 'America/Los_Angeles',\r\n name: 'Los Angeles, San Diego, San Jose, San Francisco, Seattle',\r\n utc: '-08:00',\r\n },\r\n { id: 'America/Tijuana', name: 'Tijuana, Mexicali, Ensenada, Rosarito, Tecate', utc: '-08:00' },\r\n {\r\n id: 'America/Vancouver',\r\n name: 'Vancouver, Surrey, Okanagan, Victoria, Burnaby',\r\n utc: '-08:00',\r\n },\r\n { id: 'Pacific/Pitcairn', name: 'Adamstown', utc: '-08:00' },\r\n { id: 'America/Boise', name: 'Boise, Meridian, Nampa, Idaho Falls, Pocatello', utc: '-07:00' },\r\n { id: 'America/Cambridge_Bay', name: 'Cambridge Bay', utc: '-07:00' },\r\n {\r\n id: 'America/Chihuahua',\r\n name: 'Chihuahua, Ciudad Delicias, Cuauhtémoc, Parral, Nuevo Casas Grandes',\r\n utc: '-07:00',\r\n },\r\n { id: 'America/Creston', name: 'Creston', utc: '-07:00' },\r\n { id: 'America/Dawson', name: 'Dawson', utc: '-07:00' },\r\n { id: 'America/Dawson_Creek', name: 'Fort St. John, Dawson Creek', utc: '-07:00' },\r\n {\r\n id: 'America/Denver',\r\n name: 'Denver, El Paso, Albuquerque, Colorado Springs, Aurora',\r\n utc: '-07:00',\r\n },\r\n {\r\n id: 'America/Edmonton',\r\n name: 'Calgary, Edmonton, Fort McMurray, Red Deer, Lethbridge',\r\n utc: '-07:00',\r\n },\r\n { id: 'America/Fort_Nelson', name: 'Fort Nelson', utc: '-07:00' },\r\n {\r\n id: 'America/Hermosillo',\r\n name: 'Hermosillo, Ciudad Obregón, Nogales, San Luis Río Colorado, Navojoa',\r\n utc: '-07:00',\r\n },\r\n { id: 'America/Inuvik', name: 'Inuvik', utc: '-07:00' },\r\n { id: 'America/Mazatlan', name: 'Culiacán, Mazatlán, Tepic, Los Mochis, La Paz', utc: '-07:00' },\r\n { id: 'America/Ojinaga', name: 'Ciudad Juárez, Manuel Ojinaga, Ojinaga', utc: '-07:00' },\r\n { id: 'America/Phoenix', name: 'Phoenix, Tucson, Mesa, Chandler, Gilbert', utc: '-07:00' },\r\n { id: 'America/Whitehorse', name: 'Whitehorse', utc: '-07:00' },\r\n { id: 'America/Yellowknife', name: 'Yellowknife', utc: '-07:00' },\r\n {\r\n id: 'America/Bahia_Banderas',\r\n name: 'Mezcales, San Vicente, Bucerías, Valle de Banderas',\r\n utc: '-06:00',\r\n },\r\n {\r\n id: 'America/Belize',\r\n name: 'Belize City, San Ignacio, Orange Walk, Belmopan, Dangriga',\r\n utc: '-06:00',\r\n },\r\n { id: 'America/Chicago', name: 'Chicago, Houston, San Antonio, Dallas, Austin', utc: '-06:00' },\r\n {\r\n id: 'America/Costa_Rica',\r\n name: 'San José, Limón, San Francisco, Alajuela, Liberia',\r\n utc: '-06:00',\r\n },\r\n {\r\n id: 'America/El_Salvador',\r\n name: 'San Salvador, Soyapango, Santa Ana, San Miguel, Mejicanos',\r\n utc: '-06:00',\r\n },\r\n {\r\n id: 'America/Guatemala',\r\n name: 'Guatemala City, Mixco, Villa Nueva, Petapa, San Juan Sacatepéquez',\r\n utc: '-06:00',\r\n },\r\n { id: 'America/Indiana/Knox', name: 'Knox', utc: '-06:00' },\r\n { id: 'America/Indiana/Tell_City', name: 'Tell City', utc: '-06:00' },\r\n { id: 'America/Managua', name: 'Managua, León, Masaya, Chinandega, Matagalpa', utc: '-06:00' },\r\n {\r\n id: 'America/Matamoros',\r\n name: 'Reynosa, Heroica Matamoros, Nuevo Laredo, Piedras Negras, Ciudad Acuña',\r\n utc: '-06:00',\r\n },\r\n {\r\n id: 'America/Menominee',\r\n name: 'Menominee, Iron Mountain, Kingsford, Ironwood, Iron River',\r\n utc: '-06:00',\r\n },\r\n {\r\n id: 'America/Merida',\r\n name: 'Mérida, Campeche, Ciudad del Carmen, Kanasín, Valladolid',\r\n utc: '-06:00',\r\n },\r\n {\r\n id: 'America/Mexico_City',\r\n name: 'Mexico City, Iztapalapa, Ecatepec de Morelos, Guadalajara, Puebla',\r\n utc: '-06:00',\r\n },\r\n {\r\n id: 'America/Monterrey',\r\n name: 'Monterrey, Saltillo, Guadalupe, Torreón, Victoria de Durango',\r\n utc: '-06:00',\r\n },\r\n { id: 'America/North_Dakota/Beulah', name: 'Beulah', utc: '-06:00' },\r\n { id: 'America/North_Dakota/Center', name: 'Center', utc: '-06:00' },\r\n { id: 'America/North_Dakota/New_Salem', name: 'Mandan', utc: '-06:00' },\r\n { id: 'America/Rainy_River', name: 'Rainy River', utc: '-06:00' },\r\n { id: 'America/Rankin_Inlet', name: 'Rankin Inlet', utc: '-06:00' },\r\n {\r\n id: 'America/Regina',\r\n name: 'Saskatoon, Regina, Prince Albert, Moose Jaw, North Battleford',\r\n utc: '-06:00',\r\n },\r\n { id: 'America/Resolute', name: 'Resolute', utc: '-06:00' },\r\n { id: 'America/Swift_Current', name: 'Swift Current', utc: '-06:00' },\r\n {\r\n id: 'America/Tegucigalpa',\r\n name: 'Tegucigalpa, San Pedro Sula, Choloma, La Ceiba, El Progreso',\r\n utc: '-06:00',\r\n },\r\n {\r\n id: 'America/Winnipeg',\r\n name: 'Winnipeg, Brandon, Kenora, Portage la Prairie, Thompson',\r\n utc: '-06:00',\r\n },\r\n { id: 'Pacific/Easter', name: 'Easter', utc: '-06:00' },\r\n { id: 'Pacific/Galapagos', name: 'Puerto Ayora, Puerto Baquerizo Moreno', utc: '-06:00' },\r\n { id: 'America/Atikokan', name: 'Atikokan', utc: '-05:00' },\r\n { id: 'America/Bogota', name: 'Bogotá, Cali, Medellín, Barranquilla, Cartagena', utc: '-05:00' },\r\n {\r\n id: 'America/Cancun',\r\n name: 'Cancún, Chetumal, Playa del Carmen, Cozumel, Felipe Carrillo Puerto',\r\n utc: '-05:00',\r\n },\r\n {\r\n id: 'America/Cayman',\r\n name: 'George Town, West Bay, Bodden Town, East End, North Side',\r\n utc: '-05:00',\r\n },\r\n {\r\n id: 'America/Detroit',\r\n name: 'Detroit, Grand Rapids, Warren, Sterling Heights, Ann Arbor',\r\n utc: '-05:00',\r\n },\r\n { id: 'America/Eirunepe', name: 'Eirunepé, Benjamin Constant, Envira', utc: '-05:00' },\r\n { id: 'America/Grand_Turk', name: 'Cockburn Town', utc: '-05:00' },\r\n {\r\n id: 'America/Guayaquil',\r\n name: 'Guayaquil, Quito, Cuenca, Santo Domingo de los Colorados, Machala',\r\n utc: '-05:00',\r\n },\r\n {\r\n id: 'America/Havana',\r\n name: 'Havana, Santiago de Cuba, Camagüey, Holguín, Guantánamo',\r\n utc: '-05:00',\r\n },\r\n {\r\n id: 'America/Indiana/Indianapolis',\r\n name: 'Indianapolis, Fort Wayne, South Bend, Carmel, Bloomington',\r\n utc: '-05:00',\r\n },\r\n { id: 'America/Indiana/Marengo', name: 'Marengo', utc: '-05:00' },\r\n { id: 'America/Indiana/Petersburg', name: 'Petersburg', utc: '-05:00' },\r\n { id: 'America/Indiana/Vevay', name: 'Vevay', utc: '-05:00' },\r\n {\r\n id: 'America/Indiana/Vincennes',\r\n name: 'Vincennes, Jasper, Washington, Huntingburg',\r\n utc: '-05:00',\r\n },\r\n { id: 'America/Indiana/Winamac', name: 'Winamac', utc: '-05:00' },\r\n { id: 'America/Iqaluit', name: 'Iqaluit', utc: '-05:00' },\r\n {\r\n id: 'America/Jamaica',\r\n name: 'Kingston, New Kingston, Spanish Town, Portmore, Montego Bay',\r\n utc: '-05:00',\r\n },\r\n {\r\n id: 'America/Kentucky/Louisville',\r\n name: 'Louisville, Jeffersonville, New Albany, Jeffersontown, Pleasure Ridge Park',\r\n utc: '-05:00',\r\n },\r\n { id: 'America/Kentucky/Monticello', name: 'Monticello', utc: '-05:00' },\r\n { id: 'America/Lima', name: 'Lima, Arequipa, Callao, Trujillo, Chiclayo', utc: '-05:00' },\r\n {\r\n id: 'America/Nassau',\r\n name: \"Nassau, Lucaya, Freeport, West End, Cooper's Town\",\r\n utc: '-05:00',\r\n },\r\n {\r\n id: 'America/New_York',\r\n name: 'New York City, Brooklyn, Queens, Philadelphia, Manhattan',\r\n utc: '-05:00',\r\n },\r\n { id: 'America/Nipigon', name: 'Nipigon', utc: '-05:00' },\r\n {\r\n id: 'America/Panama',\r\n name: 'Panamá, San Miguelito, Juan Díaz, David, Arraiján',\r\n utc: '-05:00',\r\n },\r\n { id: 'America/Pangnirtung', name: 'Pangnirtung', utc: '-05:00' },\r\n {\r\n id: 'America/Port-au-Prince',\r\n name: 'Port-au-Prince, Carrefour, Delmas 73, Pétionville, Port-de-Paix',\r\n utc: '-05:00',\r\n },\r\n {\r\n id: 'America/Rio_Branco',\r\n name: 'Rio Branco, Cruzeiro do Sul, Sena Madureira, Tarauacá, Feijó',\r\n utc: '-05:00',\r\n },\r\n { id: 'America/Thunder_Bay', name: 'Thunder Bay', utc: '-05:00' },\r\n { id: 'America/Toronto', name: 'Toronto, Montréal, Ottawa, Mississauga, Québec', utc: '-05:00' },\r\n {\r\n id: 'America/AnguillaSandy Hill',\r\n name: 'The Valley, Blowing Point Village, Sandy Ground Village, The Quarter, Sandy Hill',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Antigua',\r\n name: \"Saint John's, Piggotts, Bolands, Codrington, Parham\",\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Aruba',\r\n name: 'Oranjestad, Tanki Leendert, San Nicolas, Santa Cruz, Paradera',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Asuncion',\r\n name: 'Asunción, Ciudad del Este, San Lorenzo, Capiatá, Lambaré',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Barbados',\r\n name: 'Bridgetown, Speightstown, Oistins, Bathsheba, Holetown',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/Blanc-Sablon', name: 'Lévis', utc: '-04:00' },\r\n { id: 'America/Boa_Vista', name: 'Boa Vista', utc: '-04:00' },\r\n {\r\n id: 'America/Campo_Grande',\r\n name: 'Campo Grande, Dourados, Corumbá, Três Lagoas, Ponta Porã',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Caracas',\r\n name: 'Caracas, Maracaibo, Maracay, Valencia, Barquisimeto',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Cuiaba',\r\n name: 'Cuiabá, Várzea Grande, Rondonópolis, Sinop, Barra do Garças',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/Curacao', name: 'Willemstad, Sint Michiel Liber', utc: '-04:00' },\r\n {\r\n id: 'America/Dominica',\r\n name: 'Roseau, Portsmouth, Berekua, Saint Joseph, Wesley',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/Glace_Bay', name: 'Sydney, Glace Bay, Sydney Mines', utc: '-04:00' },\r\n { id: 'America/Goose_Bay', name: 'Labrador City, Happy Valley-Goose Bay', utc: '-04:00' },\r\n {\r\n id: 'America/Grenada',\r\n name: \"Saint George's, Gouyave, Grenville, Victoria, Saint David's\",\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Guadeloupe',\r\n name: 'Les Abymes, Baie-Mahault, Le Gosier, Petit-Bourg, Sainte-Anne',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Guyana',\r\n name: 'Georgetown, Linden, New Amsterdam, Anna Regina, Bartica',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Halifax',\r\n name: 'Halifax, Dartmouth, Charlottetown, Lower Sackville, Truro',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/Kralendijk', name: 'Kralendijk, Oranjestad, The Bottom', utc: '-04:00' },\r\n {\r\n id: 'America/La_Paz',\r\n name: 'Santa Cruz de la Sierra, Cochabamba, La Paz, Sucre, Oruro',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Lower_Princes',\r\n name: \"Cul de Sac, Lower Prince's Quarter, Koolbaai, Philipsburg\",\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Manaus',\r\n name: 'Manaus, Itacoatiara, Parintins, Manacapuru, Coari',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/Marigot', name: 'Marigot', utc: '-04:00' },\r\n {\r\n id: 'America/Martinique',\r\n name: 'Fort-de-France, Le Lamentin, Le Robert, Sainte-Marie, Le François',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Moncton',\r\n name: 'Moncton, Saint John, Fredericton, Dieppe, Miramichi',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/Montserrat', name: 'Brades, Saint Peters, Plymouth', utc: '-04:00' },\r\n {\r\n id: 'America/Porto_Velho',\r\n name: 'Porto Velho, Ji Paraná, Vilhena, Ariquemes, Cacoal',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Port_of_Spain',\r\n name: 'Chaguanas, Mon Repos, San Fernando, Port of Spain, Rio Claro',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/Puerto_Rico', name: 'San Juan, Bayamón, Carolina, Ponce, Caguas', utc: '-04:00' },\r\n {\r\n id: 'America/Santiago',\r\n name: 'Santiago, Puente Alto, Antofagasta, Viña del Mar, Valparaíso',\r\n utc: '-04:00',\r\n },\r\n {\r\n id: 'America/Santo_Domingo',\r\n name: 'Santo Domingo, Santiago de los Caballeros, Santo Domingo Oeste, Santo Domingo Este, San Pedro de Macorís',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/St_Barthelemy', name: 'Gustavia', utc: '-04:00' },\r\n {\r\n id: 'America/St_Kitts',\r\n name: \"Basseterre, Fig Tree, Market Shop, Saint Paul's, Middle Island\",\r\n utc: '-04:00',\r\n },\r\n { id: 'America/St_Lucia', name: 'Castries, Bisee, Vieux Fort, Micoud, Soufrière', utc: '-04:00' },\r\n { id: 'America/St_Thomas', name: 'Saint Croix, Charlotte Amalie, Cruz Bay', utc: '-04:00' },\r\n {\r\n id: 'America/St_Vincent',\r\n name: 'Kingstown, Kingstown Park, Georgetown, Barrouallie, Port Elizabeth',\r\n utc: '-04:00',\r\n },\r\n { id: 'America/Thule', name: 'Thule', utc: '-04:00' },\r\n { id: 'America/Tortola', name: 'Road Town', utc: '-04:00' },\r\n { id: 'Atlantic/Bermuda', name: 'Hamilton', utc: '-04:00' },\r\n {\r\n id: 'America/St_Johns',\r\n name: \"St. John's, Mount Pearl, Corner Brook, Conception Bay South, Bay Roberts\",\r\n utc: '-03:30',\r\n },\r\n {\r\n id: 'America/Araguaina',\r\n name: 'Palmas, Araguaína, Gurupi, Miracema do Tocantins, Porto Franco',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/Buenos_Aires',\r\n name: 'Buenos Aires, La Plata, Mar del Plata, Morón, Bahía Blanca',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/Catamarca',\r\n name: 'San Fernando del Valle de Catamarca, Trelew, Puerto Madryn, Esquel, Rawson',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/Cordoba',\r\n name: 'Córdoba, Rosario, Santa Fe, Resistencia, Santiago del Estero',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/Jujuy',\r\n name: 'San Salvador de Jujuy, San Pedro de Jujuy, Libertador General San Martín, Palpalá, La Quiaca',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/La_Rioja',\r\n name: 'La Rioja, Chilecito, Arauco, Chamical',\r\n utc: '-03:00',\r\n },\r\n { id: 'America/Argentina/Mendoza', name: 'Mendoza, San Rafael, San Martín', utc: '-03:00' },\r\n {\r\n id: 'America/Argentina/Rio_Gallegos',\r\n name: 'Comodoro Rivadavia, Río Gallegos, Caleta Olivia, Pico Truncado, Puerto Deseado',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/Salta',\r\n name: 'Salta, Neuquén, Santa Rosa, San Carlos de Bariloche, Cipolletti',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/San_Juan',\r\n name: 'San Juan, Chimbas, Santa Lucía, Pocito, Caucete',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/San_Luis',\r\n name: 'San Luis, Villa Mercedes, La Punta, Merlo, Justo Daract',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Argentina/Tucuman',\r\n name: 'San Miguel de Tucumán, Yerba Buena, Tafí Viejo, Alderetes, Aguilares',\r\n utc: '-03:00',\r\n },\r\n { id: 'America/Argentina/Ushuaia', name: 'Ushuaia, Río Grande', utc: '-03:00' },\r\n {\r\n id: 'America/Bahia',\r\n name: 'Salvador, Feira de Santana, Vitória da Conquista, Itabuna, Camaçari',\r\n utc: '-03:00',\r\n },\r\n { id: 'America/Belem', name: 'Belém, Ananindeua, Macapá, Parauapebas, Marabá', utc: '-03:00' },\r\n {\r\n id: 'America/Cayenne',\r\n name: 'Cayenne, Matoury, Saint-Laurent-du-Maroni, Kourou, Rémire-Montjoly',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Fortaleza',\r\n name: 'Fortaleza, São Luís, Natal, Teresina, João Pessoa',\r\n utc: '-03:00',\r\n },\r\n { id: 'America/Godthab', name: 'Nuuk, Sisimiut, Ilulissat, Qaqortoq, Aasiaat', utc: '-03:00' },\r\n {\r\n id: 'America/Maceio',\r\n name: 'Maceió, Aracaju, Arapiraca, Nossa Senhora do Socorro, São Cristóvão',\r\n utc: '-03:00',\r\n },\r\n { id: 'America/Miquelon', name: 'Saint-Pierre, Miquelon', utc: '-03:00' },\r\n {\r\n id: 'America/Montevideo',\r\n name: 'Montevideo, Salto, Paysandú, Las Piedras, Rivera',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Paramaribo',\r\n name: 'Paramaribo, Lelydorp, Brokopondo, Nieuw Nickerie, Moengo',\r\n utc: '-03:00',\r\n },\r\n { id: 'America/Punta_Arenas', name: 'Punta Arenas, Puerto Natales', utc: '-03:00' },\r\n {\r\n id: 'America/Recife',\r\n name: 'Recife, Jaboatão, Jaboatão dos Guararapes, Olinda, Paulista',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Santarem',\r\n name: 'Santarém, Altamira, Itaituba, Oriximiná, Alenquer',\r\n utc: '-03:00',\r\n },\r\n {\r\n id: 'America/Sao_Paulo',\r\n name: 'São Paulo, Rio de Janeiro, Belo Horizonte, Brasília, Curitiba',\r\n utc: '-03:00',\r\n },\r\n { id: 'Antarctica/Palmer', name: 'Palmer', utc: '-03:00' },\r\n { id: 'Antarctica/Rothera', name: 'Rothera', utc: '-03:00' },\r\n { id: 'Atlantic/Stanley', name: 'Stanley', utc: '-03:00' },\r\n { id: 'America/Noronha', name: 'Itamaracá', utc: '-02:00' },\r\n { id: 'Atlantic/South_Georgia', name: 'Grytviken', utc: '-02:00' },\r\n { id: 'America/Scoresbysund', name: 'Scoresbysund', utc: '-01:00' },\r\n {\r\n id: 'Atlantic/Azores',\r\n name: 'Ponta Delgada, Lagoa, Angra do Heroísmo, Rosto de Cão, Rabo de Peixe',\r\n utc: '-01:00',\r\n },\r\n {\r\n id: 'Atlantic/Cape_Verde',\r\n name: 'Praia, Mindelo, Santa Maria, Cova Figueira, Santa Cruz',\r\n utc: '-01:00',\r\n },\r\n { id: 'Africa/Abidjan', name: 'Abidjan, Abobo, Bouaké, Daloa, San-Pédro', utc: '+00:00' },\r\n { id: 'Africa/Accra', name: 'Accra, Kumasi, Tamale, Takoradi, Atsiaman', utc: '+00:00' },\r\n { id: 'Africa/Bamako', name: 'Bamako, Sikasso, Mopti, Koutiala, Ségou', utc: '+00:00' },\r\n { id: 'Africa/Banjul', name: 'Serekunda, Brikama, Bakau, Banjul, Farafenni', utc: '+00:00' },\r\n { id: 'Africa/Bissau', name: 'Bissau, Bafatá, Gabú, Bissorã, Bolama', utc: '+00:00' },\r\n { id: 'Africa/Casablanca', name: 'Casablanca, Rabat, Fès, Sale, Marrakesh', utc: '+00:00' },\r\n { id: 'Africa/Conakry', name: 'Camayenne, Conakry, Nzérékoré, Kindia, Kankan', utc: '+00:00' },\r\n { id: 'Africa/Dakar', name: 'Dakar, Pikine, Touba, Thiès, Thiès Nones', utc: '+00:00' },\r\n { id: 'Africa/El_Aaiun', name: 'Laayoune, Dakhla, Laayoune Plage', utc: '+00:00' },\r\n { id: 'Africa/Freetown', name: 'Freetown, Bo, Kenema, Koidu, Makeni', utc: '+00:00' },\r\n { id: 'Africa/Lome', name: 'Lomé, Sokodé, Kara, Atakpamé, Kpalimé', utc: '+00:00' },\r\n { id: 'Africa/Monrovia', name: 'Monrovia, Gbarnga, Kakata, Bensonville, Harper', utc: '+00:00' },\r\n { id: 'Africa/Nouakchott', name: 'Nouakchott, Nouadhibou, Néma, Kaédi, Rosso', utc: '+00:00' },\r\n {\r\n id: 'Africa/Ouagadougou',\r\n name: 'Ouagadougou, Bobo-Dioulasso, Koudougou, Ouahigouya, Banfora',\r\n utc: '+00:00',\r\n },\r\n { id: 'Africa/Sao_Tome', name: 'São Tomé, Santo António', utc: '+00:00' },\r\n { id: 'America/Danmarkshavn', name: 'Danmarkshavn', utc: '+00:00' },\r\n { id: 'Antarctica/Troll', name: 'Troll', utc: '+00:00' },\r\n {\r\n id: 'Atlantic/Canary',\r\n name: 'Las Palmas de Gran Canaria, Santa Cruz de Tenerife, La Laguna, Telde, Arona',\r\n utc: '+00:00',\r\n },\r\n {\r\n id: 'Atlantic/Faroe',\r\n name: 'Tórshavn, Klaksvík, Fuglafjørður, Tvøroyri, Miðvágur',\r\n utc: '+00:00',\r\n },\r\n {\r\n id: 'Atlantic/Madeira',\r\n name: 'Funchal, Câmara de Lobos, São Martinho, Caniço, Machico',\r\n utc: '+00:00',\r\n },\r\n {\r\n id: 'Atlantic/Reykjavik',\r\n name: 'Reykjavík, Kópavogur, Hafnarfjörður, Akureyri, Garðabær',\r\n utc: '+00:00',\r\n },\r\n {\r\n id: 'Atlantic/St_Helena',\r\n name: 'Jamestown, Georgetown, Edinburgh of the Seven Seas',\r\n utc: '+00:00',\r\n },\r\n { id: 'Europe/Dublin', name: 'Dublin, Cork, Luimneach, Gaillimh, Tallaght', utc: '+00:00' },\r\n {\r\n id: 'Europe/Guernsey',\r\n name: 'Saint Peter Port, St Martin, Saint Sampson, St Anne, Saint Saviour',\r\n utc: '+00:00',\r\n },\r\n { id: 'Europe/Isle_of_Man', name: 'Douglas, Ramsey, Peel, Port Erin, Castletown', utc: '+00:00' },\r\n { id: 'Europe/Jersey', name: 'Saint Helier, Le Hocq', utc: '+00:00' },\r\n { id: 'Europe/Lisbon', name: 'Lisbon, Porto, Amadora, Braga, Setúbal', utc: '+00:00' },\r\n { id: 'Europe/London', name: 'London, Birmingham, Liverpool, Sheffield, Bristol', utc: '+00:00' },\r\n { id: 'Africa/Algiers', name: 'Algiers, Boumerdas, Oran, Tébessa, Constantine', utc: '+01:00' },\r\n { id: 'Africa/Bangui', name: 'Bangui, Bimbo, Mbaïki, Berbérati, Kaga Bandoro', utc: '+01:00' },\r\n {\r\n id: 'Africa/Brazzaville',\r\n name: 'Brazzaville, Pointe-Noire, Dolisie, Kayes, Owando',\r\n utc: '+01:00',\r\n },\r\n { id: 'Africa/Ceuta', name: 'Ceuta, Melilla', utc: '+01:00' },\r\n { id: 'Africa/Douala', name: 'Douala, Yaoundé, Garoua, Kousséri, Bamenda', utc: '+01:00' },\r\n { id: 'Africa/Kinshasa', name: 'Kinshasa, Masina, Kikwit, Mbandaka, Matadi', utc: '+01:00' },\r\n { id: 'Africa/Lagos', name: 'Lagos, Kano, Ibadan, Kaduna, Port Harcourt', utc: '+01:00' },\r\n {\r\n id: 'Africa/Libreville',\r\n name: 'Libreville, Port-Gentil, Franceville, Oyem, Moanda',\r\n utc: '+01:00',\r\n },\r\n { id: 'Africa/Luanda', name: \"Luanda, N'dalatando, Huambo, Lobito, Benguela\", utc: '+01:00' },\r\n { id: 'Africa/Malabo', name: 'Bata, Malabo, Ebebiyin, Aconibe, Añisoc', utc: '+01:00' },\r\n { id: 'Africa/Ndjamena', name: \"N'Djamena, Moundou, Sarh, Abéché, Kelo\", utc: '+01:00' },\r\n { id: 'Africa/Niamey', name: 'Niamey, Zinder, Maradi, Agadez, Alaghsas', utc: '+01:00' },\r\n {\r\n id: 'Africa/Porto-Novo',\r\n name: 'Cotonou, Abomey-Calavi, Djougou, Porto-Novo, Parakou',\r\n utc: '+01:00',\r\n },\r\n { id: 'Africa/Tunis', name: 'Tunis, Sfax, Sousse, Kairouan, Bizerte', utc: '+01:00' },\r\n {\r\n id: 'Africa/Windhoek',\r\n name: 'Windhoek, Rundu, Walvis Bay, Oshakati, Swakopmund',\r\n utc: '+01:00',\r\n },\r\n { id: 'Arctic/Longyearbyen', name: 'Longyearbyen, Olonkinbyen', utc: '+01:00' },\r\n {\r\n id: 'Europe/Amsterdam',\r\n name: 'Amsterdam, Rotterdam, The Hague, Utrecht, Eindhoven',\r\n utc: '+01:00',\r\n },\r\n {\r\n id: 'Europe/Andorra',\r\n name: 'Andorra la Vella, les Escaldes, Encamp, Sant Julià de Lòria, la Massana',\r\n utc: '+01:00',\r\n },\r\n { id: 'Europe/Belgrade', name: 'Belgrade, Pristina, Niš, Novi Sad, Prizren', utc: '+01:00' },\r\n { id: 'Europe/Berlin', name: 'Berlin, Hamburg, Munich, Köln, Frankfurt am Main', utc: '+01:00' },\r\n { id: 'Europe/Bratislava', name: 'Bratislava, Košice, Prešov, Nitra, Žilina', utc: '+01:00' },\r\n { id: 'Europe/Brussels', name: 'Brussels, Antwerpen, Gent, Charleroi, Liège', utc: '+01:00' },\r\n { id: 'Europe/Budapest', name: 'Budapest, Debrecen, Miskolc, Szeged, Pécs', utc: '+01:00' },\r\n {\r\n id: 'Europe/Copenhagen',\r\n name: 'Copenhagen, Århus, Odense, Aalborg, Frederiksberg',\r\n utc: '+01:00',\r\n },\r\n { id: 'Europe/Gibraltar', name: 'Gibraltar', utc: '+01:00' },\r\n { id: 'Europe/Ljubljana', name: 'Ljubljana, Maribor, Celje, Kranj, Velenje', utc: '+01:00' },\r\n {\r\n id: 'Europe/Luxembourg',\r\n name: 'Luxembourg, Esch-sur-Alzette, Dudelange, Schifflange, Bettembourg',\r\n utc: '+01:00',\r\n },\r\n { id: 'Europe/Madrid', name: 'Madrid, Barcelona, Valencia, Sevilla, Zaragoza', utc: '+01:00' },\r\n {\r\n id: 'Europe/Malta',\r\n name: 'Birkirkara, Qormi, Mosta, Żabbar, San Pawl il-Baħar',\r\n utc: '+01:00',\r\n },\r\n { id: 'Europe/Monaco', name: 'Monaco, Monte-Carlo, La Condamine', utc: '+01:00' },\r\n { id: 'Europe/Oslo', name: 'Oslo, Bergen, Trondheim, Stavanger, Drammen', utc: '+01:00' },\r\n { id: 'Europe/Paris', name: 'Paris, Marseille, Lyon, Toulouse, Nice', utc: '+01:00' },\r\n {\r\n id: 'Europe/Podgorica',\r\n name: 'Podgorica, Nikšić, Herceg Novi, Pljevlja, Budva',\r\n utc: '+01:00',\r\n },\r\n { id: 'Europe/Prague', name: 'Prague, Brno, Ostrava, Pilsen, Olomouc', utc: '+01:00' },\r\n { id: 'Europe/Rome', name: 'Rome, Milan, Naples, Turin, Palermo', utc: '+01:00' },\r\n {\r\n id: 'Europe/San_Marino',\r\n name: 'Serravalle, Borgo Maggiore, San Marino, Domagnano, Fiorentino',\r\n utc: '+01:00',\r\n },\r\n { id: 'Europe/Sarajevo', name: 'Sarajevo, Banja Luka, Zenica, Tuzla, Mostar', utc: '+01:00' },\r\n { id: 'Europe/Skopje', name: 'Skopje, Bitola, Kumanovo, Prilep, Tetovo', utc: '+01:00' },\r\n {\r\n id: 'Europe/Stockholm',\r\n name: 'Stockholm, Göteborg, Malmö, Uppsala, Sollentuna',\r\n utc: '+01:00',\r\n },\r\n { id: 'Europe/Tirane', name: 'Tirana, Durrës, Elbasan, Vlorë, Shkodër', utc: '+01:00' },\r\n { id: 'Europe/Vaduz', name: 'Schaan, Vaduz, Triesen, Balzers, Eschen', utc: '+01:00' },\r\n { id: 'Europe/Vatican', name: 'Vatican City', utc: '+01:00' },\r\n { id: 'Europe/Vienna', name: 'Vienna, Graz, Linz, Favoriten, Donaustadt', utc: '+01:00' },\r\n { id: 'Europe/Warsaw', name: 'Warsaw, Łódź, Kraków, Wrocław, Poznań', utc: '+01:00' },\r\n { id: 'Europe/Zagreb', name: 'Zagreb, Split, Rijeka, Osijek, Zadar', utc: '+01:00' },\r\n { id: 'Europe/Zurich', name: 'Zürich, Genève, Basel, Lausanne, Bern', utc: '+01:00' },\r\n { id: 'Africa/Blantyre', name: 'Lilongwe, Blantyre, Mzuzu, Zomba, Kasungu', utc: '+02:00' },\r\n { id: 'Africa/Bujumbura', name: 'Bujumbura, Muyinga, Gitega, Ruyigi, Ngozi', utc: '+02:00' },\r\n { id: 'Africa/Cairo', name: 'Cairo, Alexandria, Giza, Port Said, Suez', utc: '+02:00' },\r\n {\r\n id: 'Africa/Gaborone',\r\n name: 'Gaborone, Francistown, Molepolole, Selebi-Phikwe, Maun',\r\n utc: '+02:00',\r\n },\r\n { id: 'Africa/Harare', name: 'Harare, Bulawayo, Chitungwiza, Mutare, Gweru', utc: '+02:00' },\r\n {\r\n id: 'Africa/Johannesburg',\r\n name: 'Cape Town, Durban, Johannesburg, Soweto, Pretoria',\r\n utc: '+02:00',\r\n },\r\n { id: 'Africa/Juba', name: 'Juba, Winejok, Malakal, Wau, Kuacjok', utc: '+02:00' },\r\n { id: 'Africa/Khartoum', name: 'Khartoum, Omdurman, Nyala, Port Sudan, Kassala', utc: '+02:00' },\r\n { id: 'Africa/Kigali', name: 'Kigali, Butare, Gitarama, Musanze, Gisenyi', utc: '+02:00' },\r\n {\r\n id: 'Africa/Lubumbashi',\r\n name: 'Lubumbashi, Mbuji-Mayi, Kisangani, Kananga, Likasi',\r\n utc: '+02:00',\r\n },\r\n { id: 'Africa/Lusaka', name: 'Lusaka, Kitwe, Ndola, Kabwe, Chingola', utc: '+02:00' },\r\n { id: 'Africa/Maputo', name: 'Maputo, Matola, Beira, Nampula, Chimoio', utc: '+02:00' },\r\n { id: 'Africa/Maseru', name: \"Maseru, Mafeteng, Leribe, Maputsoe, Mohale's Hoek\", utc: '+02:00' },\r\n { id: 'Africa/Mbabane', name: 'Manzini, Mbabane, Big Bend, Malkerns, Nhlangano', utc: '+02:00' },\r\n { id: 'Africa/Tripoli', name: 'Tripoli, Benghazi, Mişrātah, Tarhuna, Al Khums', utc: '+02:00' },\r\n { id: 'Asia/Amman', name: 'Amman, Zarqa, Irbid, Russeifa, Wādī as Sīr', utc: '+02:00' },\r\n { id: 'Asia/Beirut', name: \"Beirut, Ra's Bayrūt, Tripoli, Sidon, Tyre\", utc: '+02:00' },\r\n { id: 'Asia/Damascus', name: 'Aleppo, Damascus, Homs, Ḩamāh, Latakia', utc: '+02:00' },\r\n {\r\n id: 'Asia/Famagusta',\r\n name: 'Famagusta, Kyrenia, Protaras, Paralímni, Lápithos',\r\n utc: '+02:00',\r\n },\r\n { id: 'Asia/Gaza', name: 'Gaza, Khān Yūnis, Jabālyā, Rafaḩ, Dayr al Balaḩ', utc: '+02:00' },\r\n { id: 'Asia/Hebron', name: 'East Jerusalem, Hebron, Nablus, Battir, Ţūlkarm', utc: '+02:00' },\r\n {\r\n id: 'Asia/Jerusalem',\r\n name: 'Jerusalem, Tel Aviv, West Jerusalem, Haifa, Ashdod',\r\n utc: '+02:00',\r\n },\r\n { id: 'Asia/Nicosia', name: 'Nicosia, Limassol, Larnaca, Stróvolos, Paphos', utc: '+02:00' },\r\n { id: 'Europe/Athens', name: 'Athens, Thessaloníki, Pátra, Piraeus, Lárisa', utc: '+02:00' },\r\n { id: 'Europe/Bucharest', name: 'Bucharest, Sector 3, Sector 6, Sector 2, Iaşi', utc: '+02:00' },\r\n { id: 'Europe/Chisinau', name: 'Chisinau, Tiraspol, Bălţi, Bender, Rîbniţa', utc: '+02:00' },\r\n { id: 'Europe/Helsinki', name: 'Helsinki, Espoo, Tampere, Vantaa, Turku', utc: '+02:00' },\r\n {\r\n id: 'Europe/Kaliningrad',\r\n name: 'Kaliningrad, Chernyakhovsk, Sovetsk, Baltiysk, Gusev',\r\n utc: '+02:00',\r\n },\r\n { id: 'Europe/Kiev', name: 'Kyiv, Kharkiv, Donetsk, Odessa, Dnipro', utc: '+02:00' },\r\n { id: 'Europe/Mariehamn', name: 'Mariehamn', utc: '+02:00' },\r\n { id: 'Europe/Riga', name: 'Riga, Daugavpils, Liepāja, Jelgava, Jūrmala', utc: '+02:00' },\r\n { id: 'Europe/Sofia', name: 'Sofia, Plovdiv, Varna, Burgas, Ruse', utc: '+02:00' },\r\n { id: 'Europe/Tallinn', name: 'Tallinn, Tartu, Narva, Kohtla-Järve, Pärnu', utc: '+02:00' },\r\n { id: 'Europe/Uzhgorod', name: 'Uzhgorod, Mukachevo, Khust, Berehove, Tyachiv', utc: '+02:00' },\r\n { id: 'Europe/Vilnius', name: 'Vilnius, Kaunas, Klaipėda, Šiauliai, Panevėžys', utc: '+02:00' },\r\n {\r\n id: 'Europe/Zaporozhye',\r\n name: 'Luhansk, Sevastopol, Sievierodonetsk, Alchevsk, Lysychansk',\r\n utc: '+02:00',\r\n },\r\n {\r\n id: 'Africa/Addis_Ababa',\r\n name: \"Addis Ababa, Dire Dawa, Mek'ele, Nazrēt, Bahir Dar\",\r\n utc: '+03:00',\r\n },\r\n { id: 'Africa/Asmara', name: 'Asmara, Keren, Massawa, Assab, Mendefera', utc: '+03:00' },\r\n {\r\n id: 'Africa/Dar_es_Salaam',\r\n name: 'Dar es Salaam, Mwanza, Zanzibar, Arusha, Mbeya',\r\n utc: '+03:00',\r\n },\r\n { id: 'Africa/Djibouti', name: \"Djibouti, 'Ali Sabieh, Tadjourah, Obock, Dikhil\", utc: '+03:00' },\r\n { id: 'Africa/Kampala', name: 'Kampala, Gulu, Lira, Mbarara, Jinja', utc: '+03:00' },\r\n { id: 'Africa/Mogadishu', name: 'Mogadishu, Hargeysa, Berbera, Kismayo, Marka', utc: '+03:00' },\r\n { id: 'Africa/Nairobi', name: 'Nairobi, Mombasa, Nakuru, Eldoret, Kisumu', utc: '+03:00' },\r\n { id: 'Antarctica/Syowa', name: 'Syowa', utc: '+03:00' },\r\n { id: 'Asia/Aden', name: 'Sanaa, Al Ḩudaydah, Taiz, Aden, Mukalla', utc: '+03:00' },\r\n {\r\n id: 'Asia/Baghdad',\r\n name: 'Baghdad, Basrah, Al Mawşil al Jadīdah, Al Başrah al Qadīmah, Mosul',\r\n utc: '+03:00',\r\n },\r\n {\r\n id: 'Asia/Bahrain',\r\n name: \"Manama, Al Muharraq, Ar Rifā', Dār Kulayb, Madīnat Ḩamad\",\r\n utc: '+03:00',\r\n },\r\n {\r\n id: 'Asia/Kuwait',\r\n name: 'Al Aḩmadī, Ḩawallī, As Sālimīyah, Şabāḩ as Sālim, Al Farwānīyah',\r\n utc: '+03:00',\r\n },\r\n {\r\n id: 'Asia/Qatar',\r\n name: 'Doha, Ar Rayyān, Umm Şalāl Muḩammad, Al Wakrah, Al Khawr',\r\n utc: '+03:00',\r\n },\r\n { id: 'Asia/Riyadh', name: 'Riyadh, Jeddah, Mecca, Medina, Sulţānah', utc: '+03:00' },\r\n { id: 'Europe/Istanbul', name: 'Istanbul, Ankara, İzmir, Bursa, Adana', utc: '+03:00' },\r\n {\r\n id: 'Europe/Kirov',\r\n name: \"Kirov, Kirovo-Chepetsk, Vyatskiye Polyany, Slobodskoy, Kotel'nich\",\r\n utc: '+03:00',\r\n },\r\n { id: 'Europe/Minsk', name: \"Minsk, Homyel', Mahilyow, Vitebsk, Hrodna\", utc: '+03:00' },\r\n {\r\n id: 'Europe/Moscow',\r\n name: 'Moscow, Saint Petersburg, Nizhniy Novgorod, Kazan, Rostov-na-Donu',\r\n utc: '+03:00',\r\n },\r\n {\r\n id: 'Europe/Simferopol',\r\n name: 'Simferopol, Kerch, Yevpatoriya, Yalta, Feodosiya',\r\n utc: '+03:00',\r\n },\r\n {\r\n id: 'Europe/Volgograd',\r\n name: 'Volgograd, Volzhskiy, Kamyshin, Mikhaylovka, Uryupinsk',\r\n utc: '+03:00',\r\n },\r\n {\r\n id: 'Indian/Antananarivo',\r\n name: 'Antananarivo, Toamasina, Antsirabe, Fianarantsoa, Mahajanga',\r\n utc: '+03:00',\r\n },\r\n { id: 'Indian/Comoro', name: 'Moroni, Moutsamoudou, Fomboni, Domoni, Tsimbeo', utc: '+03:00' },\r\n { id: 'Indian/Mayotte', name: 'Mamoudzou, Koungou, Dzaoudzi, Dembeni, Sada', utc: '+03:00' },\r\n { id: 'Asia/Tehran', name: 'Tehran, Mashhad, Isfahan, Karaj, Tabriz', utc: '+03:30' },\r\n { id: 'Asia/Baku', name: 'Baku, Ganja, Sumqayıt, Lankaran, Yevlakh', utc: '+04:00' },\r\n {\r\n id: 'Asia/Dubai',\r\n name: 'Dubai, Sharjah, Abu Dhabi, Ajman City, Ras Al Khaimah City',\r\n utc: '+04:00',\r\n },\r\n { id: 'Asia/Muscat', name: 'Muscat, Seeb, Şalālah, Bawshar, Sohar', utc: '+04:00' },\r\n { id: 'Asia/Tbilisi', name: 'Tbilisi, Kutaisi, Batumi, Sokhumi, Zugdidi', utc: '+04:00' },\r\n { id: 'Asia/Yerevan', name: 'Yerevan, Gyumri, Vanadzor, Vagharshapat, Hrazdan', utc: '+04:00' },\r\n {\r\n id: 'Europe/Astrakhan',\r\n name: 'Astrakhan, Akhtubinsk, Znamensk, Kharabali, Kamyzyak',\r\n utc: '+04:00',\r\n },\r\n {\r\n id: 'Europe/Samara',\r\n name: \"Samara, Togliatti-on-the-Volga, Izhevsk, Syzran', Novokuybyshevsk\",\r\n utc: '+04:00',\r\n },\r\n { id: 'Europe/Saratov', name: \"Saratov, Balakovo, Engel's, Balashov, Vol'sk\", utc: '+04:00' },\r\n {\r\n id: 'Europe/Ulyanovsk',\r\n name: \"Ulyanovsk, Dimitrovgrad, Inza, Barysh, Novoul'yanovsk\",\r\n utc: '+04:00',\r\n },\r\n {\r\n id: 'Indian/Mahe',\r\n name: 'Victoria, Anse Boileau, Bel Ombre, Beau Vallon, Cascade',\r\n utc: '+04:00',\r\n },\r\n {\r\n id: 'Indian/Mauritius',\r\n name: 'Port Louis, Beau Bassin-Rose Hill, Vacoas, Curepipe, Quatre Bornes',\r\n utc: '+04:00',\r\n },\r\n {\r\n id: 'Indian/Reunion',\r\n name: 'Saint-Denis, Saint-Paul, Saint-Pierre, Le Tampon, Saint-André',\r\n utc: '+04:00',\r\n },\r\n { id: 'Asia/Kabul', name: 'Kabul, Kandahār, Mazār-e Sharīf, Herāt, Jalālābād', utc: '+04:30' },\r\n { id: 'Antarctica/Mawson', name: 'Mawson', utc: '+05:00' },\r\n { id: 'Asia/Aqtau', name: 'Shevchenko, Zhanaozen, Beyneu, Shetpe, Yeraliyev', utc: '+05:00' },\r\n { id: 'Asia/Aqtobe', name: 'Aktobe, Kandyagash, Shalqar, Khromtau, Embi', utc: '+05:00' },\r\n { id: 'Asia/Ashgabat', name: 'Ashgabat, Türkmenabat, Daşoguz, Mary, Balkanabat', utc: '+05:00' },\r\n { id: 'Asia/Atyrau', name: 'Atyrau, Qulsary, Shalkar, Balykshi, Maqat', utc: '+05:00' },\r\n { id: 'Asia/Dushanbe', name: 'Dushanbe, Khujand, Kŭlob, Bokhtar, Istaravshan', utc: '+05:00' },\r\n { id: 'Asia/Karachi', name: 'Karachi, Lahore, Faisalabad, Rawalpindi, Multan', utc: '+05:00' },\r\n { id: 'Asia/Oral', name: 'Oral, Aqsay, Zhänibek, Tasqala, Zhumysker', utc: '+05:00' },\r\n { id: 'Asia/Qyzylorda', name: 'Kyzylorda, Baikonur, Novokazalinsk, Aral, Chiili', utc: '+05:00' },\r\n { id: 'Asia/Samarkand', name: 'Samarkand, Bukhara, Nukus, Qarshi, Jizzax', utc: '+05:00' },\r\n { id: 'Asia/Tashkent', name: \"Tashkent, Namangan, Andijon, Qo'qon, Chirchiq\", utc: '+05:00' },\r\n {\r\n id: 'Asia/Yekaterinburg',\r\n name: 'Yekaterinburg, Chelyabinsk, Ufa, Perm, Orenburg',\r\n utc: '+05:00',\r\n },\r\n { id: 'Indian/Kerguelen', name: 'Port-aux-Français', utc: '+05:00' },\r\n {\r\n id: 'Indian/Maldives',\r\n name: 'Male, Fuvahmulah, Hithadhoo, Kulhudhuffushi, Thinadhoo',\r\n utc: '+05:00',\r\n },\r\n {\r\n id: 'Asia/Colombo',\r\n name: 'Colombo, Dehiwala-Mount Lavinia, Moratuwa, Jaffna, Negombo',\r\n utc: '+05:30',\r\n },\r\n { id: 'Asia/Kolkata', name: 'Mumbai, Delhi, Bengaluru, Kolkata, Chennai', utc: '+05:30' },\r\n { id: 'Asia/Kathmandu', name: 'Kathmandu, Pokhara, Pātan, Biratnagar, Birgañj', utc: '+05:45' },\r\n { id: 'Antarctica/Vostok', name: 'Vostok', utc: '+06:00' },\r\n { id: 'Asia/Almaty', name: 'Almaty, Karagandy, Shymkent, Taraz, Nur-Sultan', utc: '+06:00' },\r\n { id: 'Asia/Bishkek', name: 'Bishkek, Osh, Jalal-Abad, Karakol, Tokmok', utc: '+06:00' },\r\n { id: 'Asia/Dhaka', name: 'Dhaka, Chattogram, Khulna, Rājshāhi, Comilla', utc: '+06:00' },\r\n { id: 'Asia/Omsk', name: 'Omsk, Tara, Kalachinsk, Znamenskoye, Tavricheskoye', utc: '+06:00' },\r\n { id: 'Asia/Qostanay', name: 'Kostanay, Rudnyy, Dzhetygara, Arkalyk, Lisakovsk', utc: '+06:00' },\r\n {\r\n id: 'Asia/Thimphu',\r\n name: 'himphu, Punākha, Tsirang, Phuntsholing, Pemagatshel',\r\n utc: '+06:00',\r\n },\r\n { id: 'Asia/Urumqi', name: 'Zhongshan, Ürümqi, Zhanjiang, Shihezi, Huocheng', utc: '+06:00' },\r\n { id: 'Indian/Chagos', name: 'British Indian Ocean Territory', utc: '+06:00' },\r\n {\r\n id: 'Asia/Yangon',\r\n name: 'Yangon, Mandalay, Nay Pyi Taw, Mawlamyine, Kyain Seikgyi Township',\r\n utc: '+06:30',\r\n },\r\n { id: 'Indian/Cocos', name: 'West Island', utc: '+06:30' },\r\n { id: 'Antarctica/Davis', name: 'Davis', utc: '+07:00' },\r\n {\r\n id: 'Asia/Bangkok',\r\n name: 'Bangkok, Hanoi, Haiphong, Samut Prakan, Mueang Nonthaburi',\r\n utc: '+07:00',\r\n },\r\n {\r\n id: 'Asia/Barnaul',\r\n name: 'Barnaul, Biysk, Rubtsovsk, Novoaltaysk, Gorno-Altaysk',\r\n utc: '+07:00',\r\n },\r\n { id: 'Asia/Hovd', name: 'Khovd, Ölgii, Ulaangom, Uliastay, Altai', utc: '+07:00' },\r\n {\r\n id: 'Asia/Ho_Chi_Minh',\r\n name: 'Ho Chi Minh City, Da Nang, Biên Hòa, Nha Trang, Cần Thơ',\r\n utc: '+07:00',\r\n },\r\n { id: 'Asia/Jakarta', name: 'Jakarta, Surabaya, Medan, Bandung, Bekasi', utc: '+07:00' },\r\n { id: 'Asia/Krasnoyarsk', name: 'Krasnoyarsk, Abakan, Norilsk, Achinsk, Kyzyl', utc: '+07:00' },\r\n {\r\n id: 'Asia/Novokuznetsk',\r\n name: \"Novokuznetsk, Kemerovo, Prokop'yevsk, Leninsk-Kuznetsky, Kiselëvsk\",\r\n utc: '+07:00',\r\n },\r\n {\r\n id: 'Asia/Novosibirsk',\r\n name: 'Novosibirsk, Berdsk, Iskitim, Akademgorodok, Kuybyshev',\r\n utc: '+07:00',\r\n },\r\n {\r\n id: 'Asia/Phnom_Penh',\r\n name: 'Phnom Penh, Takeo, Sihanoukville, Battambang, Siem Reap',\r\n utc: '+07:00',\r\n },\r\n {\r\n id: 'Asia/Pontianak',\r\n name: 'Pontianak, Tanjung Pinang, Palangkaraya, Singkawang, Sampit',\r\n utc: '+07:00',\r\n },\r\n { id: 'Asia/Tomsk', name: 'Tomsk, Seversk, Strezhevoy, Kolpashevo, Asino', utc: '+07:00' },\r\n {\r\n id: 'Asia/Vientiane',\r\n name: 'Vientiane, Pakse, Thakhèk, Savannakhet, Luang Prabang',\r\n utc: '+07:00',\r\n },\r\n { id: 'Indian/Christmas', name: 'Flying Fish Cove', utc: '+07:00' },\r\n {\r\n id: 'Asia/Brunei',\r\n name: 'Bandar Seri Begawan, Kuala Belait, Seria, Tutong, Bangar',\r\n utc: '+08:00',\r\n },\r\n { id: 'Asia/Choibalsan', name: 'Baruun-Urt, Choibalsan', utc: '+08:00' },\r\n {\r\n id: 'Asia/Hong_Kong',\r\n name: 'Hong Kong, Kowloon, Tsuen Wan, Yuen Long Kau Hui, Tung Chung',\r\n utc: '+08:00',\r\n },\r\n { id: 'Asia/Irkutsk', name: \"Irkutsk, Ulan-Ude, Bratsk, Angarsk, Ust'-Ilimsk\", utc: '+08:00' },\r\n {\r\n id: 'Asia/Kuala_Lumpur',\r\n name: 'Kota Bharu, Kuala Lumpur, Klang, Kampung Baru Subang, Johor Bahru',\r\n utc: '+08:00',\r\n },\r\n { id: 'Asia/Kuching', name: 'Kuching, Kota Kinabalu, Sandakan, Tawau, Miri', utc: '+08:00' },\r\n { id: 'Asia/Macau', name: 'Macau', utc: '+08:00' },\r\n {\r\n id: 'Asia/Makassar',\r\n name: 'Makassar, Denpasar, City of Balikpapan, Banjarmasin, Manado',\r\n utc: '+08:00',\r\n },\r\n { id: 'Asia/Manila', name: 'Quezon City, Manila, Caloocan City, Budta, Davao', utc: '+08:00' },\r\n { id: 'Asia/Shanghai', name: 'Shanghai, Beijing, Tianjin, Guangzhou, Shenzhen', utc: '+08:00' },\r\n { id: 'Asia/Singapore', name: 'Singapore, Woodlands', utc: '+08:00' },\r\n { id: 'Asia/Taipei', name: 'Taipei, Kaohsiung, Taichung, Tainan, Banqiao', utc: '+08:00' },\r\n { id: 'Asia/Ulaanbaatar', name: 'Ulan Bator, Erdenet, Darhan, Hovd, Mörön', utc: '+08:00' },\r\n { id: 'Australia/Perth', name: 'Perth, Rockingham, Mandurah, Bunbury, Albany', utc: '+08:00' },\r\n { id: 'Australia/Eucla', name: 'Eucla', utc: '+08:45' },\r\n {\r\n id: 'Asia/Chita',\r\n name: \"Chita, Krasnokamensk, Borzya, Petrovsk-Zabaykal'skiy, Aginskoye\",\r\n utc: '+09:00',\r\n },\r\n { id: 'Asia/Dili', name: 'Dili, Maliana, Suai, Likisá, Aileu', utc: '+09:00' },\r\n { id: 'Asia/Jayapura', name: 'Ambon, Jayapura, Sorong, Ternate, Abepura', utc: '+09:00' },\r\n { id: 'Asia/Khandyga', name: 'Khandyga', utc: '+09:00' },\r\n { id: 'Asia/Pyongyang', name: \"Pyongyang, Hamhŭng, Namp'o, Sunch'ŏn, Hŭngnam\", utc: '+09:00' },\r\n { id: 'Asia/Seoul', name: 'Seoul, Busan, Incheon, Daegu, Daejeon', utc: '+09:00' },\r\n { id: 'Asia/Tokyo', name: 'Tokyo, Yokohama, Osaka, Nagoya, Sapporo', utc: '+09:00' },\r\n {\r\n id: 'Asia/Yakutsk',\r\n name: 'Yakutsk, Blagoveshchensk, Belogorsk, Neryungri, Svobodnyy',\r\n utc: '+09:00',\r\n },\r\n {\r\n id: 'Pacific/Palau',\r\n name: 'Koror, Koror Town, Kloulklubed, Ulimang, Mengellang',\r\n utc: '+09:00',\r\n },\r\n {\r\n id: 'Australia/Adelaide',\r\n name: 'Adelaide, Adelaide Hills, Mount Gambier, Morphett Vale, Gawler',\r\n utc: '+09:30',\r\n },\r\n { id: 'Australia/Broken_Hill', name: 'Broken Hill', utc: '+09:30' },\r\n {\r\n id: 'Australia/Darwin',\r\n name: 'Darwin, Alice Springs, Palmerston, Howard Springs',\r\n utc: '+09:30',\r\n },\r\n { id: 'Antarctica/DumontDUrville', name: 'DumontDUrville', utc: '+10:00' },\r\n { id: 'Antarctica/Macquarie', name: 'Macquarie', utc: '+10:00' },\r\n { id: 'Asia/Ust-Nera', name: 'Ust-Nera', utc: '+10:00' },\r\n {\r\n id: 'Asia/Vladivostok',\r\n name: 'Vladivostok, Khabarovsk, Khabarovsk Vtoroy, Komsomolsk-on-Amur, Ussuriysk',\r\n utc: '+10:00',\r\n },\r\n {\r\n id: 'Australia/Brisbane',\r\n name: 'Brisbane, Gold Coast, Logan City, Townsville, Cairns',\r\n utc: '+10:00',\r\n },\r\n { id: 'Australia/Currie', name: 'Currie', utc: '+10:00' },\r\n {\r\n id: 'Australia/Hobart',\r\n name: 'Hobart, Launceston, Burnie, Devonport, Sandy Bay',\r\n utc: '+10:00',\r\n },\r\n { id: 'Australia/Lindeman', name: 'Lindeman', utc: '+10:00' },\r\n {\r\n id: 'Australia/Melbourne',\r\n name: 'Melbourne, Geelong, Bendigo, Ballarat, Melbourne City Centre',\r\n utc: '+10:00',\r\n },\r\n {\r\n id: 'Australia/Sydney',\r\n name: 'Sydney, Canberra, Newcastle, Wollongong, Maitland',\r\n utc: '+10:00',\r\n },\r\n { id: 'Pacific/Chuuk', name: 'Weno, Colonia', utc: '+10:00' },\r\n {\r\n id: 'Pacific/GuamVillage',\r\n name: 'Dededo Village, Yigo Village, Tamuning, Tamuning-Tumon-Harmon Village, Mangilao Village',\r\n utc: '+10:00',\r\n },\r\n {\r\n id: 'Pacific/Port_Moresby',\r\n name: 'Port Moresby, Lae, Mount Hagen, Popondetta, Madang',\r\n utc: '+10:00',\r\n },\r\n { id: 'Pacific/Saipan', name: 'Saipan, San Jose Village', utc: '+10:00' },\r\n { id: 'Australia/Lord_Howe', name: 'Lord Howe', utc: '+10:30' },\r\n { id: 'Antarctica/Casey', name: 'Casey', utc: '+11:00' },\r\n { id: 'Asia/Magadan', name: 'Magadan, Ust-Nera, Susuman, Ola', utc: '+11:00' },\r\n {\r\n id: 'Asia/Sakhalin',\r\n name: \"Yuzhno-Sakhalinsk, Korsakov, Kholmsk, Okha, Nevel'sk\",\r\n utc: '+11:00',\r\n },\r\n { id: 'Asia/Srednekolymsk', name: 'Srednekolymsk', utc: '+11:00' },\r\n { id: 'Pacific/Bougainville', name: 'Arawa, Buka', utc: '+11:00' },\r\n { id: 'Pacific/Efate', name: 'Port-Vila, Luganville, Isangel, Sola, Lakatoro', utc: '+11:00' },\r\n { id: 'Pacific/Guadalcanal', name: 'Honiara, Malango, Auki, Gizo, Buala', utc: '+11:00' },\r\n { id: 'Pacific/Kosrae', name: 'Tofol', utc: '+11:00' },\r\n { id: 'Pacific/Norfolk', name: 'Kingston', utc: '+11:00' },\r\n { id: 'Pacific/Noumea', name: 'Nouméa, Mont-Dore, Dumbéa, Païta, Wé', utc: '+11:00' },\r\n {\r\n id: 'Pacific/Pohnpei',\r\n name: 'Kolonia, Kolonia Town, Palikir - National Government Center',\r\n utc: '+11:00',\r\n },\r\n { id: 'Antarctica/McMurdo', name: 'McMurdo', utc: '+12:00' },\r\n { id: 'Asia/Anadyr', name: 'Anadyr, Bilibino', utc: '+12:00' },\r\n {\r\n id: 'Asia/Kamchatka',\r\n name: \"Petropavlovsk-Kamchatsky, Yelizovo, Vilyuchinsk, Klyuchi, Mil'kovo\",\r\n utc: '+12:00',\r\n },\r\n {\r\n id: 'Pacific/Auckland',\r\n name: 'Auckland, Wellington, Christchurch, Manukau City, North Shore',\r\n utc: '+12:00',\r\n },\r\n { id: 'Pacific/Fiji', name: 'Suva, Lautoka, Nadi, Labasa, Ba', utc: '+12:00' },\r\n {\r\n id: 'Pacific/Funafuti',\r\n name: 'Funafuti, Savave Village, Tanrake Village, Toga Village, Asau Village',\r\n utc: '+12:00',\r\n },\r\n { id: 'Pacific/Kwajalein', name: 'Ebaye, Jabat', utc: '+12:00' },\r\n { id: 'Pacific/Majuro', name: 'Majuro, Arno, Jabor, Wotje, Mili', utc: '+12:00' },\r\n { id: 'Pacific/Nauru', name: 'Yaren, Baiti, Anabar, Uaboe, Ijuw', utc: '+12:00' },\r\n { id: 'Pacific/Tarawa', name: 'Tarawa, Betio Village, Bikenibeu Village', utc: '+12:00' },\r\n { id: 'Pacific/Wake', name: 'Wake', utc: '+12:00' },\r\n { id: 'Pacific/Wallis', name: 'Mata-Utu, Leava, Alo', utc: '+12:00' },\r\n { id: 'Pacific/Chatham', name: 'Waitangi', utc: '+12:45' },\r\n { id: 'Pacific/Apia', name: 'Apia, Asau, Mulifanua, Afega, Leulumoega', utc: '+13:00' },\r\n { id: 'Pacific/Enderbury', name: 'Enderbury', utc: '+13:00' },\r\n { id: 'Pacific/Fakaofo', name: 'Atafu Village, Nukunonu, Fale old settlement', utc: '+13:00' },\r\n { id: 'Pacific/Tongatapu', name: \"Nuku'alofa, Lapaha, Neiafu, Pangai, 'Ohonua\", utc: '+13:00' },\r\n { id: 'Pacific/Kiritimati', name: 'Kiritimati', utc: '+14:00' },\r\n];\r\n\r\nexport function getTimeZoneOptions() {\r\n return AllTimeZones.map((v) => ({ key: v.id, text: `(GMT${v.utc}) ${v.name}` }));\r\n}\r\n"],"names":["isSuspenseComponent","component","SuspenseRoute","Component","label","FallbackComponent","SuspenseRouteFallback","jsx","React","useInfiniteScroll","scrollRef","dispatch","scrollObserver","node","entries","en","isBrowser","isNavigator","nav","conn","getConnectionState","previousState","online","previousOnline","useNetworkState","initialState","state","setState","handleStateChange","blacklistedTargets","keysReducer","action","useShortcuts","shortcutKeys","callback","options","overrideSystem","initalKeyMapping","currentKeys","key","keys","setKeys","keydownListener","assignedKey","keydownEvent","loweredKey","disabledEventPropagation","keyupListener","keyupEvent","raisedKey","value","k","e","useUpdateEffect","effect","deps","mounted","useRef","useEffect","useLatestRef","ref","useCallbackRef","callbackRef","useCallback","args","useFirstRenderState","isFirst","useInterval","delay","savedCallback","tick","id","useTimeout","timeoutId","HttpMethods","FileDownloadStatus","ApiUtilityBase","token","error","errors","handler","config","endpoint","params","Axios","p","o","stringify","throwErrorOn401","response","data","body","contentType","ex","form","values","preFix","fieldName","fileList","fIndex","el","idx","formData","contentDispositionValue","filename","filenameRegex","matches","method","headers","axiosOptions","result_1","fileName","saveAs","arr","message","rest","ApiUtility","ICE_CANDIDATE_IP_INDEX","deviceIpData","resetDeviceIpString","resetDeviceIpTimeStamp","getDeviceLocalIPAsString","resolve","reject","WebRTCConnection","ip","pc","err","event","candidateValues","getBrowserPluginsAsString","plugin","name","getFormattedOffset","offset","hourOffset","minuteOffset","getTimezone","validateAndGetScreenDetail","getScreenWidth","getScreenHeight","getScreenScalingFactor","getScreenColourDepth","getWindowWidth","getWindowHeight","getBrowserDoNotTrackStatus","windowVar","navigatorVar","getUserAgent","baseClamp","number","lower","upper","_baseClamp","freeGlobal","global","_freeGlobal","require$$0","freeSelf","root","_root","Symbol","_Symbol","arrayMap","array","iteratee","index","length","result","_arrayMap","isArray","isArray_1","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","_getRawTag","objectToString","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","require$$3","symbolProto","symbolToString","baseToString","_baseToString","reWhitespace","trimmedEndIndex","string","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","isObject","type","isObject_1","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","toNumber_1","INFINITY","MAX_INTEGER","toFinite","sign","toFinite_1","toInteger","remainder","toInteger_1","toString","toString_1","startsWith","target","position","startsWith_1","a","module","this","t","_","n","r","i","s","f","h","u","d","c","l","m","M","Y","v","D","w","g","y","L","$","dayjsBase","AdvancedFormat","CustomParseFormat","Weekday","IsSameOrAfter","IsSameOrBefore","RelativeTime","utc","tz","Duration","addWorkdays","option","determineSign","x","amount","day","absIncrement","days","paddedAbsIncrement","weekendsInbetween","dayjs","StorageMessageKey","UtilsBase","num","date","emptyValue","withTime","timeZone","dt","decimalPlaces","withComma","useDashForZero","withCurrency","isNegative","str","j","seconds","minutes","dateTime","dateTimeM","dateTimeS","ignoreSeconds","hours","size","selectedSize","selectedUnit","units","unit","cutoff","useLocation","b","newValue","Utils","obj","path","val","separator","lastKey","lastObj","address","emptyString","rb","useIsMountedRef","isMountedRef","AllCountries","getCountries","sortBy","getCountryOptions","getCountryByPhoneNumber","phoneNumber","selectedCountry","country","CustomEventEmitter","hasElementType","hasMap","hasSet","hasArrayBuffer","deepEqual","it","fastCompare","HideablePromise","LoadScript","src","opts","head","script","attr","onend","stdOnEnd","ieOnEnd","fraudPreventionHeadersEnum","getScreenData","screenDetails","getScreenDetails","getWindowSize","windowSize","windowDetails","getFraudPreventionHeaders","headerFunctions","header","AllNationalities","getNationalityOptions","FeatureStatus","RouteUtilsBase","rolesRequired","rolesExists","permissionsRequired","permissionsExists","featuresRequired","featuresExists","typesRequired","businessType","configRequired","configExists","paramsRequired","paramsExists","tagsRequired","tagsExists","link","trimUrl","groups","SecureRoute","userRoles","userPermissions","features","userConfig","userParams","tags","routes","group","links","Route","currentPath","url","activeUrl","pagesGroup","selectedLink","la","matchPath","RouteUtils","AllTimeZones","getTimeZoneOptions"],"mappings":"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CA,YACA,YACA,uBACA,YACA,WACA,SACA,aACA,WACA,cACA,WACA,WACA,cACA,YACA,aACA,UACA,WACA,YACA,YACA,WACA,2BACA,YACA,YACA,iCACA,0BACA,WACA,YACA,YACA,YACA,YACA,cACA,WACA,eACA,YACA,kBACA,WACA,UACA,UACA,UACA,iBACA,YACA,UACA,gBACA,cACA,WACA,QACA,YACA,UACA,QACA,YACA,SACA,aACA,sDACA,YACA,4BACA,aACA,WACA,qBACA,aACA,qBACA,WACA,YACA,oBACA,UACA,SACA,UACA,SACA,oBACA,WACA,UACA,WACA,SACA,WACA,eACA,QACA,cACA,YACA,YACA,aACA,WACA,iCACA,UACA,iBACA,UACA,WACA,cACA,YACA,YACA,SACA,aACA,UACA,QACA,QACA,OACA,UACA,UACA,UACA,WACA,WACA,+BACA,YACA,WACA,cACA,SACA,aACA,UACA,cACA,iBACA,UACA,WACA,sBACA,WACA,SACA,kBACA,aACA,eACA,WACA,aACA,WACA,WACA,YACA,YACA,SACA,UACA,UACA,cACA,cACA,qBACA,UACA,cACA,WACA,aACA,YACA,cACA,gBACA,WACA,aACA,wBACA,WACA,UACA,qBACA,QACA,wBACA,iBACA,gBACA,YACA,aACA,WACA,WACA,eACA,oBACA,YACA,QACA,YACA,UACA,cACA,aACA,oBACA,aACA,WACA,WACA,oBACA,SACA,aACA,eACA,SACA,YACA,SACA,4BACA,WACA,UACA,4CACA,iBACA,wBACA,eACA,mBACA,iCACA,sBACA,SACA,cACA,aACA,yBACA,aACA,UACA,cACA,iBACA,cACA,kCACA,SACA,UACA,YACA,mBACA,SACA,eACA,iBACA,UACA,aACA,WACA,aACA,8BACA,QACA,UACA,QACA,SACA,YACA,cACA,YACA,OACA,WACA,YACA,SACA,gBACA,4BACA,WACA,UACA,4BACA,WACA,kBACA,UACA,YACA,qBACA,UACA,WACA,YACA,cACA,YACA,4BACA,aACA,aACA,uBACA,UAC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","x_google_ignoreList":[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36]}