{"version":3,"sources":["services/analytics/base.ts","services/analytics/matomoClient.ts","services/analytics/analyticsClient.ts","utils/generate-id.ts","utils/error.ts","services/http.ts","queries/questionnaire.ts","services/questionnaire.ts","services/luckyOrange.ts","services/storage.ts","services/gtm.ts","../../src/components/Calendar.tsx","../../src/components/theme.ts","../../src/components/MainLayout/MainLayoutContext.tsx","../../src/components/DefaultSwitch.tsx","../../src/components/MainLayout/MainContent.tsx","../../src/components/SearchBox.tsx","../../src/models/table.ts","../../src/constants/keycode.ts","../../src/components/table/components/TableHeader.tsx","../../src/components/table/components/TablePagination.tsx","../../src/components/table/models/col-data-type.ts","../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../../node_modules/object-assign/index.js","../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../../node_modules/prop-types/node_modules/react-is/index.js","../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../node_modules/prop-types/lib/has.js","../../../../node_modules/prop-types/checkPropTypes.js","../../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../../node_modules/prop-types/index.js","../../../../node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","../../../../node_modules/react-perfect-scrollbar/lib/scrollbar.js","../../src/components/TimePickerField/model.ts","../../../../node_modules/react-perfect-scrollbar/lib/index.js","../../src/components/TextFieldWithText.tsx","../../src/components/TimePickerField/utils.ts","../../src/models/config.ts","../../src/constants/service.ts","locales lazy /^/.//.*$/ groupOptions: {} namespace object","i18n.ts","theme.ts","components/ConsentCheck.ts","components/Analytics.tsx","components/FacebookPixel.tsx","components/Favicon.tsx","../../src/contexts/MapContext.tsx","../../src/components/MapProvider.tsx","../../src/components/LoadMapApi.tsx","utils/history.ts","routes/ErrorPage.ts","routes/Legal.ts","routes/Questionnaire.ts","routes/Thankyou.ts","routes/AnalyticsRouter.tsx","utils/routes.ts","routes/index.tsx","App.tsx","index.tsx","utils/appState.tsx","utils/config.ts","services/analytics/types.ts"],"names":["BaseAnalyticsClient","siteId","siteUrl","history","payload","value","piwik","alreadyInit","MatomoClient","ReactPiwik","url","script","document","createElement","innerHTML","replace","head","insertBefore","childNodes","console","log","connectToHistory","push","pageUrl","pageTitle","Types","TenantId","QuestionnaireId","category","eventAction","eventName","AnalyticsClient","smsClientType","MATOMO","Client","init","generateId","d","Date","getTime","d2","performance","now","c","r","Math","random","floor","toString","randomString","length","includeUpper","lowercase","uppercase","numbers","characters","charactersLength","result","i","charAt","extractError","error","errors","map","message","flatten","Object","values","axios","Axios","create","baseURL","getConfig","ServerUrl","undefined","timeout","interceptors","request","use","a","config","headers","Promise","reject","response","data","includes","toast","join","position","autoClose","hideProgressBar","closeOnClick","pauseOnHover","draggable","progress","useAdminConfig","useQuery","API","get","then","res","LuckyOrangeClass","containerId","initialized","this","configure","window","_loq","id","LOQ","LO","$internal","ready","visitor","identify","tag","object","usePTID","isEnabled","hasLocalStorage","today","storageGet","PTID","expiry","setNewPTID","enabled","newPTID","addYears","storageSet","luckyOrange","EStorageKeys","key","localforage","setItem","getItem","GTM","noscript","body","dataLayer","gtm","Calendar","date","setDate","controls","display","min","firstDay","onCellClick","e","defaultSelection","hexToRgbA","hex","alpha","hexToRgb","rgb","setOptions","theme","themeVariant","backdropZIndex","boxShadow","fontFamily","colors","primary","main","light","dark","secondary","success","warning","info","grey","DEFAULT","white","MuiTheme","palette","typography","h1","fontWeight","letterSpacing","lineHeight","fontSize","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","textTransform","button","overrides","MuiLinearProgress","root","height","barColorPrimary","backgroundColor","colorPrimary","MuiTypography","color","colorSecondary","colorTextSecondary","MuiGrid","borderBottom","top","left","transform","MuiPaper","border","MuiTableCell","opacity","MuiTableRow","MuiSelect","background","select","borderRadius","paddingLeft","paddingRight","marginRight","filled","padding","borderColor","selectMenu","margin","MuiTableSortLabel","active","MuiInputBase","width","textAlign","input","MuiOutlinedInput","notchedOutline","borderWidth","inputAdornedEnd","MuiButton","minWidth","contained","containedPrimary","containedSecondary","outlined","outlinedPrimary","outlinedSecondary","MuiIconButton","sizeSmall","MuiTextField","MuiMenuItem","MuiListItem","MuiFormLabel","MuiFormControl","MuiSvgIcon","MuiChip","deleteIcon","MuiSwitch","switchBase","thumb","track","MuiCheckbox","MuiDivider","MuiTab","CollapsedContext","createTheme","makeStyles","checkIcon","closeIcon","right","createContext","SetCollapsedContext","MobileOpenContext","SetMobileOpenContext","BannerContext","showBanner","bannerContent","setBannerState","React","option","EOrderDirection","EKeyCode","EColumnDataType","b","Symbol","f","g","h","k","l","m","n","p","q","t","v","w","x","y","z","u","A","getOwnPropertySymbols","process","module","hasOwnProperty","propIsEnumerable","toObject","val","TypeError","test1","String","test2","order2","test3","letter","err","shouldUseNative","Function","checkPropTypes","typeSpecs","location","componentName","getStack","emptyFunction","emptyFunctionWithReset","secret","Error","shim","ReactPropTypes","array","bigint","bool","func","number","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","resetWarningCache","require$$2","const","let","_extends","target","arguments","source","_createClass","props","descriptor","Constructor","protoProps","staticProps","defineProperties","_react2","_interopRequireDefault","_perfectScrollbar2","obj","default","handlerNameByEvent","ScrollBar","_Component","instance","_classCallCheck","_this","ReferenceError","call","_possibleConstructorReturn","superClass","subClass","constructor","enumerable","writable","configurable","_inherits","options","prevProps","_this2","_this3","callback","prevCallback","prevHandler","handler","className","psClassNames","_container","split","filter","name","ref","_props","style","component","children","remainProps","keys","_objectWithoutProperties","Comp","handleRef","_react","exports","containerRef","onScrollY","onScrollX","onScrollUp","onScrollDown","onScrollLeft","onScrollRight","onYReachStart","onYReachEnd","onXReachStart","onXReachEnd","onSync","ps","_propTypes","_scrollbar2","customTextField","Shift","ASSESSMENT","PRICING","CORE","STORE","FeatureNames","webpackAsyncContext","req","__webpack_require__","o","resolve","code","ids","LOCALES","BaseMuiTheme","breakpoints","xs","sm","md","lg","xl","defaultLocale","en","locale","messages","i18n","load","activate","loadLocaleData","plurals","getConsentForCategory","termlyCacheString","localStorage","consentInfo","JSON","parse","analytics","advertising","essential","social_networking","Analytics","featureLOEnabled","useFeature","LuckyOrange","useAppContext","state","luckyOrangeSiteId","gtmId","questionnaireAnalytics","useState","hasAnalyticsConsent","setHasAnalyticsConsent","useEffect","initialize","handleConsentChange","addEventListener","removeEventListener","FacebookPixel","facebookPixelId","Helmet","type","Favicon","adminConfig","isWhiteLabel","tenantName","title","questionnaireName","faviconIcon","faviconUrl","rel","href","sizes","content","property","MapContext","scriptLoaded","MapProvider","googleMapKey","setScriptLoaded","googleMapScript","mapsURL","scripts","loadMapApi","createBrowserHistory","ErrorRouter","path","lazy","LegalRouter","CookiesPage","PrivacyPage","TermsPage","QuestionnaireRoutes","Questionnaire","ThankRoutes","ThankPage","routes","flattenRoutes","reduce","route","rest","item","AppRoute","Component","render","fallback","AnalyticsRouter","initClient","ClientType","setTenantId","tenantId","connectToRoutes","ReactRouterRoute","RouteComponent","NoAnalyticsRouter","AppRoutes","featureConfig","Maps","GoogleMapsApiKey","analyticFeatureEnabled","analyticsConfig","hasAdvertisingConsent","setHasAdvertisingConsent","MatomoSiteId","MatomoSiteUrl","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","staleTime","App","dynamicActivate","ThemeProvider","forceRenderOnLocaleChange","client","ReactDOM","Fragment","getElementById","AppActionTypes","initState","loading","currency","features","questionnaireData","outcomeData","AppContext","stateReducer","action","Loading","Unloading","ToggleLoading","SetLuckyOrangeSite","SetAdminConfig","SetHasLocalStorage","SetQuestionnaireAnalytics","SetTheme","SetCurrency","SetFeature","SetQuestionnaireData","SetOutcomeData","SetPTID","AppProvider","dispatch","openLoading","closeLoading","toggleLoading","setLuckyOrangeSiteId","setAdminConfig","setQuestionnaireAnalytics","setHasLocalStorage","setTheme","setCurrency","setFeatures","setQuestionnaireData","setOutcomeData","setPTID","adminConfigData","isLoading","catch","services","coreFeatures","find","s","isWhiteLabelConfig","settings","assessmentFeatures","storeFeatures","pricingFeatures","currencySetting","customerFeatures","_adminConfig","isEqual","currencyConfig","Provider","REACT_APP_SERVER_URL","REACT_APP_TENANT_ID","MatomoTag","featureName","feature","EventCategory","CustomDimension"],"mappings":"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B,MACpBA,EADoB,mBAEpBA,EAFoB,oBDfvB,SAAYC,GACVA,6BACAA,iBACAA,sBACAA,sBACAA,oBACAA,kBACAA,qCACAA,4BACAA,kBACAA,sBACAA,wBACAA,4BACAA,kBACAA,oBACAA,oBACAA,gBACAA,sBACAA,oBACAA,wBACAA,wBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,cACAA,0BACAA,gCACAA,0BACAA,0BACAA,0BACAA,0BACAA,2BACAA,2BACAA,2BACAA,2BACAA,2BACAA,2BACAA,8BACAA,8BACAA,8BACAA,8BACAA,8BACAA,iBACAA,iBACAA,iBACAA,iBACAA,iBACAA,iBACAA,iBACAA,iBACAA,iBACAA,mBACAA,mBACAA,mBACAA,2BACAA,iCACAA,iCACAA,qCACAA,kBACAA,kBACAA,kBACAA,kBACAA,kBACAA,kBACAA,kBACAA,kBACAA,oBACAA,kBACAA,kBApGF,CAAYA,MAAZ,KEOA,ICPA,E,kKAAA,SAAYC,GACVA,cACAA,kBACAA,gBACAA,sBACAA,cACAA,cACAA,sBACAA,YACAA,oBACAA,kBACAA,gBACAA,sBACAA,gBACAA,oBACAA,sBAfF,CAAYA,MAAZ,KCSa,IAAIC,EAAE,4BAA4BC,OAAM,IAAKhP,EAAE+O,EAAEC,OAAM,IAAP,iBAAhD,MAAmFtP,EAAEqP,EAAEC,OAAM,IAAP,gBAAtF,MAAwHtI,EAAEqI,EAAEC,OAAM,IAAP,kBAA3H,MAA+JC,EAAEF,EAAEC,OAAM,IAAP,qBAAlK,MAAyME,EAAEH,EAAEC,OAAM,IAAP,kBAA5M,MAAgPG,EAAEJ,EAAEC,OAAM,IAAP,kBAAnP,MAAuRI,EAAEL,EAAEC,OAAM,IAAP,iBAA1R,MAA6TK,EAAEN,EAAEC,OAAM,IAAP,oBAAhU,MAAs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","file":"static/js/main.313474fa.chunk.js","sourcesContent":["import { SafeAny } from '@models/common';\r\nimport * as Types from './types';\r\nexport abstract class BaseAnalyticsClient {\r\n // eslint-disable-next-line\r\n public init(siteId: SafeAny, siteUrl: string) {\r\n // NOT IMPLEMENTED\r\n }\r\n\r\n // eslint-disable-next-line\r\n public connectToRoutes(history: SafeAny): SafeAny {\r\n throw \"NOT IMPLEMENTED\"\r\n }\r\n\r\n // eslint-disable-next-line\r\n public trackPageView(payload: Types.PageViewPayload) {\r\n // NOT IMPLEMENTED\r\n }\r\n\r\n // eslint-disable-next-line\r\n public trackEvent(payload: Types.EventPayload) {\r\n // NOT IMPLEMENTED\r\n }\r\n\r\n // eslint-disable-next-line\r\n public setTenantId(value: string) {\r\n // NOT IMPLEMENTED\r\n }\r\n\r\n // eslint-disable-next-line\r\n public setQuestionnaireId(value: string) {\r\n // NOT IMPLEMENTED\r\n }\r\n}\r\n","import { SafeAny } from '@models/common';\r\nimport ReactPiwik from 'react-piwik';\r\nimport { BaseAnalyticsClient } from './base';\r\nimport * as Types from './types';\r\n\r\nlet piwik = {}\r\nlet alreadyInit = false;\r\nexport class MatomoClient extends BaseAnalyticsClient {\r\n public constructor() {\r\n super();\r\n }\r\n\r\n public init(siteId: SafeAny, siteUrl: string): void {\r\n if (alreadyInit || !siteId || !siteUrl)\r\n return;\r\n piwik = new ReactPiwik({\r\n url: siteUrl,\r\n siteId,\r\n });\r\n const script = document.createElement('script');\r\n script.innerHTML = `\r\n var _paq = window._paq = window._paq || [];\r\n /* tracker methods like \"setCustomDimension\" should be called before \"trackPageView\" */\r\n _paq.push(['trackPageView']);\r\n _paq.push(['enableLinkTracking']);\r\n (function() {\r\n var u=\"` + siteUrl + `\";\r\n _paq.push(['setTrackerUrl', u+'/matomo.php']);\r\n _paq.push(['setSiteId', '` + siteId + `']);\r\n var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];\r\n g.async=true; g.src='//cdn.matomo.cloud/` + siteUrl.replace('https://', '') +`/matomo.js'; s.parentNode.insertBefore(g,s);\r\n })();\r\n `;\r\n document.head.insertBefore(script, document.head.childNodes[0]);\r\n alreadyInit = true;\r\n console.log('Analytics tracking enabled');\r\n }\r\n\r\n public connectToRoutes(history: SafeAny): SafeAny {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n return piwik.connectToHistory(history); \r\n }\r\n\r\n public trackPageView(payload: Types.PageViewPayload) {\r\n if (alreadyInit) {\r\n ReactPiwik.push(['setCustomUrl', payload.pageUrl]);\r\n ReactPiwik.push(['setDocumentTitle', payload.pageTitle]);\r\n ReactPiwik.push(['trackPageView']);\r\n }\r\n }\r\n\r\n public setTenantId(value: string): void {\r\n if (alreadyInit) {\r\n ReactPiwik.push(['setCustomDimension', Types.CustomDimension.TenantId, value])\r\n }\r\n }\r\n\r\n public setQuestionnaireId(value: string): void {\r\n if (alreadyInit) {\r\n ReactPiwik.push(['setCustomDimension', Types.CustomDimension.QuestionnaireId, value])\r\n }\r\n }\r\n\r\n public trackEvent(payload: Types.EventPayload) {\r\n if (alreadyInit) {\r\n ReactPiwik.push([\r\n 'trackEvent', \r\n payload.category, \r\n payload.eventAction, \r\n payload.eventName\r\n ]); \r\n }\r\n }\r\n}\r\n","import { SafeAny } from \"@models/common\";\r\nimport { BaseAnalyticsClient } from \"./base\";\r\nimport { MatomoClient } from \"./matomoClient\";\r\nimport * as Types from './types';\r\n\r\nexport class AnalyticsClient {\r\n public static Client: BaseAnalyticsClient = new MatomoClient();\r\n public initClient(smsClientType: Types.ClientType, siteId: SafeAny, siteUrl: string) {\r\n switch (smsClientType) {\r\n case Types.ClientType.MATOMO:\r\n AnalyticsClient.Client = new MatomoClient();\r\n AnalyticsClient.Client.init(siteId, siteUrl);\r\n }\r\n }\r\n}\r\n","export function generateId() {\n let d = new Date().getTime(); //Timestamp\n let d2 = (performance && performance.now && performance.now() * 1000) || 0; //Time in microseconds since page-load or 0 if unsupported\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = Math.random() * 16; //random number between 0 and 16\n if (d > 0) {\n //Use timestamp until depleted\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n } else {\n //Use microseconds since page-load if supported\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n}\n\nexport function randomString(length: number, includeUpper = false) {\n const lowercase = 'abcdefghijklmnopqrstuvwxyz';\n const uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const numbers = '0123456789';\n\n let characters = lowercase + numbers;\n if (includeUpper) {\n characters += uppercase;\n }\n\n const charactersLength = characters.length;\n\n let result = '';\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n","import { Dictionary } from '@models/common';\nimport { flatten } from 'lodash-es';\n\nexport function extractError(error: Dictionary): string[] {\n if (error.errors) {\n return error.errors.map((i: Dictionary) => i.message);\n }\n return flatten(Object.values(error.errors));\n}\n","import { getConfig } from '@utils/config';\nimport { extractError } from '@utils/error';\nimport Axios from 'axios';\nimport { toast } from 'react-toastify';\n\nconst axios = Axios.create({\n baseURL: getConfig().ServerUrl || undefined,\n timeout: 30000\n});\n\naxios.interceptors.request.use(\n async function (config) {\n if (getConfig().TenantId) {\n config.headers.TenantId = getConfig().TenantId;\n }\n return config;\n },\n function (error) {\n // Do something with request error\n return Promise.reject(error);\n }\n);\n\naxios.interceptors.response.use(undefined, async (error) => {\n const errors = extractError(error.response.data);\n if (errors && !errors.includes('Tenant is not active')) {\n toast.error(errors.join(', '), {\n position: 'top-center',\n autoClose: 5000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined\n });\n }\n return Promise.reject(error);\n});\n\nexport default axios;\n","import { SafeAny } from '@models/common';\nimport { Product } from '@models/product';\nimport { CompleteQuestionnaireReq, QuestionnaireElements } from '@models/questionnaire';\nimport {\n completeQuestionnaire,\n getAdminConfig,\n getOutcomePublic,\n getProductByIds,\n getQuestionnaireDetailsById,\n getThemeByQuestionnaireId\n} from '@services/questionnaire';\nimport { EStorageKeys, storageGet, storageSet } from '@services/storage';\nimport { QuestionnaireDetails } from '@swyft/questionnaire';\nimport { generateId } from '@utils/generate-id';\nimport { useMutation, UseMutationResult, useQuery, useQueryClient, UseQueryOptions, UseQueryResult } from 'react-query';\n\nconst ADMIN_CONFIG = 'ADMIN_CONFIG';\n\nexport const useQuestionnaireDetails = (\n id: string,\n options?: Omit, 'queryKey' | 'queryFn'>\n) =>\n useQuery([id], () => getQuestionnaireDetailsById(id), {\n ...options\n }) as UseQueryResult;\n\nexport const useQuestionnaireState = (\n questionnaireId: string\n): [UseQueryResult, UseMutationResult] => {\n const clientQuery = useQueryClient();\n return [\n useQuery([questionnaireId + '-state'], () =>\n storageGet(questionnaireId + '-state').then((res) => {\n if (res) {\n return res;\n } else {\n return storageSet(questionnaireId + '-state', {\n id: generateId(),\n questionnaireId,\n answerSelectionIds: [],\n questionFieldSubmissions: []\n });\n }\n })\n ),\n useMutation((state: CompleteQuestionnaireReq) => storageSet(questionnaireId + '-state', state), {\n onSuccess: () => clientQuery.invalidateQueries([questionnaireId + '-state'])\n })\n ];\n};\n\nexport const useCurrentQuestionId = (questionnaireId: string) =>\n useQuery([questionnaireId + '-current'], () => storageGet(questionnaireId + '-current'));\n\nexport const useSetCurrentQuestionId = (questionnaireId: string) => {\n const clientQuery = useQueryClient();\n return useMutation((id: string) => storageSet(questionnaireId + '-current', id), {\n onSuccess: () => clientQuery.invalidateQueries([questionnaireId + '-current'])\n });\n};\n\nexport const useCompleteQuestionnaire = () =>\n useMutation((params: CompleteQuestionnaireReq) => completeQuestionnaire(params));\n\nexport const useQuestionnaireActiveStep = (\n questionnaireId: string\n): [UseQueryResult, UseMutationResult] => {\n const clientQuery = useQueryClient();\n return [\n useQuery([questionnaireId + '-activeStep'], () =>\n storageGet(questionnaireId + '-activeStep').then((res) => {\n if (res) {\n return res;\n } else {\n return storageSet(questionnaireId + '-activeStep', 1);\n }\n })\n ),\n useMutation((activeStep: number) => storageSet(questionnaireId + '-activeStep', activeStep), {\n onSuccess: () => clientQuery.invalidateQueries([questionnaireId + '-activeStep'])\n })\n ];\n};\n\nexport const useQuestionnaireTheme = (\n questionnaireId: string,\n options?: Omit, 'queryKey' | 'queryFn'>\n) =>\n useQuery([`theme-${questionnaireId}`], () => getThemeByQuestionnaireId(questionnaireId), {\n ...options\n }) as UseQueryResult;\n\nexport const useCurrentTheme = () =>\n useQuery([EStorageKeys.CURRENT_THEME], () => storageGet(EStorageKeys.CURRENT_THEME));\n\nexport const useOutcomePublic = (id: string) => useQuery([id], () => getOutcomePublic(id), { retry: false });\n\nexport const useProducts = (\n ids: string[],\n options?: Omit, 'queryKey' | 'queryFn'>\n) =>\n useQuery([ids.join(',')], () => getProductByIds(ids), {\n ...options\n }) as UseQueryResult;\n\nexport const useGTMId = () => useQuery([EStorageKeys.GTM_ID], () => storageGet(EStorageKeys.GTM_ID));\n\nexport const useFacebookPixel = () =>\n useQuery([EStorageKeys.FACEBOOK_PIXEL], () => storageGet(EStorageKeys.FACEBOOK_PIXEL));\n\nexport const useTitle = () => useQuery([EStorageKeys.TITLE], () => storageGet(EStorageKeys.TITLE));\n\nexport const useCurrencyStorage = () =>\n useQuery(['GET_CURRENCY_STORAGE'], () => {\n return storageGet(EStorageKeys.CURRENCY).then((data) => {\n return { name: data['Currency.Name'], symbol: data['Currency.Symbol'] };\n });\n });\n\nexport const useAdminConfig = () => useQuery([ADMIN_CONFIG], () => getAdminConfig());\n","import { SafeAny } from '@models/common';\nimport { Product } from '@models/product';\nimport { CompleteQuestionnaireReq, QuestionnaireTheme } from '@models/questionnaire';\nimport { Lead, OutcomePublic, QuestionnaireDetails } from '@swyft/questionnaire';\nimport { AdminConfig } from '@swyft/ui';\nimport API from './http';\n\nexport const getQuestionnaireDetailsById = (id: string): Promise => {\n return API.get(`/api/Assessments/public/Questionnaire/${id}`).then((res) => res.data);\n};\n\nexport const getOutcomePublic = (id: string): Promise => {\n return API.get(`/api/Assessments/public/Outcome/${id}`)\n .then((res) => res.data)\n .catch(() => null);\n};\n\nexport const completeQuestionnaire = (params: CompleteQuestionnaireReq) =>\n API.post('/api/Assessments/public/CompletedQuestionnaire', params).then((res) => res.data);\n\nexport const getProductByIds = (ids: string[]): Promise => {\n const productIds = ids.join('&productIds=');\n return API.get(`/api/pricing/public/Product/list?productIds=${productIds}`).then((res) => res.data);\n};\n\nexport const getThemeById = (id: string): Promise =>\n API.get(`/api/assessments/public/theme/${id}`).then((res) => res.data);\n\nexport const getThemeByQuestionnaireId = (id: string): Promise =>\n API.get(`/api/assessments/public/theme/questionnaire/${id}`).then((res) => res.data);\n\nexport const createLead = (lead: Lead): Promise =>\n API.post('/api/store/public/Lead', lead).then((res) => res.data);\n\nexport const getAdminConfig = (): Promise => {\n return API.get('/api/config').then((res) => res.data);\n};\n","import { SafeAny } from '@models/common';\nimport { randomString } from '@utils/generate-id';\nimport { addYears } from 'date-fns';\nimport { useQuery } from 'react-query';\nimport { storageGet, storageSet } from './storage';\n\ninterface LOConfig {\n containerId: string | null;\n}\n\nclass LuckyOrangeClass {\n containerId: string | null = null;\n initialized = false;\n configure(config: LOConfig) {\n this.containerId = config.containerId;\n }\n\n initialize(config: LOConfig) {\n if (this.initialized) {\n return;\n }\n\n if (!config.containerId) {\n console.log('no LuckOrange ID');\n return;\n }\n\n this.configure(config);\n\n const script = document.createElement('script');\n\n script.innerHTML = `\n (function() {\n var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true; wa.defer = true;\n wa.src='https://tools.luckyorange.com/core/lo.js?site-id=${this.containerId}';\n var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);\n })();\n `;\n\n document.head.insertBefore(script, document.head.childNodes[0]);\n console.log('LuckOrange enabled');\n this.initialized = true;\n }\n\n // eslint-disable-next-line class-methods-use-this\n push(...args: SafeAny) {\n if (!(window as SafeAny)._loq) {\n (window as SafeAny)._loq = [];\n }\n\n (window as SafeAny)._loq.push(...args);\n }\n\n identify(id: string) {\n (window as SafeAny).LOQ = (window as SafeAny).LOQ || [];\n (window as SafeAny).LOQ.push([\n 'ready',\n async (LO: SafeAny) => {\n // identify a visitor\n await LO.$internal.ready('visitor');\n LO.visitor.identify(id);\n }\n ]);\n }\n\n tag(tag: string) {\n this.push(['tag', tag]);\n }\n\n custom(object: SafeAny) {\n this.push(['custom', object]);\n }\n}\n\nexport const usePTID = (isEnabled: boolean, hasLocalStorage: boolean) => {\n const today = new Date();\n return useQuery(\n ['PTID'],\n () =>\n hasLocalStorage\n ? storageGet('PTID').then((res) => {\n if (res) {\n const { PTID = '', expiry = 0 } = res;\n if (!PTID || expiry <= today.getTime()) {\n const newPTID = setNewPTID(hasLocalStorage);\n return newPTID.PTID;\n }\n return PTID;\n } else {\n const newPTID = setNewPTID(hasLocalStorage);\n return newPTID.PTID;\n }\n })\n : setNewPTID(hasLocalStorage).PTID,\n { enabled: isEnabled }\n );\n};\n\nconst setNewPTID = (hasLocalStorage: boolean) => {\n const today = new Date();\n const newPTID = {\n PTID: randomString(10),\n expiry: addYears(today, 1).getTime()\n };\n if (hasLocalStorage) {\n storageSet('PTID', newPTID);\n }\n return newPTID;\n};\n\nexport const luckyOrange = new LuckyOrangeClass();\n","import { SafeAny } from '@models/common';\nimport localforage from 'localforage';\n\nexport enum EStorageKeys {\n QUESTIONNAIRE_STATE = 'QUESTIONNAIRE_STATE',\n CURRENT_QUESTIONNAIRE_ID = 'CURRENT_QUESTIONNAIRE_ID',\n CURRENT_THEME = 'CURRENT_THEME',\n GTM_ID = 'GTM_ID',\n CURRENCY = 'CURRENCY',\n TITLE = 'TITLE',\n FACEBOOK_PIXEL = 'FACEBOOK_PIXEL'\n}\n\nexport const storageSet = (key: EStorageKeys | string, value: SafeAny) => {\n return localforage.setItem(key, value);\n};\n\nexport const storageGet = (key: EStorageKeys | string): Promise => {\n return localforage.getItem(key);\n};\n\nexport const storageRemove = (key: EStorageKeys | string) => {\n return localforage.removeItem(key);\n};\n\nexport const storageClear = (keys?: string[]) => {\n if (!keys) {\n return localforage.clear();\n }\n\n return Promise.all(keys.map((key) => localforage.removeItem(key)));\n};\n","import { SafeAny } from '@models/common';\n\ninterface GTMConfig {\n containerId: string | null;\n}\n\nclass GTM {\n containerId: string | null = null;\n\n initialized = false;\n\n configure(config: GTMConfig) {\n this.containerId = config.containerId;\n }\n\n initialize(config: GTMConfig) {\n if (this.initialized) {\n // console.log('Initialize - Already has GTM');\n return;\n }\n\n if (!config.containerId) {\n // console.log('Initialize - no GTM ID');\n return;\n }\n\n this.configure(config);\n\n const script = document.createElement('script');\n const noscript = document.createElement('noscript');\n\n script.innerHTML = `\n (function (w, d, s, l, i) {\n w[l] = w[l] || [];\n w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });\n var f = d.getElementsByTagName(s)[0],\n j = d.createElement(s),\n dl = l != 'dataLayer' ? '&l=' + l : '';\n j.async = true;\n j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;\n f.parentNode.insertBefore(j, f);\n })(window, document, 'script', 'dataLayer', '${this.containerId}');\n `;\n noscript.innerHTML = `\n \n `;\n\n document.head.insertBefore(script, document.head.childNodes[0]);\n document.body.insertBefore(noscript, document.body.childNodes[0]);\n\n // console.log('GTM enabled');\n this.initialized = true;\n }\n\n // eslint-disable-next-line class-methods-use-this\n push(...args: SafeAny) {\n if (!(window as SafeAny).dataLayer) {\n (window as SafeAny).dataLayer = [];\n }\n \n (window as SafeAny).dataLayer.push(...args);\n }\n}\n\n// Singleton\nexport const gtm = new GTM();","import { Datepicker, Page, setOptions } from '@mobiscroll/react';\nimport '@mobiscroll/react/dist/css/mobiscroll.scss';\n\nimport React from 'react';\n\nsetOptions({\n theme: 'material',\n themeVariant: 'light'\n});\n\nexport function Calendar({ date, setDate }: { date: any; setDate: (date: Date | null) => void }) {\n const handleSetDate = (e: any) => {\n setDate(e.date);\n };\n\n return (\n \n \n \n );\n}\n","import { createTheme, hexToRgb, ThemeOptions } from '@material-ui/core';\n\nexport function hexToRgbA(hex: string, alpha = 1) {\n const rgb = hexToRgb(hex);\n return rgb.replace(')', ',' + alpha + ')');\n}\n\nexport const backdropZIndex = 99999999;\n\nexport const boxShadowUp = '6px 0px 6px 2px rgba(0, 0, 0, 0.16)';\n\nexport const boxShadow =\n '0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12)';\n\nconst fontFamily = 'OpenSans, sans-serif';\n\nexport const colors = {\n primary: {\n main: '#8039F2',\n light: '#A26DE9',\n dark: '#4500be',\n 50: '#efe4fd',\n 100: '#d5bef9',\n 200: '#b892f6',\n 300: '#9a62f4',\n 400: '#8039f2',\n 500: '#6200ee',\n 600: '#5500e8',\n 700: '#3f00e0',\n 800: '#2000dc',\n 900: '#0000cd'\n },\n secondary: {\n main: '#22214E',\n light: '#463F6D',\n dark: '#000026',\n 50: '#e7e9f0',\n 100: '#c3c7da',\n 200: '#9ca2c1',\n 300: '#787fa7',\n 400: '#5d6496',\n 500: '#434a86',\n 600: '#3d437d',\n 700: '#353a72',\n 800: '#2e3165',\n 900: '#22214E'\n },\n success: {\n main: '#57BE3F',\n light: '#cdecc5',\n dark: '#178D03'\n },\n error: {\n main: '#FF4040',\n light: '#ffd9d9',\n dark: '#C40018'\n },\n warning: {\n main: '#F9A822',\n light: '#feeed3',\n dark: '#C17900'\n },\n info: {\n main: '#1CA2F9',\n light: '#d2ecfe',\n dark: '#0074C6'\n },\n grey: {\n 50: '#ecedff',\n 100: '#cdd7f1',\n 200: '#b3bcda',\n 300: '#97a1c3',\n 400: '#818db1',\n 500: '#6c79a1',\n 600: '#5d6b8f',\n 700: '#4c5878',\n 800: '#3C4561',\n 900: '#283149',\n DEFAULT: '#4c5878'\n },\n white: '#FFFFFF'\n};\n\nexport const MuiTheme: ThemeOptions = {\n palette: {\n primary: {\n main: colors.primary.main,\n light: colors.primary.light,\n dark: colors.primary.dark\n },\n secondary: {\n main: colors.secondary.main,\n light: colors.secondary.light,\n dark: colors.secondary.dark\n },\n success: {\n main: colors.success.main,\n light: colors.success.light,\n dark: colors.success.dark\n },\n error: {\n main: colors.error.main,\n light: colors.error.light,\n dark: colors.error.dark\n },\n warning: {\n main: colors.warning.main,\n light: colors.warning.light,\n dark: colors.warning.dark\n },\n info: {\n main: colors.info.main,\n light: colors.info.light,\n dark: colors.info.dark\n }\n },\n typography: {\n fontFamily: fontFamily,\n h1: {\n fontWeight: 300,\n letterSpacing: -1.5,\n lineHeight: '110px',\n fontSize: '6rem'\n },\n h2: {\n fontWeight: 300,\n letterSpacing: -0.5,\n lineHeight: '82px',\n fontSize: '3.75rem'\n },\n h3: {\n fontWeight: 400,\n letterSpacing: 0,\n lineHeight: '60px',\n fontSize: '3rem'\n },\n h4: {\n fontWeight: 400,\n letterSpacing: 0.25,\n lineHeight: '48px',\n fontSize: '2.125rem'\n },\n h5: {\n fontWeight: 400,\n letterSpacing: 0,\n lineHeight: '34px',\n fontSize: '1.5rem'\n },\n h6: {\n fontWeight: 500,\n letterSpacing: 0.15,\n lineHeight: '28px',\n fontSize: '1.125rem'\n },\n subtitle1: {\n fontWeight: 400,\n letterSpacing: 0.15,\n lineHeight: '24px',\n fontSize: '1rem'\n },\n subtitle2: {\n fontWeight: 500,\n letterSpacing: 0.1,\n lineHeight: '24px',\n fontSize: '0.875rem'\n },\n body1: {\n fontWeight: 400,\n letterSpacing: 0.5,\n lineHeight: '28px',\n fontSize: '1rem'\n },\n body2: {\n fontWeight: 400,\n letterSpacing: 0.25,\n lineHeight: '20px',\n fontSize: '0.875rem'\n },\n caption: {\n fontWeight: 400,\n letterSpacing: 0.4,\n lineHeight: '16px',\n fontSize: '0.75rem'\n },\n overline: {\n fontWeight: 400,\n letterSpacing: 1.5,\n lineHeight: '16px',\n fontSize: '0.625rem',\n textTransform: 'uppercase'\n },\n button: {\n fontWeight: 600,\n letterSpacing: 1.25,\n lineHeight: '16px',\n fontSize: '0.875rem'\n }\n },\n overrides: {\n MuiLinearProgress: {\n root: {\n height: 5\n },\n barColorPrimary: {\n backgroundColor: colors.primary.main\n },\n colorPrimary: {\n backgroundColor: colors.white\n }\n },\n MuiTypography: {\n root: {\n '&.semiBold': {\n fontWeight: 600\n },\n '&.labelText': {\n color: colors.grey[300]\n },\n '&.whiteText': {\n color: colors.white\n },\n color: colors.grey[700]\n },\n colorPrimary: {\n color: colors.primary.main\n },\n colorSecondary: {\n color: colors.secondary.main\n },\n colorTextSecondary: {\n color: colors.white\n }\n },\n MuiGrid: {\n root: {\n '&.swyft-border-bottom': {\n borderBottom: '1px solid #e5e7eb'\n },\n '&.swyft-no-data': {\n position: 'absolute',\n top: '30%',\n left: '50%',\n transform: 'translate(-50%,-50%)'\n }\n }\n },\n MuiPaper: {\n root: {\n color: colors.grey[700],\n '& .MuiAutocomplete-option[data-focus=\"true\"]': {\n backgroundColor: colors.primary[50]\n },\n '& .MuiAutocomplete-option[aria-selected=\"true\"]': {\n backgroundColor: colors.primary.light,\n color: colors.white\n },\n '& .MuiAutocomplete-option': {\n '& .MuiTypography-root': {\n color: 'inherit'\n }\n },\n '&.MuiAlert-standardError': {\n backgroundColor: colors.error.light,\n color: colors.error.main\n },\n '& .MuiPickersDay-day': {\n color: colors.grey[700],\n '&.MuiPickersDay-current': {\n backgroundColor: colors.primary.main,\n color: colors.white,\n '&.MuiPickersDay-daySelected': {\n color: colors.white,\n backgroundColor: colors.primary.main\n }\n },\n '&.MuiPickersDay-daySelected': {\n backgroundColor: colors.white,\n border: `1px solid ${colors.primary.main}`\n }\n }\n }\n },\n MuiTableCell: {\n root: {\n fontFamily: fontFamily,\n fontSize: '0.875rem',\n borderBottom: `1px solid ${colors.grey[50]}`,\n '& .MuiTableSortLabel-root.MuiTableSortLabel-active, & .MuiTableSortLabel-active > .MuiTableSortLabel-icon ': {\n color: colors.primary.light + '!important'\n }\n },\n head: {\n color: colors.grey.DEFAULT,\n fontWeight: 600,\n fontSize: '0.875rem',\n backgroundColor: colors.secondary[50]\n },\n body: {\n color: colors.grey.DEFAULT,\n opacity: 0.8\n }\n },\n MuiTableRow: {\n root: {\n '&.MuiTableRow-hover': {\n '&:hover': {\n backgroundColor: colors.primary[50]\n }\n }\n }\n },\n MuiSelect: {\n root: {\n background: colors.white,\n border: `1px solid ${colors.grey[100]}`,\n fontSize: '0.75rem'\n },\n select: {\n borderRadius: 4,\n paddingLeft: '1rem',\n paddingRight: '2.5rem!important',\n marginRight: '-0.35rem',\n '&:focus': {\n borderRadius: 4,\n backgroundColor: colors.white,\n border: `1px solid ${colors.primary.main}`\n },\n '&.Mui-disabled': {\n backgroundColor: colors.grey[50]\n }\n },\n filled: {\n padding: '0.75rem',\n borderColor: colors.grey[100],\n '& > .MuiSelect-selectMenu:hover': {\n background: colors.grey[100]\n }\n },\n selectMenu: {\n height: '24px',\n '&.lead-select': {\n height: 'auto',\n margin: 0\n }\n }\n },\n MuiTableSortLabel: {\n root: {\n '& > .MuiTableSortLabel-icon': {\n opacity: 1\n }\n },\n active: {\n '& > .MuiTableSortLabel-icon': {\n color: `${colors.primary.main}!important`\n }\n }\n },\n MuiInputBase: {\n root: {\n '&.swyft-input': {\n fontSize: '0.875rem'\n },\n '&.swyft-page-input, & .swyft-page-input': {\n fontSize: '12px',\n width: '40px',\n '& > input': {\n background: colors.white,\n textAlign: 'center',\n border: `1px solid ${colors.grey[100]}`,\n color: colors.grey[900],\n borderRadius: 3,\n '&:focus': {\n borderColor: colors.primary.main\n }\n }\n },\n '&.search-box': {\n fontSize: '0.875rem'\n },\n '&.lead-input': {\n background: colors.white,\n borderRadius: 5\n },\n '&.placeholder': {\n '& .MuiInputBase-input': {\n color: colors.grey[300]\n }\n }\n },\n input: {\n color: colors.grey[700],\n '&::placeholder': {\n color: colors.grey[300]\n }\n }\n },\n MuiOutlinedInput: {\n notchedOutline: {\n borderColor: colors.grey[100],\n borderWidth: '1px!important'\n },\n root: {\n '&.Mui-disabled .MuiOutlinedInput-notchedOutline': {\n borderColor: colors.grey[100]\n }\n },\n inputAdornedEnd: {\n marginRight: 10\n }\n },\n MuiButton: {\n root: {\n padding: '0.5rem 1rem',\n '&.MuiButton-outlined': {\n padding: '0.5rem 1rem'\n },\n '&.swyft-add': {\n height: 120,\n width: 120,\n padding: 15,\n '& > .MuiButton-label': {\n height: '100%',\n border: `1px dashed ${colors.primary.main}`,\n borderRadius: 4\n }\n },\n '&.swyft-page-icon': {\n width: 32,\n height: 32,\n minWidth: 0,\n borderRadius: '50%',\n background: colors.primary[50],\n color: colors.primary.main,\n margin: 2,\n '&:hover': {\n background: colors.primary[100]\n },\n '&.Mui-disabled': {\n color: colors.white,\n background: colors.primary[100]\n }\n },\n '&.swyft-normal': {\n fontWeight: 100,\n textTransform: 'capitalize'\n },\n '&.swyft-action': {\n minWidth: 97\n },\n '&.small-button': {\n textTransform: 'none',\n fontWeight: 400\n },\n '&.flat-button': {\n backgroundColor: colors.white,\n boxShadow: `0px 1px 4px ${colors.grey[100]}`,\n '&.primary-button': {\n color: colors.primary.main,\n '&:hover': {\n color: colors.primary.light,\n backgroundColor: colors.white\n },\n '&.Mui-disabled': {\n backgroundColor: colors.white,\n color: colors.primary[100]\n }\n },\n '&.secondary-button': {\n color: colors.secondary.main,\n '&:hover': {\n color: colors.secondary.light,\n backgroundColor: colors.white\n },\n '&.Mui-disabled': {\n backgroundColor: colors.white,\n color: colors.secondary[100]\n }\n },\n '&:active, &:focus': {\n backgroundColor: colors.white\n }\n },\n '&.rounded-circle-button': {\n minWidth: 0,\n width: '100%',\n height: '100%',\n borderRadius: '50%'\n },\n '&.round-button': {\n borderRadius: 45\n }\n },\n contained: {\n '& > .MuiButton-label': {\n color: colors.white\n }\n },\n containedPrimary: {\n '&.Mui-disabled': {\n backgroundColor: colors.primary[100],\n color: colors.white\n },\n '&:hover': {\n backgroundColor: colors.primary.light\n }\n },\n containedSecondary: {\n '&.Mui-disabled': {\n backgroundColor: colors.secondary[100],\n color: colors.white\n },\n '&:hover': {\n backgroundColor: colors.secondary.light\n }\n },\n outlined: {\n backgroundColor: colors.white\n },\n outlinedPrimary: {\n borderColor: colors.primary.main,\n '&.Mui-disabled': {\n backgroundColor: colors.white,\n color: colors.primary[100],\n borderColor: colors.primary[100]\n },\n '&:hover': {\n color: colors.primary.light,\n borderColor: colors.primary.light + '!important',\n backgroundColor: colors.white\n }\n },\n outlinedSecondary: {\n borderColor: colors.secondary.main,\n '&.Mui-disabled': {\n backgroundColor: colors.white,\n color: colors.secondary[100],\n borderColor: colors.secondary[100]\n },\n '&:hover': {\n color: colors.secondary.light,\n borderColor: colors.secondary.light + '!important',\n backgroundColor: colors.white\n }\n }\n },\n MuiIconButton: {\n root: {\n '&.swyft-bordered-button': {\n border: `1px solid rgba(0, 0, 0, 0.54)`\n },\n '&$disabled': {\n '&.disabled-icon': {\n color: colors.primary[100]\n }\n },\n '&.smallIcon': {\n padding: 0,\n '&:hover': {\n backgroundColor: 'unset'\n }\n }\n },\n colorPrimary: {\n '&.swyft-close-button': {\n backgroundColor: colors.primary.main,\n '& > .MuiIconButton-label': {\n color: colors.white\n }\n },\n '&.swyft-bordered-button': {\n backgroundColor: colors.white,\n border: `1px solid ${colors.primary.main}`\n }\n },\n sizeSmall: {\n width: 36,\n height: 36\n }\n },\n MuiTextField: {\n root: {\n borderColor: colors.grey[100],\n color: colors.grey[700],\n fontSize: '1rem',\n paddingRight: '0.275rem',\n paddingLeft: '0.275rem',\n '& > .Mui-focused .MuiInputAdornment-root ': {\n color: colors.primary.main\n },\n '& > .Mui-disabled': {\n backgroundColor: colors.grey[50]\n },\n '& .MuiInputAdornment-root': {\n color: colors.grey[700]\n }\n }\n },\n MuiMenuItem: {\n root: {\n fontSize: '0.875rem',\n '&.Swyft-MenuItem': {\n margin: '5px 0',\n '&.Mui-selected': {\n background: hexToRgbA(colors.primary.main, 0.1),\n color: colors.primary.main,\n fontWeight: 600,\n '&:hover': {\n background: hexToRgbA(colors.primary.main, 0.1)\n }\n }\n },\n '&.Border-MenuItem': {\n border: `1px solid ${colors.grey[100]}`,\n borderRadius: 3\n }\n }\n },\n MuiListItem: {\n button: {\n '&:hover': {\n backgroundColor: colors.primary[50]\n }\n },\n root: {\n '&.Mui-selected, &.Mui-selected:hover': {\n backgroundColor: colors.primary.light,\n color: colors.white\n },\n '&.selectPlaceholder': {\n display: 'none'\n }\n }\n },\n MuiFormLabel: {\n root: {\n fontFamily: fontFamily,\n color: colors.grey.DEFAULT,\n fontSize: '0.875rem',\n margin: '1rem 0'\n }\n },\n MuiFormControl: {\n root: {\n '& .Mui-error': {\n '& .MuiSelect-root': {\n borderColor: colors.error.main\n }\n }\n }\n },\n MuiSvgIcon: {\n root: {\n '&.extra-large': {\n fontSize: '6rem!important'\n },\n '&.success-icon': {\n color: colors.success.main\n },\n '&.warning-icon': {\n color: colors.warning.main\n }\n }\n },\n MuiChip: {\n root: {\n color: colors.white,\n backgroundColor: colors.primary.light\n },\n deleteIcon: {\n color: colors.white\n }\n },\n MuiSwitch: {\n root: {\n width: 42,\n height: 24,\n padding: 0,\n display: 'flex',\n borderRadius: 14,\n margin: '0 12px'\n },\n switchBase: {\n padding: 0,\n color: colors.secondary[50],\n transform: 'translate(5px, 5px)',\n '&$checked': {\n transform: 'translate(23px, 5px)',\n color: colors.white,\n '& + $track': {\n opacity: 1,\n backgroundColor: colors.primary.light\n }\n }\n },\n colorPrimary: {\n '&$checked': {\n '& + $track': {\n backgroundColor: colors.primary.light\n },\n '&$disabled': {\n '& + $track': {\n backgroundColor: colors.primary[50] + '!important'\n }\n }\n }\n },\n thumb: {\n width: 14,\n height: 14,\n boxShadow: `0px 1px 4px ${colors.grey[100]}`,\n backgroundColor: colors.white\n },\n track: {\n borderRadius: 16 / 2,\n opacity: 1,\n backgroundColor: colors.secondary[50]\n }\n },\n MuiCheckbox: {\n root: {\n color: colors.grey[100],\n backgroundColor: 'unset',\n '&:hover': {\n backgroundColor: 'unset'\n }\n },\n colorPrimary: {\n '&:hover': {\n color: colors.primary.main,\n '&.success': {\n color: colors.success.main\n },\n '&.warning': {\n color: colors.warning.main\n },\n '&.error': {\n color: colors.error.main\n },\n '&.info': {\n color: colors.info.main\n }\n },\n '&$checked': {\n '&:hover': {\n backgroundColor: 'unset'\n },\n '&$disabled': {\n color: colors.primary.light,\n '&.success': {\n color: colors.success.light\n },\n '&.warning': {\n color: colors.warning.light\n },\n '&.error': {\n color: colors.error.light\n },\n '&.info': {\n color: colors.info.light\n },\n '& .MuiSvgIcon-root': {\n backgroundColor: 'unset',\n width: '1em',\n height: '1em',\n borderRadius: 0\n }\n },\n '&.success': {\n color: colors.success.main\n },\n '&.warning': {\n color: colors.warning.main\n },\n '&.error': {\n color: colors.error.main\n },\n '&.info': {\n color: colors.info.main\n }\n },\n '&$disabled': {\n color: colors.grey[100],\n '& .MuiSvgIcon-root': {\n backgroundColor: colors.grey[100],\n width: 18,\n height: 18,\n borderRadius: 3\n }\n }\n }\n },\n MuiDivider: {\n root: {\n backgroundColor: colors.grey[50],\n '&.dash-divider': {\n borderBottom: `1px dashed ${colors.grey[100]}`,\n background: 'unset'\n }\n }\n },\n MuiTab: {\n root: {\n '&.custom-tab': {\n color: colors.secondary.main,\n fontSize: '0.75rem',\n '&$selected': {\n backgroundColor: colors.white\n }\n }\n }\n }\n }\n};\n\nexport const BaseMuiTheme = createTheme(MuiTheme);\n","import React, {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from 'react';\n\nconst CollapsedContext = createContext(false);\nCollapsedContext.displayName = 'CollapsedContext';\n\ntype SetCollapsedFunc = (value: boolean) => void;\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst SetCollapsedContext = createContext(() => {});\nSetCollapsedContext.displayName = 'SetCollapsedContext';\n\nexport const useCollapsed = (): [boolean, SetCollapsedFunc] => [\n useContext(CollapsedContext),\n useContext(SetCollapsedContext),\n];\n\nconst MobileOpenContext = createContext(false);\nMobileOpenContext.displayName = 'MobileOpenContext';\n\ntype SetMobileOpenFunc = (value: boolean) => void;\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst SetMobileOpenContext = createContext(() => {});\nSetMobileOpenContext.displayName = 'SetMobileOpenContext';\n\nexport const useMobileOpen = (): [boolean, SetMobileOpenFunc] => [\n useContext(MobileOpenContext),\n useContext(SetMobileOpenContext),\n];\n\nconst BannerContext = createContext<{\n showBanner: boolean;\n bannerContent: ReactNode | string | null;\n setBannerState: (value: boolean) => void;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n}>({ showBanner: false, bannerContent: null, setBannerState: () => {} });\nBannerContext.displayName = 'BannerContext';\n\nexport const useBannerContext = () => useContext(BannerContext);\n\nexport const MainLayoutProvider = ({\n children,\n}: {\n children: ReactNode;\n}): JSX.Element => {\n const [collapsed, setCollapsed] = useState(false);\n const [mobileOpen, setMobileOpen] = useState(false);\n const [showBanner, setShowBanner] = useState(false);\n const [bannerContent] = useState(false);\n\n const bannerContextValue = {\n showBanner,\n bannerContent,\n setBannerState: setShowBanner,\n };\n\n useEffect(() => {\n if (showBanner) {\n setTimeout(() => setShowBanner(false), 5000);\n }\n }, [showBanner]);\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n );\n};\n","import React from 'react';\nimport { Box, Switch, SwitchProps } from '@material-ui/core';\nimport { CheckOutlined, CloseOutlined } from '@material-ui/icons';\nimport { makeStyles } from '@material-ui/styles';\nimport { colors } from './theme';\n\nexport const DefaultSwitch = (props: SwitchProps) => {\n const classes = useStyles();\n return (\n \n \n {props.checked ? (\n \n ) : (\n \n )}\n \n );\n};\n\nconst useStyles = makeStyles({\n checkIcon: {\n position: 'absolute',\n fontSize: '0.875rem',\n top: 5,\n left: 16,\n color: colors.white\n },\n closeIcon: {\n position: 'absolute',\n fontSize: '0.875rem',\n top: 5,\n right: 16,\n color: colors.grey.DEFAULT\n }\n});\n","import { Box, Fab, useMediaQuery, useScrollTrigger, useTheme, Zoom } from '@material-ui/core';\nimport { grey } from '@material-ui/core/colors';\nimport { KeyboardArrowUp } from '@material-ui/icons';\nimport React, { useEffect, useState } from 'react';\nimport { useCollapsed } from './MainLayoutContext';\n\nconst SetScrollbarContext = React.createContext(undefined);\nexport const useScrollBar = () => React.useContext(SetScrollbarContext);\n\nexport const MainContent = ({ children }: { children: JSX.Element }): JSX.Element => {\n const [collapsed] = useCollapsed();\n const [contentNode, setContentNode] = useState(null);\n const scrollbarRef = React.useRef();\n\n const theme = useTheme();\n const isSmDown = useMediaQuery(theme.breakpoints.down('sm'));\n\n const trigger = useScrollTrigger({\n target: contentNode || window,\n disableHysteresis: true,\n threshold: 100\n });\n\n const handleScrollToTop = () => {\n contentNode.scrollTo({ top: 0, behavior: 'smooth' });\n };\n useEffect(() => {\n setContentNode(document.querySelector('#swyft-data-content'));\n }, []);\n return (\n \n \n \n
\n {children}\n
\n
\n
\n \n \n \n \n \n \n \n
\n );\n};\n","import { CircularProgress, InputAdornment, makeStyles, TextField } from '@material-ui/core';\nimport { Search } from '@material-ui/icons';\nimport { Autocomplete } from '@material-ui/lab';\nimport { debounce } from 'lodash-es';\nimport React, { useCallback } from 'react';\n\ntype SearchBoxProps = {\n placeholder?: string;\n disabled?: boolean;\n loading?: boolean;\n searchInputChange: (value: string) => void;\n setSearchValue?: (value: string) => void;\n valueChange?: (value: any) => void;\n options?: any[];\n getOptionLabel?: (item: any) => string;\n getValue?: (item: any) => string;\n searchAnyKeyword?: boolean;\n className?: any;\n defaultValue?: any;\n setPage?: (value: number) => void;\n freeSolo?: boolean;\n noOptionsText?: string;\n loadingText?: boolean;\n searchOptionValue?: boolean;\n};\n\nconst useStyles = makeStyles({\n option: {\n fontSize: '0.875rem'\n }\n});\n\nexport const SearchBox = ({\n placeholder,\n disabled,\n loading,\n searchInputChange,\n setSearchValue,\n valueChange,\n options = [],\n getValue = (i) => i.name,\n getOptionLabel = (i) => i.name,\n searchAnyKeyword = false,\n className,\n defaultValue,\n setPage,\n freeSolo = true,\n noOptionsText = 'No options',\n loadingText = false,\n searchOptionValue = false\n}: SearchBoxProps) => {\n const classes = useStyles();\n\n const [isFocus, setIsFocus] = React.useState(false);\n const [valueSelected, setValueSelected] = React.useState(defaultValue);\n const setSearchValueDebounce = debounce((event, newInputValue) => {\n if (setSearchValue) setSearchValue(newInputValue.trim());\n }, 500);\n const setInputChange = useCallback((event: any, newInputValue: any) => {\n searchInputChange(newInputValue);\n setSearchValueDebounce(event, newInputValue);\n }, []);\n\n return (\n (\n \n \n \n ),\n endAdornment: (\n \n {loading ? (\n \n ) : defaultValue ? (\n params.InputProps.endAdornment\n ) : null}\n \n )\n }}\n />\n )}\n openText='open'\n autoComplete\n blurOnSelect\n includeInputInList\n onChange={(event: any, newValue: any | null) => {\n if (valueChange) {\n const value = searchAnyKeyword ? getValue(newValue) || newValue || '' : getValue(newValue);\n if (searchOptionValue) {\n const label = getOptionLabel(newValue);\n setValueSelected(label);\n } else setValueSelected(value);\n valueChange(value);\n if (setPage) {\n setPage(1);\n }\n }\n }}\n onInputChange={(event: any, newInputValue: any) => setInputChange(event, newInputValue)}\n getOptionLabel={(option) => {\n const label = getOptionLabel(option);\n return searchAnyKeyword ? label || valueSelected : label;\n }}\n options={options}\n freeSolo={freeSolo}\n noOptionsText={noOptionsText}\n forcePopupIcon={false}\n loading={loadingText && loading}\n onFocus={() => setIsFocus(true)}\n onBlur={() => setIsFocus(false)}\n />\n );\n};\n","export interface OrderValue {\n orderBy: string;\n orderDirection: EOrderDirection;\n}\n\nexport enum EOrderDirection {\n Descending = 'desc',\n Ascending = 'asc'\n}\n","export enum EKeyCode {\n 'Backspace' = 8,\n 'Tab' = 9,\n 'Enter' = 13,\n 'Shift' = 16,\n 'Ctrl' = 17,\n 'Alt' = 18,\n 'Pause/Break' = 19,\n 'CapsLock' = 20,\n 'Esc' = 27,\n 'Space' = 32,\n 'PageUp' = 33,\n 'PageDown' = 34,\n 'End' = 35,\n 'Home' = 36,\n 'Left' = 37,\n 'Up' = 38,\n 'Right' = 39,\n 'Down' = 40,\n 'Insert' = 45,\n 'Delete' = 46,\n 'Char0' = 48,\n 'Char1' = 49,\n 'Char2' = 50,\n 'Char3' = 51,\n 'Char4' = 52,\n 'Char5' = 53,\n 'Char6' = 54,\n 'Char7' = 55,\n 'Char8' = 56,\n 'Char9' = 57,\n 'A' = 65,\n 'B' = 66,\n 'C' = 67,\n 'D' = 68,\n 'E' = 69,\n 'F' = 70,\n 'G' = 71,\n 'H' = 72,\n 'I' = 73,\n 'J' = 74,\n 'K' = 75,\n 'L' = 76,\n 'M' = 77,\n 'N' = 78,\n 'O' = 79,\n 'P' = 80,\n 'Q' = 81,\n 'R' = 82,\n 'S' = 83,\n 'T' = 84,\n 'U' = 85,\n 'V' = 86,\n 'W' = 87,\n 'X' = 88,\n 'Y' = 89,\n 'Z' = 90,\n 'Windows' = 91,\n 'RightClick' = 93,\n 'Numpad0' = 96,\n 'Numpad1' = 97,\n 'Numpad2' = 98,\n 'Numpad3' = 99,\n 'Numpad4' = 100,\n 'Numpad5' = 101,\n 'Numpad6' = 102,\n 'Numpad7' = 103,\n 'Numpad8' = 104,\n 'Numpad9' = 105,\n 'Numpad*' = 106,\n 'Numpad+' = 107,\n 'Numpad-' = 109,\n 'Numpad.' = 110,\n 'Numpad/' = 111,\n 'F1' = 112,\n 'F2' = 113,\n 'F3' = 114,\n 'F4' = 115,\n 'F5' = 116,\n 'F6' = 117,\n 'F7' = 118,\n 'F8' = 119,\n 'F9' = 120,\n 'F10' = 121,\n 'F11' = 122,\n 'F12' = 123,\n 'NumLock' = 144,\n 'ScrollLock' = 145,\n 'MyComputer' = 182,\n 'MyCalculator' = 183,\n ';' = 186,\n '=' = 187,\n ',' = 188,\n '-' = 189,\n '.' = 190,\n '/' = 191,\n '`' = 192,\n '[' = 219,\n '\\\\' = 220,\n ']' = 221,\n \"'\" = 222\n}\n","import { TableCell, TableSortLabel } from '@material-ui/core';\nimport { ExpandMore } from '@material-ui/icons';\nimport { EOrderDirection } from '@models/table';\nimport React, { ReactElement } from 'react';\nimport { Column, FunctionChildren } from '../models/types';\n\ntype TableHeaderProps = {\n children: FunctionChildren | ReactElement;\n};\n\nexport const SwyftTableHeader = ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children\n}: TableHeaderProps): JSX.Element =>
;\n\nconst mapOrderDirection = {\n [EOrderDirection.Ascending]: 'asc',\n [EOrderDirection.Descending]: 'desc'\n};\n\ntype SwyftTableInnerHeaderProps = {\n col: Column;\n sortField?: string | null;\n sortDirection?: string | null;\n onSortChange: (value: string) => void;\n width?: number;\n align?: 'left' | 'right' | 'inherit' | 'center' | 'justify' | undefined;\n};\n\nexport const SwyftTableInnerHeader = ({\n col,\n sortField,\n sortDirection,\n onSortChange,\n width,\n align\n}: SwyftTableInnerHeaderProps): JSX.Element => (\n \n {!col.sortable ? (\n !col.templateHeader ? (\n col.header\n ) : (\n col.templateHeader\n )\n ) : (\n onSortChange(col.name)}\n IconComponent={ExpandMore}\n >\n {!col.templateHeader ? col.header : col.templateHeader}\n \n )}\n \n);\n","import { NumberFormatCustom } from '@components/NumberInput';\nimport { colors } from '@components/theme';\nimport { EKeyCode } from '@constants/keycode';\nimport { Box, Button, MenuItem, Select, TextField, Typography } from '@material-ui/core';\nimport { ExpandMore, FirstPage, LastPage, NavigateBefore, NavigateNext } from '@material-ui/icons';\nimport React, { useMemo } from 'react';\n\nconst pageSizeOptions = [12, 24, 50, 100];\n\ntype SwyftTablePaginationProps = {\n totalRows?: number;\n pageSize?: number | null;\n pageIndex?: number | null;\n hiddenChangePageIndex?: boolean;\n onPageIndexChange: (index: number) => void;\n onPageSizeChange: (size: number) => void;\n justifyContent?: string;\n};\n\nexport const SwyftTablePagination = ({\n totalRows = 0,\n pageSize = 12,\n pageIndex = 1,\n hiddenChangePageIndex = false,\n onPageIndexChange,\n onPageSizeChange,\n justifyContent = 'space-around'\n}: SwyftTablePaginationProps): JSX.Element => {\n const totalPage = useMemo(() => Math.ceil(totalRows / (pageSize || 12)), [totalRows, pageSize]);\n\n const handleSizeChange = (event: React.ChangeEvent<{ value: unknown }>) => {\n onPageSizeChange(Number(event.target.value));\n onPageIndexChange(1);\n };\n\n const handlePageChange = (page: number) => {\n page = Math.min(page, totalPage);\n page = page ? page : 1;\n onPageIndexChange(page);\n };\n\n const handleEnterPress = (e: React.KeyboardEvent) => {\n if (e.keyCode === EKeyCode.Enter) {\n handlePageChange(Number((e.target as any).value));\n }\n };\n\n return (\n \n \n \n Show\n \n \n {pageSizeOptions.map((value) => (\n \n {value}\n \n ))}\n \n \n per page\n \n \n {!hiddenChangePageIndex && (\n \n handlePageChange(1)}\n size='small'\n >\n \n \n handlePageChange((pageIndex || 1) - 1)}\n size='small'\n >\n \n \n \n () as any,\n disableUnderline: true,\n className: 'swyft-page-input'\n }}\n disabled={!totalPage || totalPage === 1}\n />\n \n of {totalPage} \n \n handlePageChange((pageIndex || 1) + 1)}\n size='small'\n >\n \n \n handlePageChange(totalPage)}\n size='small'\n >\n \n \n \n )}\n \n );\n};\n","export enum EColumnDataType {\n TEXT = 'text',\n NUMBER = 'number',\n IMAGE = 'image',\n CURRENCY = 'currency',\n DATE = 'date',\n TIME = 'time',\n DATETIME = 'datetime',\n TAG = 'tag',\n PERCENT = 'percent',\n CUSTOM = 'custom',\n ARRAY = 'array',\n TEMPLATE = 'template',\n MONTH = 'month',\n QUARTER = 'quarter',\n DURATION = 'duration',\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n * perfect-scrollbar v1.5.2\n * Copyright 2021 Hyunje Jun, MDBootstrap and Contributors\n * Licensed under MIT\n */\n\nfunction get(element) {\r\n return getComputedStyle(element);\r\n}\r\n\r\nfunction set(element, obj) {\r\n for (var key in obj) {\r\n var val = obj[key];\r\n if (typeof val === 'number') {\r\n val = val + \"px\";\r\n }\r\n element.style[key] = val;\r\n }\r\n return element;\r\n}\n\nfunction div(className) {\r\n var div = document.createElement('div');\r\n div.className = className;\r\n return div;\r\n}\r\n\r\nvar elMatches =\r\n typeof Element !== 'undefined' &&\r\n (Element.prototype.matches ||\r\n Element.prototype.webkitMatchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector);\r\n\r\nfunction matches(element, query) {\r\n if (!elMatches) {\r\n throw new Error('No element matching method supported');\r\n }\r\n\r\n return elMatches.call(element, query);\r\n}\r\n\r\nfunction remove(element) {\r\n if (element.remove) {\r\n element.remove();\r\n } else {\r\n if (element.parentNode) {\r\n element.parentNode.removeChild(element);\r\n }\r\n }\r\n}\r\n\r\nfunction queryChildren(element, selector) {\r\n return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); }\r\n );\r\n}\n\nvar cls = {\r\n main: 'ps',\r\n rtl: 'ps__rtl',\r\n element: {\r\n thumb: function (x) { return (\"ps__thumb-\" + x); },\r\n rail: function (x) { return (\"ps__rail-\" + x); },\r\n consuming: 'ps__child--consume',\r\n },\r\n state: {\r\n focus: 'ps--focus',\r\n clicking: 'ps--clicking',\r\n active: function (x) { return (\"ps--active-\" + x); },\r\n scrolling: function (x) { return (\"ps--scrolling-\" + x); },\r\n },\r\n};\r\n\r\n/*\r\n * Helper methods\r\n */\r\nvar scrollingClassTimeout = { x: null, y: null };\r\n\r\nfunction addScrollingClass(i, x) {\r\n var classList = i.element.classList;\r\n var className = cls.state.scrolling(x);\r\n\r\n if (classList.contains(className)) {\r\n clearTimeout(scrollingClassTimeout[x]);\r\n } else {\r\n classList.add(className);\r\n }\r\n}\r\n\r\nfunction removeScrollingClass(i, x) {\r\n scrollingClassTimeout[x] = setTimeout(\r\n function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); },\r\n i.settings.scrollingThreshold\r\n );\r\n}\r\n\r\nfunction setScrollingClassInstantly(i, x) {\r\n addScrollingClass(i, x);\r\n removeScrollingClass(i, x);\r\n}\n\nvar EventElement = function EventElement(element) {\r\n this.element = element;\r\n this.handlers = {};\r\n};\n\nvar prototypeAccessors = { isEmpty: { configurable: true } };\r\n\r\nEventElement.prototype.bind = function bind (eventName, handler) {\r\n if (typeof this.handlers[eventName] === 'undefined') {\r\n this.handlers[eventName] = [];\r\n }\r\n this.handlers[eventName].push(handler);\r\n this.element.addEventListener(eventName, handler, false);\r\n};\r\n\r\nEventElement.prototype.unbind = function unbind (eventName, target) {\n var this$1 = this;\n\r\n this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {\r\n if (target && handler !== target) {\r\n return true;\r\n }\r\n this$1.element.removeEventListener(eventName, handler, false);\r\n return false;\r\n });\r\n};\r\n\r\nEventElement.prototype.unbindAll = function unbindAll () {\r\n for (var name in this.handlers) {\r\n this.unbind(name);\r\n }\r\n};\r\n\r\nprototypeAccessors.isEmpty.get = function () {\n var this$1 = this;\n\r\n return Object.keys(this.handlers).every(\r\n function (key) { return this$1.handlers[key].length === 0; }\r\n );\r\n};\n\nObject.defineProperties( EventElement.prototype, prototypeAccessors );\r\n\r\nvar EventManager = function EventManager() {\r\n this.eventElements = [];\r\n};\r\n\r\nEventManager.prototype.eventElement = function eventElement (element) {\r\n var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0];\r\n if (!ee) {\r\n ee = new EventElement(element);\r\n this.eventElements.push(ee);\r\n }\r\n return ee;\r\n};\r\n\r\nEventManager.prototype.bind = function bind (element, eventName, handler) {\r\n this.eventElement(element).bind(eventName, handler);\r\n};\r\n\r\nEventManager.prototype.unbind = function unbind (element, eventName, handler) {\r\n var ee = this.eventElement(element);\r\n ee.unbind(eventName, handler);\r\n\r\n if (ee.isEmpty) {\r\n // remove\r\n this.eventElements.splice(this.eventElements.indexOf(ee), 1);\r\n }\r\n};\r\n\r\nEventManager.prototype.unbindAll = function unbindAll () {\r\n this.eventElements.forEach(function (e) { return e.unbindAll(); });\r\n this.eventElements = [];\r\n};\r\n\r\nEventManager.prototype.once = function once (element, eventName, handler) {\r\n var ee = this.eventElement(element);\r\n var onceHandler = function (evt) {\r\n ee.unbind(eventName, onceHandler);\r\n handler(evt);\r\n };\r\n ee.bind(eventName, onceHandler);\r\n};\n\nfunction createEvent(name) {\r\n if (typeof window.CustomEvent === 'function') {\r\n return new CustomEvent(name);\r\n } else {\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(name, false, false, undefined);\r\n return evt;\r\n }\r\n}\r\n\r\nfunction processScrollDiff(\r\n i,\r\n axis,\r\n diff,\r\n useScrollingClass,\r\n forceFireReachEvent\r\n) {\n if ( useScrollingClass === void 0 ) useScrollingClass = true;\n if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\r\n var fields;\r\n if (axis === 'top') {\r\n fields = [\r\n 'contentHeight',\r\n 'containerHeight',\r\n 'scrollTop',\r\n 'y',\r\n 'up',\r\n 'down' ];\r\n } else if (axis === 'left') {\r\n fields = [\r\n 'contentWidth',\r\n 'containerWidth',\r\n 'scrollLeft',\r\n 'x',\r\n 'left',\r\n 'right' ];\r\n } else {\r\n throw new Error('A proper axis should be provided');\r\n }\r\n\r\n processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);\r\n}\r\n\r\nfunction processScrollDiff$1(\r\n i,\r\n diff,\r\n ref,\r\n useScrollingClass,\r\n forceFireReachEvent\r\n) {\n var contentHeight = ref[0];\n var containerHeight = ref[1];\n var scrollTop = ref[2];\n var y = ref[3];\n var up = ref[4];\n var down = ref[5];\n if ( useScrollingClass === void 0 ) useScrollingClass = true;\n if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\r\n var element = i.element;\r\n\r\n // reset reach\r\n i.reach[y] = null;\r\n\r\n // 1 for subpixel rounding\r\n if (element[scrollTop] < 1) {\r\n i.reach[y] = 'start';\r\n }\r\n\r\n // 1 for subpixel rounding\r\n if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {\r\n i.reach[y] = 'end';\r\n }\r\n\r\n if (diff) {\r\n element.dispatchEvent(createEvent((\"ps-scroll-\" + y)));\r\n\r\n if (diff < 0) {\r\n element.dispatchEvent(createEvent((\"ps-scroll-\" + up)));\r\n } else if (diff > 0) {\r\n element.dispatchEvent(createEvent((\"ps-scroll-\" + down)));\r\n }\r\n\r\n if (useScrollingClass) {\r\n setScrollingClassInstantly(i, y);\r\n }\r\n }\r\n\r\n if (i.reach[y] && (diff || forceFireReachEvent)) {\r\n element.dispatchEvent(createEvent((\"ps-\" + y + \"-reach-\" + (i.reach[y]))));\r\n }\r\n}\n\nfunction toInt(x) {\r\n return parseInt(x, 10) || 0;\r\n}\r\n\r\nfunction isEditable(el) {\r\n return (\r\n matches(el, 'input,[contenteditable]') ||\r\n matches(el, 'select,[contenteditable]') ||\r\n matches(el, 'textarea,[contenteditable]') ||\r\n matches(el, 'button,[contenteditable]')\r\n );\r\n}\r\n\r\nfunction outerWidth(element) {\r\n var styles = get(element);\r\n return (\r\n toInt(styles.width) +\r\n toInt(styles.paddingLeft) +\r\n toInt(styles.paddingRight) +\r\n toInt(styles.borderLeftWidth) +\r\n toInt(styles.borderRightWidth)\r\n );\r\n}\r\n\r\nvar env = {\r\n isWebKit:\r\n typeof document !== 'undefined' &&\r\n 'WebkitAppearance' in document.documentElement.style,\r\n supportsTouch:\r\n typeof window !== 'undefined' &&\r\n ('ontouchstart' in window ||\r\n ('maxTouchPoints' in window.navigator &&\r\n window.navigator.maxTouchPoints > 0) ||\r\n (window.DocumentTouch && document instanceof window.DocumentTouch)),\r\n supportsIePointer:\r\n typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,\r\n isChrome:\r\n typeof navigator !== 'undefined' &&\r\n /Chrome/i.test(navigator && navigator.userAgent),\r\n};\n\nfunction updateGeometry(i) {\r\n var element = i.element;\r\n var roundedScrollTop = Math.floor(element.scrollTop);\r\n var rect = element.getBoundingClientRect();\r\n\r\n i.containerWidth = Math.round(rect.width);\r\n i.containerHeight = Math.round(rect.height);\r\n\r\n i.contentWidth = element.scrollWidth;\r\n i.contentHeight = element.scrollHeight;\r\n\r\n if (!element.contains(i.scrollbarXRail)) {\r\n // clean up and append\r\n queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); }\r\n );\r\n element.appendChild(i.scrollbarXRail);\r\n }\r\n if (!element.contains(i.scrollbarYRail)) {\r\n // clean up and append\r\n queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); }\r\n );\r\n element.appendChild(i.scrollbarYRail);\r\n }\r\n\r\n if (\r\n !i.settings.suppressScrollX &&\r\n i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth\r\n ) {\r\n i.scrollbarXActive = true;\r\n i.railXWidth = i.containerWidth - i.railXMarginWidth;\r\n i.railXRatio = i.containerWidth / i.railXWidth;\r\n i.scrollbarXWidth = getThumbSize(\r\n i,\r\n toInt((i.railXWidth * i.containerWidth) / i.contentWidth)\r\n );\r\n i.scrollbarXLeft = toInt(\r\n ((i.negativeScrollAdjustment + element.scrollLeft) *\r\n (i.railXWidth - i.scrollbarXWidth)) /\r\n (i.contentWidth - i.containerWidth)\r\n );\r\n } else {\r\n i.scrollbarXActive = false;\r\n }\r\n\r\n if (\r\n !i.settings.suppressScrollY &&\r\n i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight\r\n ) {\r\n i.scrollbarYActive = true;\r\n i.railYHeight = i.containerHeight - i.railYMarginHeight;\r\n i.railYRatio = i.containerHeight / i.railYHeight;\r\n i.scrollbarYHeight = getThumbSize(\r\n i,\r\n toInt((i.railYHeight * i.containerHeight) / i.contentHeight)\r\n );\r\n i.scrollbarYTop = toInt(\r\n (roundedScrollTop * (i.railYHeight - i.scrollbarYHeight)) /\r\n (i.contentHeight - i.containerHeight)\r\n );\r\n } else {\r\n i.scrollbarYActive = false;\r\n }\r\n\r\n if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {\r\n i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;\r\n }\r\n if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {\r\n i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;\r\n }\r\n\r\n updateCss(element, i);\r\n\r\n if (i.scrollbarXActive) {\r\n element.classList.add(cls.state.active('x'));\r\n } else {\r\n element.classList.remove(cls.state.active('x'));\r\n i.scrollbarXWidth = 0;\r\n i.scrollbarXLeft = 0;\r\n element.scrollLeft = i.isRtl === true ? i.contentWidth : 0;\r\n }\r\n if (i.scrollbarYActive) {\r\n element.classList.add(cls.state.active('y'));\r\n } else {\r\n element.classList.remove(cls.state.active('y'));\r\n i.scrollbarYHeight = 0;\r\n i.scrollbarYTop = 0;\r\n element.scrollTop = 0;\r\n }\r\n}\r\n\r\nfunction getThumbSize(i, thumbSize) {\r\n if (i.settings.minScrollbarLength) {\r\n thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);\r\n }\r\n if (i.settings.maxScrollbarLength) {\r\n thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);\r\n }\r\n return thumbSize;\r\n}\r\n\r\nfunction updateCss(element, i) {\r\n var xRailOffset = { width: i.railXWidth };\r\n var roundedScrollTop = Math.floor(element.scrollTop);\r\n\r\n if (i.isRtl) {\r\n xRailOffset.left =\r\n i.negativeScrollAdjustment +\r\n element.scrollLeft +\r\n i.containerWidth -\r\n i.contentWidth;\r\n } else {\r\n xRailOffset.left = element.scrollLeft;\r\n }\r\n if (i.isScrollbarXUsingBottom) {\r\n xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop;\r\n } else {\r\n xRailOffset.top = i.scrollbarXTop + roundedScrollTop;\r\n }\r\n set(i.scrollbarXRail, xRailOffset);\r\n\r\n var yRailOffset = { top: roundedScrollTop, height: i.railYHeight };\r\n if (i.isScrollbarYUsingRight) {\r\n if (i.isRtl) {\r\n yRailOffset.right =\r\n i.contentWidth -\r\n (i.negativeScrollAdjustment + element.scrollLeft) -\r\n i.scrollbarYRight -\r\n i.scrollbarYOuterWidth -\r\n 9;\r\n } else {\r\n yRailOffset.right = i.scrollbarYRight - element.scrollLeft;\r\n }\r\n } else {\r\n if (i.isRtl) {\r\n yRailOffset.left =\r\n i.negativeScrollAdjustment +\r\n element.scrollLeft +\r\n i.containerWidth * 2 -\r\n i.contentWidth -\r\n i.scrollbarYLeft -\r\n i.scrollbarYOuterWidth;\r\n } else {\r\n yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;\r\n }\r\n }\r\n set(i.scrollbarYRail, yRailOffset);\r\n\r\n set(i.scrollbarX, {\r\n left: i.scrollbarXLeft,\r\n width: i.scrollbarXWidth - i.railBorderXWidth,\r\n });\r\n set(i.scrollbarY, {\r\n top: i.scrollbarYTop,\r\n height: i.scrollbarYHeight - i.railBorderYWidth,\r\n });\r\n}\n\nfunction clickRail(i) {\r\n var element = i.element;\r\n\r\n i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); });\r\n i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {\r\n var positionTop =\r\n e.pageY -\r\n window.pageYOffset -\r\n i.scrollbarYRail.getBoundingClientRect().top;\r\n var direction = positionTop > i.scrollbarYTop ? 1 : -1;\r\n\r\n i.element.scrollTop += direction * i.containerHeight;\r\n updateGeometry(i);\r\n\r\n e.stopPropagation();\r\n });\r\n\r\n i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); });\r\n i.event.bind(i.scrollbarXRail, 'mousedown', function (e) {\r\n var positionLeft =\r\n e.pageX -\r\n window.pageXOffset -\r\n i.scrollbarXRail.getBoundingClientRect().left;\r\n var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;\r\n\r\n i.element.scrollLeft += direction * i.containerWidth;\r\n updateGeometry(i);\r\n\r\n e.stopPropagation();\r\n });\r\n}\n\nfunction dragThumb(i) {\r\n bindMouseScrollHandler(i, [\r\n 'containerWidth',\r\n 'contentWidth',\r\n 'pageX',\r\n 'railXWidth',\r\n 'scrollbarX',\r\n 'scrollbarXWidth',\r\n 'scrollLeft',\r\n 'x',\r\n 'scrollbarXRail' ]);\r\n bindMouseScrollHandler(i, [\r\n 'containerHeight',\r\n 'contentHeight',\r\n 'pageY',\r\n 'railYHeight',\r\n 'scrollbarY',\r\n 'scrollbarYHeight',\r\n 'scrollTop',\r\n 'y',\r\n 'scrollbarYRail' ]);\r\n}\r\n\r\nfunction bindMouseScrollHandler(\r\n i,\r\n ref\r\n) {\n var containerHeight = ref[0];\n var contentHeight = ref[1];\n var pageY = ref[2];\n var railYHeight = ref[3];\n var scrollbarY = ref[4];\n var scrollbarYHeight = ref[5];\n var scrollTop = ref[6];\n var y = ref[7];\n var scrollbarYRail = ref[8];\n\r\n var element = i.element;\r\n\r\n var startingScrollTop = null;\r\n var startingMousePageY = null;\r\n var scrollBy = null;\r\n\r\n function mouseMoveHandler(e) {\r\n if (e.touches && e.touches[0]) {\r\n e[pageY] = e.touches[0].pageY;\r\n }\r\n element[scrollTop] =\r\n startingScrollTop + scrollBy * (e[pageY] - startingMousePageY);\r\n addScrollingClass(i, y);\r\n updateGeometry(i);\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n function mouseUpHandler() {\r\n removeScrollingClass(i, y);\r\n i[scrollbarYRail].classList.remove(cls.state.clicking);\r\n i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);\r\n }\r\n\r\n function bindMoves(e, touchMode) {\r\n startingScrollTop = element[scrollTop];\r\n if (touchMode && e.touches) {\r\n e[pageY] = e.touches[0].pageY;\r\n }\r\n startingMousePageY = e[pageY];\r\n scrollBy =\r\n (i[contentHeight] - i[containerHeight]) /\r\n (i[railYHeight] - i[scrollbarYHeight]);\r\n if (!touchMode) {\r\n i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);\r\n i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);\r\n e.preventDefault();\r\n } else {\r\n i.event.bind(i.ownerDocument, 'touchmove', mouseMoveHandler);\r\n }\r\n\r\n i[scrollbarYRail].classList.add(cls.state.clicking);\r\n\r\n e.stopPropagation();\r\n }\r\n\r\n i.event.bind(i[scrollbarY], 'mousedown', function (e) {\r\n bindMoves(e);\r\n });\r\n i.event.bind(i[scrollbarY], 'touchstart', function (e) {\r\n bindMoves(e, true);\r\n });\r\n}\n\nfunction keyboard(i) {\r\n var element = i.element;\r\n\r\n var elementHovered = function () { return matches(element, ':hover'); };\r\n var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); };\r\n\r\n function shouldPreventDefault(deltaX, deltaY) {\r\n var scrollTop = Math.floor(element.scrollTop);\r\n if (deltaX === 0) {\r\n if (!i.scrollbarYActive) {\r\n return false;\r\n }\r\n if (\r\n (scrollTop === 0 && deltaY > 0) ||\r\n (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)\r\n ) {\r\n return !i.settings.wheelPropagation;\r\n }\r\n }\r\n\r\n var scrollLeft = element.scrollLeft;\r\n if (deltaY === 0) {\r\n if (!i.scrollbarXActive) {\r\n return false;\r\n }\r\n if (\r\n (scrollLeft === 0 && deltaX < 0) ||\r\n (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)\r\n ) {\r\n return !i.settings.wheelPropagation;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n i.event.bind(i.ownerDocument, 'keydown', function (e) {\r\n if (\r\n (e.isDefaultPrevented && e.isDefaultPrevented()) ||\r\n e.defaultPrevented\r\n ) {\r\n return;\r\n }\r\n\r\n if (!elementHovered() && !scrollbarFocused()) {\r\n return;\r\n }\r\n\r\n var activeElement = document.activeElement\r\n ? document.activeElement\r\n : i.ownerDocument.activeElement;\r\n if (activeElement) {\r\n if (activeElement.tagName === 'IFRAME') {\r\n activeElement = activeElement.contentDocument.activeElement;\r\n } else {\r\n // go deeper if element is a webcomponent\r\n while (activeElement.shadowRoot) {\r\n activeElement = activeElement.shadowRoot.activeElement;\r\n }\r\n }\r\n if (isEditable(activeElement)) {\r\n return;\r\n }\r\n }\r\n\r\n var deltaX = 0;\r\n var deltaY = 0;\r\n\r\n switch (e.which) {\r\n case 37: // left\r\n if (e.metaKey) {\r\n deltaX = -i.contentWidth;\r\n } else if (e.altKey) {\r\n deltaX = -i.containerWidth;\r\n } else {\r\n deltaX = -30;\r\n }\r\n break;\r\n case 38: // up\r\n if (e.metaKey) {\r\n deltaY = i.contentHeight;\r\n } else if (e.altKey) {\r\n deltaY = i.containerHeight;\r\n } else {\r\n deltaY = 30;\r\n }\r\n break;\r\n case 39: // right\r\n if (e.metaKey) {\r\n deltaX = i.contentWidth;\r\n } else if (e.altKey) {\r\n deltaX = i.containerWidth;\r\n } else {\r\n deltaX = 30;\r\n }\r\n break;\r\n case 40: // down\r\n if (e.metaKey) {\r\n deltaY = -i.contentHeight;\r\n } else if (e.altKey) {\r\n deltaY = -i.containerHeight;\r\n } else {\r\n deltaY = -30;\r\n }\r\n break;\r\n case 32: // space bar\r\n if (e.shiftKey) {\r\n deltaY = i.containerHeight;\r\n } else {\r\n deltaY = -i.containerHeight;\r\n }\r\n break;\r\n case 33: // page up\r\n deltaY = i.containerHeight;\r\n break;\r\n case 34: // page down\r\n deltaY = -i.containerHeight;\r\n break;\r\n case 36: // home\r\n deltaY = i.contentHeight;\r\n break;\r\n case 35: // end\r\n deltaY = -i.contentHeight;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (i.settings.suppressScrollX && deltaX !== 0) {\r\n return;\r\n }\r\n if (i.settings.suppressScrollY && deltaY !== 0) {\r\n return;\r\n }\r\n\r\n element.scrollTop -= deltaY;\r\n element.scrollLeft += deltaX;\r\n updateGeometry(i);\r\n\r\n if (shouldPreventDefault(deltaX, deltaY)) {\r\n e.preventDefault();\r\n }\r\n });\r\n}\n\nfunction wheel(i) {\r\n var element = i.element;\r\n\r\n function shouldPreventDefault(deltaX, deltaY) {\r\n var roundedScrollTop = Math.floor(element.scrollTop);\r\n var isTop = element.scrollTop === 0;\r\n var isBottom =\r\n roundedScrollTop + element.offsetHeight === element.scrollHeight;\r\n var isLeft = element.scrollLeft === 0;\r\n var isRight =\r\n element.scrollLeft + element.offsetWidth === element.scrollWidth;\r\n\r\n var hitsBound;\r\n\r\n // pick axis with primary direction\r\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\r\n hitsBound = isTop || isBottom;\r\n } else {\r\n hitsBound = isLeft || isRight;\r\n }\r\n\r\n return hitsBound ? !i.settings.wheelPropagation : true;\r\n }\r\n\r\n function getDeltaFromEvent(e) {\r\n var deltaX = e.deltaX;\r\n var deltaY = -1 * e.deltaY;\r\n\r\n if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {\r\n // OS X Safari\r\n deltaX = (-1 * e.wheelDeltaX) / 6;\r\n deltaY = e.wheelDeltaY / 6;\r\n }\r\n\r\n if (e.deltaMode && e.deltaMode === 1) {\r\n // Firefox in deltaMode 1: Line scrolling\r\n deltaX *= 10;\r\n deltaY *= 10;\r\n }\r\n\r\n if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {\r\n // IE in some mouse drivers\r\n deltaX = 0;\r\n deltaY = e.wheelDelta;\r\n }\r\n\r\n if (e.shiftKey) {\r\n // reverse axis with shift key\r\n return [-deltaY, -deltaX];\r\n }\r\n return [deltaX, deltaY];\r\n }\r\n\r\n function shouldBeConsumedByChild(target, deltaX, deltaY) {\r\n // FIXME: this is a workaround for