{"version":3,"sources":["store/service/actions.js","configs/index.js","store/userManagement/actions.js","store/layout/actions.js","store/auth/actions.js","utils/reduxsauce/Types.js","store/city/actions.js","store/tenant/actions.js","utils/genState.js","store/transaction/actions.js","utility/context/Can.js","utils/reduxsauce/createTypes.js","utils/reduxsauce/createActions.js","utils/reduxsauce/resettableReducer.js","utils/reduxsauce/index.js","utility/context/ThemeColors.js","utility/context/Internationalization.js","utils/reduxsauce/createReducer.js","assets/images/logo/iMakaseb.png","store/dashboard/actions.js","store/store/actions.js","store/userManagement/reducer.js","store/setting/reducer.js","store/dashboard/reducer.js","store/tenant/reducer.js","store/store/reducer.js","store/city/reducer.js","store/service/reducer.js","store/transaction/reducer.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/userManagement/logic.js","store/setting/logic.js","store/tenant/logic.js","store/store/logic.js","store/city/logic.js","store/dashboard/logic.js","store/service/logic.js","store/transaction/logic.js","store/logics.js","services/auth/index.js","services/userManagement/index.js","services/setting/index.js","services/tenant/index.js","services/store/index.js","services/city/index.js","services/service/index.js","services/transaction/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","store/setting/actions.js","configs/themeConfig.js"],"names":["createActions","getAllServices","args","meta","async","getTypes","getServiceTypes","getCurrentTenantCustomers","getAvailableServices","redeem","getServiceOptionWithId","getServiceWithId","getServiceTransactions","validateVoucher","submitRedeemVoucher","createService","createServiceOption","createVouchers","updateService","updateServiceOption","deleteService","getServiceOptions","deleteServiceOption","setOption","setService","showDialog","showDeleteDialog","resetDialog","setSubmitRedeem","setValidateVoucher","setRedeem","prefix","Types","Creators","ActionTypes","useLocalApi","appName","appTitle","appDescription","signalR","baseUrl","devApiRoot","pageOptions","contactPhone","contactMail","addressOnMap","gen_password_length","gen_password_characters","getUsers","getUser","getPermissions","createUser","createClient","createUsers","createAppUser","deleteUser","setUser","createRole","getRoles","getRole","editUser","editRole","deleteRole","addClientDecision","handleRtl","handleMenuHidden","handleMenuCollapsed","LayoutActions","login","refreshToken","loginExternal","updateToken","getNotifications","addNotification","logout","setAuthToken","readNotification","updateProfile","changePassword","resetChangePassword","updateUserScore","AuthActions","DEFAULT","createCountry","editCountry","deleteCountry","getCountryWithId","getAllCountries","getAllCities","getCityWithId","createCity","editCity","deleteCity","getAllGovernorates","getGovernorateWithId","createGovernorate","editGovernorate","deleteGovernorate","getAllTenants","getTenantWithId","createTenant","updateTenant","deleteTenant","createTenantConfiguration","createTenantContact","updateTenantConfiguration","updateTenantContact","setTenant","defaultState","stateName","extraProps","defaults","extraPropsState","Object","keys","length","map","a","setState","isPaginated","state","payload","produce","draft","setStateSuccess","successCb","items","metadata","setStateFail","failCb","bindReducers","actionTypes","options","action","actionName","replace","toUpperCase","Error","reducers","bindSyncReducers","doneCb","setSyncState","addPoints","getPoints","setDestination","getTransactionWithId","createGiftPoints","getClientPoints","getTransactionsWithOwnerId","getTransactionsWithServiceId","scanCode","setItem","resetDeleteDialog","AbilityContext","createContext","createContextualCan","Consumer","isNilOrEmpty","anyPass","isNil","isEmpty","defaultOptions","types","merge","pipe","trim","split","reject","x","fromPairs","camelToScreamingSnake","toUpper","convertToTypes","config","opts","successPostfix","failPostfix","k","_config","flatten","join","createTypes","convertToCreators","creators","mapObjIndexed","num","key","value","name","type","is","Array","values","zipObj","defaultProps","valueObject","providedProps","pick","successKey","failKey","success","fail","_value","isArray","done","error","createActionCreator","curry","typeToReset","originalReducer","String","resetState","undefined","cr","emptyObj","ThemeColors","ThemeContext","children","useState","colors","setColors","useEffect","window","getHex","color","getComputedStyle","document","body","getPropertyValue","obj","primary","light","concat","main","secondary","danger","warning","info","dark","Provider","Context","dynamicActivate","locale","messages","i18n","load","activate","loadLocaleData","result","locales","plurals","plurs","loadedLocales","IntlProviderWrapper","lang","localStorage","getItem","currentLang","find","l","default","code","setLocale","dispatch","useDispatch","AppActions","changeLocale","switchLanguage","defaultLocale","initialState","handlers","any","equals","has","handler","getGeneralInfo","getClientResponse","getProducts","getOffers","getClientResponces","getClientResponceWithId","getResponsesSummary","getAllStores","getStoreWithId","createStore","updateStore","deleteStore","setStore","selectedUser","openDialog","openDeleteDialog","userCreatedSuccess","users","reducer","createReducer","filter","id","roles","userIndex","findIndex","u","roleIndex","user_errors","settingIndex","settings","responsesSummary","tenant","contacts","index","e","stores","store","countries","r","cities","governorates","isOpenSweetAlert","voucherValidation_errors","voucherValidation","voucherSubmit","services","service","serviceOption","redeemResult","redeemResult_errors","voucherSubmit_errors","tenantBalance","points","tenantWallet","balance","mainWallet","destination","amount","updatedPoints","transactions","item","data","destId","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","ids","t","module","exports","isRTL","themeConfig","layout","menuCollapsed","JSON","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","stringify","active","removeItem","changePassword_errors","score","LOGOUT","GET_NOTIFICATIONS","GET_NOTIFICATIONS_SUCCESS","GET_NOTIFICATIONS_FAIL","message","ADD_NOTIFICATION","notify","READ_NOTIFICATION","READ_NOTIFICATION_SUCCESS","forEach","notifyId","notficiationId","read","READ_NOTIFICATION_FAIL","rootPersistConfig","storage","blacklist","Storage","normalizeActionName","console","toLowerCase","pop","i","charAt","substring","api","exp","moment","unix","response","ok","_validateApi","apiNamespace","api_name","logic","successMessage","errorMessage","showSuccessMessage","showErrorMessage","createLogic","latest","process","getState","res","toast","status","authActions","_errorMsg","errors","errorCode","PING","GET_COUNTRIES","GET_CITIES","getNotificationsLogic","auth","loginRequest","readNotificationLogic","loginLogic","LOGIN","refreshTokenLogic","REFRESH_TOKEN","loginExternalLogic","LOGIN_EXTERNAL","CHANGE_PASSWORD","UPDATE_PROFILE","getUsersLogic","GET_USERS","getUserLogic","GET_USER","getPermissionsLogic","GET_PERMISSIONS","createUserLogic","CREATE_USER","createClientLogic","CREATE_CLIENT","goBack","addClientDecisionLogic","ADD_CLIENT_DECISION","createUsersLogic","CREATE_USERS","createAppUserLogic","CREATE_APP_USER","createRoleLogic","CREATE_ROLE","getRolesLogic","GET_ROLES","getRoleLogic","GET_ROLE","deleteUserLogic","DELETE_USER","editUserLogic","EDIT_USER","editRoleLogic","EDIT_ROLE","DELETE_ROLE","GET_SETTINGS","EDIT_SETTING","EDIT_ALL_SETTINGS","GET_ALL_TENANTS","GET_TENANT_WITH_ID","CREATE_TENANT","tenantId","location","UPDATE_TENANT","DELETE_TENANT","CREATE_TENANT_CONFIGURATION","CREATE_TENANT_CONTACT","tenantActions","UPDATE_TENANT_CONFIGURATION","UPDATE_TENANT_CONTACT","GET_ALL_STORES","GET_STORE_WITH_ID","CREATE_STORE","UPDATE_STORE","DELETE_STORE","GET_ALL_COUNTRIES","CREATE_COUNTRY","EDIT_COUNTRY","DELETE_COUNTRY","GET_ALL_CITIES","GET_CITY_WITH_ID","CREATE_CITY","EDIT_CITY","DELETE_CITY","GET_ALL_GOVERNORATES","CREATE_GOVERNORATE","EDIT_GOVERNORATE","DELETE_GOVERNORATE","GET_GENERAL_INFO","GET_CLIENT_RESPONSE","GET_PRODUCTS","GET_OFFERS","GET_CLIENT_RESPONCES","GET_CLIENT_RESPONCE_WITH_ID","GET_RESPONSES_SUMMARY","getAllServicesLogic","GET_ALL_SERVICES","getCurrentTenantCustomersLogic","GET_CURRENT_TENANT_CUSTOMERS","getTypesLogic","GET_TYPES","getServiceTypesLogic","GET_SERVICE_TYPES","getAvailableServicesLogic","GET_AVAILABLE_SERVICES","validateVoucherLogic","VALIDATE_VOUCHER","submitRedeemVoucherLogic","SUBMIT_REDEEM_VOUCHER","redeemLogic","REDEEM","getServiceOptionWithLogic","GET_SERVICE_OPTION_WITH_ID","getServiceWithIdLogic","GET_SERVICE_WITH_ID","getServiceTransactionsLogic","GET_SERVICE_TRANSACTIONS","createServiceLogic","CREATE_SERVICE","createVouchersLogic","CREATE_VOUCHERS","createServiceOptionLogic","CREATE_SERVICE_OPTION","updateServiceLogic","UPDATE_SERVICE","updateServiceOptionLogic","UPDATE_SERVICE_OPTION","DELETE_SERVICE","DELETE_SERVICE_OPTION","getTransactionsWithOwnerIdLogic","GET_TRANSACTIONS_WITH_OWNER_ID","getTransactionsWithServiceIdLogic","GET_TRANSACTIONS_WITH_SERVICE_ID","getClientPointsLogic","GET_CLIENT_POINTS","getTransactionWithIdLogic","GET_TRANSACTION_WITH_ID","createGiftPointsLogic","CREATE_GIFT_POINTS","scanCodeLogic","SCAN_CODE","ADD_POINTS","GET_POINTS","appLogic","authLogic","usersLogic","settingLogic","dashboardLogic","tenantLogic","storeLogic","cityLogic","serviceLogic","transactionLogic","post","accessToken","paging","get","userManegment","delete","put","getSettings","editSetting","editAllSettings","Cities","transaction","getUserTransactions","apiURI","baseURL","apisauce","create","headers","timeout","addAsyncResponseTransform","customeError","addAsyncRequestTransform","request","culture","cultureCode","userIp","authApi","usersApi","settingsApi","tenantApi","storeApi","city","cityApi","serviceApi","transactionApi","setHeader","setHeaders","history","createBrowserHistory","injectedApi","API","logicMiddleware","createLogicMiddleware","logics","middlewares","routerMiddleware","enhancers","applyMiddleware","composeEnhancers","compose","rootReducer","asyncReducers","persistReducer","combineReducers","router","connectRouter","app","require","navbar","dashboard","persistedStore","persistStore","configureStore","SpinnerComponent","className","src","appLogoImage","alt","width","Button","Ripple","onClick","rest","mounted","setMounted","isRippling","setIsRippling","y","coords","setCoords","setTimeout","classnames","rect","target","getBoundingClientRect","clientX","left","clientY","top","style","Boolean","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.e0c12b2b.chunk.js","sourcesContent":["import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n getAllServices: { args: [\"payload\"], meta: { async: true } },\n getTypes: { args: [\"payload\"], meta: { async: true } },\n\n getServiceTypes: { args: [\"payload\"], meta: { async: true } },\n getCurrentTenantCustomers: { args: [\"\"], meta: { async: true } },\n\n getAvailableServices: { args: [\"payload\"], meta: { async: true } },\n redeem: { args: [\"payload\"], meta: { async: true } },\n getServiceOptionWithId: { args: [\"payload\"], meta: { async: true } },\n getServiceWithId: { args: [\"payload\"], meta: { async: true } },\n getServiceTransactions: { args: [\"payload\"], meta: { async: true } },\n validateVoucher: { args: [\"payload\"], meta: { async: true } },\n\n submitRedeemVoucher: { args: [\"payload\"], meta: { async: true } },\n\n createService: { args: [\"payload\"], meta: { async: true } },\n createServiceOption: { args: [\"payload\"], meta: { async: true } },\n createVouchers: { args: [\"payload\"], meta: { async: true } },\n\n\n updateService: { args: [\"payload\"], meta: { async: true } },\n updateServiceOption: { args: [\"payload\"], meta: { async: true } },\n\n deleteService: { args: [\"payload\"], meta: { async: true } },\n getServiceOptions: { args: [\"payload\"], meta: { async: true } },\n deleteServiceOption: { args: [\"payload\"], meta: { async: true } },\n setOption: { args: [\"payload\"], meta: { async: false } },\n setService: { args: [\"payload\"], meta: { async: false } },\n \n showDialog: { args: [], meta: { async: false } },\n showDeleteDialog: { args: [], meta: { async: false } },\n resetDialog: { args: [], meta: { async: false } },\n setSubmitRedeem: { args: [\"payload\"], meta: { async: false } },\n setValidateVoucher: { args: [\"payload\"], meta: { async: false } },\n\n setRedeem: { args: [\"payload\"], meta: { async: false } },\n\n },\n {\n prefix: \"@app/service/\",\n }\n);\n\nexport const ActionTypes = Types;\nexport default Creators;\nexport const AuthActions = Creators;\n","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","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 getPermissions: { args: [], meta: { async: true } },\n createUser: { args: [\"payload\"], meta: { async: true } },\n createClient: { args: [\"payload\"], meta: { async: true } },\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 addClientDecision: { args: [\"payload\"], meta: { async: true } },\n },\n {\n prefix: \"@app/users/\",\n }\n);\nexport const ActionTypes = Types;\nexport default Creators;\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","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 getNotifications: { args: [\"pagin\"], meta: { async: true } },\n addNotification: { args: [\"notify\"] },\n logout: { args: [\"token\"] },\n setAuthToken: { args: [\"token\"], meta: { async: false } },\n readNotification: { args: [\"payload\"], meta: { async: true } },\n updateProfile: { args: [\"payload\"], meta: { async: true } },\n changePassword: { args: [\"payload\"], meta: { async: true } },\n resetChangePassword: { args: [\"payload\"] },\n updateUserScore: { args: [\"payload\"] },\n },\n {\n prefix: \"@app/auth/\",\n }\n);\nexport const ActionTypes = Types;\nexport default Creators;\nexport const AuthActions = Creators;\n","export const DEFAULT = \"REDUXSAUCE.DEFAULT\";\n","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n\n createCountry: { args: [\"payload\"], meta: { async: true } },\n editCountry: { args: [\"payload\"], meta: { async: true } },\n deleteCountry: { args: [\"payload\"], meta: { async: true } },\n getCountryWithId: { args: [\"payload\"], meta: { async: true } },\n getAllCountries: { args: [\"payload\"], meta: { async: true } },\n getAllCities: { args: [\"payload\"], meta: { async: true } },\n getCityWithId: { args: [\"payload\"], meta: { async: true } },\n createCity: { args: [\"payload\"], meta: { async: true } },\n editCity: { args: [\"payload\"], meta: { async: true } },\n deleteCity: { args: [\"payload\"], meta: { async: true } },\n getAllGovernorates: { args: [\"payload\"], meta: { async: true } },\n getGovernorateWithId: { args: [\"payload\"], meta: { async: true } },\n createGovernorate: { args: [\"payload\"], meta: { async: true } },\n editGovernorate: { args: [\"payload\"], meta: { async: true } },\n deleteGovernorate: { 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 },\n {\n prefix: \"@app/Cities/\",\n }\n);\nexport const ActionTypes = Types;\nexport default Creators;\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 //\n createTenantConfiguration: { args: [\"payload\"], meta: { async: true } },\n createTenantContact: { args: [\"payload\"], meta: { async: true } },\n updateTenantConfiguration: { args: [\"payload\"], meta: { async: true } },\n updateTenantContact: { args: [\"payload\"], meta: { async: true } },\n //\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 { 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)\n draft[stateName] = [];\n\n draft[`${stateName}_loading`] = false;\n draft[`${stateName}_errors`] = payload;\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 addPoints: { args: [\"payload\"], meta: { async: true } },\n getPoints: { args: [\"payload\"], meta: { async: true } },\n setDestination: { args: [\"payload\"], meta: { async: false } },\n getTransactionWithId: { args: [\"payload\"], meta: { async: true } },\n createGiftPoints: { args: [\"payload\"], meta: { async: true } },\n getClientPoints: { args: [\"payload\"], meta: { async: true } },\n getTransactionsWithOwnerId: { args: [\"payload\"], meta: { async: true } },\n getTransactionsWithServiceId: { args: [\"payload\"], meta: { async: true } },\n scanCode: { args: [\"payload\"], meta: { async: true } },\n setItem: { args: [\"payload\"], meta: { async: false } },\n\n showDialog: { args: [], meta: { async: false } },\n showDeleteDialog: { args: [], meta: { async: false } },\n resetDialog: { args: [], meta: { async: false } },\n resetDeleteDialog: { args: [], meta: { async: false } },\n\n },\n {\n prefix: \"@app/transaction/\",\n }\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","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","// ** 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","// ** 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\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 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","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","export default __webpack_public_path__ + \"static/media/iMakaseb.ec467c63.png\";","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n getGeneralInfo: { args: [\"payload\"], meta: { async: true } },\n getClientResponse: { args: [\"payload\"], meta: { async: true } },\n getProducts: { args: [\"payload\"], meta: { async: true } },\n getOffers: { args: [\"payload\"], meta: { async: true } },\n getClientResponces: { args: [\"payload\"], meta: { async: true } },\n getClientResponceWithId: { args: [\"payload\"], meta: { async: true } },\n getResponsesSummary: { args: [\"payload\"], meta: { async: true } },\n },\n {\n prefix: \"@app/dashboard/\",\n }\n);\nexport const ActionTypes = Types;\nexport default Creators;\n","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n getAllStores: { args: [\"payload\"], meta: { async: true } },\n getStoreWithId: { args: [\"payload\"], meta: { async: true } },\n createStore: { args: [\"payload\"], meta: { async: true } },\n updateStore: { args: [\"payload\"], meta: { async: true } },\n deleteStore: { args: [\"payload\"], meta: { async: true } },\n setStore: { args: [\"payload\"], meta: { async: false } },\n showDeleteDialog: { args: [], meta: { async: false } },\n resetDialog: { args: [], meta: { async: false } },\n },\n {\n prefix: \"@app/store/\",\n }\n);\n\nexport const ActionTypes = Types;\nexport default Creators;\nexport const AuthActions = Creators;\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 ...defaultState(\n \"permissions\",\n { metadata: undefined, selectedUser: undefined },\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 clientCreatedSuccess = (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: \"createUser\",\n stateName: \"user\",\n async: true,\n isPaginated: false,\n successCb: userCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createClient\",\n stateName: \"client\",\n async: true,\n isPaginated: false,\n successCb: clientCreatedSuccess,\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: \"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 ...bindReducers(ActionTypes, {\n action: \"addClientDecision\",\n stateName: \"addClientDecision\",\n async: true,\n isPaginated: false,\n }),\n});\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"src/utils/genState\";\nimport createReducer from \"src/utils/reduxsauce/createReducer\";\n\n\nconst initialState = {\n ...defaultState(\n \"settings\", { metadata: undefined, },\n []\n ),\n};\n\nconst settingEditedSuccess = (state, draft, payload) => {\n const settings = state.settings || [];\n var settingIndex = settings.findIndex((u) => u.id === payload.id);\n draft.settings[settingIndex] = payload;\n};\n\n\n\nexport const reducer = createReducer(initialState, {\n\n ...bindReducers(ActionTypes, {\n action: \"getSettings\",\n stateName: \"settings\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editSetting\",\n stateName: \"setting\",\n async: true,\n isPaginated: false,\n successCb: settingEditedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editAllSettings\",\n stateName: \"settings\",\n async: true,\n isPaginated: false,\n // successCb: settingEditedSuccess,\n }),\n\n});\n","import { ActionTypes } from \"./actions\";\nimport { bindReducers } from \"src/utils/genState\";\nimport createReducer from \"src/utils/reduxsauce/createReducer\";\n\nconst initialState = {\n responsesSummary: {},\n};\n\nexport const reducer = createReducer(initialState, {\n //**Categories\n ...bindReducers(ActionTypes, {\n action: \"getGeneralInfo\",\n stateName: \"generalInfo\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getClientResponse\",\n stateName: \"clientResponse\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getProducts\",\n stateName: \"products\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getOffers\",\n stateName: \"offers\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getClientResponces\",\n stateName: \"clientResponces\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getClientResponceWithId\",\n stateName: \"clientResponce\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getResponsesSummary\",\n stateName: \"responsesSummary\",\n async: true,\n isPaginated: false,\n }),\n});\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"../../utils/genState\";\nimport createReducer from \"../../utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\"tenants\", { metadata: undefined }, []),\n ...defaultState(\"tenant\", { metadata: undefined }, {}),\n};\n\nconst createTenantContactSuccess = (state, draft, payload) => {\n draft.tenant = {\n ...state.tenant,\n contacts: [...state.tenant.contacts, payload],\n };\n};\nconst updateTenantContactSuccess = (state, draft, payload) => {\n let contacts = [...state.tenant.contacts];\n let index = contacts.findIndex((e) => e.id == payload.id);\n contacts[index] = payload;\n draft.tenant = {\n ...state.tenant,\n contacts,\n };\n};\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};\n\nexport const reducer = createReducer(initialState, {\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 }),\n ...bindReducers(ActionTypes, {\n action: \"updateTenant\",\n stateName: \"tenant\",\n async: true,\n isPaginated: false,\n // successCb: updateTenantSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteTenant\",\n stateName: \"tenant\",\n async: true,\n isPaginated: false,\n }),\n\n //\n ...bindReducers(ActionTypes, {\n action: \"createTenantConfiguration\",\n stateName: \"configuration\",\n async: true,\n isPaginated: false,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"createTenantContact\",\n stateName: \"contact\",\n async: true,\n isPaginated: false,\n successCb: createTenantContactSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"updateTenantConfiguration\",\n stateName: \"configuration\",\n async: true,\n isPaginated: false,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"updateTenantContact\",\n stateName: \"contact\",\n async: true,\n isPaginated: false,\n successCb: updateTenantContactSuccess,\n }),\n\n //\n ...bindReducers(ActionTypes, {\n action: \"setTenant\",\n stateName: \"tenant\",\n async: false,\n isPaginated: false,\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: 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});\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"../../utils/genState\";\nimport createReducer from \"../../utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\"stores\", { metadata: undefined }, []),\n ...defaultState(\"store\", { metadata: undefined }, {}),\n};\n\nconst storeDeleteSuccess = (state, draft, payload) => {\n // debugger;\n const stores = state.stores || [];\n draft.stores = stores.filter((a) => a.id != payload.id);\n draft.openDeleteDialog = false;\n };\n const setStore=(state,draft,payload)=>{\n draft.store=undefined;\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};\n\nexport const reducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"getAllStores\",\n stateName: \"stores\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getStoreWithId\",\n stateName: \"store\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createStore\",\n stateName: \"store\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"updateStore\",\n stateName: \"store\",\n async: true,\n isPaginated: false,\n // successCb: updateStoreSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteStore\",\n stateName: \"Store\",\n async: true,\n isPaginated: false,\n successCb:storeDeleteSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setStore\",\n stateName: \"Store\",\n async: false,\n isPaginated: false,\n successCb:setStore,\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: 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});\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"src/utils/genState\";\nimport createReducer from \"src/utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\"cities\", { metadata: undefined }, []),\n ...defaultState(\"countries\", { metadata: undefined }, []),\n ...defaultState(\"city\", { metadata: undefined }, []),\n ...defaultState(\"country\", { metadata: undefined }, []),\n};\n\nconst editCountrySuccess = (state, draft, payload) => {\n const index = state.countries.findIndex(r => r.id === payload.id)\n if (index >= 0) {\n draft.countries[index] = payload;\n }\n draft.openDialog = false;\n};\nconst countryDeleteSuccess = (state, draft, payload) => {\n const countries = state.countries || [];\n draft.countries = countries.filter((a) => a.id != payload);\n draft.openDeleteDialog = false;\n};\nconst countryCreatedSuccess = (state, draft, payload) => {\n const countries = state.countries || [];\n draft.countries = [...countries, payload];\n draft.openDialog = false;\n};\n\nconst cityCreatedSuccess = (state, draft, payload) => {\n const cities = state.cities || [];\n draft.cities = [...cities, payload];\n draft.openDialog = false;\n};\n\nconst editCitySuccess = (state, draft, payload) => {\n debugger\n const index = state.cities.findIndex(r => r.id === payload.id)\n if (index >= 0) {\n draft.cities[index] = payload;\n }\n draft.openDialog = false;\n};\n\nconst cityDeleteSuccess = (state, draft, payload) => {\n const cities = state.cities || [];\n draft.cities = cities.filter((a) => a.id != payload);\n draft.openDeleteDialog = false;\n};\nconst governorateCreatedSuccess = (state, draft, payload) => {\n const governorates = state.governorates || [];\n draft.governorates = [...governorates, payload];\n draft.openDialog = false;\n};\n\nconst governorateEditSuccess = (state, draft, payload) => {\n const index = state.governorates.findIndex(r => r.id === payload.id)\n if (index >= 0) {\n draft.governorates[index] = payload;\n }\n draft.openDialog = false;\n};\n\nconst governorateDeleteSuccess = (state, draft, payload) => {\n const governorates = state.governorates || [];\n draft.governorates = governorates.filter((a) => a.id != payload);\n draft.openDeleteDialog = false;\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};\n\nexport const reducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"getAllCountries\",\n stateName: \"countries\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createCountry\",\n stateName: \"country\",\n async: true,\n isPaginated: false,\n successCb: countryCreatedSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"editCountry\",\n stateName: \"country\",\n async: true,\n isPaginated: false,\n successCb: editCountrySuccess\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteCountry\",\n stateName: \"country\",\n async: true,\n isPaginated: false,\n successCb: countryDeleteSuccess\n }),\n \n ...bindReducers(ActionTypes, {\n action: \"getAllCities\",\n stateName: \"cities\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getCityWithId\",\n stateName: \"city\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createCity\",\n stateName: \"city\",\n async: true,\n isPaginated: false,\n successCb: cityCreatedSuccess,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"editCity\",\n stateName: \"city\",\n async: true,\n isPaginated: false,\n successCb: editCitySuccess\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"deleteCity\",\n stateName: \"city\",\n async: true,\n isPaginated: false,\n successCb: cityDeleteSuccess\n }),\n//Governorates\n ...bindReducers(ActionTypes, {\n action: \"getAllGovernorates\",\n stateName: \"governorates\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createGovernorate\",\n stateName: \"governorate\",\n async: true,\n isPaginated: false,\n successCb: governorateCreatedSuccess,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"editGovernorate\",\n stateName: \"governorate\",\n async: true,\n isPaginated: false,\n successCb: governorateEditSuccess\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"deleteGovernorate\",\n stateName: \"governorate\",\n async: true,\n isPaginated: false,\n successCb: governorateDeleteSuccess\n }),\n\n\n\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: \"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 { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"../../utils/genState\";\nimport createReducer from \"../../utils/reduxsauce/createReducer\";\nimport Swal from \"sweetalert2\";\nimport withReactContent from \"sweetalert2-react-content\";\n\nconst initialState = {\n ...defaultState(\"services\", { metadata: undefined }, []),\n ...defaultState(\"service\", { metadata: undefined }, {}),\n // ...defaultState(\"serviceOptions\", { metadata: undefined }, {}),\n ...defaultState(\"serviceOption\", { metadata: undefined }, {}),\n ...defaultState(\"serviceTypes\", { metadata: undefined }, []),\n ...defaultState(\"vouchers\", { metadata: undefined }, []),\n ...defaultState(\"availableServices\", { metadata: undefined }, []),\n ...defaultState(\"isOpenSweetAlert\", { metadata: undefined }, false),\n ...defaultState(\"types\", { metadata: undefined }, []),\n ...defaultState(\"serviceTransactions\", { metadata: undefined }, []),\n ...defaultState(\"voucherValidation\", { metadata: undefined }, {}),\n ...defaultState(\"voucherSubmit\", { metadata: undefined }, undefined),\n ...defaultState(\"currentTenantCustomers\", { metadata: undefined }, []),\n\n\n\n\n\n\n\n};\nconst setOption = (state, draft, payload) => {\n draft.serviceOption = undefined;\n};\n\nconst setService = (state, draft, payload) => {\n draft.service = undefined;\n};\nconst setRedeem = (state, draft, payload) => {\n draft.redeemResult = undefined;\n draft.redeemResult_errors = undefined;\n draft.isOpenSweetAlert = false;\n};\nconst setValidateVoucher = (state, draft, payload) => {\n draft.voucherValidation = undefined;\n draft.voucherValidation_errors = undefined;\n};\nconst setSubmitRedeem = (state, draft, payload) => {\n draft.voucherSubmit = undefined;\n draft.voucherSubmit_errors = undefined;\n draft.isOpenSweetAlert = false;\n};\nconst validateVoucherFailure = (state, draft, payload) => {\n draft.voucherValidation = undefined;\n\n};\nconst submitRedeemVoucherSuccess = (state, draft, payload) => {\n draft.isOpenSweetAlert = true;\n draft.voucherSubmit=\"Successfully\"\n draft.voucherValidation=undefined\n\n};\nconst submitRedeemVoucherFailure = (state, draft, payload) => {\n draft.isOpenSweetAlert = true;\n draft.voucherValidation=undefined\n\n\n};\nconst validateVoucherSuccess = (state, draft, payload) => {\n //debugger\n // draft.voucherValidation=payload;\n draft.voucherValidation_errors = undefined;\n\n};\nconst redeemSuccess = (state, draft, payload) => {\n draft.isOpenSweetAlert = true;\n};\nconst redeemFailure = (state, draft, payload) => {\n draft.isOpenSweetAlert = true;\n};\nconst serviceDeleteSuccess = (state, draft, payload) => {\n const services = state.services || [];\n draft.services = services.filter((a) => a.id != payload);\n draft.openDeleteDialog = false;\n};\nconst serviceOptionDeleteSuccess = (state, draft, payload) => {\n const options = state.service?.options || [];\n draft.service.options = options.filter((a) => a.id != payload);\n draft.openDeleteDialog = false;\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};\n\nexport const reducer = createReducer(initialState, {\n ...bindReducers(ActionTypes, {\n action: \"redeem\",\n stateName: \"redeemResult\",\n async: true,\n isPaginated: false,\n successCb: redeemSuccess,\n failCb: redeemFailure,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getAllServices\",\n stateName: \"services\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getCurrentTenantCustomers\",\n stateName: \"currentTenantCustomers\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"validateVoucher\",\n stateName: \"voucherValidation\",\n async: true,\n isPaginated: false,\n successCb:validateVoucherSuccess,\n failCb:validateVoucherFailure\n }),\n ...bindReducers(ActionTypes, {\n action: \"submitRedeemVoucher\",\n stateName: \"voucherSubmit\",\n async: true,\n isPaginated: false,\n successCb:submitRedeemVoucherSuccess,\n failCb:submitRedeemVoucherFailure\n }),\n ...bindReducers(ActionTypes, {\n action: \"getServiceTransactions\",\n stateName: \"serviceTransactions\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n \n action: \"getTypes\",\n stateName: \"types\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getServiceWithId\",\n stateName: \"service\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createService\",\n stateName: \"service\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"updateService\",\n stateName: \"service\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteService\",\n stateName: \"service\",\n async: true,\n isPaginated: false,\n successCb: serviceDeleteSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setService\",\n stateName: \"service\",\n async: false,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setValidateVoucher\",\n stateName: \"setValidateVoucher\",\n async: false,\n isPaginated: false,\n successCb:setValidateVoucher\n }),\n ...bindReducers(ActionTypes, {\n action: \"getServiceOptionWithId\",\n stateName: \"serviceOption\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createServiceOption\",\n stateName: \"serviceOption\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getAvailableServices\",\n stateName: \"availableServices\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createVouchers\",\n stateName: \"vouchers\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"updateServiceOption\",\n stateName: \"serviceOption\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"deleteServiceOption\",\n stateName: \"serviceOption\",\n async: true,\n isPaginated: false,\n successCb: serviceOptionDeleteSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getServiceTypes\",\n stateName: \"serviceTypes\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setOption\",\n stateName: \"serviceOption\",\n async: false,\n isPaginated: false,\n successCb: setOption,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setService\",\n stateName: \"service\",\n async: false,\n isPaginated: false,\n successCb: setService,\n }),\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: \"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: \"setRedeem\",\n stateName: \"setRedeem\",\n async: false,\n isPaginated: false,\n successCb: setRedeem,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setSubmitRedeem\",\n stateName: \"setSubmitRedeem\",\n async: false,\n isPaginated: false,\n successCb: setSubmitRedeem,\n }),\n});\n","import { ActionTypes } from \"./actions\";\nimport { defaultState, bindReducers } from \"../../utils/genState\";\nimport createReducer from \"../../utils/reduxsauce/createReducer\";\n\nconst initialState = {\n ...defaultState(\"transactions\", { metadata: undefined }, []),\n ...defaultState(\"ownerTransactions\", { metadata: undefined }, []),\n ...defaultState(\"serviceTransactions\", { metadata: undefined }, []),\n ...defaultState(\"gift\", { metadata: undefined }, {}),\n ...defaultState(\"points\", { metadata: undefined }, {}),\n ...defaultState(\"updatedPoints\", { metadata: undefined }, 0),\n ...defaultState(\"transaction\", { metadata: undefined }, {}),\n};\nconst createGiftPointsSuccess = (state, draft, payload) => {\n const transactions = state.transactions || [];\n draft.transactions = [...transactions, payload];\n draft.updatedPoints = payload?.balance;\n draft.openDialog = false;\n};\nconst addPointsSuccess = (state, draft, payload) => {\n // debugger\n let tenantBalance = state.points.tenantWallet.balance;\n\n let mainWallet = state.destination.mainWallet;\n draft.points.tenantWallet.balance = mainWallet\n ? tenantBalance + payload.amount\n : tenantBalance - payload.amount;\n // const scibWalletTransactions = state.ownerTransactions || [];\n // draft.ownerTransactions = [...scibWalletTransactions, payload];\n draft.updatedPoints = payload?.amount;\n draft.openDialog = false;\n};\nconst setDestination = (state, draft, payload) => {\n // debugger\n draft.destination.destId = payload?.destId;\n draft.destination.mainWallet = payload?.mainWallet;\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};\nconst resetDeleteDialog = (state, draft, payload) => {\n draft.openDeleteDialog = false;\n};\n\n\nconst setItem = (state, draft, payload) => {\n const { item, data } = payload;\n draft[item] = data;\n};\n\nexport const reducer = createReducer(initialState, {\n \n ...bindReducers(ActionTypes, {\n action: \"getTransactionsWithOwnerId\",\n stateName: \"ownerTransactions\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"addPoints\",\n stateName: \"addedPoints\",\n async: true,\n isPaginated: false,\n successCb: addPointsSuccess,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getPoints\",\n stateName: \"points\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getTransactionsWithServiceId\",\n stateName: \"serviceTransactions\",\n async: true,\n isPaginated: true,\n }),\n ...bindReducers(ActionTypes, {\n action: \"getTransactionWithId\",\n stateName: \"transaction\",\n async: true,\n isPaginated: false,\n }),\n ...bindReducers(ActionTypes, {\n action: \"createGiftPoints\",\n stateName: \"gift\",\n async: true,\n isPaginated: false,\n successCb: createGiftPointsSuccess,\n }),\n\n ...bindReducers(ActionTypes, {\n action: \"scanCode\",\n stateName: \"scannedCode\",\n async: true,\n isPaginated: false,\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: \"getClientPoints\",\n stateName: \"points\",\n async: true,\n isPaginated: false,\n }),\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: \"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: \"resetDeleteDialog\",\n stateName: \"resetDeleteDialog\",\n async: false,\n isPaginated: false,\n successCb: resetDeleteDialog,\n }),\n ...bindReducers(ActionTypes, {\n action: \"setDestination\",\n stateName: \"destination\",\n async: false,\n isPaginated: false,\n successCb: setDestination,\n }),\n});\n","var map = {\n\t\"./ar/messages.po\": [\n\t\t532,\n\t\t37\n\t],\n\t\"./en/messages.po\": [\n\t\t533,\n\t\t38\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 = 518;\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};\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 //debugger;\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};\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};\n\nconst logout = (state, { payload }) => {\n return produce(state, (draft) => {\n localStorage.removeItem(\"userData\");\n localStorage.removeItem(\"jwtToken\");\n draft.user = undefined;\n draft.isLoggedIn = false;\n });\n};\n\nconst getNotifications = (state) => {\n return produce(state, (draft) => {\n draft.loginLoading = true;\n });\n};\nconst getNotificationsSuccess = (state, { payload }) => {\n return produce(state, (draft) => {\n draft.notifications = payload.data;\n draft.loginLoading = false;\n });\n};\nconst getNotificationsFail = (state, { payload }) => {\n return produce(state, (draft) => {\n draft.loginLoading = false;\n draft.loginError = payload.message;\n });\n};\nconst addNotification = (state, { notify }) => {\n return produce(state, (draft) => {\n draft.loginLoading = false;\n draft.notifications = [notify, ...state.notifications];\n });\n};\nconst readNotification = (state, { notify }) => {\n return produce(state, (draft) => {});\n};\nconst readNotificationSuccess = (state, { payload }) => {\n return produce(state, (draft) => {\n draft.notifications.forEach((a) => {\n if (a.notifyId === payload.data.notficiationId) a.read = true;\n });\n });\n};\nconst readNotificationFailed = (state, { notify }) => {\n return produce(state, (draft) => {});\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 ...bindReducers(ActionTypes, {\n action: \"refreshToken\",\n async: true,\n isPaginated: false,\n }),\n\n [ActionTypes.LOGOUT]: logout,\n [ActionTypes.GET_NOTIFICATIONS]: getNotifications,\n [ActionTypes.GET_NOTIFICATIONS_SUCCESS]: getNotificationsSuccess,\n [ActionTypes.GET_NOTIFICATIONS_FAIL]: getNotificationsFail,\n [ActionTypes.ADD_NOTIFICATION]: addNotification,\n [ActionTypes.READ_NOTIFICATION]: readNotification,\n [ActionTypes.READ_NOTIFICATION_SUCCESS]: readNotificationSuccess,\n [ActionTypes.READ_NOTIFICATION_FAIL]: readNotificationFailed,\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 \"tenant\",\n \"store\",\n \"transaction\",\n \"city\",\n \"slap\",\n \"userManegment\",\n \"dashboard\",\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 userManegment: require(\"./userManagement/reducer\").reducer,\n settings: require(\"./setting/reducer\").reducer,\n dashboard: require(\"./dashboard/reducer\").reducer,\n tenant: require(\"./tenant/reducer\").reducer,\n store: require(\"./store/reducer\").reducer,\n city: require(\"./city/reducer\").reducer,\n service: require(\"./service/reducer\").reducer,\n transaction: require(\"./transaction/reducer\").reducer,\n\n\n\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\";\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 */\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 const logic = createLogic({\n type: actionName,\n latest: true,\n\n async process({ getState, action, api }, dispatch, done) {\n try {\n _validateApi(api, apiNamespace, api_name, action);\n await refreshToken(api);\n //for testing\n //await sleep(5000);\n const res = await api[apiNamespace][api_name](action.payload);\n if (!res.ok) {\n if (res.status == 401) {\n const token = \"jwtToken\";\n const currentToken = storage.getItem(token);\n if (currentToken) storage.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: _errorMsg,\n error: true,\n });\n\n if (failCb) {\n failCb(dispatch, res.data);\n } else 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 dispatch({\n type: `${actionName}_SUCCESS`,\n payload: res.data.payload,\n });\n successCb && successCb(dispatch, res.data.payload);\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 refreshToken = async (api) => {\n const token = localStorage.getItem(\"jwtToken\");\n if (token) {\n const decoder = jwtDecoder(token);\n if (decoder.exp < moment().unix()) {\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 }\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 { createLogic } from \"redux-logic\";\nimport { ActionTypes } from \"./actions\";\nimport logic from \"src/utils/genLogic\";\nimport { push } from \"connected-react-router\";\nimport jwtDecode from \"jwt-decode\";\n\nconst apiNamespace = \"auth\";\nexport const getNotificationsLogic = createLogic({\n type: ActionTypes.GET_NOTIFICATIONS,\n latest: true,\n\n async process({ getState, action, api }, dispatch, done) {\n try {\n const res = await api.auth.getNotifications(action.loginRequest);\n if (!res.ok || !res.data.success) {\n dispatch({\n type: ActionTypes.GET_NOTIFICATIONS_FAIL,\n payload: res.data || \"Unknown Error\",\n error: true,\n });\n } else {\n dispatch({\n type: ActionTypes.GET_NOTIFICATIONS_SUCCESS,\n payload: res.data,\n });\n }\n } catch (err) {\n dispatch({\n type: ActionTypes.GET_NOTIFICATIONS_FAIL,\n payload: err,\n error: true,\n });\n }\n\n done();\n },\n});\nexport const readNotificationLogic = createLogic({\n type: ActionTypes.READ_NOTIFICATION,\n latest: true,\n\n async process({ getState, action, api }, dispatch, done) {\n try {\n const res = await api.auth.readNotification(action.payload);\n if (!res.ok || !res.data.success) {\n dispatch({\n type: ActionTypes.READ_NOTIFICATION_FAIL,\n payload: res.data || \"Unknown Error\",\n error: true,\n });\n } else {\n dispatch({\n type: ActionTypes.READ_NOTIFICATION_SUCCESS,\n payload: res.data,\n });\n }\n } catch (err) {\n dispatch({\n type: ActionTypes.READ_NOTIFICATION_FAIL,\n payload: err,\n error: true,\n });\n }\n\n done();\n },\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});\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 getNotificationsLogic,\n readNotificationLogic,\n refreshTokenLogic,\n];\n","// import { createLogic } from \"redux-logic\";\nimport logic from \"src/utils/genLogic\";\nimport { ActionTypes } from \"./actions\";\nimport { push ,goBack} from \"connected-react-router\";\nimport { Trans } from \"@lingui/react\";\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 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 createClientLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_CLIENT,\n showErrorMessage: true,\n successMessage: \"user created successfully\",\n showSuccessMessage: true,\n successCb: (dispatch) => {\n dispatch(goBack());\n },\n});\nconst addClientDecisionLogic = logic(apiNamespace, {\n actionName: ActionTypes.ADD_CLIENT_DECISION,\n showErrorMessage: true,\n successMessage: \"request updated successfully\",\n showSuccessMessage: true,\n successCb: (dispatch) => {\n dispatch(push(\"/user-managment/requests/list\"));\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 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 errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n // dispatch(push(\"/user-managment/users/list\"));\n dispatch(goBack())\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 createClientLogic,\n createUsersLogic,\n createAppUserLogic,\n getRolesLogic,\n getUserLogic,\n deleteUserLogic,\n editUserLogic,\n createRoleLogic,\n getPermissionsLogic,\n deleteRoleLogic,\n editRoleLogic,\n getRoleLogic,\n addClientDecisionLogic,\n];\n","import logic from \"src/utils/genLogic\";\nimport { ActionTypes } from \"./actions\";\nimport { push } from \"connected-react-router\";\n\nconst apiNamespace = \"settings\";\nconst getSettingsLogic = logic(apiNamespace, {actionName:ActionTypes.GET_SETTINGS});\n\nconst editSettingLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_SETTING,\n successCb: (dispatch) => {\n dispatch(push('/home/setting'))\n \n }});\n\n const editAllSettingsLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_ALL_SETTINGS,\n successCb: (dispatch) => {\n dispatch(push('/home/setting'))\n \n }});\n\n \n\nexport default [getSettingsLogic,editSettingLogic,editAllSettingsLogic];\n\n","import tenantActions, { ActionTypes } from \"./actions\";\nimport logic from \"../../utils/genLogic\";\nimport { push } from \"connected-react-router\";\n\nconst apiNamespace = \"tenant\";\n\nconst getAllTenantsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_TENANTS,\n});\nconst getTenantWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_TENANT_WITH_ID,\n});\nconst createTenantLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_TENANT,\n successCb: (dispatch, payload) => {\n const tenantId = payload.id;\n window.location.replace(`/tenants/details/${tenantId}`);\n },\n});\nconst updateTenantLogic = logic(apiNamespace, {\n actionName: ActionTypes.UPDATE_TENANT,\n});\nconst deleteTenantLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_TENANT,\n});\n//\nconst createTenantConfigurationLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_TENANT_CONFIGURATION,\n});\n\nconst createTenantContactLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_TENANT_CONTACT,\n successCb: (dispatch) => dispatch(tenantActions.resetDialog()),\n});\nconst updateTenantConfigurationLogic = logic(apiNamespace, {\n actionName: ActionTypes.UPDATE_TENANT_CONFIGURATION,\n});\n\nconst updateTenantContactLogic = logic(apiNamespace, {\n actionName: ActionTypes.UPDATE_TENANT_CONTACT,\n successCb: (dispatch) => dispatch(tenantActions.resetDialog()),\n});\n\nexport default [\n getAllTenantsLogic,\n getTenantWithIdLogic,\n createTenantLogic,\n updateTenantLogic,\n deleteTenantLogic,\n //\n createTenantConfigurationLogic,\n createTenantContactLogic,\n updateTenantConfigurationLogic,\n updateTenantContactLogic,\n];\n","import { ActionTypes } from \"./actions\";\nimport logic from \"../../utils/genLogic\";\nimport { push } from \"connected-react-router\";\nimport { Trans } from \"@lingui/react\";\nconst apiNamespace = \"store\";\n\nconst getAllStoresLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_STORES,\n});\nconst getStoreWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_STORE_WITH_ID,\n});\nconst createStoreLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_STORE,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(push(\"/store/list\"));\n }\n});\nconst updateStoreLogic = logic(apiNamespace, {\n actionName: ActionTypes.UPDATE_STORE,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(push(\"/store/list\"));\n}\n});\nconst deleteStoreLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_STORE,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\n\nexport default [\n getAllStoresLogic,\n getStoreWithIdLogic,\n createStoreLogic,\n updateStoreLogic,\n deleteStoreLogic,\n];\n","import logic from \"src/utils/genLogic\";\nimport actions, { ActionTypes } from \"./actions\";\nimport { push } from \"connected-react-router\";\nimport { Trans } from \"@lingui/react\";\nconst apiNamespace = \"Cities\";\n\n\n\n\nconst getAllCountriesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_COUNTRIES,\n});\nconst createCountryLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_COUNTRY,\n\n});\nconst editCountryLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_COUNTRY,\n});\nconst deleteCountryLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_COUNTRY,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n\n});\nconst getAllCitiesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_CITIES,\n});\nconst getCityWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_CITY_WITH_ID,\n});\nconst createCityLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_CITY,\n successCb: (dispatch) => {\n dispatch(push(\"/cities/list\"));\n },\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\nconst editCityLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_CITY,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\nconst deleteCityLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_CITY,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\n\nconst getAllGovernoratesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_GOVERNORATES,\n});\nconst createGovernorateLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_GOVERNORATE,\n successCb: (dispatch) => {\n dispatch(push(\"/governorates/list\"));\n },\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\nconst editGovernorateLogic = logic(apiNamespace, {\n actionName: ActionTypes.EDIT_GOVERNORATE,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\nconst deleteGovernorateLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_GOVERNORATE,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\n\nexport default [\n getAllCountriesLogic,\n createCountryLogic,\n editCountryLogic,\n deleteCountryLogic,\n \n getAllCitiesLogic,\n getCityWithIdLogic,\n createCityLogic,\n editCityLogic,\n deleteCityLogic,\n\n getAllGovernoratesLogic,\n createGovernorateLogic,\n editGovernorateLogic,\n deleteGovernorateLogic,\n];\n","import logic from \"src/utils/genLogic\";\nimport { ActionTypes } from \"./actions\";\n\nconst apiNamespace = \"dashboard\";\n\n// categories\n\nconst getGeneralInfoLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_GENERAL_INFO,\n});\n\nconst getClientResponseLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_CLIENT_RESPONSE,\n});\nconst getProductsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_PRODUCTS,\n});\nconst getOffersLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_OFFERS,\n});\nconst getClientResponcesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_CLIENT_RESPONCES,\n});\nconst getClientResponceWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_CLIENT_RESPONCE_WITH_ID,\n});\nconst getResponsesSummaryLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_RESPONSES_SUMMARY,\n});\nexport default [\n getGeneralInfoLogic,\n getClientResponseLogic,\n getProductsLogic,\n getOffersLogic,\n getClientResponcesLogic,\n getClientResponceWithIdLogic,\n getResponsesSummaryLogic\n];\n","import { ActionTypes } from \"./actions\";\nimport logic from \"../../utils/genLogic\";\nimport { Trans } from \"@lingui/react\";\nimport { push ,goBack} from \"connected-react-router\";\n\nconst apiNamespace = \"service\";\n\nconst getAllServicesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_ALL_SERVICES,\n});\nconst getCurrentTenantCustomersLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_CURRENT_TENANT_CUSTOMERS,\n});\nconst getTypesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_TYPES,\n});\nconst getServiceTypesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_SERVICE_TYPES,\n});\nconst getAvailableServicesLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_AVAILABLE_SERVICES,\n});\nconst validateVoucherLogic = logic(apiNamespace, {\n actionName: ActionTypes.VALIDATE_VOUCHER,\n});\nconst submitRedeemVoucherLogic = logic(apiNamespace, {\n actionName: ActionTypes.SUBMIT_REDEEM_VOUCHER,\n});\nconst redeemLogic = logic(apiNamespace, {\n actionName: ActionTypes.REDEEM,\n // showErrorMessage: true,\n // errorMessage: ,\n // showSuccessMessage: true,\n // successMessage: ,\n});\n\nconst getServiceOptionWithLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_SERVICE_OPTION_WITH_ID,\n});\nconst getServiceWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_SERVICE_WITH_ID,\n});\nconst getServiceTransactionsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_SERVICE_TRANSACTIONS,\n});\nconst createServiceLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_SERVICE,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(push(\"/service/list\"));\n }\n});\nconst createVouchersLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_VOUCHERS,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(goBack());\n }\n});\n\nconst createServiceOptionLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_SERVICE_OPTION,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(goBack());\n }\n});\nconst updateServiceLogic = logic(apiNamespace, {\n actionName: ActionTypes.UPDATE_SERVICE,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(push(\"/service/list\"));\n}\n});\n\nconst updateServiceOptionLogic = logic(apiNamespace, {\n actionName: ActionTypes.UPDATE_SERVICE_OPTION,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb: (dispatch) => {\n dispatch(goBack());\n }\n});\nconst deleteServiceLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_SERVICE,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\nconst deleteServiceOptionLogic = logic(apiNamespace, {\n actionName: ActionTypes.DELETE_SERVICE_OPTION,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\n\nexport default [\n getAllServicesLogic,\n validateVoucherLogic,\n submitRedeemVoucherLogic,\n getServiceWithIdLogic,\n getServiceTransactionsLogic,\n getTypesLogic,\n createServiceLogic,\n getCurrentTenantCustomersLogic,\n updateServiceLogic,\n deleteServiceLogic,\n getServiceOptionWithLogic,\n createServiceOptionLogic,\n updateServiceOptionLogic,\n deleteServiceOptionLogic,\n getServiceTypesLogic,\n createVouchersLogic,\n getAvailableServicesLogic,\n redeemLogic\n];\n","import { ActionTypes } from \"./actions\";\nimport logic from \"../../utils/genLogic\";\nimport { Trans } from \"@lingui/react\";\n\nconst apiNamespace = \"transaction\";\n\nconst getTransactionsWithOwnerIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_TRANSACTIONS_WITH_OWNER_ID,\n});\nconst getTransactionsWithServiceIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_TRANSACTIONS_WITH_SERVICE_ID,\n});\nconst getClientPointsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_CLIENT_POINTS,\n});\nconst getTransactionWithIdLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_TRANSACTION_WITH_ID,\n});\nconst createGiftPointsLogic = logic(apiNamespace, {\n actionName: ActionTypes.CREATE_GIFT_POINTS,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\nconst scanCodeLogic = logic(apiNamespace, {\n actionName: ActionTypes.SCAN_CODE,\n showErrorMessage: false,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n});\n\n\nconst addPointsLogic = logic(apiNamespace, {\n actionName: ActionTypes.ADD_POINTS,\n showErrorMessage: true,\n errorMessage: ,\n showSuccessMessage: true,\n successMessage: ,\n successCb:()=>{\n // window.location.reload();\n }\n});\nconst getPointsLogic = logic(apiNamespace, {\n actionName: ActionTypes.GET_POINTS,\n});\nexport default [\n addPointsLogic,\n getPointsLogic,\n createGiftPointsLogic,\n getClientPointsLogic,\n scanCodeLogic,\n getTransactionsWithOwnerIdLogic,\n getTransactionsWithServiceIdLogic,\n getTransactionWithIdLogic,\n];\n","import appLogic from \"./app/logic\";\nimport authLogic from \"./auth/logic\";\nimport usersLogic from \"./userManagement/logic\";\nimport settingLogic from \"./setting/logic\";\nimport tenantLogic from \"./tenant/logic\";\nimport storeLogic from \"./store/logic\";\nimport cityLogic from \"./city/logic\";\nimport dashboardLogic from \"./dashboard/logic\";\nimport serviceLogic from \"./service/logic\";\nimport transactionLogic from \"./transaction/logic\";\n\n\n\n\n\n\nexport default [\n ...appLogic,\n ...authLogic,\n ...usersLogic,\n ...settingLogic,\n ...dashboardLogic,\n ...tenantLogic,\n ...storeLogic,\n ...cityLogic,\n...serviceLogic,\n...transactionLogic\n];\n","export default function (/**@type {ApisauceInstance} */ api) {\n const login = (loginRequest) => api.post(\"auth/dashboard-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 getUsers = (paging) => api.get(\"/user-management/users/search\", paging);\n const getPermissions = () => api.get(\"/user-management/permissions\");\n const createUser = (payload) =>\n api.post(\"user-management/users/create\", 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 createClient= (payload) =>\n api.post(\"user-management/users/create-client\", payload);\n const getUser = (id) => api.get(`user-management/users/find/${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/create\", payload);\n const editUser = ({ payload, id }) =>\n api.put(`user-management/users/edit/${id}`, payload);\n const deleteRole = (id) =>\n api.delete(`user-management/roles/remove/${id}`);\n const editRole = ({ payload, id }) =>\n api.put(`user-management/roles/edit/${id}`, payload);\n const getRole = (id) => api.get(`user-management/roles/find/${id}`);\n const addClientDecision = (payload) =>\n api.post(`user-management/users/decision`, payload);\n return {\n userManegment: {\n getUsers,\n getUser,\n createUser,\n createClient,\n createUsers,\n createAppUser,\n deleteUser,\n getRoles,\n editUser,\n createRole,\n getPermissions,\n deleteRole,\n editRole,\n getRole,\n addClientDecision,\n },\n };\n}\n","export default function (/**@type {ApisauceInstance} */ api) {\n const getSettings = () => api.get(\"Setting/settings\");\n const editSetting = ({ payload, id }) => api.put(`Setting/edit-setting/${id}`, payload);\n const editAllSettings = (payload) => api.put(`Setting/edit-all-setting`, payload);\n \n \n return {\n settings: {\n getSettings,\n editSetting,\n editAllSettings\n }\n };\n }\n ","export default function (/**@type {ApisauceInstance} */ api) {\n const getAllTenants = (paging) => api.get(\"/tenant/search\", paging);\n\n const getTenantWithId = (id) => api.get(\"/tenant/find/\" + id);\n\n const createTenant = (payload) => api.post(\"/tenant/create\", payload);\n\n const updateTenant = (payload) =>\n api.put(\"/tenant/edit/\" + payload.id, payload);\n\n const deleteTenant = (id) => api.delete(\"/tenant/\" + id);\n\n //extra\n const createTenantConfiguration = (payload) =>\n api.post(\"/tenant/configuration\", payload);\n\n const updateTenantConfiguration = (payload) =>\n api.put(\"/tenant/edit-configuration\", payload);\n\n const createTenantContact = (payload) => api.post(\"/tenant/contact\", payload);\n\n const updateTenantContact = (payload) =>\n api.put(\"/tenant/edit-contact\", payload);\n return {\n tenant: {\n getAllTenants,\n getTenantWithId,\n createTenant,\n updateTenant,\n deleteTenant,\n //\n createTenantConfiguration,\n createTenantContact,\n updateTenantConfiguration,\n updateTenantContact,\n },\n };\n}\n","export default function (/**@type {ApisauceInstance} */ api) {\n const getAllStores = (paging) => api.get(\"/store/search\", paging);\n \n const getStoreWithId = (id) => api.get(\"/store/find/\" + id);\n \n const createStore = (payload) => api.post(\"/store/create\", payload);\n \n const updateStore = (payload) => api.put(\"/store/edit\", payload);\n \n const deleteStore = (id) => api.delete(\"/store/remove/\" +id);\n \n return {\n store: {\n getAllStores,\n getStoreWithId,\n createStore,\n updateStore,\n deleteStore,\n },\n };\n }\n ","export default function (/**@type {ApisauceInstance} */ api) {\n\n\n const getAllCountries = (paging) => api.get(\"/Country/search\",paging);\n const getCountryWithId=(id)=>api.get(\"/Country/find/\" + id)\n const createCountry = (payload) => api.post(\"/Country/create\", payload);\n const editCountry = (payload) => api.put(\"/Country/edit\", payload);\n const deleteCountry = (id) => api.delete(\"/Country/remove/\"+id);\n \n const getAllCities = (paging) => api.get(\"/City/search\",paging);\n const createCity = (payload) => api.post(\"/City/create\", payload);\n const getCityWithId=(id)=>api.get(\"/City/find/\" + id)\n const editCity = ({payload}) => api.put(\"/City/edit\", payload);\n const deleteCity = (id) => api.delete(\"/City/remove/\"+id);\n \n const getAllGovernorates = (paging) => api.get(\"/governorate/search\",paging);\n const createGovernorate = (payload) => api.post(\"/governorate/create\", payload);\n const getGovernorateWithId=(id)=>api.get(\"/governorate/find/\" + id)\n const editGovernorate = ({payload}) => api.put(\"/governorate/edit\", payload);\n const deleteGovernorate = (id) => api.delete(\"/governorate/remove/\"+id);\n \n return {\n Cities: {\n getCountryWithId,\n getAllCountries,\n createCountry,\n editCountry,\n deleteCountry,\n\n getAllCities,\n createCity,\n getCityWithId,\n editCity,\n deleteCity,\n\n getAllGovernorates,\n createGovernorate,\n getGovernorateWithId,\n editGovernorate,\n deleteGovernorate,\n },\n };\n }\n \n ","export default function (/**@type {ApisauceInstance} */ api) {\n const getAllServices = (paging) => api.get(\"/Service/search\", paging);\n const getServiceWithId = (id) => api.get(\"/Service/find/\" + id);\n const getServiceTransactions= (payload) => api.get(\"/Service/service-transactions/\" , payload);\n const getCurrentTenantCustomers= () => api.get(\"/Tenant/tenant-customers\");\n\n const redeem=(payload)=>api.post(\"/redeem/user-voucher\" , payload);\n const getServiceTypes = () => api.get(\"/Service/all-services\");\n const getTypes = () => api.get(\"/Service/all-types\");\n\n const getAvailableServices = (paging) => api.get(\"/Service/user-available-service\",paging);\n const validateVoucher = (payload) => api.post(\"/redeem/voucher-inquiry\",payload);\n const submitRedeemVoucher = (paging) => api.post(\"/Redeem/submit-voucher\",paging);\n\n const getServiceOptionWithId=(id)=>api.get(\"/Service/find-option/\" + id)\n const createService = (payload) =>api.post(\"/Service/create\", payload);\n const createServiceOption = (payload) =>api.post(\"/Service/create-option\", payload);\n const createVouchers= (payload) =>api.post(\"/Service/create-vouchers\", payload);\n const updateService = (payload) => api.put(\"/Service/edit\", payload);\n const updateServiceOption = (payload) => api.put(\"/Service/edit-option\", payload);\n\n\n const deleteService = (id) => api.delete(\"/Service/remove/\" + id);\n const deleteServiceOption = (id) => api.delete(\"/Service/remove-option/\" + id);\n\n\n return {\n service: {\n validateVoucher,\n getCurrentTenantCustomers,\n submitRedeemVoucher,\n getAllServices,\n getTypes,\n getServiceWithId,\n getAvailableServices,\n getServiceTransactions,\n createService,\n createVouchers,\n updateService,\n deleteService,\n getServiceOptionWithId,\n createServiceOption,\n updateServiceOption,\n deleteServiceOption,\n getServiceTypes,\n redeem\n\n },\n };\n}\n","export default function (/**@type {ApisauceInstance} */ api) {\n const getUserTransactions = (id) =>\n api.get(\"/wallet-management/user-transactions/\", id);\n \n const getTransactionsWithServiceId = (id) =>\n api.get(\"/wallet-management/service-transactions/\", id);\n \n const getTransactionsWithOwnerId = (id) =>\n api.get(\"/wallet-management/owner-transactions/\", id);\n const getClientPoints = (id) =>\n api.get(\"/wallet-management/client-points/\" + id);\n const getTransactionWithId = (id) =>\n api.get(\"/wallet-management/transaction/\" + id);\n \n const createGiftPoints = (payload) =>\n api.post(\"/wallet-management/create-gift/\", payload);\n const addPoints = (paging) => api.post(\"/wallet-management/add-tenant-points\", paging);\n const getPoints = (id) => api.get(\"/wallet-management/Tenant-points/\"+id);\n \n const scanCode = (payload) =>\n api.post(\"/wallet-management/scan-for-client/\", payload);\n \n return {\n transaction: {\n getUserTransactions,\n addPoints,\n getPoints,\n getTransactionsWithServiceId,\n getTransactionsWithOwnerId,\n getTransactionWithId,\n createGiftPoints,\n getClientPoints,\n scanCode,\n },\n };\n }\n ","import apisauce from \"apisauce\";\nimport config from \"../configs\";\n\nimport authApi from \"./auth\";\nimport usersApi from \"./userManagement\";\nimport settingsApi from \"./setting\";\nimport tenantApi from \"./tenant\";\nimport storeApi from \"./store\";\nimport cityApi from \"./city\";\nimport serviceApi from \"./service\";\nimport transactionApi from \"./transaction\";\n\n\n\n\n\n//---------------------\n\n// const apiURI = config.useLocalApi ? config.devApiRoot : config.apiRoot;\nconst apiURI = process.env.REACT_APP_BASE_API_URL;\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 users = usersApi(api);\n const settings = settingsApi(api);\n const tenant = tenantApi(api);\n const store = storeApi(api);\n const city = cityApi(api);\n const service =serviceApi(api);\n const transaction=transactionApi(api);\n \n\n\n // --------------------\n return {\n setHeader: api.setHeader,\n setHeaders: api.setHeaders,\n ...auth,\n ...users,\n ...settings,\n ...tenant,\n ...store,\n ...city,\n ...service,\n ...transaction\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}","import { createActions } from \"../../utils/reduxsauce\";\n\nconst { Types, Creators } = createActions(\n {\n getSettings: { args: [], meta: { async: true } },\n editSetting:{ args: [\"payload\"], meta: { async: true } },\n editAllSettings:{ args: [\"payload\"], meta: { async: true } },\n },\n {\n prefix: \"@app/settings/\"\n }\n);\nexport const ActionTypes = Types;\nexport default Creators;","// 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":""}