{"version":3,"sources":["store/userManagement/actions.js","configs/index.js","store/layout/actions.js","utils/reduxsauce/Types.js","store/auth/actions.js","utility/context/Can.js","utility/context/Internationalization.js","utility/context/ThemeColors.js","utils/reduxsauce/createTypes.js","utils/reduxsauce/createActions.js","utils/reduxsauce/resettableReducer.js","utils/reduxsauce/index.js","utils/genState.js","store/tenant/actions.js","store/Integration/actions.js","assets/images/logo/iMakaseb.png","utils/reduxsauce/createReducer.js","store/spinningWheel/reducer.js","store/tenant/reducer.js","store/userManagement/reducer.js","store/registration/reducer.js","store/Integration/reducer.js","store/registration/actions.js","store/spinningWheel/actions.js","../ /^/.//.*//messages/.po$/ groupOptions: {} namespace object","store/layout/reducer.js","store/navbar/reducer.js","store/auth/reducer.js","store/reducers.js","services/storage.js","utils/genLogic.js","store/app/logic.js","store/auth/logic.js","store/spinningWheel/logic.js","store/tenant/logic.js","store/userManagement/logic.js","store/registration/logic.js","store/Integration/logic.js","store/logics.js","services/auth/index.js","services/spinningWheel/index.js","services/tenant/index.js","services/userManagement/index.js","services/registration/index.js","services/Integration/index.js","services/index.js","store/index.js","store/configureStore.js","@core/components/spinner/Fallback-spinner.js","@core/components/ripple-button/index.js","serviceWorker.js","configs/permission/userAbitlity.js","configs/permission/userPermission.jsx","utility/hooks/useSignalR.js","utility/providers/SignalRProvider.js","components/TransKeyNotFound.js","index.js","store/constants.js","store/app/reducer.js","store/app/actions.js","store/SupportedLocales.js","configs/themeConfig.js"],"names":["createActions","getUsers","args","meta","async","getUser","getPerson","getVisitor","getPermissions","createUser","scanUserCode","signOutUserCode","createVisitor","createPerson","createUsers","createAppUser","deleteUser","setUser","createRole","getRoles","getRole","editUser","editRole","showDialog","showDeleteDialog","resetDialog","deleteRole","prefix","Types","Creators","ActionTypes","useLocalApi","appName","appTitle","appDescription","signalR","baseUrl","devApiRoot","pageOptions","contactPhone","contactMail","addressOnMap","gen_password_length","gen_password_characters","handleRtl","handleMenuHidden","handleMenuCollapsed","LayoutActions","DEFAULT","login","refreshToken","loginExternal","updateToken","logout","setAuthToken","updateProfile","changePassword","resetChangePassword","updateUserScore","switchAsTenant","AuthActions","AbilityContext","createContext","createContextualCan","Consumer","Context","dynamicActivate","locale","a","messages","i18n","load","activate","loadLocaleData","result","key","locales","plurals","plurs","loadedLocales","IntlProviderWrapper","children","lang","localStorage","getItem","currentLang","Object","values","find","l","default","useState","code","setLocale","dispatch","useDispatch","useEffect","AppActions","changeLocale","Provider","value","switchLanguage","defaultLocale","ThemeColors","ThemeContext","colors","setColors","window","getHex","color","getComputedStyle","document","body","getPropertyValue","trim","obj","primary","light","concat","main","secondary","success","danger","warning","info","dark","isNilOrEmpty","anyPass","isNil","isEmpty","defaultOptions","types","options","Error","merge","pipe","split","map","reject","x","fromPairs","camelToScreamingSnake","replace","toUpper","convertToTypes","config","opts","successPostfix","failPostfix","keys","k","_config","flatten","join","createTypes","convertToCreators","creators","mapObjIndexed","num","name","type","is","Array","extraProps","zipObj","defaultProps","valueObject","providedProps","pick","successKey","failKey","toUpperCase","fail","length","_value","isArray","done","payload","error","createActionCreator","curry","typeToReset","originalReducer","String","resetState","undefined","state","action","cr","emptyObj","defaultState","stateName","defaults","extraPropsState","setState","isPaginated","produce","draft","setStateSuccess","successCb","items","metadata","setStateFail","failCb","errors","requestId","codeNumber","bindReducers","actionTypes","actionName","reducers","bindSyncReducers","doneCb","setSyncState","getAllTenants","getTenantWithId","createTenant","updateTenant","deleteTenant","setTenant","createConfig","getAllConfigs","getConfigWithId","deleteConfig","editConfig","setConfig","initialState","handlers","any","equals","has","handler","reducer","createReducer","index","spinningWheels","findIndex","s","id","filter","openDeleteDialog","rewards","openDialog","spinningWheel","console","log","openDeleteSegmentDialog","openDeleteFieldDialog","extraList","segments","fields","item","data","tenants","tenantIndex","u","tenant","tenant_errors","selectedUser","userCreatedSuccess","users","roles","userIndex","roleIndex","user_errors","guests","setItem","JSON","stringify","removeItem","guest","getAllGuests","createGuest","editGuestReward","getGuestsReport","setGuest","createSpinningWheel","getSpinningWheelWithId","getDisplayedSpinningWheel","getSpinningWheels","editSpinningWheel","deleteSpinningWheel","createReward","getRewards","editReward","deleteReward","reduceRewardQuantity","spinFinished","getRewardsImages","getRewardsReport","resetRewardsQuantities","getAllExtraData","deleteExtraData","createExtraData","getSegments","createSegment","editSegment","deleteSegment","getFields","createField","deleteField","setSpinningWheel","showDeleteSegmentDialog","showDeleteFieldDialog","showDynamicDialog","resetDynamicDialog","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","ids","t","module","exports","isRTL","themeConfig","layout","menuCollapsed","parse","menu","isCollapsed","initialMenuCollapsed","menuHidden","isHidden","contentWidth","layoutReducer","suggestions","bookmarks","query","navbarReducer","val","objectToUpdate","isBookmarked","bookmarkIndex","push","splice","user","isLoggedIn","token","loginError","notifications","authReducer","jwtDecoder","loginLoading","role","active","changePassword_errors","score","tenantId","switched","LOGOUT","rootPersistConfig","storage","blacklist","normalizeActionName","toLowerCase","pop","i","charAt","substring","appApi","lock","AsyncLock","checking","loading","setInterval","api","exp","moment","unix","response","ok","_validateApi","apiNamespace","api_name","logic","successMessage","errorMessage","showSuccessMessage","showErrorMessage","createLogic","latest","process","getState","authActions","acquire","request","successCallBack","failCallBack","rest","res","toast","status","_errorMsg","errorCode","PING","GET_COUNTRIES","GET_CITIES","loginLogic","LOGIN","refreshTokenLogic","REFRESH_TOKEN","loginExternalLogic","LOGIN_EXTERNAL","CHANGE_PASSWORD","UPDATE_PROFILE","getSpinningWheelWithIdLogic","GET_SPINNING_WHEEL_WITH_ID","getDisplayedSpinningWheelLogic","GET_DISPLAYED_SPINNING_WHEEL","getSpinningWheelsLogic","GET_SPINNING_WHEELS","editSpinningWheelLogic","EDIT_SPINNING_WHEEL","deleteSpinningWheelLogic","DELETE_SPINNING_WHEEL","createSpinningWheelLogic","CREATE_SPINNING_WHEEL","getRewardsLogic","GET_REWARDS","getRewardsImagesLogic","GET_REWARDS_IMAGES","getRewardsReportLogic","GET_REWARDS_REPORT","createRewardLogic","CREATE_REWARD","editRewardLogic","EDIT_REWARD","deleteRewardLogic","DELETE_REWARD","reduceRewardQuantityLogic","REDUCE_REWARD_QUANTITY","spinFinishedLogic","SPIN_FINISHED","spinActions","spinningWheelId","resetRewardsQuantitiesLogic","RESET_REWARDS_QUANTITIES","getAllExtraDataLogic","GET_ALL_EXTRA_DATA","deleteExtraDataLogic","DELETE_EXTRA_DATA","createExtraDataLogic","CREATE_EXTRA_DATA","getSegmentsLogic","GET_SEGMENTS","createSegmentLogic","CREATE_SEGMENT","editSegmentLogic","EDIT_SEGMENT","deleteSegmentLogic","DELETE_SEGMENT","getFieldsLogic","GET_FIELDS","CREATE_FIELD","DELETE_FIELD","GET_ALL_TENANTS","GET_TENANT_WITH_ID","CREATE_TENANT","UPDATE_TENANT","DELETE_TENANT","getUsersLogic","GET_USERS","getUserLogic","GET_USER","getPersonLogic","GET_PERSON","getVisitorLogic","GET_VISITOR","getPermissionsLogic","GET_PERMISSIONS","createUserLogic","CREATE_USER","createVisitorLogic","CREATE_VISITOR","createPersonLogic","CREATE_PERSON","createUsersLogic","CREATE_USERS","createAppUserLogic","CREATE_APP_USER","scanUserCodeLogic","SCAN_USER_CODE","signOutUserCodeLogic","SIGN_OUT_USER_CODE","createRoleLogic","CREATE_ROLE","getRolesLogic","GET_ROLES","getRoleLogic","GET_ROLE","deleteUserLogic","DELETE_USER","editUserLogic","EDIT_USER","editRoleLogic","EDIT_ROLE","DELETE_ROLE","GET_ALL_GUESTS","CREATE_GUEST","EDIT_GUEST_REWARD","GET_GUESTS_REPORT","createConfigLogic","CREATE_CONFIG","getAllConfigsLogic","GET_ALL_CONFIGS","getConfigWithIdLogic","GET_CONFIG_WITH_ID","deleteConfigLogic","DELETE_CONFIG","EDIT_CONFIG","appLogic","authLogic","spinningWheelLogic","tenantLogic","usersLogic","guestLogic","integrationLogic","auth","loginRequest","post","accessToken","getNotifications","paging","get","readNotification","delete","put","userManegment","integration","apiURI","baseURL","apisauce","create","headers","timeout","addAsyncResponseTransform","customeError","message","addAsyncRequestTransform","culture","cultureCode","userIp","authApi","spinningWheelApi","tenantApi","usersApi","guestApi","integrationApi","setHeader","setHeaders","history","createBrowserHistory","injectedApi","API","logicMiddleware","createLogicMiddleware","logics","middlewares","routerMiddleware","enhancers","applyMiddleware","composeEnhancers","compose","rootReducer","asyncReducers","persistReducer","combineReducers","router","connectRouter","app","require","navbar","store","createStore","persistedStore","persistStore","configureStore","SpinnerComponent","className","src","appLogoImage","alt","width","Button","Ripple","onClick","mounted","setMounted","isRippling","setIsRippling","y","coords","setCoords","setTimeout","classnames","rect","target","getBoundingClientRect","clientX","left","clientY","top","style","Boolean","location","hostname","match","permissions","this","updateValues","permission","includes","useSignalR","connection","hub","connect","conn","start","catch","sleep","msec","startHub","withUrl","accessTokenFactory","withAutomaticReconnect","configureLogging","Debug","build","setUpHub","err","onclose","onReceiveNotify","on","closeHub","stop","SignalProvider","React","SignalRProvider","props","useSelector","TransKeyNotFound","LazyApp","lazy","ReactDOM","render","fallback","userAbility","newestOnTop","getElementById","navigator","serviceWorker","ready","registration","unregister","DEFAULT_DIRECTION","DIRECTIONS","LTR","supportedLocales","direction","defaultCurrency","priceDisplay","lastPing","isLoadingHotels","theme","sidebarCollapsed","navbarColor","navbarType","footerType","disableCustomizer","hideScrollToTop","menuTheme","extraStarred","starred","defaultLat","defaultLong","defaultZoom","_locale","getElementsByTagName","setAttribute","textAlign","ping","changeCurrency","changePriceDisplay","setIsLoading","clearIsLoading","getCountries","getCities","flag","skin","routerTransition","backgroundColor","footer","customizer","scrollTop"],"mappings":"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","file":"static/js/main.735b21dc.chunk.js","sourcesContent":["import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n getUsers: { args: [\"payload\"], meta: { async: true } },\n getUser: { args: [\"payload\"], meta: { async: true } },\n getPerson: { args: [\"payload\"], meta: { async: true } },\n getVisitor: { args: [\"payload\"], meta: { async: true } },\n getPermissions: { args: [], meta: { async: true } },\n createUser: { args: [\"payload\"], meta: { async: true } },\n scanUserCode: { args: [\"payload\"], meta: { async: true } },\n signOutUserCode: { args: [\"payload\"], meta: { async: true } },\n createVisitor: { args: [\"payload\"], meta: { async: true } },\n createPerson: { args: [\"payload\"], meta: { async: true } },\n\n createUsers: { args: [\"payload\"], meta: { async: true } },\n createAppUser: { args: [\"payload\"], meta: { async: true } },\n deleteUser: { args: [\"payload\"], meta: { async: true } },\n setUser: { args: [\"payload\"], meta: { async: false } },\n createRole: { args: [\"payload\"], meta: { async: true } },\n getRoles: { args: [\"payload\"], meta: { async: true } },\n getRole: { args: [\"payload\"], meta: { async: true } },\n editUser: { args: [\"payload\"], meta: { async: true } },\n editRole: { args: [\"payload\"], meta: { async: true } },\n showDialog: { args: [], meta: { async: false } },\n showDeleteDialog: { args: [], meta: { async: false } },\n resetDialog: { args: [], meta: { async: false } },\n deleteRole: { args: [\"payload\"], meta: { async: true } },\n },\n {\n prefix: \"@app/users/\"\n }\n);\nexport const ActionTypes = Types;\nexport default Creators;","export default {\n useLocalApi: true,\n appName: \"Razy\",\n appTitle: \"Razy\",\n appDescription: \"razytech\",\n signalR: false,\n baseUrl: \"\",\n // baseUrl:\"https://www.nileappco.com/\",\n // apiRoot: \"https://www.nileappco.com/api\",\n // devApiRoot: \"http://localhost:5000/api\",\n devApiRoot: \"https://localhost:5260/\",\n // devApiRoot: \"https://www.nileappco.com/api\",\n pageOptions: [5, 10, 50, 100],\n contactPhone: \"\",\n contactMail: \"\",\n addressOnMap: \"\",\n gen_password_length: 10,\n gen_password_characters:\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijaklmnopqrstuvwxyz1234567890\",\n};\n","// ** Handles Layout Content Width (full / boxed)\nexport const handleContentWidth = value => dispatch => dispatch({ type: 'HANDLE_CONTENT_WIDTH', value })\n\n// ** Handles Menu Collapsed State (Bool)\nexport const handleMenuCollapsed = value => dispatch => dispatch({ type: 'HANDLE_MENU_COLLAPSED', value })\n\n// ** Handles Menu Hidden State (Bool)\n// export const handleMenuHidden = value => dispatch => dispatch({ type: 'HANDLE_MENU_HIDDEN', value })\n\n// ** Handles RTL (Bool)\n// export const handleRTL = value => dispatch => dispatch({ type: 'HANDLE_RTL', value })\n\nimport { createActions } from \"src/utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n handleRtl: { args: [\"payload\"] },\n handleMenuHidden: { args: [\"payload\"] },\n handleMenuCollapsed: { args: [\"payload\"] },\n },\n {\n prefix: \"@app/layout/\"\n }\n);\n\nexport const ActionTypes = Types;\nexport default Creators;\nexport const LayoutActions = Creators;\n","export const DEFAULT = \"REDUXSAUCE.DEFAULT\";\n","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n login: { args: [\"payload\"], meta: { async: true } },\n refreshToken: { args: [\"payload\"], meta: { async: true } },\n loginExternal: { args: [\"payload\"], meta: { async: true } },\n updateToken: { args: [\"payload\"], meta: { async: false } },\n\n logout: { args: [\"token\"] },\n setAuthToken: { args: [\"token\"], meta: { async: false } },\n updateProfile: { args: [\"payload\"], meta: { async: true } },\n changePassword: { args: [\"payload\"], meta: { async: true } },\n resetChangePassword: { args: [\"payload\"] },\n updateUserScore: { args: [\"payload\"] },\n switchAsTenant: { args: [\"payload\"] },\n },\n {\n prefix: \"@app/auth/\",\n }\n);\nexport const ActionTypes = Types;\nexport default Creators;\nexport const AuthActions = Creators;\n","// ** Imports createContext function\nimport { createContext } from 'react'\n\n// ** Imports createContextualCan function\nimport { createContextualCan } from '@casl/react'\n\n// ** Create Context\nexport const AbilityContext = createContext()\n\n// ** Init Can Context\nexport const Can = createContextualCan(AbilityContext.Consumer)\n","// ** React Imports\nimport { useState, createContext, useEffect } from 'react'\n\n// ** Intl Provider Import\nimport { I18nProvider } from \"@lingui/react\";\n\n// ** Core Language Data\nimport messagesEn from '@assets/data/locales/en.json'\nimport messagesAr from '@assets/data/locales/ar.json'\n\n// ** User Language Data\nimport userMessagesEn from '@src/assets/data/locales/en.json'\nimport userMessagesAr from '@src/assets/data/locales/ar.json'\nimport { AppActions } from 'src/store/app/actions'\nimport { locales } from 'src/store/SupportedLocales'\nimport { useDispatch } from 'react-redux'\nimport { i18n } from '@lingui/core';\nimport * as plurs from 'make-plural/plurals';\n// ** Menu msg obj\n// const menuMessages = {\n// en: { ...messagesEn, ...userMessagesEn },\n// ar: { ...messagesAr, ...userMessagesAr },\n// }\n\n// ** Create Context\nconst Context = createContext()\n\nconst loadedLocales = () => {\n let result = {}\n for (const key in locales) {\n result[key] = { plurals: plurs[key] }\n }\n return result;\n}\ni18n.loadLocaleData(loadedLocales())\nasync function dynamicActivate(locale) {\n const { messages } = await import(`@lingui/loader!src/locales/${locale}/messages.po`)\n i18n.load(locale, messages)\n i18n.activate(locale)\n}\n\nconst IntlProviderWrapper = ({ children }) => {\n const lang = localStorage.getItem(\"language\");\n const currentLang = lang ? locales[lang] : Object.values(locales).find(l => l.default);\n // ** States\n const [locale, setLocale] = useState(currentLang.code)\n // const [messages, setMessages] = useState(menuMessages[currentLang.code])\n const dispatch = useDispatch();\n useEffect(() => {\n dispatch(AppActions.changeLocale(currentLang))\n dynamicActivate(currentLang.code);\n }, [])\n // ** Switches Language\n\n\n const switchLanguage = lang => {\n setLocale(lang.code)\n // setMessages(menuMessages[lang.code])\n dispatch(AppActions.changeLocale(lang))\n dynamicActivate(lang.code);\n }\n\n return (\n \n \n {children}\n \n \n )\n}\n\nexport { IntlProviderWrapper, Context as IntlContext }\n","// ** React Imports\nimport { useEffect, useState, createContext } from 'react'\n\n// ** Create Context\nconst ThemeColors = createContext()\n\nconst ThemeContext = ({ children }) => {\n // ** State\n const [colors, setColors] = useState({})\n //** ComponentDidMount\n useEffect(() => {\n if (window !== 'undefined') {\n //** Get variable value\n const getHex = color => window.getComputedStyle(document.body).getPropertyValue(color).trim()\n\n //** Colors obj\n const obj = {\n primary: {\n light: getHex('--primary').concat('1a'),\n main: getHex('--primary')\n },\n secondary: {\n light: getHex('--secondary').concat('1a'),\n main: getHex('--secondary')\n },\n success: {\n light: getHex('--success').concat('1a'),\n main: getHex('--success')\n },\n danger: {\n light: getHex('--danger').concat('1a'),\n main: getHex('--danger')\n },\n warning: {\n light: getHex('--warning').concat('1a'),\n main: getHex('--warning')\n },\n info: {\n light: getHex('--info').concat('1a'),\n main: getHex('--info')\n },\n dark: {\n light: getHex('--dark').concat('1a'),\n main: getHex('--dark')\n }\n }\n\n setColors({ ...obj })\n }\n }, [])\n\n return {children}\n}\n\nexport { ThemeColors, ThemeContext }\n","import pipe from \"ramda/es/pipe\";\nimport trim from \"ramda/es/trim\";\nimport merge from \"ramda/es/merge\";\nimport split from \"ramda/es/split\";\nimport reject from \"ramda/es/reject\";\nimport map from \"ramda/es/map\";\nimport fromPairs from \"ramda/es/fromPairs\";\nimport anyPass from \"ramda/es/anyPass\";\nimport isNil from \"ramda/es/isNil\";\nimport isEmpty from \"ramda/es/isEmpty\";\n\nconst isNilOrEmpty = anyPass([isNil, isEmpty]);\n\nconst defaultOptions = {\n prefix: \"\"\n};\n\nexport default (types, options = {}) => {\n if (isNilOrEmpty(types)) throw new Error(\"valid types are required\");\n\n const { prefix } = merge(defaultOptions, options);\n\n return pipe(\n trim,\n split(/\\s/),\n map(trim),\n reject(isNilOrEmpty),\n map(x => [x, prefix + x]),\n fromPairs\n )(types);\n};\n","import createTypes from \"./createTypes\";\nimport is from \"ramda/es/is\";\nimport isNil from \"ramda/es/isNil\";\nimport isEmpty from \"ramda/es/isEmpty\";\nimport join from \"ramda/es/join\";\nimport keys from \"ramda/es/keys\";\nimport map from \"ramda/es/map\";\nimport mapObjIndexed from \"ramda/es/mapObjIndexed\";\nimport merge from \"ramda/es/merge\";\nimport pick from \"ramda/es/pick\";\nimport pipe from \"ramda/es/pipe\";\nimport replace from \"ramda/es/replace\";\nimport toUpper from \"ramda/es/toUpper\";\nimport zipObj from \"ramda/es/zipObj\";\nimport flatten from \"ramda/es/flatten\";\n\nconst defaultOptions = {\n prefix: \"\"\n};\n\n// matches each word in a camelCaseString (except the first)\n// consecutive capitals are treated as one word\nconst RX_CAPS = /(?!^)([A-Z][a-z]+|[A-Z]+(?=[A-Z]|\\b))/g;\n\n// converts a camelCaseWord into a SCREAMING_SNAKE_CASE word\nconst camelToScreamingSnake = pipe(\n replace(RX_CAPS, \"_$1\"),\n toUpper\n);\n\n// build Action Types out of an object\nconst convertToTypes = (config, options) => {\n const opts = merge(defaultOptions, options);\n const { successPostfix, failPostfix } = opts;\n\n return pipe(\n keys, // just the keys\n keys => {\n return keys.map(k => {\n const _config = config[k];\n if (_config && _config.meta && _config.meta.async) {\n return [k, `${k}${successPostfix || \"Success\"}`, `${k}${failPostfix || \"Fail\"}`];\n } else return k;\n });\n },\n flatten,\n map(camelToScreamingSnake), // CONVERT_THEM\n join(\" \"), // space separated\n types => createTypes(types, opts) // make them into Redux Types\n )(config);\n};\n\n// an action creator with additional properties\nconst createActionCreator = (name, config, options) => {\n const { prefix } = merge(defaultOptions, options);\n // types are upcase and snakey\n const type = `${prefix}${camelToScreamingSnake(name)}`;\n\n const { args, meta } = config;\n const creators = {};\n\n // do we need extra props for this?\n const noKeys = isNil(args) || isEmpty(args);\n\n // a type-only action creator\n if (noKeys) {\n creators[name] = () => ({ type, meta: { ...meta } });\n }\n // an action creator with type + properties\n // \"properties\" is defined as an array of prop names\n else if (is(Array, args)) {\n creators[name] = (...values) => {\n const extraProps = zipObj(args, values);\n return { type, ...extraProps, meta: { ...meta } };\n };\n }\n // an action creator with type + properties\n // \"properties\" is defined as an object of {prop name: default value}\n else if (is(Object, args)) {\n const defaultProps = args;\n creators[name] = valueObject => {\n const providedProps = pick(Object.keys(defaultProps), valueObject);\n return { type, ...defaultProps, ...providedProps, meta: { ...meta } };\n };\n }\n\n if (isEmpty(creators)) {\n throw new Error(\"action props must be a null/array/object/function\");\n }\n\n if (meta && meta.async) {\n const { successPostfix, failPostfix } = options;\n\n const successKey = `${name}${successPostfix || \"Success\"}`;\n const failKey = `${name}${failPostfix || \"Fail\"}`;\n const success = `${prefix}${camelToScreamingSnake(name)}_${(successPostfix || \"success\").toUpperCase()}`;\n const fail = `${prefix}${camelToScreamingSnake(name)}_${(failPostfix || \"fail\").toUpperCase()}`;\n\n creators[successKey] = (...values) => {\n if (values && values.length === 1) {\n const _value = values[0];\n if (Array.isArray(_value)) {\n return { type: success, meta: { done: true }, payload: _value };\n } else {\n return { type: success, meta: { done: true }, payload: { ...values[0] } };\n }\n } else {\n return { type: success, meta: { done: true }, payload: { ...flatten(values) } };\n }\n };\n\n creators[failKey] = error => {\n return { type: fail, meta: { done: true }, error };\n };\n }\n\n return creators;\n};\n\n// build Action Creators out of an objet\nconst convertToCreators = (config, options) => {\n let creators = {};\n mapObjIndexed((num, key, value) => {\n if (typeof value[key] === \"function\") {\n // the user brought their own action creator\n creators[key] = value[key];\n } else {\n // lets make an action creator for them!\n creators = merge(creators, { ...createActionCreator(key, value[key], options) });\n }\n })(config);\n\n return creators;\n};\n\nexport default (config, options) => {\n const emptyObj = {\n Types: undefined,\n Creators: undefined\n };\n if (isNil(config)) {\n return emptyObj;\n throw new Error(\"an object is required to setup types and creators\");\n }\n if (isEmpty(config)) {\n return emptyObj;\n throw new Error(\"empty objects are not supported\");\n }\n\n return {\n Types: convertToTypes(config, options),\n Creators: convertToCreators(config, options)\n };\n};\n","import curry from \"ramda/es/curry\";\nimport is from \"ramda/es/is\";\n/**\n * Allows your reducers to be reset.\n *\n * @param {string} typeToReset - The action type to listen for.\n * @param {function} originalReducer - The reducer to wrap.\n */\nfunction resettableReducer(typeToReset, originalReducer) {\n // a valid type is required\n if (!is(String, typeToReset) || typeToReset === \"\") {\n throw new Error(\"A valid reset type is required.\");\n }\n\n // an original reducer is required\n if (typeof originalReducer !== \"function\") {\n throw new Error(\"A reducer is required.\");\n }\n // run it through first to get what the default state should be\n let resetState = originalReducer(undefined, {});\n\n // create our own reducer that wraps the original one and hijacks the reset\n function reducer(state = resetState, action) {\n if (action && action.type === typeToReset) {\n return resetState;\n } else {\n return originalReducer(state, action);\n }\n }\n return reducer;\n}\n\nexport default curry(resettableReducer);\n","import cr from \"./createReducer\";\nimport ct from \"./createTypes\";\nimport ca from \"./createActions\";\nimport rr from \"./resettableReducer\";\nimport * as Types from \"./Types\";\n\nexport const createReducer = cr;\nexport const createTypes = ct;\nexport const createActions = ca;\nexport const resettableReducer = rr;\nexport { Types };\n","import { produce } from \"immer\";\n\n/**\n *\n * @param {String} stateName the base state name to be used, it will generate statename, statename_loading, statename_errors\n * @param {String{}} extraProps for any extra propers it will generate statename_propname, ...\n */\nconst defaultState = (stateName, extraProps = {}, defaults = null) => {\n let extraPropsState = {};\n if (extraProps && Object.keys(extraProps).length > 0)\n Object.keys(extraProps).map((a) => {\n extraPropsState[`${stateName}_${a}`] = extraProps[a];\n return { [`${stateName}_${a}`]: extraProps[a] };\n });\n\n return {\n [stateName]: defaults,\n [`${stateName}_loading`]: false,\n [`${stateName}_errors`]: [],\n ...extraPropsState,\n };\n};\n\nconst setState = (stateName, isPaginated) => {\n return (state, { payload }) => {\n return produce(state, (draft) => {\n draft[stateName] = isPaginated ? [] : state[stateName];\n draft[`${stateName}_loading`] = true;\n draft[`${stateName}_errors`] = [];\n if (isPaginated) {\n draft[`${stateName}_metadata`] = {};\n }\n });\n };\n};\n\nconst setStateSuccess = (stateName, successCb, isPaginated) => {\n return (state, { payload }) => {\n return produce(state, (draft) => {\n draft[stateName] = isPaginated ? payload.items : payload;\n draft[`${stateName}_loading`] = false;\n draft[`${stateName}_errors`] = [];\n if (successCb) successCb(state, draft, payload);\n if (isPaginated) {\n draft[`${stateName}_metadata`] = payload.metadata;\n }\n });\n };\n};\n\nconst setStateFail = (stateName, failCb, isPaginated) => {\n return (state, { payload }) => {\n return produce(state, (draft) => {\n if (isPaginated) draft[stateName] = [];\n\n draft[`${stateName}_loading`] = false;\n draft[`${stateName}_errors`] = payload.errors;\n draft[`${stateName}_requestId`] = payload.requestId;\n draft[`${stateName}_codeNumber`] = payload.codeNumber;\n if (failCb) failCb(state, draft, payload);\n if (isPaginated) {\n draft[`${stateName}_metadata`] = {};\n }\n });\n };\n};\n\nconst setSyncState = (stateName, doneCb) => {\n return (state, { payload }) => {\n return produce(state, (draft) => {\n if (stateName) draft[stateName] = payload;\n if (doneCb) doneCb(state, draft, payload);\n });\n };\n};\n\n/**\n *\n * @param {String} actionTypes action types\n * @param {String{}} options options which contain action => action name ,\n * @param {String} options.stateName => state name the will bind pubish the result on it,\n * @param {Function} options.successCb => custom success callback for more custom logic,\n * @param {Function} options.failCb => custom failure call back for custom error logic,\n * @param {Boolean} options.isPaginated => by default false , true if the result contains metadata\n * @param {Boolean} options.async => true if you are action doesn't require calling api\n */\nconst bindReducers = (actionTypes, options = {}) => {\n const { action, stateName, successCb, failCb, isPaginated, async } = options;\n let actionName = action.replace(/([A-Z])/g, \"_$1\").toUpperCase();\n if (!actionTypes[`${actionName}`])\n throw new Error(`handlers cannot have an undefined key ${actionName}`);\n\n if (!async)\n return bindSyncReducers(actionTypes, actionName, stateName, successCb);\n else {\n const reducers = {\n [actionTypes[`${actionName}`]]: setState(stateName, isPaginated),\n [actionTypes[`${actionName}_SUCCESS`]]: setStateSuccess(\n stateName,\n successCb,\n isPaginated\n ),\n [actionTypes[`${actionName}_FAIL`]]: setStateFail(\n stateName,\n failCb,\n isPaginated\n ),\n };\n return reducers;\n }\n};\n\nconst bindSyncReducers = (actionTypes, actionName, stateName, doneCb) => {\n const reducers = {\n [actionTypes[`${actionName}`]]: setSyncState(stateName, doneCb),\n };\n\n return reducers;\n};\n\nexport {\n defaultState,\n bindReducers,\n // , bindSyncReducers\n};\n","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n getAllTenants: { args: [\"payload\"], meta: { async: true } },\n getTenantWithId: { args: [\"payload\"], meta: { async: true } },\n createTenant: { args: [\"payload\"], meta: { async: true } },\n updateTenant: { args: [\"payload\"], meta: { async: true } },\n deleteTenant: { args: [\"payload\"], meta: { async: true } },\n setTenant: { args: [\"payload\"], meta: { async: false } },\n showDialog: { args: [], meta: { async: false } },\n showDeleteDialog: { args: [], meta: { async: false } },\n resetDialog: { args: [], meta: { async: false } },\n },\n {\n prefix: \"@app/tenant/\",\n }\n);\n\nexport const ActionTypes = Types;\nexport default Creators;\nexport const AuthActions = Creators;\n","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n createConfig: { args: [\"payload\"], meta: { async: true } },\n\n getAllConfigs: { args: [\"payload\"], meta: { async: true } },\n\n getConfigWithId: { args: [\"payload\"], meta: { async: true } },\n deleteConfig: { args: [\"payload\"], meta: { async: true } },\n editConfig: { args: [\"payload\"], meta: { async: true } },\n\n showDialog: { args: [], meta: { async: false } },\n showDeleteDialog: { args: [], meta: { async: false } },\n resetDialog: { args: [], meta: { async: false } },\n setConfig: { args: [\"payload\"], meta: { async: false } },\n },\n {\n prefix: \"@app/integration/\",\n }\n);\n\nexport const ActionTypes = Types;\nexport default Creators;\nexport const AuthActions = Creators;\n","export default __webpack_public_path__ + \"static/media/iMakaseb.ec467c63.png\";","import isNil from \"ramda/es/isNil\";\nimport is from \"ramda/es/is\";\nimport has from \"ramda/es/has\";\nimport any from \"ramda/es/any\";\nimport equals from \"ramda/es/equals\";\nimport keys from \"ramda/es/keys\";\n\nimport { DEFAULT } from \"./Types\";\n/**\n Creates a reducer.\n @param {string} initialState - The initial state for this reducer.\n @param {object} handlers - Keys are action types (strings), values are reducers (functions).\n @return {object} A reducer object.\n */\nexport default (initialState, handlers) => {\n // initial state is required\n if (isNil(initialState)) {\n throw new Error(\"initial state is required\");\n }\n\n // handlers must be an object\n if (isNil(handlers) || !is(Object, handlers)) {\n throw new Error(\"handlers must be an object\");\n }\n\n // handlers cannot have an undefined key\n if (any(equals(\"undefined\"))(keys(handlers))) {\n throw new Error(\"handlers cannot have an undefined key\");\n }\n\n // create the reducer function\n return (state = initialState, action) => {\n // wrong actions, just return state\n if (isNil(action)) return state;\n if (!has(\"type\", action)) return state;\n\n // look for the handler\n const handler = handlers[action.type] || handlers[DEFAULT];\n\n // no handler no cry\n if (isNil(handler)) return state;\n\n // execute the handler\n return handler(state, action);\n };\n};\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"src/utils/genState\";\nimport createReducer from \"src/utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\n \"spinningWheels\",\n {\n metadata: undefined,\n },\n []\n ),\n};\n\nconst showDeleteDialog = (state, draft, payload) => {\n draft.openDeleteDialog = true;\n};\nconst showDialog = (state, draft, payload) => {\n draft.openDialog = true;\n};\nconst resetDialog = (state, draft, payload) => {\n draft.openDialog = false;\n draft.openDialog = false;\n draft.openDeleteDialog = false;\n draft.openDeleteSegmentDialog = false;\n draft.openDeleteFieldDialog = false;\n};\n\nconst showDeleteSegmentDialog = (state, draft, payload) => {\n draft.openDeleteSegmentDialog = true;\n};\nconst showDeleteFieldDialog = (state, draft, payload) => {\n draft.openDeleteFieldDialog = true;\n};\nconst setSpinningWheel = (state, draft, payload) => {\n draft.spinningWheel = payload;\n};\n\nconst spinningWheelDeleteSuccess = (state, draft, payload) => {\n const spinningWheels = state.spinningWheels;\n draft.spinningWheels = spinningWheels.filter((s) => s.id != payload);\n draft.openDeleteDialog = false;\n};\n\nconst spinningWheelEditedSuccess = (state, draft, payload) => {\n const spinningWheels = state.spinningWheels;\n var index = spinningWheels.findIndex((s) => s.id === payload.id);\n draft.spinningWheels[index] = payload;\n};\n\nconst rewardDeleteSuccess = (state, draft, payload) => {\n const rewards = state.rewards;\n draft.rewards = rewards.filter((s) => s.id != payload);\n draft.openDeleteDialog = false;\n};\n\nconst rewardCreateSuccess = (state, draft, payload) => {\n const rewards = state.rewards;\n draft.rewards = [...rewards, payload];\n draft.openDialog = false;\n};\nconst rewardEditSuccess = (state, draft, payload) => {\n const rewards = state.rewards;\n var index = rewards.findIndex((s) => s.id === payload.id);\n draft.rewards[index] = payload;\n draft.openDialog = false;\n};\nconst reduceRewardQuantitySuccess = (state, draft, payload) => {\n draft.spinningWheel = payload;\n};\nconst ResetRewardsQuantitiesSuccess = (state, draft, payload) => {\n var rewards = state.rewards.forEach((reward) => ({ ...reward, quantity: 0 }));\n draft.rewards = [...rewards];\n};\n///extra data\nconst extraDeletedSuccess = (state, draft, payload) => {\n const extraList = state.extraList;\n draft.extraList = extraList.filter((s) => s.id != payload);\n draft.openDeleteDialog = false;\n};\nconst extraCreateSuccess = (state, draft, payload) => {\n const extraList = state.extraList;\n draft.extraList = [...extraList, payload];\n draft.openDialog = false;\n};\n//segments\nconst segmentCreateSuccess = (state, draft, payload) => {\n const segments = state.segments;\n draft.segments = [...segments, payload];\n draft.openDialog = false;\n};\nconst segmentEditSuccess = (state, draft, payload) => {\n const segments = state.segments;\n var index = segments.findIndex((s) => s.id === payload.id);\n draft.segments[index] = payload;\n draft.openDialog = false;\n};\nconst segmentDeleteSuccess = (state, draft, payload) => {\n const segments = state.segments;\n draft.segments = segments.filter((s) => s.id != payload);\n draft.openDeleteSegmentDialog = false;\n};\n///field\nconst fieldCreateSuccess = (state, draft, payload) => {\n const fields = state.fields;\n draft.fields = [...fields, payload];\n draft.openDialog = false;\n};\nconst fieldDeleteSuccess = (state, draft, payload) => {\n const fields = state.fields;\n draft.fields = fields.filter((s) => s.id != payload);\n draft.openDeleteSegmentDialog = false;\n};\n\nconst spinFinishedSuccess =(state, draft, payload) => {\nconsole.log(\"spinFinishedSuccess\",payload)\n//window.ReactNativeWebView.postMessage(JSON.stringify(payload))\n}\nconst setItem = (state, draft, payload) => {\n const { item, data } = payload;\n draft[item] = data;\n};\n\nconst showDynamicDialog = (state, draft, payload) => {\n const { item } = payload;\n draft[item] = true;\n};\nconst resetDynamicDialog = (state, draft, payload) => {\n const { item } = payload;\n draft[item] = false;\n};\n\nexport const reducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"createSpinningWheel\",\n stateName: \"spinningWheel\",\n async: true,\n isPaginated: false,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"getSpinningWheelWithId\",\n stateName: \"spinningWheel\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getDisplayedSpinningWheel\",\n stateName: \"spinningWheel\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getSpinningWheels\",\n stateName: \"spinningWheels\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editSpinningWheel\",\n stateName: \"spinningWheel\",\n async: true,\n isPaginated: false,\n successCb: spinningWheelEditedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteSpinningWheel\",\n stateName: \"spinningWheelDeleted\",\n async: true,\n isPaginated: false,\n successCb: spinningWheelDeleteSuccess,\n }),\n ///////Rewards\n ...bindReducers(ActionTypes, {\n action: \"getRewards\",\n stateName: \"rewards\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getRewardsImages\",\n stateName: \"rewardsImages\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getRewardsReport\",\n stateName: \"rewardsReport\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteReward\",\n stateName: \"reward\",\n async: true,\n isPaginated: false,\n successCb: rewardDeleteSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createReward\",\n stateName: \"reward\",\n async: true,\n isPaginated: false,\n successCb: rewardCreateSuccess,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"editReward\",\n stateName: \"reward\",\n async: true,\n isPaginated: false,\n successCb: rewardEditSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"reduceRewardQuantity\",\n stateName: \"rewards\",\n async: true,\n isPaginated: false,\n successCb: reduceRewardQuantitySuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"spinFinished\",\n stateName: \"spinFinishedRes\",\n async: true,\n isPaginated: false,\n successCb: spinFinishedSuccess,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"showDeleteDialog\",\n stateName: \"showDeleteDialog\",\n async: false,\n isPaginated: false,\n successCb: showDeleteDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDeleteSegmentDialog\",\n stateName: \"showDeleteSegmentDialog\",\n async: false,\n isPaginated: false,\n successCb: showDeleteSegmentDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDeleteFieldDialog\",\n stateName: \"showDeleteFieldDialog\",\n async: false,\n isPaginated: false,\n successCb: showDeleteFieldDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDialog\",\n stateName: \"showDialog\",\n async: false,\n isPaginated: false,\n successCb: showDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"resetDialog\",\n stateName: \"resetDialog\",\n async: false,\n isPaginated: false,\n successCb: resetDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setSpinningWheel\",\n stateName: \"spinningWheel\",\n async: false,\n isPaginated: false,\n successCb: setSpinningWheel,\n }),\n ...bindReducers(ActionTypes, {\n action: \"resetRewardsQuantities\",\n stateName: \"rewards\",\n async: true,\n isPaginated: false,\n // successCb: ResetRewardsQuantitiesSuccess,\n }),\n //extraData\n ...bindReducers(ActionTypes, {\n action: \"createExtraData\",\n stateName: \"extraData\",\n async: true,\n isPaginated: false,\n successCb: extraCreateSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getAllExtraData\",\n stateName: \"extraList\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteExtraData\",\n stateName: \"extraData\",\n async: true,\n isPaginated: false,\n successCb: extraDeletedSuccess,\n }),\n //segments\n ...bindReducers(ActionTypes, {\n action: \"getSegments\",\n stateName: \"segments\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createSegment\",\n stateName: \"segment\",\n async: true,\n isPaginated: false,\n successCb: segmentCreateSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editSegment\",\n stateName: \"segment\",\n async: true,\n isPaginated: false,\n successCb: segmentEditSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteSegment\",\n stateName: \"segment\",\n async: true,\n isPaginated: false,\n successCb: segmentDeleteSuccess,\n }),\n\n ////field\n ...bindReducers(ActionTypes, {\n action: \"getFields\",\n stateName: \"fields\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createField\",\n stateName: \"field\",\n async: true,\n isPaginated: false,\n successCb: fieldCreateSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteField\",\n stateName: \"field\",\n async: true,\n isPaginated: false,\n successCb: fieldDeleteSuccess,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"setItem\",\n stateName: \"setItem\",\n async: false,\n isPaginated: false,\n successCb: setItem,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDynamicDialog\",\n stateName: \"dialog\",\n async: false,\n isPaginated: false,\n successCb: showDynamicDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"resetDynamicDialog\",\n stateName: \"dialog\",\n async: false,\n isPaginated: false,\n successCb: resetDynamicDialog,\n }),\n});\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"src/utils/genState\";\nimport createReducer from \"src/utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\"tenants\", { metadata: undefined }, []),\n ...defaultState(\"tenant\", { metadata: undefined }, {}),\n};\n\nconst tenantEditedSuccess = (state, draft, payload) => {\n const tenants = state.tenants || [];\n var tenantIndex = tenants.findIndex((u) => u.id === payload.id);\n draft.tenants[tenantIndex] = payload;\n draft.openDialog = false;\n};\n\nconst tenantCreatedSuccess = (state, draft, payload) => {\n const tenants = state.tenants || [];\n draft.tenants = [...tenants, payload];\n draft.openDialog = false;\n};\n\nconst tenantDeleteSuccess = (state, draft, payload) => {\n const tenants = state.tenants || [];\n draft.tenants = tenants.filter((a) => a.id != payload);\n draft.openDeleteDialog = false;\n};\nconst setTenant = (state, draft, payload) => {\n draft.tenant = undefined;\n};\n\nconst showDialog = (state, draft, payload) => {\n draft.openDialog = true;\n};\nconst showDeleteDialog = (state, draft, payload) => {\n draft.openDeleteDialog = true;\n};\nconst resetDialog = (state, draft, payload) => {\n draft.openDialog = false;\n draft.openDeleteDialog = false;\n draft.tenant_errors = [];\n};\n\nexport const reducer = createReducer(initialState, {\n\n ...bindReducers(ActionTypes, {\n action: \"getAllTenants\",\n stateName: \"tenants\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getTenantWithId\",\n stateName: \"tenant\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createTenant\",\n stateName: \"tenant\",\n async: true,\n isPaginated: false,\n successCb: tenantCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"updateTenant\",\n stateName: \"tenant\",\n async: true,\n isPaginated: false,\n successCb: tenantEditedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteTenant\",\n stateName: \"tenant\",\n async: true,\n isPaginated: false,\n successCb: tenantDeleteSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setTenant\",\n stateName: \"tenant\",\n async: false,\n isPaginated: false,\n successCb: setTenant,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"showDeleteDialog\",\n stateName: \"showDeleteDialog\",\n async: false,\n isPaginated: false,\n successCb: showDeleteDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDialog\",\n stateName: \"showDialog\",\n async: false,\n isPaginated: false,\n successCb: showDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"resetDialog\",\n stateName: \"resetDialog\",\n async: false,\n isPaginated: false,\n successCb: resetDialog,\n }),\n});\n","// import { createReducer } from \"utils/reduxsauce\";\nimport { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"src/utils/genState\";\nimport createReducer from \"src/utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\n \"users\",\n {\n metadata: undefined,\n selectedUser: undefined,\n openDialog: false,\n openDeleteDialog: false,\n },\n []\n ),\n ...defaultState(\n \"roles\",\n { metadata: undefined, selectedUser: undefined },\n []\n ),\n \n};\n\nconst userCreatedSuccess = (state, draft, payload) => {\n const users = state.users || [];\n draft.users = [...users, payload];\n\n draft.openDialog = false;\n};\nconst userDeleteSuccess = (state, draft, payload) => {\n const users = state.users || [];\n draft.users = users.filter((a) => a.id != payload.id);\n draft.openDeleteDialog = false;\n};\nconst roleDeleteSuccess = (state, draft, payload) => {\n const roles = state.roles || [];\n draft.roles = roles.filter((a) => a.id != payload.id);\n draft.openDeleteDialog = false;\n};\n\nconst roleCreatedSuccess = (state, draft, payload) => {\n const roles = state.roles || [];\n draft.roles = [...roles, payload];\n\n // draft.openDialog = false;\n};\n\nconst userEditedSuccess = (state, draft, payload) => {\n const users = state.users || [];\n var userIndex = users.findIndex((u) => u.id === payload.id);\n draft.users[userIndex] = payload;\n draft.openDialog = false;\n};\nconst roleEditedSuccess = (state, draft, payload) => {\n const roles = state.roles || [];\n var roleIndex = roles.findIndex((u) => u.id === payload.id);\n draft.roles[roleIndex] = payload;\n};\nconst showDialog = (state, draft, payload) => {\n draft.openDialog = true;\n};\nconst showDeleteDialog = (state, draft, payload) => {\n draft.openDeleteDialog = true;\n};\n\nconst resetDialog = (state, draft, payload) => {\n draft.openDialog = false;\n draft.openDeleteDialog = false;\n draft.user_errors = [];\n};\nexport const reducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"deleteUser\",\n stateName: \"user\",\n async: true,\n isPaginated: false,\n successCb: userDeleteSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDeleteDialog\",\n stateName: \"showDeleteDialog\",\n async: false,\n isPaginated: false,\n successCb: showDeleteDialog,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"getUsers\",\n stateName: \"users\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setUser\",\n stateName: \"user\",\n async: false,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getUser\",\n stateName: \"user\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getVisitor\",\n stateName: \"visitor\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getPerson\",\n stateName: \"person\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createUser\",\n stateName: \"user\",\n async: true,\n isPaginated: false,\n successCb: userCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createVisitor\",\n stateName: \"Visitor\",\n async: true,\n isPaginated: false,\n // successCb: userCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createPerson\",\n stateName: \"Person\",\n async: true,\n isPaginated: false,\n // successCb: userCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createUsers\",\n stateName: \"users\",\n async: true,\n isPaginated: false,\n successCb: userCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createAppUser\",\n stateName: \"user\",\n async: true,\n isPaginated: false,\n successCb: userCreatedSuccess,\n }), \n ...bindReducers(ActionTypes, {\n action: \"scanUserCode\",\n stateName: \"scancode\",\n async: true,\n isPaginated: false,\n \n }),\n ...bindReducers(ActionTypes, {\n action: \"signOutUserCode\",\n stateName: \"scancode\",\n async: true,\n isPaginated: false,\n \n }),\n ...bindReducers(ActionTypes, {\n action: \"createRole\",\n stateName: \"role\",\n async: true,\n isPaginated: false,\n successCb: roleCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editUser\",\n stateName: \"user\",\n async: true,\n isPaginated: false,\n successCb: userEditedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editRole\",\n stateName: \"role\",\n async: true,\n isPaginated: false,\n successCb: roleEditedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getRoles\",\n stateName: \"roles\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getRole\",\n stateName: \"role\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getPermissions\",\n stateName: \"permissions\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDialog\",\n stateName: \"showDialog\",\n async: false,\n isPaginated: true,\n successCb: showDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"resetDialog\",\n stateName: \"resetDialog\",\n async: false,\n isPaginated: true,\n successCb: resetDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteRole\",\n stateName: \"role\",\n async: true,\n isPaginated: false,\n successCb: roleDeleteSuccess,\n }),\n});\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"src/utils/genState\";\nimport createReducer from \"src/utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\"guests\", { metadata: undefined }, []),\n ...defaultState(\"guest\", { metadata: undefined }, {}),\n};\n\nconst guestCreatedSuccess = (state, draft, payload) => {\n const guests = state.guests || [];\n draft.guests = [...guests, payload];\n draft.openDialog = false;\n localStorage.setItem(\"registeredGuest\", JSON.stringify(payload));\n};\nconst guestEditSuccess = (state, draft, payload) => {\n const guests = state.guests;\n var index = guests.findIndex((s) => s.id === payload.id);\n draft.guests[index] = payload;\n draft.openDialog = false;\n localStorage.removeItem(\"registeredGuest\");\n};\n\nconst setGuest = (state, draft, payload) => {\n draft.guest = payload;\n};\nconst setItem = (state, draft, payload) => {\n const { item, data } = payload;\n draft[item] = data;\n};\n\n\nexport const reducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"getAllGuests\",\n stateName: \"guests\",\n async: true,\n isPaginated: true,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"createGuest\",\n stateName: \"guest\",\n async: true,\n isPaginated: false,\n successCb: guestCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editGuestReward\",\n stateName: \"guestReward\",\n async: true,\n isPaginated: false,\n successCb: guestEditSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getGuestsReport\",\n stateName: \"guestsReport\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setGuest\",\n stateName: \"guestSet\",\n async: false,\n isPaginated: false,\n successCb: setGuest,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setItem\",\n stateName: \"setItem\",\n async: false,\n isPaginated: false,\n successCb: setItem,\n }),\n});\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"src/utils/genState\";\nimport createReducer from \"src/utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\"integrations\", { metadata: undefined }, []),\n ...defaultState(\"integration\", { metadata: undefined }, {}),\n};\n\nconst showDeleteDialog = (state, draft, payload) => {\n draft.openDeleteDialog = true;\n};\nconst showDialog = (state, draft, payload) => {\n draft.openDialog = true;\n};\nconst resetDialog = (state, draft, payload) => {\n draft.openDialog = false;\n draft.openDeleteDialog = false;\n};\nconst setConfig = (state, draft, payload) => {\n const { config, data } = payload;\n draft[config] = data;\n};\n\nexport const reducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"createConfig\",\n stateName: \"config\",\n async: true,\n isPaginated: false,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"getAllConfigs\",\n stateName: \"configs\",\n async: true,\n isPaginated: true,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"getConfigWithId\",\n stateName: \"config\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteConfig\",\n stateName: \"config\",\n async: true,\n isPaginated: false,\n // successCb: userDeleteSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editConfig\",\n stateName: \"config\",\n async: true,\n isPaginated: false,\n // successCb: userDeleteSuccess,\n }),\n ///////\n ...bindReducers(ActionTypes, {\n action: \"setConfig\",\n stateName: \"setConfig\",\n async: false,\n isPaginated: false,\n successCb: setConfig,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDialog\",\n stateName: \"showDialog\",\n async: false,\n isPaginated: false,\n successCb: showDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"showDeleteDialog\",\n stateName: \"showDeleteDialog\",\n async: false,\n isPaginated: false,\n successCb: showDeleteDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"resetDialog\",\n stateName: \"resetDialog\",\n async: false,\n isPaginated: false,\n successCb: resetDialog,\n }),\n});\n","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n getAllGuests: { args: [\"payload\"], meta: { async: true } },\n createGuest: { args: [\"payload\"], meta: { async: true } },\n editGuestReward: { args: [\"payload\"], meta: { async: true } },\n getGuestsReport: { args: [\"payload\"], meta: { async: true } },\n setGuest: { args: [], meta: { async: false } },\n setItem: { args: [\"payload\"], meta: { async: false } },\n\n },\n {\n prefix: \"@app/guest/\",\n }\n);\n\nexport const ActionTypes = Types;\nexport default Creators;\nexport const AuthActions = Creators;\n","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n createSpinningWheel: { args: [\"payload\"], meta: { async: true } },\n getSpinningWheelWithId: { args: [\"payload\"], meta: { async: true } },\n getDisplayedSpinningWheel: { args: [\"payload\"], meta: { async: true } },\n getSpinningWheels: { args: [\"payload\"], meta: { async: true } },\n editSpinningWheel: { args: [\"payload\"], meta: { async: true } },\n deleteSpinningWheel: { args: [\"payload\"], meta: { async: true } },\n\n //rewards\n createReward: { args: [\"payload\"], meta: { async: true } },\n getRewards: { args: [\"payload\"], meta: { async: true } },\n editReward: { args: [\"payload\"], meta: { async: true } },\n deleteReward: { args: [\"payload\"], meta: { async: true } },\n reduceRewardQuantity: { args: [\"payload\"], meta: { async: true } },\n spinFinished: { args: [\"payload\"], meta: { async: true } },\n getRewardsImages: { args: [\"payload\"], meta: { async: true } },\n getRewardsReport: { args: [\"payload\"], meta: { async: true } },\n resetRewardsQuantities: { args: [\"payload\"], meta: { async: true } },\n //extraData\n getAllExtraData: { args: [\"payload\"], meta: { async: true } },\n deleteExtraData: { args: [\"payload\"], meta: { async: true } },\n createExtraData: { args: [\"payload\"], meta: { async: true } },\n\n //segments\n getSegments: { args: [\"payload\"], meta: { async: true } },\n createSegment: { args: [\"payload\"], meta: { async: true } },\n editSegment: { args: [\"payload\"], meta: { async: true } },\n deleteSegment: { args: [\"payload\"], meta: { async: true } },\n ////// Fields\n getFields: { args: [\"payload\"], meta: { async: true } },\n createField: { args: [\"payload\"], meta: { async: true } },\n deleteField: { args: [\"payload\"], meta: { async: true } },\n\n setSpinningWheel: { args: [], meta: { async: false } },\n showDialog: { args: [], meta: { async: false } },\n showDeleteDialog: { args: [], meta: { async: false } },\n resetDialog: { args: [], meta: { async: false } },\n showDeleteSegmentDialog: { args: [], meta: { async: false } },\n showDeleteFieldDialog: { args: [], meta: { async: false } },\n showDynamicDialog: { args: [\"payload\"], meta: { async: false } },\n resetDynamicDialog: { args: [\"payload\"], meta: { async: false } },\n setItem: { args: [\"payload\"], meta: { async: false } },\n },\n {\n prefix: \"@app/spinningWheels/\",\n }\n);\nexport const ActionTypes = Types;\nexport default Creators;\n","var map = {\n\t\"./ar/messages.po\": [\n\t\t528,\n\t\t54\n\t],\n\t\"./en/messages.po\": [\n\t\t529,\n\t\t55\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 514;\nmodule.exports = webpackAsyncContext;","// ** ThemeConfig Import\nimport themeConfig from 'src/configs/themeConfig'\nimport { createReducer } from \"reduxsauce\";\nimport { produce } from \"immer\";\n\nimport { ActionTypes } from \"./actions\";\nimport { bindReducers } from \"src/utils/genState\";\n\n// ** Returns Initial Menu Collapsed State\nconst initialMenuCollapsed = () => {\n const item = window.localStorage.getItem('menuCollapsed')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed\n}\n\n// ** Initial State\nconst initialState = {\n isRTL: themeConfig.layout.isRTL,\n menuCollapsed: initialMenuCollapsed(),\n menuHidden: themeConfig.layout.menu.isHidden,\n contentWidth: themeConfig.layout.contentWidth\n}\n\nconst setRtl = (state, draft, payload) => {\n draft.isRTL = payload;\n}\nconst setMenuHidden = (state, draft, payload) => {\n draft.menuHidden = payload;\n}\nconst setMenuCollapsed = (state, draft, payload) => {\n draft.menuCollapsed = payload;\n}\n\nconst layoutReducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"handleRtl\",\n stateName: \"isRTL\",\n async: false,\n isPaginated: false,\n successCb: setRtl,\n }),\n ...bindReducers(ActionTypes, {\n action: \"handleMenuHidden\",\n stateName: \"isRTL\",\n async: false,\n isPaginated: false,\n successCb: setMenuHidden,\n }),\n ...bindReducers(ActionTypes, {\n action: \"handleMenuCollapsed\",\n stateName: \"menuCollapsed\",\n async: false,\n isPaginated: false,\n successCb: setMenuCollapsed,\n }),\n\n // [ActionTypes.LOGOUT]: logout,\n\n});\n\n// const layoutReducer = (state = initialState, action) => {\n// switch (action.type) {\n// case 'HANDLE_CONTENT_WIDTH':\n// return { ...state, contentWidth: action.value }\n// case 'HANDLE_MENU_COLLAPSED':\n// window.localStorage.setItem('menuCollapsed', action.value)\n// return { ...state, menuCollapsed: action.value }\n// case 'HANDLE_MENU_HIDDEN':\n// return { ...state, menuHidden: action.value }\n// case 'HANDLE_RTL':\n// return { ...state, isRTL: action.value }\n// default:\n// return state\n// }\n// }\n\nexport default layoutReducer\n","// ** Initial State\nconst initialState = {\n suggestions: [],\n bookmarks: [],\n query: ''\n}\n\nconst navbarReducer = (state = initialState, action) => {\n switch (action.type) {\n case 'HANDLE_SEARCH_QUERY':\n return { ...state, query: action.val }\n case 'GET_BOOKMARKS':\n return { ...state, suggestions: action.data, bookmarks: action.bookmarks }\n case 'UPDATE_BOOKMARKED':\n let objectToUpdate\n\n // ** find & update object\n state.suggestions.find(item => {\n if (item.id === action.id) {\n item.isBookmarked = !item.isBookmarked\n objectToUpdate = item\n }\n })\n\n // ** Get index to add or remove bookmark from array\n const bookmarkIndex = state.bookmarks.findIndex(x => x.id === action.id)\n\n if (bookmarkIndex === -1) {\n state.bookmarks.push(objectToUpdate)\n } else {\n state.bookmarks.splice(bookmarkIndex, 1)\n }\n\n return { ...state }\n default:\n return state\n }\n}\n\nexport default navbarReducer\n","import { createReducer } from \"reduxsauce\";\nimport { produce } from \"immer\";\nimport jwtDecoder from \"jwt-decode\";\n\nimport { ActionTypes } from \"./actions\";\nimport { bindReducers } from \"src/utils/genState\";\n\nconst initialState = {\n user: null,\n isLoggedIn: false,\n token: null,\n loginError: undefined,\n notifications: [],\n};\n\nconst login = (state) => {\n return produce(state, (draft) => {\n draft.loginLoading = true;\n });\n};\nconst loginSuccess = (state, draft, payload) => {\n //console.log(\"payload\",payload)\n const user = jwtDecoder(payload.token);\n draft.user = user;\n draft.isLoggedIn = true;\n draft.loginLoading = false;\n const roles = JSON.parse(user?.role);\n localStorage.setItem(\"userData\", JSON.stringify(user));\n localStorage.setItem(\"jwtToken\", payload.token);\n localStorage.setItem(\"refreshToken\", payload.refreshToken);\n draft.login = undefined;\n};\n\nconst loginFail = (state, { payload }) => {\n return produce(state, (draft) => {\n draft.loginLoading = false;\n draft.loginError = payload.message;\n });\n};\nconst loginExternal = (state) => {\n return produce(state, (draft) => {\n draft.loginExternalLoading = true;\n });\n};\nconst loginExternalSuccess = (state, draft, payload) => {\n const user = jwtDecoder(payload.token);\n draft.user = user;\n draft.isLoggedIn = true;\n draft.loginLoading = false;\n localStorage.setItem(\"userData\", JSON.stringify(user));\n localStorage.setItem(\"jwtToken\", payload.token);\n draft.login = undefined;\n};\n\nconst loginExternalFail = (state, draft, payload) => {\n draft.loginExternalLoading = false;\n draft.loginExternalLoadingError = payload.errorMessage;\n};\nconst updateTokenSuccess = (state, draft, payload) => {\n const user = jwtDecoder(payload);\n if (user.active === false) {\n localStorage.removeItem(\"userData\");\n localStorage.removeItem(\"jwtToken\");\n draft.user = undefined;\n draft.isLoggedIn = false;\n return;\n }\n draft.user = user;\n draft.loginLoading = false;\n localStorage.setItem(\"userData\", JSON.stringify(user));\n localStorage.setItem(\"jwtToken\", payload);\n};\nconst updateUserScoreSuccess = (state, draft, payload) => {\n draft.user = { ...draft.user, score: payload };\n};\nconst refreshTokenSuccess = (state, draft, payload) => {\n localStorage.setItem(\"jwtToken\", payload.token);\n localStorage.setItem(\"refreshToken\", payload.refreshToken);\n draft.refreshToken = undefined;\n}\nconst refreshTokenFailure = (state, draft, payload) => {\n localStorage.removeItem(\"userData\");\n localStorage.removeItem(\"jwtToken\");\n localStorage.removeItem(\"refreshToken\");\n\n draft.user = undefined;\n draft.isLoggedIn = false;\n}\nconst switchAsTenantSuccess = (state, draft, payload) => {\n if (!payload) return;\n const { tenantId, switched } = payload;\n if (!switched) {\n localStorage.removeItem(\"t__id\");\n draft.user = { ...state.user, switched: false }\n return;\n }\n localStorage.setItem(\"t__id\", tenantId);\n draft.user = { ...state.user, switched: true }\n}\nconst switchAsTenantFailure = (state, draft, payload) => {\n}\n\nconst logout = (state, { payload }) => {\n return produce(state, (draft) => {\n localStorage.removeItem(\"userData\");\n localStorage.removeItem(\"jwtToken\");\n localStorage.removeItem(\"refreshToken\");\n draft.user = undefined;\n draft.refreshToken = undefined;\n draft.isLoggedIn = false;\n });\n};\nconst resetPasswordSuccess = (state, draft, payload) => {\n draft.changePassword_errors = null;\n};\n\nexport const authReducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"login\",\n stateName: \"login\",\n async: true,\n isPaginated: false,\n successCb: loginSuccess,\n }),\n\n // ...bindReducers(ActionTypes, {\n // action: \"refreshToken\",\n // stateName: \"refreshToken\",\n // async: true,\n // isPaginated: false,\n // successCb: loginSuccess\n // }),\n\n ...bindReducers(ActionTypes, {\n action: \"loginExternal\",\n stateName: \"loginExternal\",\n async: true,\n isPaginated: false,\n successCb: loginExternalSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"updateToken\",\n stateName: \"updateToken\",\n async: false,\n isPaginated: false,\n successCb: updateTokenSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"updateProfile\",\n stateName: \"updateProfile\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"changePassword\",\n stateName: \"changePassword\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"resetChangePassword\",\n stateName: \"resetChangePassword\",\n successCb: resetPasswordSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"updateUserScore\",\n async: false,\n isPaginated: false,\n successCb: updateUserScoreSuccess,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"refreshToken\",\n stateName: \"refreshToken\",\n async: true,\n isPaginated: false,\n successCb: refreshTokenSuccess,\n failCb: refreshTokenFailure\n }),\n ...bindReducers(ActionTypes, {\n action: \"switchAsTenant\",\n stateName: \"switchAsTenant\",\n async: false,\n isPaginated: false,\n successCb: switchAsTenantSuccess,\n failCb: switchAsTenantFailure\n }),\n [ActionTypes.LOGOUT]: logout,\n});\n","import { connectRouter } from \"connected-react-router\";\nimport { combineReducers } from \"redux\";\nimport { persistReducer } from \"redux-persist\";\nimport storage from \"redux-persist/lib/storage\";\nimport layoutReducer from \"./layout/reducer\";\nimport navbarReducer from \"./navbar/reducer\";\n// -------------------\nimport { authReducer } from \"./auth/reducer\";\n\nconst rootPersistConfig = {\n key: \"root\",\n storage,\n blacklist: [\n \"router\",\n \"layout\",\n \"spinningWheel\",\n \"tenant\",\n \"userManegment\",\n \"guest\",\n \"integration\",\n ],\n};\n\nexport default function createReducer(asyncReducers, history) {\n return persistReducer(\n rootPersistConfig,\n combineReducers({\n ...asyncReducers,\n router: connectRouter(history),\n app: require(\"./app/reducer\").reducer,\n auth: authReducer,\n layout: layoutReducer,\n navbar: navbarReducer,\n spinningWheel: require(\"./spinningWheel/reducer\").reducer,\n tenant: require(\"./tenant/reducer\").reducer,\n userManegment: require(\"./userManagement/reducer\").reducer,\n guest: require(\"./registration/reducer\").reducer,\n integration: require(\"./Integration/reducer\").reducer,\n })\n );\n}\n","const Storage = window.localStorage;\n\nexport default Storage;","import { createLogic } from \"redux-logic\";\nimport { toast } from \"react-toastify\";\nimport { push } from \"connected-react-router\";\n// import adminActions from \"store/admin/actions\";\nimport authActions from \"src/store/auth/actions\";\nimport storage from \"src/services/storage\";\nimport jwtDecoder from \"jwt-decode\";\nimport * as moment from \"moment\";\nimport AsyncLock from \"async-lock\";\n\nconst normalizeActionName = (actionName) => {\n if (actionName == undefined) {\n console.error(\"action is not correct passed to logic generator\");\n }\n return actionName\n .toLowerCase()\n .split(\"/\")\n .pop()\n .split(\"_\")\n .map((a, i) => (i > 0 ? a.charAt(0).toUpperCase() + a.substring(1) : a))\n .join(\"\");\n};\n\nconst sleep = (ms) => {\n return new Promise((resolve) => setTimeout(resolve, ms));\n};\n\n/**\n *\n * @param {String} apiNamespace api namespace\n * @param {String{}} options options which contain all options ,\n * @param {String} options.actionName => action name which will be executed,\n * @param {Function} options.successCb => custom success callback for more custom logic,\n * @param {Function} options.failCb => custom failure call back for custom error logic,\n * @param {String} options.successMessage => success message that will show on toastr when action successeded ,\n * @param {String} options.errorMessage => error message that will show on toastr when action failed,\n * @param {Boolean} options.showSuccessMessage => boolean if you have a custom success message by default false,\n * @param {Boolean} options.showErrorMessage => boolean if you have a custom error message by default false,\n *\n */\nconst appApi = {};\nvar lock = new AsyncLock();\nexport const logic = (apiNamespace, options = {}) => {\n const {\n actionName,\n successCb,\n failCb,\n successMessage,\n errorMessage,\n showSuccessMessage,\n showErrorMessage,\n } = options;\n const api_name = normalizeActionName(actionName);\n\n const logic = createLogic({\n type: actionName,\n latest: true,\n\n async process({ getState, action, api }, dispatch, done) {\n try {\n if (!appApi.api) {\n appApi.api = api;\n appApi.logout=() => dispatch(authActions.logout())\n }\n\n _validateApi(api, apiNamespace, api_name, action);\n // console.log(\"calling api\",apiNamespace,api_name)\n lock.acquire(\"refreshToken\", (done) => {\n refreshToken({ ...appApi });\n done();\n\n })\n // console.log(\"enter\",apiNamespace,api_name)\n let request = {};\n\n let successCallBack = action?.payload?.successCallBack || null;\n let failCallBack = action?.payload?.failCallBack || null;\n\n if (action?.payload) {\n if (action.payload?.successCallBack) {\n const { successCallBack, ...rest } = action?.payload;\n request = rest;\n } else {\n request = action?.payload;\n }\n }\n\n const res = await api[apiNamespace][api_name](request);\n let requestId = res.data.requestId;\n let response = res.data?.payload || null;\n if (typeof (response) == \"object\" && !Array.isArray(response) && requestId) {\n response = { ...response, requestId };\n }\n if (!res.ok) {\n if (res.status == 401) {\n const token = \"jwtToken\";\n // const currentToken = localStorage.getItem(token);\n // if (currentToken) localStorage.removeItem(token);\n // dispatch(adminActions.reset());\n dispatch(authActions.logout());\n dispatch(push(\"/\"));\n } else {\n const _errorMsg =\n res.data &&\n (res.data.errors ||\n res.data.errorMessage ||\n res.data.errorMessage);\n (\"Unknown Error\");\n dispatch({\n type: `${actionName}_FAIL`,\n payload: {\n errors: _errorMsg,\n codeNumber: res.data.codeNumber,\n requestId,\n },\n error: true,\n });\n failCallBack && failCallBack({ ...res.data });\n\n if (failCb) {\n failCb(dispatch, { ...res.data });\n }\n if (showErrorMessage) {\n if (errorMessage) toast.error(errorMessage);\n else {\n if (res.data && res.data.errorCode == \"404\") {\n toast.error(\"No data found\");\n } else {\n toast.error(res.data.errorMessage);\n }\n }\n }\n }\n } else {\n successCallBack &&\n successCallBack(response);\n\n dispatch({\n type: `${actionName}_SUCCESS`,\n payload: response,\n });\n\n successCb &&\n successCb(dispatch, response);\n if (showSuccessMessage) toast.success(successMessage);\n }\n } catch (err) {\n console.error(\"Unhandled error in logic \", err);\n dispatch({ type: `${actionName}_FAIL`, payload: err, error: true });\n failCb && failCb(dispatch);\n }\n done();\n },\n });\n return logic;\n};\n\nconst checking = {\n loading: false\n};\nsetInterval(async () => {\n try {\n await refreshToken({ ...appApi })\n } catch (error) {\n\n console.log(\"failed checking token will try again \")\n } finally {\n checking.loading = false;\n }\n\n}, 5000);\n\nconst refreshToken = async ({ api, logout }) => {\n // console.log(\"starting check token \")\n try {\n if (!!checking.loading) {\n // console.log(\"other call is running and checking the token expiry..\")\n return;\n }\n checking.loading = true;\n if (!api) return;\n const token = localStorage.getItem(\"jwtToken\");\n if (token) {\n const decoder = jwtDecoder(token);\n // console.log(decoder.exp)\n if ((decoder.exp-10) < moment().unix()) {\n // console.log(\"starting refreshing the token ...\", new Date().toTimeString())\n const refreshToken = localStorage.getItem(\"refreshToken\");\n const response = await api[\"auth\"][\"refreshToken\"]({\n token: token,\n refreshToken: refreshToken,\n });\n if (response.ok) {\n const payload = response.data.payload;\n localStorage.setItem(\"jwtToken\", payload.token);\n localStorage.setItem(\"refreshToken\", payload.refreshToken);\n }\n else {\n logout()\n\n }\n }\n }\n checking.loading = false;\n } catch (error) {\n console.log(\"failed checking token will try again \")\n } finally {\n checking.loading = false;\n // console.log(\"cheking refresh token done \")\n }\n};\nfunction _validateApi(api, apiNamespace, api_name, action) {\n //todo: validatte api\n const func = api[apiNamespace][api_name];\n // console.log(\"res\",api_name,apiNamespace)\n if (!func) {\n }\n}\n\nexport default logic;\n","import { ActionTypes } from \"./actions\";\nimport logic from \"src/utils/genLogic\";\n\nconst apiNamespace = \"app\";\n\nconst pingLogic = logic(apiNamespace, {actionName:ActionTypes.PING});\nconst getCountriesLogic = logic(apiNamespace, {actionName:ActionTypes.GET_COUNTRIES});\nconst getCitiesLogic = logic(apiNamespace, {actionName:ActionTypes.GET_CITIES});\n\nexport default [pingLogic,getCountriesLogic,getCitiesLogic];\n","import { ActionTypes } from \"./actions\";\nimport logic from \"src/utils/genLogic\";\nimport { push } from \"connected-react-router\";\nimport jwtDecoder from \"jwt-decode\";\n\nconst apiNamespace = \"auth\";\n\nconst loginLogic = logic(apiNamespace, {\n actionName: ActionTypes.LOGIN,\n showErrorMessage: true,\n errorMessage: \"Invalid login \",\n showSuccessMessage: false,\n // successMessage:\"Welcome back\",\n successCb: (dispatch, payload) => {\n dispatch(push(\"/home\"));\n },\n});\n\nconst refreshTokenLogic = logic(apiNamespace, {\n actionName: ActionTypes.REFRESH_TOKEN,\n});\n\nexport const loginExternalLogic = logic(apiNamespace, {\n actionName: ActionTypes.LOGIN_EXTERNAL,\n showErrorMessage: true,\n errorMessage: \"Invalid login \",\n showSuccessMessage: false,\n // successMessage:\"Welcome back\",\n successCb: (dispatch, payload) => {\n dispatch(push(\"/home\"));\n },\n});\n\nconst changePasswordLogic = logic(apiNamespace, {\n actionName: ActionTypes.CHANGE_PASSWORD,\n showErrorMessage: true,\n errorMessage: \"Faild to change your password \",\n showSuccessMessage: true,\n successMessage: \"Your password updated successfully\",\n});\nconst updateProfileLogic = logic(apiNamespace, {\n actionName: ActionTypes.UPDATE_PROFILE,\n showErrorMessage: true,\n errorMessage: \"Faild to update your profile\",\n showSuccessMessage: true,\n successMessage: \"Your profile updated successfully\",\n});\n\nexport default [\n changePasswordLogic,\n updateProfileLogic,\n loginLogic,\n loginExternalLogic,\n refreshTokenLogic,\n];\n","import logic from \"src/utils/genLogic\";\nimport { ActionTypes } from \"./actions\";\nimport { push } from \"connected-react-router\";\nimport { Trans } from \"@lingui/react\";\nimport spinActions from \"src/store/spinningWheel/actions\";\n\nconst apiNamespace = \"spinningWheels\";\n\nconst getSpinningWheelWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_SPINNING_WHEEL_WITH_ID,\n showErrorMessage: true,\n showSuccessMessage: false,\n});\nconst getDisplayedSpinningWheelLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_DISPLAYED_SPINNING_WHEEL,\n showErrorMessage: true,\n showSuccessMessage: false,\n\n // failCb: (dispatch) => {\n // dispatch(push('/spinning-wheel/list'))\n // }\n});\nconst getSpinningWheelsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_SPINNING_WHEELS,\n});\nconst editSpinningWheelLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_SPINNING_WHEEL,\n // successCb: (dispatch) => {\n // dispatch(push(\"/spinningWheel/list\"))\n // }\n\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\nconst deleteSpinningWheelLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_SPINNING_WHEEL,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\n\nconst createSpinningWheelLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_SPINNING_WHEEL,\n\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(push(\"/spinningWheel/list\"));\n },\n});\n//rewards\nconst getRewardsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_REWARDS,\n});\n\nconst getRewardsImagesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_REWARDS_IMAGES,\n});\nconst getRewardsReportLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_REWARDS_REPORT,\n});\nconst createRewardLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_REWARD,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\nconst editRewardLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_REWARD,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\nconst deleteRewardLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_REWARD,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\nconst reduceRewardQuantityLogic = logic(apiNamespace, {\n actionName: ActionTypes.REDUCE_REWARD_QUANTITY,\n // successCb: (dispatch,data) => {\n // if(data?.spinningWheelId) dispatch(push(`/spinningWheel/displayed-wheel/${data?.spinningWheelId}`));\n // },\n});\nconst spinFinishedLogic = logic(apiNamespace, {\n actionName: ActionTypes.SPIN_FINISHED,\n\n successCb: (dispatch, data) => {\n dispatch(spinActions?.getSpinningWheelWithId(data?.spinningWheelId))\n // if(data?.spinningWheelId) dispatch(push(`/spinningWheel/displayed-wheel/${data?.spinningWheelId}`));\n },\n});\nconst resetRewardsQuantitiesLogic = logic(apiNamespace, {\n actionName: ActionTypes.RESET_REWARDS_QUANTITIES,\n});\n///extra Data\nconst getAllExtraDataLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_EXTRA_DATA,\n});\nconst deleteExtraDataLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_EXTRA_DATA,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\nconst createExtraDataLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_EXTRA_DATA,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\n//Segments\n\nconst getSegmentsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_SEGMENTS,\n});\n\nconst createSegmentLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_SEGMENT,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\n\nconst editSegmentLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_SEGMENT,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\n\nconst deleteSegmentLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_SEGMENT,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\n//// Fields\n\nconst getFieldsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_FIELDS,\n});\n\nconst createFieldLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_FIELD,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\n\nconst deleteFieldLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_FIELD,\n showErrorMessage: true,\n\n errorMessage: ,\n\n showSuccessMessage: true,\n\n successMessage: ,\n});\n\nexport default [\n createSpinningWheelLogic,\n getSpinningWheelWithIdLogic,\n getSpinningWheelsLogic,\n getDisplayedSpinningWheelLogic,\n editSpinningWheelLogic,\n deleteSpinningWheelLogic,\n getRewardsLogic,\n createRewardLogic,\n editRewardLogic,\n deleteRewardLogic,\n reduceRewardQuantityLogic,\n spinFinishedLogic,\n getRewardsImagesLogic,\n getRewardsReportLogic,\n resetRewardsQuantitiesLogic,\n getAllExtraDataLogic,\n createExtraDataLogic,\n deleteExtraDataLogic,\n //Segments\n getSegmentsLogic,\n createSegmentLogic,\n editSegmentLogic,\n deleteSegmentLogic,\n ////Fields\n createFieldLogic,\n deleteFieldLogic,\n getFieldsLogic,\n];\n","import logic from \"src/utils/genLogic\";\nimport { ActionTypes } from \"./actions\";\nimport { Trans } from \"@lingui/react\";\nimport { push } from \"connected-react-router\";\n\nconst apiNamespace = \"tenant\";\n\nconst getAllTenantsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_TENANTS,\n});\n\nconst getTenantWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_TENANT_WITH_ID,\n});\nconst createTenantLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_TENANT,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(push(\"/tenant/list\"));\n },\n});\n\nconst updateTenantLogic = logic(apiNamespace, {\n actionName: ActionTypes.UPDATE_TENANT,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(push(\"/tenant/list\"));\n },\n});\n\nconst deleteTenantLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_TENANT,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\n\nexport default [\n getAllTenantsLogic,\n getTenantWithIdLogic,\n createTenantLogic,\n updateTenantLogic,\n deleteTenantLogic\n];\n","// import { createLogic } from \"redux-logic\";\nimport logic from \"src/utils/genLogic\";\nimport { ActionTypes } from \"./actions\";\nimport { push } from \"connected-react-router\";\n\nconst apiNamespace = \"userManegment\";\nconst getUsersLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_USERS,\n showErrorMessage: true,\n showSuccessMessage: false,\n});\nconst getUserLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_USER,\n showErrorMessage: false,\n showSuccessMessage: false,\n});\nconst getPersonLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_PERSON,\n showErrorMessage: false,\n showSuccessMessage: false,\n});\nconst getVisitorLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_VISITOR,\n showErrorMessage: false,\n showSuccessMessage: false,\n});\nconst getPermissionsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_PERMISSIONS,\n showErrorMessage: false,\n showSuccessMessage: false,\n});\nconst createUserLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_USER,\n showErrorMessage: true,\n successMessage: \"user created successfully\",\n showSuccessMessage: true,\n successCb: (dispatch) => {\n dispatch(push(\"/user-managment/users/list\"));\n },\n});\nconst createVisitorLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_VISITOR,\n showErrorMessage: true,\n successMessage: \"Visitor created successfully\",\n showSuccessMessage: true,\n successCb: (dispatch,res) => {\n dispatch(push(`/visitor/details/${res?.data?.id}`));\n },\n});\nconst createPersonLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_PERSON,\n showErrorMessage: true,\n successMessage: \"Person created successfully\",\n showSuccessMessage: true,\n successCb: (dispatch,res) => {\n dispatch(push(`/person/details/${res?.data?.id}`));\n },\n});\nconst createUsersLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_USERS,\n showErrorMessage: true,\n successMessage: \"users created successfully\",\n showSuccessMessage: true,\n successCb: (dispatch) => {\n dispatch(push(\"/user-managment/users/list\"));\n },\n});\nconst createAppUserLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_APP_USER,\n showErrorMessage: true,\n successMessage: \"user created successfully\",\n showSuccessMessage: true,\n successCb: (dispatch) => {\n dispatch(push(\"/user-managment/users/list\"));\n },\n});\nconst scanUserCodeLogic = logic(apiNamespace, {\n actionName: ActionTypes.SCAN_USER_CODE,\n // errorMessage: \"there_is_an_error_occurred_try_again_later\",\n\n showErrorMessage: true,\n // successMessage: \"user Sign in Succefully\",\n showSuccessMessage: true,\n \n});\nconst signOutUserCodeLogic = logic(apiNamespace, {\n actionName: ActionTypes.SIGN_OUT_USER_CODE,\n // errorMessage: \"there_is_an_error_occurred_try_again_later\",\n\n showErrorMessage: true,\n // successMessage: \"user Sign in Succefully\",\n showSuccessMessage: true,\n \n});\nconst createRoleLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_ROLE,\n successCb: (dispatch) => {\n dispatch(push(\"/user-managment/roles/list\"));\n },\n});\nconst getRolesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ROLES,\n showErrorMessage: false,\n showSuccessMessage: false,\n});\nconst getRoleLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ROLE,\n showErrorMessage: false,\n showSuccessMessage: false,\n});\nconst deleteUserLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_USER,\n showErrorMessage: true,\n successMessage: \"user Deleted successfully\",\n showSuccessMessage: true,\n});\nconst editUserLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_USER,\n showErrorMessage: true,\n showSuccessMessage: \"User Edited Successfully\",\n showSuccessMessage: true,\n successCb: (dispatch) => {\n dispatch(push(\"/user-managment/users/list\"));\n },\n});\nconst editRoleLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_ROLE,\n successCb: (dispatch) => {\n dispatch(push(\"/user-managment/roles/list\"));\n },\n});\nconst deleteRoleLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_ROLE,\n showErrorMessage: true,\n successMessage: \"Role Deleted successfully\",\n showSuccessMessage: true,\n});\n\nexport default [\n getUsersLogic,\n createUserLogic,\n createUsersLogic,\n createAppUserLogic,\n getRolesLogic,\n getUserLogic,\n getPersonLogic,\n getVisitorLogic,\n deleteUserLogic,\n editUserLogic,\n createRoleLogic,\n getPermissionsLogic,\n deleteRoleLogic,\n editRoleLogic,\n getRoleLogic,\n scanUserCodeLogic,\n signOutUserCodeLogic,\n createVisitorLogic,\n createPersonLogic\n];\n","import logic from \"src/utils/genLogic\";\nimport { ActionTypes } from \"./actions\";\nimport { Trans } from \"@lingui/react\";\nimport { push } from \"connected-react-router\";\n\nconst apiNamespace = \"guest\";\n\nconst getAllGuestsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_GUESTS,\n});\n\nconst createGuestLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_GUEST,\n // showErrorMessage: true,\n // errorMessage: ,\n // showSuccessMessage: true,\n // successMessage: ,\n successCb: (dispatch,data) => {\n dispatch(push(`/spinningWheel/displayed-wheel/${data?.spinningWheelId}`));\n },\n});\nconst editGuestRewardLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_GUEST_REWARD,\n});\nconst getGuestsReportLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_GUESTS_REPORT,\n});\n\nexport default [\n getAllGuestsLogic,\n createGuestLogic,\n editGuestRewardLogic,\n getGuestsReportLogic,\n];\n","import logic from \"src/utils/genLogic\";\nimport { ActionTypes } from \"./actions\";\nimport { Trans } from \"@lingui/react\";\nimport { push } from \"connected-react-router\";\n\nconst apiNamespace = \"integration\";\n\nconst createConfigLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_CONFIG,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(push(\"/configs/list\"));\n },\n});\n\nconst getAllConfigsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_CONFIGS,\n});\n\nconst getConfigWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_CONFIG_WITH_ID,\n});\n\nconst deleteConfigLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_CONFIG,\n showErrorMessage: true,\n successMessage: \"config Deleted successfully\",\n showSuccessMessage: true,\n});\nconst editConfigLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_CONFIG,\n showErrorMessage: true,\n showSuccessMessage: \"config Edited Successfully\",\n showSuccessMessage: true,\n successCb: (dispatch) => {\n dispatch(push(\"/configs/list\"));\n },\n});\n\nexport default [\n createConfigLogic,\n getAllConfigsLogic,\n getConfigWithIdLogic,\n editConfigLogic,\n deleteConfigLogic,\n];\n","import appLogic from \"./app/logic\";\nimport authLogic from \"./auth/logic\";\nimport spinningWheelLogic from \"./spinningWheel/logic\";\nimport tenantLogic from \"./tenant/logic\";\nimport usersLogic from \"./userManagement/logic\";\nimport guestLogic from \"./registration/logic\";\nimport integrationLogic from \"./Integration/logic\";\n\nexport default [\n ...appLogic,\n ...authLogic,\n ...spinningWheelLogic,\n ...tenantLogic,\n ...usersLogic,\n ...guestLogic,\n ...integrationLogic,\n];\n","export default function (/**@type {ApisauceInstance} */ api) {\n const login = (loginRequest) => api.post(\"auth/login\", loginRequest);\n const loginExternal = (payload) => api.post(\"auth/login-external\", payload);\n const updateProfile = (loginRequest) =>\n api.post(\"auth/update-profile\", loginRequest);\n const changePassword = (loginRequest) =>\n api.post(\"auth/change-password\", loginRequest);\n const logout = (accessToken) => api.post(\"auth/logout\", { accessToken });\n const getNotifications = (paging) => api.get(\"user/getnotifications\", paging);\n const readNotification = (id) => api.get(\"user/readNotify/\" + id);\n const refreshToken = (payload) => api.post(\"auth/refresh-token/\", payload);\n return {\n auth: {\n login,\n loginExternal,\n logout,\n getNotifications,\n readNotification,\n updateProfile,\n changePassword,\n refreshToken,\n },\n };\n}\n","export default function (/**@type {ApisauceInstance} */ api) {\n const getSpinningWheels = (payload) =>\n api.get(\"SpinningWheel/wheels\", payload);\n const getSpinningWheelWithId = (id) => api.get(`SpinningWheel/wheel/${id}`);\n const getDisplayedSpinningWheel = (id) =>\n api.get(`SpinningWheel/displayed-wheel/${id}`);\n const deleteSpinningWheel = (id) =>\n api.delete(`SpinningWheel/delete-wheel/${id}`);\n const editSpinningWheel = ({ id, payload }) =>\n api.put(`SpinningWheel/edit-wheel`, payload);\n\n const createSpinningWheel = (payload) =>\n api.post(\"SpinningWheel/add-wheel\", payload);\n\n ////rewards\n const getRewards = (payload) => api.get(\"reward/rewards\", payload);\n const deleteReward = (id) => api.delete(`Reward/delete-reward/${id}`);\n const editReward = ({ id, payload }) =>\n api.put(`Reward/edit-reward`, payload);\n const reduceRewardQuantity = (payload) =>\n api.put(`Reward/reduce-reward-quantity`, payload);\n \n const spinFinished = (payload) =>\n api.post(`Reward/spin-finished`, payload);\n \n const createReward = (payload) => api.post(\"Reward/add-reward\", payload);\n const getRewardsImages = (payload) =>\n api.get(\"reward/rewards-images\", payload);\n const getRewardsReport = (payload) =>\n api.get(\"reward/rewards-report\", payload);\n const resetRewardsQuantities = (payload) =>\n api.post(\"Reward/reset-spin-rewards-quantity\", payload);\n ///extraData\n const getAllExtraData = (id) => api.get(`reward/extra-data/${id}`);\n const deleteExtraData = (id) => api.delete(`Reward/remove-extra-data/${id}`);\n const createExtraData = (payload) =>\n api.post(\"Reward/add-extra-data\", payload);\n\n ////segments\n const getSegments = (payload) => api.get(\"segment/segments\", payload);\n const createSegment = (payload) => api.post(\"segment/add-segment\", payload);\n const editSegment = ({ id, payload }) =>\n api.put(`segment/edit-segment`, payload);\n const deleteSegment = (id) => api.delete(`segment/delete-segment/${id}`);\n\n ////////// Fields\n const getFields = (payload) =>\n api.get(\"SpinningWheelField/spin-fields\", payload);\n const createField = (payload) =>\n api.post(\"SpinningWheelField/add-spin-field\", payload);\n const deleteField = (id) =>\n api.delete(`SpinningWheelField/delete-field/${id}`);\n\n return {\n spinningWheels: {\n createSpinningWheel,\n getSpinningWheels,\n getDisplayedSpinningWheel,\n getSpinningWheelWithId,\n deleteSpinningWheel,\n editSpinningWheel,\n ////rewards\n getRewards,\n deleteReward,\n editReward,\n createReward,\n reduceRewardQuantity,\n spinFinished,\n getRewardsImages,\n getRewardsReport,\n resetRewardsQuantities,\n getAllExtraData,\n deleteExtraData,\n createExtraData,\n //segments\n deleteSegment,\n getSegments,\n createSegment,\n editSegment,\n //// Fields\n getFields,\n createField,\n deleteField,\n },\n };\n}\n","export default function (/**@type {ApisauceInstance} */ api) {\n const getAllTenants = (paging) => api.get(\"/tenant/search\", paging);\n const getTenantWithId = (id) => api.get(\"/tenant/find/\" + id);\n \n const createTenant = (payload) => api.post(\"/tenant/create\", payload);\n const updateTenant = (payload) => api.put(\"/tenant/edit\", payload);\n const deleteTenant = (id) => api.delete(\"/tenant/remove/\" + id);\n \n return {\n tenant: {\n getAllTenants,\n getTenantWithId,\n createTenant,\n updateTenant,\n deleteTenant\n },\n };\n }\n ","export default function (/**@type {ApisauceInstance} */ api) {\n const getUsers = (paging) => api.get(\"user-management/users\", paging);\n const getPermissions = () => api.get(\"user-management/permissions\");\n const createUser = (payload) => api.post(\"user-management/users\", payload);\n const createUsers = (payload) =>\n api.post(\"user-management/add-users\", payload);\n const createAppUser = (payload) =>\n api.post(\"user-management/users/app-user\", payload);\n const getUser = (id) => api.get(`user-management/users/${id}`);\n const getPerson = (id) => api.get(`Add/get-person/${id}`);\n const getVisitor = (id) => api.get(`Add/get-visitor/${id}`);\n const getRoles = (paging) => api.get(\"user-management/roles\", paging);\n const deleteUser = (id) =>\n api.delete(`user-management/users/delete-user/${id}`);\n const createRole = (payload) =>\n api.post(\"user-management/roles/add-role\", payload);\n const editUser = ({ payload, id }) =>\n api.put(`user-management/users/edit-user/${id}`, payload);\n const deleteRole = (id) =>\n api.delete(`user-management/roles/delete-role/${id}`);\n const editRole = ({ payload, id }) =>\n api.put(`user-management/roles/edit-role/${id}`, payload);\n const getRole = (id) => api.get(`user-management/roles/${id}`);\n\n return {\n userManegment: {\n getUsers,\n getUser,\n createUser,\n createUsers,\n createAppUser,\n deleteUser,\n getRoles,\n editUser,\n createRole,\n getPermissions,\n deleteRole,\n editRole,\n getRole,\n },\n };\n}\n","export default function (/**@type {ApisauceInstance} */ api) {\n const getAllGuests = (paging) => api.get(\"/guest/guests\", paging);\n const createGuest = (payload) => api.post(\"/guest/register-guest\", payload);\n const editGuestReward = (payload) =>\n api.put(`guest/edit-guest-reward`, payload);\n const getGuestsReport = (payload) => api.get(\"guest/guests-report\", payload);\n\n return {\n guest: {\n getAllGuests,\n createGuest,\n editGuestReward,\n getGuestsReport,\n },\n };\n}\n","export default function (/**@type {ApisauceInstance} */ api) {\n const createConfig = (payload) =>\n api.post(\"/Integration/add-config\", payload);\n const getAllConfigs = (paging) =>\n api.get(\"/Integration/configs-search\", paging);\n const deleteConfig = (id) => api.delete(`/Integration/delete-config/${id}`);\n const editConfig = ({ id, payload }) =>\n api.put(`/Integration/edit-config`, payload);\n const getConfigWithId = (id) => api.get(`/Integration/find/${id}`);\n\n return {\n integration: {\n createConfig,\n getAllConfigs,\n deleteConfig,\n editConfig,\n getConfigWithId,\n },\n };\n}\n","import apisauce from \"apisauce\";\nimport config from \"../configs\";\n\nimport authApi from \"./auth\";\nimport spinningWheelApi from \"./spinningWheel\";\nimport tenantApi from \"./tenant\";\nimport usersApi from \"./userManagement\";\nimport guestApi from \"./registration\";\nimport integrationApi from \"./Integration\";\n//---------------------\n\n// const apiURI = config.useLocalApi ? config.devApiRoot : config.apiRoot;\nconst apiURI = process.env.REACT_APP_BASE_API_URL;\n\nconst create = (baseURL = apiURI) => {\n const api = apisauce.create({\n baseURL,\n headers: {\n \"Cache-Control\": \"no-cache\",\n },\n timeout: 1200000, //30 sec\n });\n //add access token on each request\n\n api.addAsyncResponseTransform((response) => async () => {\n if (!response.ok) {\n const customeError = {\n errors: response.data.errors || [\n { errorMessage: response.data.message },\n ],\n errorMessage: response.data.message,\n status: response.status,\n code: response.data.errorCode,\n };\n response.data = customeError;\n }\n });\n\n api.addAsyncRequestTransform((request) => async () => {\n const token = localStorage.getItem(\"jwtToken\");\n const culture = localStorage.getItem(\"culture\");\n const cultureCode = localStorage.getItem(\"cultureCode\");\n const userIp = localStorage.getItem(\"userIp\");\n const tenantId = localStorage.getItem(\"tenantId\");\n request.headers[\"culture\"] = culture || \"en\";\n request.headers[\"cultureCode\"] = cultureCode || \"en-US\";\n request.headers[\"userIp\"] = userIp || \"\";\n\n if (tenantId) {\n request.headers[\"tenantId\"] = tenantId;\n }\n\n if (token) {\n request.headers[\"Authorization\"] = `Bearer ${token}`;\n } else {\n delete request.headers[\"Authorization\"];\n }\n });\n\n const auth = authApi(api);\n const spinningWheel = spinningWheelApi(api);\n const tenant = tenantApi(api);\n const users = usersApi(api);\n const guest = guestApi(api);\n const integration = integrationApi(api);\n\n // --------------------\n return {\n setHeader: api.setHeader,\n setHeaders: api.setHeaders,\n ...auth,\n ...spinningWheel,\n ...tenant,\n ...users,\n ...guest,\n ...integration,\n };\n};\n\nexport default { create };\n","import configureStore from \"./configureStore\";\n\n// Create redux store with history\nimport { createBrowserHistory } from \"history\";\nconst initialState = {};\nexport const history = createBrowserHistory();\nexport const { store, persistedStore } = configureStore(initialState, history);","import { createStore, applyMiddleware, compose } from \"redux\";\nimport { routerMiddleware } from \"connected-react-router\";\nimport { createLogicMiddleware } from \"redux-logic\";\nimport { persistStore } from \"redux-persist\";\n\n// import { loadingBarMiddleware } from \"./middlewares\";\nimport createReducer from \"./reducers\";\nimport logics from \"./logics\";\nimport API from \"../services\";\n\nexport default function configureStore(initialState, history) {\n // inject helpers, make requestUtil available to all logic\n const api = API.create();\n const injectedApi = { api };\n const logicMiddleware = createLogicMiddleware([...logics], injectedApi);\n\n // Create the store with two middlewares\n // 1. logicMiddleware: enables redux-logic\n // 2. routerMiddleware: Syncs the location/URL path to the state\n const middlewares = [\n //NOTE: later I will use this middleware to automate loading pattern, however this need to maintain a good name conventions for action that will cause this loading mechanism, not every async operation should display this loading screen\n //loadingBarMiddleware,\n logicMiddleware,\n routerMiddleware(history) // for dispatching history actions\n ];\n\n const enhancers = [applyMiddleware(...middlewares)];\n\n // If Redux DevTools Extension is installed use it, otherwise use Redux compose\n /* eslint-disable no-underscore-dangle */\n const composeEnhancers =\n process.env.NODE_ENV !== \"production\" && typeof window === \"object\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n : compose;\n /* eslint-enable */\n\n const rootReducer = createReducer(/* asyncReducers */ {}, history);\n \n const store = createStore(rootReducer, initialState, composeEnhancers(...enhancers));\n const persistedStore = persistStore(store);\n\n // Extensions\n store.logicMiddleware = logicMiddleware;\n store.asyncReducers = {}; // Async reducer registry\n store.history = history; //pass history singleton to store for async reloading\n\n // Make reducers hot reloadable, see http://mxs.is/googmo\n /* istanbul ignore next */\n if (module.hot) {\n module.hot.accept(\"./reducers\", () => {\n import(\"./reducers\").then(reducerModule => {\n const createReducers = reducerModule.default;\n const nextReducers = createReducers(store.asyncReducers, store.history);\n\n store.replaceReducer(nextReducers);\n });\n });\n }\n\n return { store, persistedStore };\n}\n","// ** Logo\n// import logo from '@src/assets/images/logo/logo.png'\n\nimport themeConfig from 'src/configs/themeConfig'\n\nconst SpinnerComponent = () => {\n return (\n
\n logo\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default SpinnerComponent\n","// ** React Imports\nimport { useState, useEffect } from 'react'\n\n// ** Third Party Components\nimport { Button } from 'reactstrap'\nimport classnames from 'classnames'\n\n// ** Styles\nimport './ripple-button.scss'\n\nconst RippleButton = ({ className, children, onClick, ...rest }) => {\n // ** States\n const [mounted, setMounted] = useState(false)\n const [isRippling, setIsRippling] = useState(false)\n const [coords, setCoords] = useState({ x: -1, y: -1 })\n\n // ** Toggle mounted on mount & unmount\n useEffect(() => {\n setMounted(true)\n return () => setMounted(false)\n }, [])\n\n // ** Check for coords and set ripple\n useEffect(() => {\n if (mounted) {\n if (coords.x !== -1 && coords.y !== -1) {\n setIsRippling(true)\n setTimeout(() => setIsRippling(false), 500)\n } else {\n setIsRippling(false)\n }\n }\n }, [coords])\n\n // ** Reset Coords on ripple end\n useEffect(() => {\n if (mounted) {\n if (!isRippling) setCoords({ x: -1, y: -1 })\n }\n }, [isRippling])\n\n return (\n {\n const rect = e.target.getBoundingClientRect()\n setCoords({ x: e.clientX - rect.left, y: e.clientY - rect.top })\n if (onClick) {\n onClick(e)\n }\n }}\n {...rest}\n >\n {children}\n {isRippling ? (\n \n ) : null}\n \n )\n}\n\n// ** PropTypes\nRippleButton.propTypes = {\n ...Button.propTypes\n}\n\nButton.Ripple = RippleButton\n","/*eslint-disable */\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n)\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker === null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (response.status === 404 || (contentType !== null && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.')\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","import { Permission } from \"./userPermission\";\n\nexport default new Permission()","export class Permission {\n user = null;\n permissions = [];\n roles = [];\n constructor() {\n this.updateValues();\n }\n\n updateValues() {\n let u = localStorage.getItem('userData');\n this.user = u ? JSON.parse(u) : null\n this.permissions = this.user ? JSON.parse(this.user.permissions) : []\n this.roles = this.user &&this.user.role &&JSON.parse(this.user.role)||[]\n }\n can(permission) {\n if (!this.user){\n this.updateValues();\n }\n return this.permissions.includes(permission);\n }\n}\n\n// export const useCurrentUser=()=>{\n// let user = null;\n// let permissions = [];\n// let roles = [];\n\n// function updateValues() {\n// let u = localStorage.getItem('userData');\n// user = u ? JSON.parse(u) : null\n// permissions = user ? JSON.parse(user.permissions) : []\n// roles = user &&user.role &&JSON.parse(user.role)||[]\n// }\n\n// if(!user){\n// updateValues();\n// }\n// return {\n// user,\n// permissions,\n// roles\n// }\n\n// }\n","import * as signalR from \"@microsoft/signalr\";\nimport config from \"src/configs\";\nimport { AuthActions } from \"src/store/auth/actions\";\nimport { useDispatch } from \"react-redux\";\nconst baseName = process.env.REACT_APP_HUB_BASE;\nexport const useSignalR = () => {\n const hub = new signalR.HubConnectionBuilder();\n let connection;\n\n const setUpHub = (token) => {\n return hub\n .withUrl(`${baseName}/hub/notification`, {\n accessTokenFactory: () => token,\n })\n .withAutomaticReconnect()\n .configureLogging(signalR.LogLevel.Debug)\n .build();\n };\n const startHub = (token) => {\n if (!config.signalR) return;\n try {\n connection = setUpHub(token);\n connection\n .start()\n .then()\n .catch((err) => {\n // console.log('Error while starting connection' + err)\n });\n } catch (error) {\n // console.log(\"start the hub error\", error)\n }\n\n connection.onclose((error) => {\n // console.log(\"connection closed\")\n connect(connection);\n });\n };\n\n async function connect(conn) {\n if (!config.signalR) return;\n conn.start().catch((e) => {\n sleep(5000);\n // console.log(\"Reconnecting Socket\");\n connect(conn);\n });\n }\n async function sleep(msec) {\n return new Promise((resolve) => setTimeout(resolve, msec));\n }\n\n const closeHub = () => {\n if (connection) connection.stop();\n };\n\n const dispatch = useDispatch();\n const onReceiveNotify = () => {\n if (!config.signalR) return;\n connection.on(\"ReceiveMessage\", (message) => {\n dispatch(AuthActions.updateToken(message));\n // dispatch(AuthActions.addNotification({ ...message, createdDate: new Date() }))\n });\n };\n return {\n startHub,\n onReceiveNotify,\n closeHub,\n };\n};\n","import React from 'react'\nimport { useSelector } from 'react-redux';\nimport { useSignalR } from '../hooks/useSignalR';\n\n\nexport const SignalProvider = React.createContext();\n\nfunction SignalRProvider({ children, ...props }) {\n\n const { startHub, onReceiveNotify ,closeHub} = useSignalR();\n const {\n user\n } = useSelector(state => state.auth)\n React.useEffect(() => {\n if (user) {\n const token = localStorage.getItem(\"jwtToken\");\n startHub(token);\n onReceiveNotify();\n return;\n }\n closeHub();\n }, [user])\n\n\n return (\n \n {children}\n \n )\n}\n\nexport default SignalRProvider\n","import { Trans } from \"@lingui/react\";\nimport React from \"react\";\n\nfunction TransKeyNotFound() {\n return (\n
\n \n
\n );\n}\n\nexport default TransKeyNotFound;\n","// ** React Imports\nimport { Suspense, lazy } from \"react\";\nimport ReactDOM from \"react-dom\";\n\n// ** Redux Imports\nimport { Provider } from \"react-redux\";\n// import { store } from './redux/storeConfig/store'\nimport { history, store } from \"./store\";\n\n// ** Toast & ThemeColors Context\nimport { ToastContainer } from \"react-toastify\";\nimport { ThemeContext } from \"./utility/context/ThemeColors\";\n\nimport { AbilityContext } from \"src/utility/context/Can\";\n// ** Spinner (Splash Screen)\nimport Spinner from \"./@core/components/spinner/Fallback-spinner\";\n\n// ** Ripple Button\nimport \"./@core/components/ripple-button\";\n\n// ** PrismJS\nimport \"prismjs\";\nimport \"prismjs/themes/prism-tomorrow.css\";\nimport \"prismjs/components/prism-jsx.min\";\n\n// ** React Perfect Scrollbar\nimport \"react-perfect-scrollbar/dist/css/styles.css\";\n\n// ** React Toastify\nimport \"@styles/react/libs/toastify/toastify.scss\";\n\n// ** Core styles\n\nimport \"./@core/assets/fonts/feather/iconfont.css\";\nimport \"./@core/scss/core.scss\";\nimport \"./assets/scss/style.scss\";\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\n// ** Service Worker\nimport * as serviceWorker from \"./serviceWorker\";\nimport { IntlProviderWrapper } from \"./utility/context/Internationalization\";\n// import ability from './configs/acl/ability';\nimport userAbility from \"src/configs/permission/userAbitlity\";\nimport { ConnectedRouter } from \"connected-react-router\";\nimport { Router } from \"react-router-dom\";\nimport SignalRProvider from \"./utility/providers/SignalRProvider\";\nimport TransKeyNotFound from \"./components/TransKeyNotFound\";\n\n// ** Lazy load app\nconst LazyApp = lazy(() => import(\"./App\"));\n\nReactDOM.render(\n \n \n }>\n \n \n \n \n {/* */}\n \n \n \n {/* */}\n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import { DIRECTIONS } from \"react-with-direction/dist/DirectionProvider\";\n\nexport const DEFAULT_DIRECTION = DIRECTIONS.LTR;\nexport const DEFAULT_LOCALE = \"en\";\nexport const DEFAULT_CURRENCY = \"SAR\";\n","import createReducer from \"src/utils/reduxsauce/createReducer\";\nimport { DEFAULT_LOCALE, DEFAULT_DIRECTION, getLocaleDirection, DEFAULT_CURRENCY } from \"../constants\";\nimport { ActionTypes } from \"./actions\";\nimport {locales} from \"../SupportedLocales\";\n\nimport { defaultState, bindReducers } from \"src/utils/genState\";\n\nconst initialState = {\n supportedLocales: locales,\n locale: locales[DEFAULT_LOCALE],\n direction: DEFAULT_DIRECTION,\n defaultCurrency: DEFAULT_CURRENCY,\n priceDisplay: \"baseprice\", //allawed values: baseprice, fees, prepayamount, totalamount\n lastPing: \"\",\n isLoadingHotels: false,\n layout: \"vertical\", // options[String]: \"vertical\"(default), \"horizontal\"\n theme: \"light\", // options[String]: 'light'(default), 'dark', 'semi-dark'\n sidebarCollapsed: false, // options[Boolean]: true, false(default)\n navbarColor: \"default\", // options[String]: default / primary / success / danger / info / warning / dark\n navbarType: \"floating\", // options[String]: floating(default) / static / sticky / hidden\n footerType: \"static\", // options[String]: static(default) / sticky / hidden\n disableCustomizer: true, // options[Boolean]: true, false(default)\n hideScrollToTop: false, // options[Boolean]: true, false(default)\n menuTheme: \"primary\", // options[String]: primary / success / danger / info / warning / dark\n extraStarred: [],\n suggestions: [],\n starred: [],\n defaultLat:21.4233733,\n defaultLong:39.821831,\n defaultZoom:12.5,\n ...defaultState(\"isoCountries\"),\n};\n\nconst changeLocale = (state, draft, locale) => {\n\n let _locale = locales[locale.code];\n if (!_locale) _locale = locales[DEFAULT_LOCALE];\n\n draft.locale = _locale;\n draft.direction = _locale.direction.toLowerCase() === \"rtl\" ? \"rtl\" : \"ltr\";\n localStorage.setItem(\"culture\", _locale.code);\n localStorage.setItem(\"language\", _locale.code);\n localStorage.setItem(\"cultureCode\", _locale.culture);\n localStorage.setItem(\"isRTL\", _locale.isRTL);\n\n // window.recaptchaOptions = {\n // lang: locale,\n // };\n\n document.getElementsByTagName(\"html\")[0].setAttribute(\"dir\", _locale.direction);\n document.getElementsByTagName(\"body\")[0].setAttribute(\"dir\", _locale.direction);\n document.getElementsByTagName(\"body\")[0].setAttribute(\"direction\", _locale.direction);\n document.getElementsByTagName(\"body\")[0].style.direction=_locale.direction;\n document.getElementsByTagName(\"body\")[0].style.textAlign=_locale.direction===\"RTL\"?\"right\":\"unset\";\n};\nconst changeCurrencySuccess = (state, draft, payload ) => {\n // const { currency } = payload;\n // draft.currency = SupportedCurrencies[currency];\n // storage.setItem(\"currency\", currency);\n};\n\nconst changePriceDisplay = (state, draft,{ priceDisplay }) => {\n draft.priceDisplay = priceDisplay;\n};\n\nconst ping = (state,draft, payload) => {\n draft.lastPing = payload;\n};\n\nconst setIsLoading = (state,draft, payload) => {\n draft.isLoadingHotels = true;\n};\n\nconst clearIsLoading = (state,draft, payload) => {\n draft.isLoadingHotels = false;\n};\n\n\n\nexport const reducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {action:\"setIsLoading\",async:false,successCb:setIsLoading}),\n ...bindReducers(ActionTypes, {action:\"clearIsLoading\",async:false,successCb:clearIsLoading}),\n ...bindReducers(ActionTypes, {action:\"changeLocale\",async:false,successCb:changeLocale}),\n});\n","import { createActions } from \"src/utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n ping: { args: [], meta: { async: true } },\n changeLocale: { args: [\"payload\"] },\n changeCurrency: { args: [\"payload\"], meta: { async: true } },\n changePriceDisplay: { args: [\"payload\"] },\n setIsLoading: { args: [] },\n clearIsLoading: { args: [] },\n getCountries:{ args: [], meta: { async: true } },\n getCities:{ args: [], meta: { async: true } }\n },\n {\n prefix: \"@app/app/\"\n }\n);\n\nexport const ActionTypes = Types;\nexport default Creators;\nexport const AppActions = Creators;\n","// import { toAbsoluteUrl } from \"src/_metronic/_helpers\";\n\nexport const locales = {\n \"ar\": {\n \"code\": \"ar\",\n \"name\": \"العربية\",\n \"direction\": \"RTL\",\n // \"flag\": toAbsoluteUrl(\"/media/svg/flags/158-egypt.svg\"),\n \"culture\": \"ar-SA\",\n flag:\"eg\",\n isRTL:true,\n default: true\n },\n \"en\": {\n \"code\": \"en\",\n \"name\": \"English\",\n \"direction\": \"LTR\",\n // \"flag\": toAbsoluteUrl(\"/media/svg/flags/226-united-states.svg\"),\n \"culture\": \"en-US\",\n flag:\"us\",\n default: false\n }\n}","// You can customize the template with the help of this file\n\n//Template config options\nconst themeConfig = {\n app: {\n appName: '',\n appLogoImage: require('@src/assets/images/logo/iMakaseb.png').default\n },\n layout: {\n isRTL: true,\n skin: 'light', // light, dark, bordered, semi-dark\n routerTransition: 'fadeIn', // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/\n type: 'vertical', // vertical, horizontal\n contentWidth: 'full', // full, boxed\n menu: {\n isHidden: true,\n isCollapsed: false,\n },\n navbar: {\n // ? For horizontal menu, navbar type will work for navMenu type\n type: 'sticky', // static , sticky , floating, hidden\n backgroundColor: 'white' // BS color options [primary, success, etc]\n },\n footer: {\n type: 'static' // static, sticky, hidden\n },\n customizer: false,\n scrollTop: true // Enable scroll to top button\n }\n}\n\nexport default themeConfig\n"],"sourceRoot":""}