{"version":3,"file":"3448.e911d9800d6eb0359dc9.js","mappings":"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N1B,EAAuD+U,OAAOC,OAAO,CAC9E/U,QAAS,EACTsV,SAAU,IASDnV,EAAqC2U,OAAOC,OAAO,CAC5D,cAAe,CAAChV,EAAcC,QAASD,EAAcuV,UACrD,iBAAkB,CAACvV,EAAcC,QAASD,EAAcuV,UACxD,eAAgB,CAACvV,EAAcC,WAGtBuV,EAA2B,8G,sDC/GjC,MAAMC,EAAS,WAClB,UACA,aACA,OACA,SACA,SACA,aACA,WACA,SACA,MACA,QACA,eACA,aACA,UACA,SACA,MACA,QACA,eACA,WACA,WACA,QACA,eACA,OACA,cACA,aACA,QACA,OACA,SACA,OACA,MACA,YACA,aACA,YACA,QACA,SACA,MACA,OACA,cACA,OACA,cACA,OACA,cACA,QACA,eACA,eACA,MACA,aACA,YACA,WACA,WACA,WACA,UACA,cACA,YACA,QACA,OACA,SACA,YACA,SACA,MACA,aACA,YACA,OACA,MACA,QACA,QACA,KACA,SACA,QACA,QACA,OACA,QACA,eACA,OACA,OACA,cACA,aACA,WACA,MACA,OACA,QACA,SACA,OACA,cACA,cACA,OACA,cACA,YACA,QACA,QACA,MACA,QACA,WACA,eACA,YACH,KAEYC,EAAkB,WAC3B,MACA,MACA,KACA,MACA,MACA,SACA,IACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,MACA,MACA,OACH,KAEYC,EAAwD,CACjE,CAAEjL,KAAM,UAAWkL,aAAc,MACjC,CAAElL,KAAM,SAAUkL,aAAc,MAChC,CAAElL,KAAM,UAAWkL,aAAc,MACjC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,aAAckL,aAAc,MACpC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,cAAekL,aAAc,MACrC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,UAAWkL,aAAc,MACjC,CAAElL,KAAM,UAAWkL,aAAc,MACjC,CAAElL,KAAM,SAAUkL,aAAc,MAChC,CAAElL,KAAM,QAASkL,aAAc,MAC/B,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,UAAWkL,aAAc,MACjC,CAAElL,KAAM,OAAQkL,aAAc,MAC9B,CAAElL,KAAM,SAAUkL,aAAc,MAChC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,YAAakL,aAAc,MACnC,CAAElL,KAAM,QAASkL,aAAc,MAC/B,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,gBAAiBkL,aAAc,MACvC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,YAAakL,aAAc,MACnC,CAAElL,KAAM,cAAekL,aAAc,MACrC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,UAAWkL,aAAc,MACjC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,SAAUkL,aAAc,MAChC,CAAElL,KAAM,gBAAiBkL,aAAc,MACvC,CAAElL,KAAM,aAAckL,aAAc,MACpC,CAAElL,KAAM,aAAckL,aAAc,MACpC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,iBAAkBkL,aAAc,MACxC,CAAElL,KAAM,eAAgBkL,aAAc,MACtC,CAAElL,KAAM,OAAQkL,aAAc,MAC9B,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,SAAUkL,aAAc,MAChC,CAAElL,KAAM,eAAgBkL,aAAc,MACtC,CAAElL,KAAM,eAAgBkL,aAAc,MACtC,CAAElL,KAAM,iBAAkBkL,aAAc,MACxC,CAAElL,KAAM,eAAgBkL,aAAc,MACtC,CAAElL,KAAM,YAAakL,aAAc,MACnC,CAAElL,KAAM,QAASkL,aAAc,MAC/B,CAAElL,KAAM,OAAQkL,aAAc,MAC9B,CAAElL,KAAM,UAAWkL,aAAc,MACjC,CAAElL,KAAM,WAAYkL,aAAc,MAClC,CAAElL,KAAM,aAAckL,aAAc,MACpC,CAAElL,KAAM,gBAAiBkL,aAAc,MACvC,CAAElL,KAAM,YAAakL,aAAc,MACnC,CAAElL,KAAM,UAAWkL,aAAc,M,iFCtKrC,MAAMC,EAAgB,8BAOTC,EAA4BzI,IACrB,kBACA0I,KAAK1I,GAGZ2I,EAAiB3I,IAAUwI,EAAcE,KAAK1I,GAE3D,EAZ4BA,IACR,kBACA0I,KAAK1I,GAYZ4I,EAAuB5I,GAASwI,EAAcE,KAAK1I,GACnD6I,EAAuB7I,GAASA,EAAM8I,SAASN,EAAe,I","sources":["webpack:///./actions/DeploymentDestinationActions.ts","webpack:///./actions/appSettingsActions.ts","webpack:///./actions/destinationGroupingParentsActions.ts","webpack:///./actions/makeAWish.ts","webpack:///./actions/wikiActions.ts","webpack:///./components/modals/manage-files/browseFilesModal.tsx","webpack:///./components/modals/tapad/RefreshDeployConfirmModal.tsx","webpack:///./components/wiki/constants.tsx","webpack:///./helpers/makeAWishConstants.ts","webpack:///./helpers/snowflakeValidation.js"],"sourcesContent":["import { request } from \"../helpers/httpInterceptor\";\r\nimport h from \"../helpers\";\r\nimport { Dispatch } from \"../types/types\";\r\nimport { notifyGreen } from \"./notifyActions\";\r\nimport {\r\n SET_DEPLOYMENT_DESTINATION,\r\n GET_DEPLOYMENT_DESTINATION,\r\n GET_DEPLOYMENT_DESTINATION_LIST,\r\n IS_DEPLOYMENT_DESTINATION_LOADING,\r\n IS_UPDATING_DEPLOYMENT_DESTINATION,\r\n GET_DEPLOY_DESTINATION_DIFF_COMPANY_LIST,\r\n SET_DEPLOYMENT_DESTINATION_SERVERS,\r\n SET_DEPLOYMENT_DESTINATION_SERVER,\r\n SET_DEPLOYMENT_DESTINATION_SERVERS_LOADING,\r\n SET_DEPLOYMENT_DESTINATION_SERVERS_SAVING,\r\n} from \"../reducers/deploymentDestination\";\r\nimport {\r\n ICompanyDeploymentDestination,\r\n IDeploymentDestinationServer,\r\n ISaveDeploymentDestinationServerModel,\r\n ISetDeploymentDestinationServer,\r\n ISetDeploymentDestinationServers,\r\n ISetDeploymentDestinationServersLoading,\r\n ISetDeploymentDestinationServersSaving,\r\n} from \"../types/stores/deploymentDestination\";\r\n\r\n/************************************* Deployment Destination **************************************************/\r\nexport const SetDeploymentDestination =\r\n (destination: ICompanyDeploymentDestination) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch({\r\n type: SET_DEPLOYMENT_DESTINATION,\r\n destination,\r\n });\r\n };\r\n\r\nexport const GetDeploymentDestination =\r\n (destination: ICompanyDeploymentDestination) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch({\r\n type: GET_DEPLOYMENT_DESTINATION,\r\n destination,\r\n });\r\n };\r\n\r\nexport const GetDeploymentDestinationsList =\r\n (destinations: Array) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch({\r\n type: GET_DEPLOYMENT_DESTINATION_LIST,\r\n destinations,\r\n });\r\n };\r\n\r\nexport const IsDeploymentDestinationsLoading =\r\n (isLoading: boolean) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch({\r\n type: IS_DEPLOYMENT_DESTINATION_LOADING,\r\n isLoading,\r\n });\r\n };\r\n\r\nexport const IsUpdatingDeploymentDestinations =\r\n (isUpdating: boolean) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch({\r\n type: IS_UPDATING_DEPLOYMENT_DESTINATION,\r\n isUpdating,\r\n });\r\n };\r\n\r\nexport const GetDeployDestinationsDiffCompanyList =\r\n (destinationsDiffCompany: Array) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch({\r\n type: GET_DEPLOY_DESTINATION_DIFF_COMPANY_LIST,\r\n destinationsDiffCompany,\r\n });\r\n };\r\n/***************************************************************************************/\r\n\r\n/************************************* Deployment Destination Servers **************************************************/\r\n\r\nexport const SetDeploymentDestinationServers = (\r\n servers: Array\r\n): ISetDeploymentDestinationServers => ({\r\n type: SET_DEPLOYMENT_DESTINATION_SERVERS,\r\n servers,\r\n});\r\n\r\nexport const SetDeploymentDestinationServer = (\r\n server: IDeploymentDestinationServer\r\n): ISetDeploymentDestinationServer => ({\r\n type: SET_DEPLOYMENT_DESTINATION_SERVER,\r\n server,\r\n});\r\n\r\nexport const SetDeploymentDestinationServersLoading = (\r\n serversLoading: boolean\r\n): ISetDeploymentDestinationServersLoading => ({\r\n type: SET_DEPLOYMENT_DESTINATION_SERVERS_LOADING,\r\n serversLoading,\r\n});\r\n\r\nexport const SetDeploymentDestinationServersSaving = (\r\n serversSaving: boolean\r\n): ISetDeploymentDestinationServersSaving => ({\r\n type: SET_DEPLOYMENT_DESTINATION_SERVERS_SAVING,\r\n serversSaving,\r\n});\r\n\r\n/***************************************************************************************/\r\n\r\n/************************************* Deployment Destination **************************************************/\r\n\r\nexport const getDeploymentDestinationList =\r\n (companyId: number) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(IsDeploymentDestinationsLoading(true));\r\n return request(\r\n `/api/deploymentDestination/GetList?companyId=${companyId}`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"GET\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then((data: { destinations: any }) => {\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n dispatch(GetDeploymentDestinationsList(data.destinations));\r\n })\r\n .catch((error: any) => {\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n h.error(\"Error fetching available deployment destination.\", error);\r\n });\r\n };\r\n\r\nexport const getDeploymentDestinationById =\r\n (id: number) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(IsDeploymentDestinationsLoading(true));\r\n return request(\r\n `/api/deploymentDestination/GetById?id=${id}`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"GET\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then((data: { destinations: any }) => {\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n dispatch(GetDeploymentDestination(data.destinations));\r\n })\r\n .catch((error: any) => {\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n h.error(\"Error fetching available deployment destination.\", error);\r\n });\r\n };\r\n\r\nexport const addDeploymentDestination =\r\n (dataModel: ICompanyDeploymentDestination) =>\r\n (dispatch: Dispatch): Promise => {\r\n dispatch(IsDeploymentDestinationsLoading(true));\r\n return fetch(`/api/deploymentDestination/Add`, {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n },\r\n body: JSON.stringify(dataModel),\r\n })\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n const response = data as unknown as { result: boolean; destinationData: ICompanyDeploymentDestination };\r\n if (response.result) {\r\n dispatch(notifyGreen(\"Destination deployment has been added\"));\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n return;\r\n } else {\r\n throw new Error(\"Error adding new deployment destination.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n h.error(\"Error adding new deployment destination.\", error);\r\n });\r\n };\r\n\r\nexport const updateDeploymentDestination =\r\n (dataModel: ICompanyDeploymentDestination) =>\r\n (dispatch: Dispatch): Promise => {\r\n dispatch(IsDeploymentDestinationsLoading(true));\r\n return fetch(`/api/deploymentDestination/Update`, {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n },\r\n body: JSON.stringify(dataModel),\r\n })\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n const response = data as unknown as {\r\n result: boolean;\r\n };\r\n if (!response || !response.result) {\r\n throw new Error(\"Error updating destination deployment.\");\r\n }\r\n\r\n dispatch(notifyGreen(\"Destination deployment has been updated\"));\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n })\r\n .catch(error => {\r\n // eslint-disable-next-line no-alert\r\n alert(error);\r\n h.error(\"Error updating destination deployment.\", error);\r\n });\r\n };\r\n\r\nexport const deleteDeploymentDestination =\r\n (id: number, companyId: number) =>\r\n (dispatch: Dispatch): Promise =>\r\n fetch(`/api/deploymentDestination/Delete?id=${id}`, {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n const response = data as unknown as {\r\n result: boolean;\r\n };\r\n if (!response || !response.result) {\r\n throw new Error(\"Error deleting destination deployment.\");\r\n }\r\n\r\n dispatch(getDeploymentDestinationList(companyId));\r\n dispatch(notifyGreen(\"Destination deployment has been removed\"));\r\n })\r\n .catch(error => {\r\n // eslint-disable-next-line no-alert\r\n alert(error);\r\n h.error(\"Error deleting destination deployment.\", error);\r\n });\r\n\r\nexport const getDeployDestinationDiffCompanyList =\r\n (companyId: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(IsDeploymentDestinationsLoading(true));\r\n return request(\r\n `/api/deploymentDestination/GetDeployDestinationDiffCompany?companyId=${companyId}`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"GET\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then((data: { destinations: any }) => {\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n dispatch(GetDeployDestinationsDiffCompanyList(data.destinations));\r\n })\r\n .catch((error: any) => {\r\n dispatch(IsDeploymentDestinationsLoading(false));\r\n h.error(\"Error fetching available company deploy destination.\", error);\r\n });\r\n };\r\n\r\n/**********************************/\r\n/* DEPLOYMENT DESTINATION SERVERS */\r\n/**********************************/\r\nexport const getDeploymentDestinationServers =\r\n () =>\r\n (dispatch: Dispatch): Promise => {\r\n dispatch(SetDeploymentDestinationServersLoading(true));\r\n return request(\r\n \"/api/deploymentDestination/GetDeploymentDestinationServers\",\r\n {\r\n credentials: \"same-origin\",\r\n method: \"GET\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then((data: { servers: Array }) => {\r\n dispatch(SetDeploymentDestinationServersLoading(false));\r\n dispatch(SetDeploymentDestinationServers(data.servers));\r\n })\r\n .catch((error: any) => {\r\n dispatch(SetDeploymentDestinationServersLoading(false));\r\n h.error(\"Error fetching deployment destination servers.\", error);\r\n });\r\n };\r\n\r\nexport const saveDeploymentDestinationServer =\r\n (model: ISaveDeploymentDestinationServerModel, successCallback?: () => void) =>\r\n (dispatch: Dispatch): Promise => {\r\n dispatch(SetDeploymentDestinationServersSaving(true));\r\n return request(\r\n \"/api/deploymentDestination/SaveDeploymentDestinationServer\",\r\n {\r\n credentials: \"same-origin\",\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n },\r\n body: JSON.stringify(model),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(() => {\r\n dispatch(SetDeploymentDestinationServersSaving(false));\r\n dispatch(getDeploymentDestinationServers());\r\n dispatch(notifyGreen(\"Deployment destination server has been saved.\"));\r\n\r\n if (successCallback) {\r\n successCallback();\r\n }\r\n })\r\n .catch((error: any) => {\r\n dispatch(SetDeploymentDestinationServersSaving(false));\r\n h.error(\"Error saving deployment destination server.\", error);\r\n });\r\n };\r\n\r\nexport const deleteDeploymentDestinationServer =\r\n (id: number) =>\r\n (dispatch: Dispatch): Promise => {\r\n dispatch(SetDeploymentDestinationServersSaving(true));\r\n return request(\r\n `/api/deploymentDestination/DeleteDeploymentDestinationServer?id=${id}`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"POST\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(() => {\r\n dispatch(SetDeploymentDestinationServersSaving(false));\r\n dispatch(getDeploymentDestinationServers());\r\n dispatch(notifyGreen(\"Deployment destination server has been deleted.\"));\r\n })\r\n .catch((error: any) => {\r\n dispatch(SetDeploymentDestinationServersSaving(false));\r\n h.error(\"Error deleting deployment destination server.\", error);\r\n });\r\n };\r\n","import h from \"../helpers\";\r\nimport { request } from \"../helpers/httpInterceptor\";\r\nimport { notifyGreen } from \"./notifyActions\";\r\nimport { Dispatch, GetState } from \"../types/types\";\r\nimport {\r\n IAppSettings,\r\n IAppSettingsList,\r\n ISetAppSettings,\r\n ISetAppSettingsList,\r\n ISetIsSavingAppSettings,\r\n ISetLoadingAppSettingsList,\r\n ISetLoadingAppSettings,\r\n ISetSaveCompletedAppSettings,\r\n} from \"../types/stores/appSettings\";\r\nimport {\r\n SET_APP_SETTINGS,\r\n SET_APP_SETTINGS_LIST,\r\n SET_IS_SAVING_APP_SETTINGS,\r\n SET_LOADING_APP_SETTINGS,\r\n SET_LOADING_APP_SETTINGS_LIST,\r\n SET_SAVE_COMPLETED_APP_SETTINGS,\r\n} from \"../reducers/appSettings\";\r\n\r\nexport const SetAppSettingsIsLoading = (newValue: boolean): ISetLoadingAppSettings => ({\r\n type: SET_LOADING_APP_SETTINGS,\r\n isLoading: newValue,\r\n});\r\n\r\nexport const SetAppSettingListingIsLoading = (newValue: boolean): ISetLoadingAppSettingsList => ({\r\n type: SET_LOADING_APP_SETTINGS_LIST,\r\n isLoadingList: newValue,\r\n});\r\n\r\nexport const SetAppSettingsIsSaving = (newValue: boolean): ISetIsSavingAppSettings => ({\r\n type: SET_IS_SAVING_APP_SETTINGS,\r\n isSaving: newValue,\r\n});\r\n\r\nexport const SetAppSettingsSaveCompleted = (newValue: boolean): ISetSaveCompletedAppSettings => ({\r\n type: SET_SAVE_COMPLETED_APP_SETTINGS,\r\n completed: newValue,\r\n});\r\n\r\nexport const SetAppSettingsFields = (data: Array): ISetAppSettings => ({\r\n type: SET_APP_SETTINGS,\r\n appSettings: data,\r\n});\r\n\r\nexport const SetAppSettingList = (data: Array): ISetAppSettingsList => ({\r\n type: SET_APP_SETTINGS_LIST,\r\n appSettingsList: data,\r\n});\r\n\r\nexport const GetAppSettingByCompanyId =\r\n (settingName: string, companyId: number) =>\r\n async (dispatch: Dispatch, getState: GetState): Promise => {\r\n const state = getState();\r\n let appSettings = state.appSettings.appSettings || [];\r\n\r\n // make sure we get app settings\r\n if (!appSettings || (appSettings && appSettings.length <= 0)) {\r\n appSettings = await dispatch(GetAppSettings(companyId));\r\n }\r\n\r\n // filter out by company Id\r\n const foundAppSetting =\r\n typeof appSettings != \"undefined\" &&\r\n appSettings.find(setting => setting.Name === settingName && setting.CompanyId == companyId);\r\n return foundAppSetting;\r\n };\r\n\r\nexport const GetAppSettings =\r\n // companyId needs to be undefined when all companies is selected\r\n\r\n\r\n (companyId?: number) =>\r\n (dispatch: Dispatch): any => {\r\n dispatch(SetAppSettingsIsLoading(true));\r\n return request(\r\n `/api/app-settings/all?companyId=${companyId}`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"GET\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetAppSettingsIsLoading(false));\r\n\r\n if (data && data.success) {\r\n dispatch(SetAppSettingsFields(data.settings));\r\n return data.settings;\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetAppSettingsIsLoading(false));\r\n\r\n h.error(\"Error getting app settings.\", error);\r\n });\r\n };\r\n\r\nexport const SaveNewDefault =\r\n (\r\n defaultSettingName: string,\r\n defaultSettingDescription: string,\r\n defaultSettingActive: boolean,\r\n defaultSettingMaxLength: number,\r\n defaultSettingValue: string\r\n ) =>\r\n (dispatch: Dispatch): any => {\r\n if (!defaultSettingName) dispatch(SetAppSettingsIsSaving(true));\r\n return request(\r\n `/api/app-settings/default`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"POST\",\r\n body: JSON.stringify({\r\n SettingName: defaultSettingName,\r\n SettingDescription: defaultSettingDescription,\r\n SettingMaxLength: defaultSettingMaxLength,\r\n SettingActive: defaultSettingActive ? \"Y\" : \"N\",\r\n DefaultValue: defaultSettingValue || \"\",\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetAppSettingsIsSaving(false));\r\n dispatch(SetAppSettingsSaveCompleted(true));\r\n\r\n setTimeout(() => {\r\n dispatch(SetAppSettingsSaveCompleted(false));\r\n }, 200);\r\n\r\n if (data && data.success) {\r\n dispatch(notifyGreen(\"Successfully saved your new default setting.\"));\r\n } else if (!data.success && data.message) {\r\n return data.message;\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetAppSettingsIsSaving(false));\r\n h.error(\"Error saving new default setting.\", error);\r\n });\r\n };\r\n\r\nexport const SaveNewAppSetting =\r\n (selectedCompany: number, selectedSettingID: number, settingValue: string, maskSettingValue: boolean) =>\r\n (dispatch: Dispatch): any => {\r\n if (!selectedCompany || !selectedSettingID || !settingValue) return;\r\n\r\n dispatch(SetAppSettingsIsSaving(true));\r\n return request(\r\n `/api/app-settings`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"POST\",\r\n body: JSON.stringify({\r\n CompanyId: selectedCompany,\r\n SettingId: selectedSettingID,\r\n SettingValue: settingValue,\r\n MaskSettingValue: maskSettingValue,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetAppSettingsIsSaving(false));\r\n dispatch(SetAppSettingsSaveCompleted(true));\r\n\r\n setTimeout(() => {\r\n dispatch(SetAppSettingsSaveCompleted(false));\r\n }, 200);\r\n\r\n if (data && data.success) {\r\n dispatch(notifyGreen(\"Successfully saved your new setting.\"));\r\n } else if (!data.success && data.message) {\r\n return data.message;\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetAppSettingsIsSaving(false));\r\n h.error(\"Error saving new app settings.\", error);\r\n });\r\n };\r\n\r\nexport const GetAppSettingsList =\r\n () =>\r\n (dispatch: Dispatch): any => {\r\n dispatch(SetAppSettingListingIsLoading(true));\r\n\r\n return request(\r\n \"/api/app-settings/list\",\r\n {\r\n credentials: \"same-origin\",\r\n method: \"GET\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetAppSettingListingIsLoading(false));\r\n if (data && data.success) {\r\n dispatch(SetAppSettingList(data.list));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetAppSettingListingIsLoading(false));\r\n\r\n h.error(\"Error getting app settings' settings listing.\", error);\r\n });\r\n };\r\n\r\nexport const SaveAppSettings =\r\n // selectedCompany needs to be undefined when all companies is selected\r\n\r\n\r\n (appSettingsToChanged: Array = [], selectedCompany?: number) =>\r\n (dispatch: Dispatch): any => {\r\n if (appSettingsToChanged && typeof appSettingsToChanged != \"undefined\") {\r\n dispatch(SetAppSettingsIsSaving(true));\r\n return request(\r\n `/api/app-settings`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"PUT\",\r\n body: JSON.stringify({\r\n settings: appSettingsToChanged,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetAppSettingsIsSaving(false));\r\n dispatch(SetAppSettingsSaveCompleted(true));\r\n\r\n setTimeout(() => {\r\n dispatch(SetAppSettingsSaveCompleted(false));\r\n }, 200);\r\n\r\n if (data && data.success) {\r\n dispatch(notifyGreen(\"Successfully saved your changes.\"));\r\n dispatch(GetAppSettings(selectedCompany));\r\n } else if (data && !data.success) {\r\n dispatch(SetAppSettingsIsSaving(false));\r\n h.error(\"Error saving app settings.\", data.message);\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetAppSettingsIsSaving(false));\r\n h.error(\"Error saving app settings.\", error);\r\n });\r\n }\r\n };\r\n","import h from \"../helpers\";\r\nimport { request } from \"../helpers/httpInterceptor\";\r\nimport { Dispatch } from \"../types/types\";\r\nimport { notifyGreen } from \"./notifyActions\";\r\nimport {\r\n IDestinationGroupingParents,\r\n ISetDestinationGroupingParents,\r\n ISetLoadingDestinationGroupingParents,\r\n ISetSavingDestinationGroupingParents,\r\n ISetCompletedDestinationGroupingParents,\r\n} from \"../types/stores/destinationGroupingParents\";\r\nimport {\r\n SET_DESTINATIONGROUPINGPARENTS,\r\n SET_LOADING_DESTINATIONGROUPING_PARENTS,\r\n SET_DESTINATIONGROUPINGPARENT_DETAILS,\r\n SET_IS_SAVING_DESTINATIONGROUPING_PARENTS,\r\n SET_SAVE_COMPLETED_DESTINATIONGROUPING_PARENTS,\r\n} from \"../reducers/destinationGroupingParents\";\r\n\r\nexport const SetDestinationGroupingParentsLoading = (newValue: boolean): ISetLoadingDestinationGroupingParents => ({\r\n type: SET_LOADING_DESTINATIONGROUPING_PARENTS,\r\n isLoading: newValue,\r\n});\r\n\r\nexport const SetDestinationGroupingParentsSaving = (newValue: boolean): ISetSavingDestinationGroupingParents => ({\r\n type: SET_IS_SAVING_DESTINATIONGROUPING_PARENTS,\r\n isSaving: newValue,\r\n});\r\n\r\nexport const SetDestinationGroupingParentsCompleted = (newValue: boolean): ISetCompletedDestinationGroupingParents => ({\r\n type: SET_SAVE_COMPLETED_DESTINATIONGROUPING_PARENTS,\r\n completed: newValue,\r\n});\r\n\r\nexport const SetDestinationGroupingParents = (\r\n data: Array\r\n): ISetDestinationGroupingParents => ({\r\n type: SET_DESTINATIONGROUPINGPARENTS,\r\n destinationGroupingParents: data,\r\n});\r\n\r\nexport const SetDestinationGroupingParentDetails =\r\n (data: IDestinationGroupingParents) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch({\r\n type: SET_DESTINATIONGROUPINGPARENT_DETAILS,\r\n destinationGroupingParent: data,\r\n });\r\n };\r\n\r\nexport const GetDestinationGroupingParents =\r\n (status?: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDestinationGroupingParentsLoading(true));\r\n return request(\r\n `/DestinationGroupingParents/GetDestinationGroupingParents/status=${status}`,\r\n { credentials: \"same-origin\" },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDestinationGroupingParentsLoading(false));\r\n dispatch(SetDestinationGroupingParents(data));\r\n })\r\n .catch(error => {\r\n dispatch(SetDestinationGroupingParentsLoading(false));\r\n h.error(\"Error getting user companies.\", error);\r\n });\r\n };\r\n\r\nexport const AddEditDestinationGroupingParent =\r\n (defaultGroupParent: IDestinationGroupingParents) =>\r\n (dispatch: Dispatch): any => {\r\n if (!defaultGroupParent.ParentName) dispatch(SetDestinationGroupingParentsSaving(true));\r\n\r\n return request(\r\n `/DestinationGroupingParents/AddEditDestinationGroupingParent`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n DestinationGroupingParentID: defaultGroupParent.DestinationGroupingParentID,\r\n ParentName: defaultGroupParent.ParentName,\r\n ParentIcon: defaultGroupParent.ParentIcon,\r\n Description: defaultGroupParent.Description,\r\n SubDestinations: defaultGroupParent.SubDestinations,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDestinationGroupingParentsSaving(false));\r\n dispatch(SetDestinationGroupingParentsCompleted(true));\r\n\r\n setTimeout(() => {\r\n dispatch(SetDestinationGroupingParentsCompleted(false));\r\n }, 200);\r\n\r\n if (data && data.success) {\r\n dispatch(notifyGreen(\"Successfully saved your new destination grouping parent.\"));\r\n dispatch(GetDestinationGroupingParents());\r\n } else if (!data.success && data.message) {\r\n return data.message;\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDestinationGroupingParentsSaving(false));\r\n h.error(\"Error saving new destination grouping parent.\", error);\r\n });\r\n };\r\n\r\nexport const DeleteDestinationGroupingParent =\r\n (parentId: number) =>\r\n (dispatch: Dispatch): any =>\r\n request(\r\n `/DestinationGroupingParents/DeleteDestinationGroupingParents?parentId=${parentId}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDestinationGroupingParentsSaving(false));\r\n dispatch(SetDestinationGroupingParentsCompleted(true));\r\n\r\n setTimeout(() => {\r\n dispatch(SetDestinationGroupingParentsCompleted(false));\r\n }, 200);\r\n\r\n if (data && data.success) {\r\n dispatch(notifyGreen(\"Successfully deleted your new destination grouping parent.\"));\r\n dispatch(GetDestinationGroupingParents());\r\n } else if (!data.success && data.message) {\r\n return data.message;\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDestinationGroupingParentsSaving(false));\r\n h.error(\"Error deleting the destination grouping parent.\", error);\r\n });\r\n","import { Dispatch, GetState } from \"../types/types\";\r\nimport h from \"../helpers\";\r\nimport { request } from \"../helpers/httpInterceptor\";\r\nimport { notifyGreen, notifyBlue } from \"./notifyActions\";\r\nimport {\r\n Comments,\r\n DonationData,\r\n DonorHistory,\r\n IGetPromotionData,\r\n IGetDonationData,\r\n IGetLinkedDonationData,\r\n PromotionData,\r\n ISetServiceCenterZip,\r\n LinkedDonationData,\r\n BatchCategory,\r\n IGetBatchCategories,\r\n} from \"../types/stores/makeAWish\";\r\nimport { goToUrl } from \"./actionCreators\";\r\nimport { IAppState } from \"../types/stores/index\";\r\nimport { ServiceCenterZip } from \"../types/stores/makeAWish\";\r\nimport { GET_BATCH_CATEGORIES, SET_SERVICE_CENTER_ZIP } from \"../reducers/makeAWish\";\r\nimport {\r\n Address,\r\n AddressType,\r\n IAddHeaderRecord,\r\n IUpdateHeaderRecord,\r\n ISetMailOnlySuppress,\r\n MemberCode,\r\n OriginCode,\r\n ServiceCenter,\r\n Donor,\r\n ISetDonorIsLoading,\r\n IGetDonor,\r\n ISetAdditionalMessage,\r\n SearchDonor,\r\n IResetDonor,\r\n IGetEditDonor,\r\n IGetEditDonorHistory,\r\n IUpdateComments,\r\n IGetAddressType,\r\n IGetMemberCode,\r\n IGetOriginCode,\r\n IGetServiceCenter,\r\n IGetAcknowledgmentFlag,\r\n IGetFormCode,\r\n IGetGiftSummary,\r\n IGetAddressSummary,\r\n IGetAuditRecordsCount,\r\n IGetAuditRecords,\r\n IUpdateAuditRecord,\r\n IGetAuditRecord,\r\n IGetUserBatches,\r\n IGetCurrentBatch,\r\n IAddAuditRecord,\r\n IGetBatchDonor,\r\n Batch,\r\n IGetAppealCode,\r\n IDeleteBatchRecord,\r\n IDeleteAuditRecord,\r\n IGetUnusedInfoCodes,\r\n IGetUsedInfoCodes,\r\n IGetUnusedCampaignCodes,\r\n IGetUsedCampaignCodes,\r\n IGetUnusedFinanceCodes,\r\n IGetUsedFinanceCodes,\r\n InfoCode,\r\n CampaignCode,\r\n FinanceCode,\r\n ISetCodesLoading,\r\n ISetPromotionsLoading,\r\n ISetDonationsLoading,\r\n IDeleteDonationRecord,\r\n IGetOtherAddresses,\r\n IGetDonorStore,\r\n ISetReportsLoading,\r\n ISetReports,\r\n ISetUserPermission,\r\n ISetAllUserPermission,\r\n UserPermission,\r\n IReport,\r\n ISetAllGiftsLoading,\r\n ISetAllGifts,\r\n IGift,\r\n IUpdatedAuditableBatch,\r\n TributeType,\r\n GiftType,\r\n IGetTributeType,\r\n IGetGiftType,\r\n} from \"../types/stores/makeAWish\";\r\nimport {\r\n SET_DONOR_IS_LOADING,\r\n GET_DONOR,\r\n SET_SEARCH_MESSAGE,\r\n RESET_DONOR,\r\n GET_EDIT_DONOR,\r\n GET_EDIT_DONOR_HISTORY,\r\n UPDATE_COMMENTS,\r\n GET_ADDRESS_TYPE,\r\n GET_MEMBER_CODE,\r\n GET_ORIGIN_CODE,\r\n GET_SERVICE_CENTER,\r\n GET_ACKNOWLEDGMENT_FLAG,\r\n GET_FORM_CODE,\r\n GET_GIFT_SUMMARY,\r\n GET_ADDRESS_SUMMARY,\r\n GET_AUDIT_RECORDS_COUNT,\r\n GET_AUDIT_RECORDS,\r\n UPDATE_AUDIT_RECORD,\r\n GET_AUDIT_RECORD,\r\n GET_USER_BATCHES,\r\n GET_CURRENT_BATCH,\r\n ADD_AUDIT_RECORD,\r\n GET_BATCH_DONOR,\r\n GET_APPEAL_CODE,\r\n DELETE_BATCH_RECORD,\r\n DELETE_AUDIT_RECORD,\r\n GET_USED_INFO_CODES,\r\n GET_PROMOTION_DATA,\r\n GET_DONATION_DATA,\r\n GET_LINKED_DONATION_DATA,\r\n GET_UNUSED_INFO_CODES,\r\n GET_USED_CAMPAIGN_CODES,\r\n GET_UNUSED_CAMPAIGN_CODES,\r\n GET_USED_FINANCE_CODES,\r\n GET_UNUSED_FINANCE_CODES,\r\n SET_CODES_LOADING,\r\n SET_PROMOTIONS_LOADING,\r\n SET_DONATIONS_LOADING,\r\n GET_OTHER_ADDRESSES,\r\n SET_MAIL_ONLY_SUPPRESS,\r\n ADD_HEADER_RECORD,\r\n UPDATE_HEADER_RECORD,\r\n SET_REPORTS_LOADING,\r\n SET_REPORTS,\r\n SET_USER_PERMISSION,\r\n SET_ALL_USER_PERMISSIONS,\r\n SET_ALL_GIFTS_LOADING,\r\n SET_ALL_GIFTS,\r\n UPDATED_AUDITABLE_BATCH,\r\n GET_TRIBUTE_TYPE,\r\n GET_GIFT_TYPE,\r\n DELETE_DONATION_RECORD,\r\n} from \"../reducers/makeAWish\";\r\nimport { CaseSensitive } from \"../components/make-a-wish/MakeAWishSearch\";\r\n\r\nexport const GetDonor = (data: Array): IGetDonor => ({\r\n type: GET_DONOR,\r\n donorsData: data,\r\n});\r\n\r\nexport const setSearchMessage = (data: string): ISetAdditionalMessage => ({\r\n type: SET_SEARCH_MESSAGE,\r\n searchMessage: data,\r\n});\r\n\r\nexport const resetSearch = (): IResetDonor => ({\r\n type: RESET_DONOR,\r\n donorsData: [],\r\n clientsData: [],\r\n});\r\n\r\nexport const GetEditDonor = (data: Array): IGetEditDonor => ({\r\n type: GET_EDIT_DONOR,\r\n editDonorsData: data,\r\n});\r\n\r\nexport const UpdateComments = (data: Array): IUpdateComments => ({\r\n type: UPDATE_COMMENTS,\r\n comments: data,\r\n});\r\n\r\nexport const GetEditDonorHistory = (data: DonorHistory): IGetEditDonorHistory => ({\r\n type: GET_EDIT_DONOR_HISTORY,\r\n editDonorsHistoryData: data,\r\n});\r\n\r\nexport const SetDonorIsLoading = (isLoading: boolean): ISetDonorIsLoading => ({\r\n type: SET_DONOR_IS_LOADING,\r\n isLoading,\r\n});\r\n\r\nexport const GetAddressType = (data: Array): IGetAddressType => ({\r\n type: GET_ADDRESS_TYPE,\r\n addressType: data,\r\n});\r\n\r\nexport const GetMemberCode = (data: Array): IGetMemberCode => ({\r\n type: GET_MEMBER_CODE,\r\n memberCode: data,\r\n});\r\n\r\nexport const GetOriginCode = (data: Array): IGetOriginCode => ({\r\n type: GET_ORIGIN_CODE,\r\n originCode: data,\r\n});\r\n\r\nexport const GetServiceCenter = (data: Array): IGetServiceCenter => ({\r\n type: GET_SERVICE_CENTER,\r\n serviceCenter: data,\r\n});\r\n\r\nexport const GetAcknowledgmentFlag = (data: Array): IGetAcknowledgmentFlag => ({\r\n type: GET_ACKNOWLEDGMENT_FLAG,\r\n acknowledgmentFlags: data,\r\n});\r\n\r\nexport const GetFormCode = (data: Array): IGetFormCode => ({\r\n type: GET_FORM_CODE,\r\n formCodes: data,\r\n});\r\n\r\nexport const GetAppealCode = (data: Array): IGetAppealCode => ({\r\n type: GET_APPEAL_CODE,\r\n appealCodes: data,\r\n});\r\n\r\nexport const GetGiftSummary = (data: string): IGetGiftSummary => ({\r\n type: GET_GIFT_SUMMARY,\r\n giftSummary: data,\r\n});\r\n\r\nexport const GetAddressSummary = (data: string): IGetAddressSummary => ({\r\n type: GET_ADDRESS_SUMMARY,\r\n addressSummary: data,\r\n});\r\n\r\nexport const GetAuditRecordsCount = (data: Array): IGetAuditRecordsCount => ({\r\n type: GET_AUDIT_RECORDS_COUNT,\r\n auditRecordsCount: data,\r\n});\r\n\r\nexport const GetAuditRecords = (data: Array): IGetAuditRecords => ({\r\n type: GET_AUDIT_RECORDS,\r\n auditRecords: data,\r\n});\r\n\r\nexport const GetAuditRecord = (data: IGetDonorStore): IGetAuditRecord => ({\r\n type: GET_AUDIT_RECORD,\r\n auditRecord: data,\r\n});\r\n\r\nexport const GetUserBatches = (data: Array): IGetUserBatches => ({\r\n type: GET_USER_BATCHES,\r\n batchesData: data,\r\n});\r\n\r\nexport const GetCurrentBatch = (data: IGetDonorStore): IGetCurrentBatch => ({\r\n type: GET_CURRENT_BATCH,\r\n batchData: data,\r\n});\r\n\r\nexport const AddAuditRecord = (data: Array): IAddAuditRecord => ({\r\n type: ADD_AUDIT_RECORD,\r\n addBatchData: data,\r\n});\r\n\r\nexport const UpdateAuditRecord = (data: Array): IUpdateAuditRecord => ({\r\n type: UPDATE_AUDIT_RECORD,\r\n updateBatchData: data,\r\n});\r\n\r\nexport const GetBatchDonor = (data: IGetDonorStore): IGetBatchDonor => ({\r\n type: GET_BATCH_DONOR,\r\n batchDonorData: data,\r\n});\r\n\r\nexport const DeleteBatchRecord = (data: boolean): IDeleteBatchRecord => ({\r\n type: DELETE_BATCH_RECORD,\r\n deleteBatch: data,\r\n});\r\n\r\nexport const DeleteAuditRecord = (data: boolean): IDeleteAuditRecord => ({\r\n type: DELETE_AUDIT_RECORD,\r\n deleteAudit: data,\r\n});\r\n\r\nexport const DeleteDonationRecord = (data: boolean): IDeleteDonationRecord => ({\r\n type: DELETE_DONATION_RECORD,\r\n deleteDonation: data,\r\n});\r\n\r\nexport const GetUnusedInfoCodes = (unusedInfoCodes: Array): IGetUnusedInfoCodes => ({\r\n type: GET_UNUSED_INFO_CODES,\r\n unusedInfoCodes,\r\n});\r\n\r\nexport const GetUsedInfoCodes = (usedInfoCodes: Array): IGetUsedInfoCodes => ({\r\n type: GET_USED_INFO_CODES,\r\n usedInfoCodes,\r\n});\r\n\r\nexport const GetPromotionData = (promotionData: PromotionData): IGetPromotionData => ({\r\n type: GET_PROMOTION_DATA,\r\n promotionData,\r\n});\r\n\r\nexport const GetDonationData = (donationData: DonationData): IGetDonationData => ({\r\n type: GET_DONATION_DATA,\r\n donationData,\r\n});\r\n\r\nexport const GetLinkedDonationData = (linkedDonationData: LinkedDonationData): IGetLinkedDonationData => ({\r\n type: GET_LINKED_DONATION_DATA,\r\n linkedDonationData,\r\n});\r\n\r\nexport const GetUnusedCampaignCodes = (unusedCampaignCodes: Array): IGetUnusedCampaignCodes => ({\r\n type: GET_UNUSED_CAMPAIGN_CODES,\r\n unusedCampaignCodes,\r\n});\r\n\r\nexport const GetUsedCampaignCodes = (usedCampaignCodes: Array): IGetUsedCampaignCodes => ({\r\n type: GET_USED_CAMPAIGN_CODES,\r\n usedCampaignCodes,\r\n});\r\n\r\nexport const SetCodesLoading = (isCodesLoading: boolean): ISetCodesLoading => ({\r\n type: SET_CODES_LOADING,\r\n isCodesLoading,\r\n});\r\n\r\nexport const SetPromotionsLoading = (isPromotionsLoading: boolean): ISetPromotionsLoading => ({\r\n type: SET_PROMOTIONS_LOADING,\r\n isPromotionsLoading,\r\n});\r\n\r\nexport const SetDonationsLoading = (isDonationsLoading: boolean): ISetDonationsLoading => ({\r\n type: SET_DONATIONS_LOADING,\r\n isDonationsLoading,\r\n});\r\n\r\nexport const SetMailOnlySuppress = (mailOnlySuppress: string): ISetMailOnlySuppress => ({\r\n type: SET_MAIL_ONLY_SUPPRESS,\r\n mailOnlySuppress,\r\n});\r\n\r\nexport const GetUnusedFinanceCodes = (unusedFinanceCodes: Array): IGetUnusedFinanceCodes => ({\r\n type: GET_UNUSED_FINANCE_CODES,\r\n unusedFinanceCodes,\r\n});\r\n\r\nexport const GetUsedFinanceCodes = (usedFinanceCodes: Array): IGetUsedFinanceCodes => ({\r\n type: GET_USED_FINANCE_CODES,\r\n usedFinanceCodes,\r\n});\r\n\r\nexport const GetOtherAddresses = (otherAddresses: Array
): IGetOtherAddresses => ({\r\n type: GET_OTHER_ADDRESSES,\r\n otherAddresses,\r\n});\r\n\r\nexport const AddHeaderRecord = (data: Array): IAddHeaderRecord => ({\r\n type: ADD_HEADER_RECORD,\r\n newBatchNumber: data,\r\n});\r\n\r\nexport const UpdateHeaderRecord = (): IUpdateHeaderRecord => ({\r\n type: UPDATE_HEADER_RECORD,\r\n});\r\n\r\nexport const SetIsReportsLoading = (isReportsLoading: boolean): ISetReportsLoading => ({\r\n type: SET_REPORTS_LOADING,\r\n isReportsLoading,\r\n});\r\n\r\nexport const SetReports = (reports: Array): ISetReports => ({\r\n type: SET_REPORTS,\r\n reports,\r\n});\r\n\r\nexport const SetUserPermission = (permission: UserPermission): ISetUserPermission => ({\r\n type: SET_USER_PERMISSION,\r\n permission,\r\n});\r\n\r\nexport const SetAllUserPermissions = (userPermissions: Array): ISetAllUserPermission => ({\r\n type: SET_ALL_USER_PERMISSIONS,\r\n userPermissions,\r\n});\r\n\r\nexport const SetIsAllGiftsLoading = (isAllGiftsLoading: boolean): ISetAllGiftsLoading => ({\r\n type: SET_ALL_GIFTS_LOADING,\r\n isAllGiftsLoading,\r\n});\r\n\r\nexport const SetAllGifts = (allGifts: Array): ISetAllGifts => ({\r\n type: SET_ALL_GIFTS,\r\n allGifts,\r\n});\r\n\r\nexport const UpdatedAuditableBatch = (): IUpdatedAuditableBatch => ({\r\n type: UPDATED_AUDITABLE_BATCH,\r\n});\r\n\r\nexport const GetTributeType = (data: Array): IGetTributeType => ({\r\n type: GET_TRIBUTE_TYPE,\r\n tributeType: data,\r\n});\r\n\r\nexport const GetGiftType = (data: Array): IGetGiftType => ({\r\n type: GET_GIFT_TYPE,\r\n giftType: data,\r\n});\r\n\r\nexport const GetBatchCategories = (data: Array): IGetBatchCategories => ({\r\n type: GET_BATCH_CATEGORIES,\r\n batchCategories: data,\r\n});\r\n\r\nexport const SetServiceCenterZip = (data?: ServiceCenterZip): ISetServiceCenterZip => ({\r\n type: SET_SERVICE_CENTER_ZIP,\r\n serviceCenterZip: data,\r\n});\r\n\r\nexport const getDonorAsync =\r\n (data: SearchDonor, caseState: CaseSensitive) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n dispatch(setSearchMessage(\"\"));\r\n return request(\r\n `/MakeAWish/GetDonorsAsync`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n searchData: data,\r\n caseSensitivity: caseState,\r\n startsWith: true,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetDonor(data.donorsData));\r\n if (data.additionalMessage != null) {\r\n dispatch(setSearchMessage(data.additionalMessage));\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n dispatch(setSearchMessage(\"\"));\r\n h.error(\"Error getting make a wish donor data.\", error);\r\n });\r\n };\r\n\r\nexport const getEditDonorAsync =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetEditDonorsAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetEditDonor(data.donorsData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish edit donor data.\", error);\r\n });\r\n };\r\n\r\nexport const getEditDonorHistoryAsync =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetEditDonorsHistoryAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetEditDonorHistory(data.donorsHistoryData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish edit donor data.\", error);\r\n });\r\n };\r\n\r\nexport const getListAddressTypeAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListAddressTypeAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetAddressType(data.addressTypeData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish address type data.\", error);\r\n });\r\n };\r\n\r\nexport const getListMemberCodeAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListMemberCodeAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetMemberCode(data.memberCodeData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish member code data.\", error);\r\n });\r\n };\r\n\r\nexport const getListOriginCodeAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListOriginCodeAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetOriginCode(data.originCodeData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish origin code data.\", error);\r\n });\r\n };\r\n\r\nexport const getListServiceCenterAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListServiceCenterAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetServiceCenter(data.serviceCenterData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish service center data.\", error);\r\n });\r\n };\r\n\r\nexport const getListAcknowledgmentFlagAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListAcknowledgmentFlagAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetAcknowledgmentFlag(data.flagsData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish acknowledgment flags data.\", error);\r\n });\r\n };\r\n\r\nexport const getListFormCodeAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListFormCodeAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetFormCode(data.codesData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish form codes data.\", error);\r\n });\r\n };\r\n\r\nexport const getListAppealCodeAsync =\r\n (appealCode: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListAppealCodeAsync?appealCode=${appealCode}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetAppealCode(data.codesData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish form codes data.\", error);\r\n });\r\n };\r\n\r\nexport const getGiftSummaryAsync =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetGiftSummaryAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetGiftSummary(data.summary));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish gift summary.\", error);\r\n });\r\n };\r\n\r\nexport const getAddressSummaryAsync =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetAddressSummaryAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetAddressSummary(data.summary));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish address summary.\", error);\r\n });\r\n };\r\n\r\nexport const updateUserPermissions =\r\n (userPermissions: Array) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/UpdateUserPermissionsAsync`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n userPermissions,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(getAllUserPermissions());\r\n dispatch(notifyGreen(\"Permissions saved successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error saving make a wish donor permissions.\", error);\r\n });\r\n };\r\n\r\nexport const updateEditDonorsAsync =\r\n (data: Donor) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n const state: IAppState = getState();\r\n const user = state.session.userId ? state.session.userLogonId : \"\";\r\n data.LogonId = user;\r\n const donorId = data.Id || \"\";\r\n return request(\r\n `/MakeAWish/UpdateEditDonorsAsync`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n donorData: data,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Donor saved successfully.\"));\r\n dispatch(getEditDonorAsync(donorId));\r\n dispatch(SetDonorIsLoading(false));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error saving make a wish donor data.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\n\r\nexport const getAuditRecsCountAsync =\r\n (batchNumber: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetAuditRecsCountAsync?batchNumber=${batchNumber}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetAuditRecordsCount(data.recordsData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish audit records count data.\", error);\r\n });\r\n };\r\n\r\nexport const getAuditRecsAsync =\r\n (batchNumber: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetAuditRecsAsync?batchNumber=${batchNumber}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetAuditRecords(data.recordsData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish user batch data.\", error);\r\n });\r\n };\r\n\r\nexport const getUserBatchesAsync =\r\n (logonId: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetUserBatchesAsync?logonId=${logonId}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetUserBatches(data.batchesData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish audit records data.\", error);\r\n });\r\n };\r\n\r\nexport const getCurrentBatchAsync =\r\n (batchNumber: string, seqNumber?: string) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n const state: IAppState = getState();\r\n const user = state.session.userId ? state.session.userLogonId : \"\";\r\n const logonId = user;\r\n let params =\r\n seqNumber != null\r\n ? `batchNumber=${batchNumber}&seqNumber=${seqNumber}&logonId=${logonId}`\r\n : `batchNumber=${batchNumber}&logonId=${logonId}`;\r\n return request(\r\n `/MakeAWish/GetCurrentBatchAsync?` + params,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetCurrentBatch(data.batchesData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish current batch data.\", error);\r\n });\r\n };\r\n\r\nexport const addAuditRecordAsync =\r\n (data: Batch) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n const state: IAppState = getState();\r\n const user = state.session.userId ? state.session.userLogonId : \"\";\r\n data.LogonId = user;\r\n return request(\r\n `/MakeAWish/AddAuditRecordAsync`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n batchData: data,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(AddAuditRecord(data.donorsData));\r\n dispatch(notifyGreen(\"Added audit record successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error adding make a wish audit record data.\", error);\r\n });\r\n };\r\n\r\nexport const updateAuditRecordAsync =\r\n (data: Batch) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n const state: IAppState = getState();\r\n const user = state.session.userId ? state.session.userLogonId : \"\";\r\n data.LogonId = user;\r\n return request(\r\n `/MakeAWish/UpdateAuditRecordAsync`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n batchData: data,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(UpdateAuditRecord(data.donorsData));\r\n dispatch(notifyGreen(\"Updated audit record successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error updating make a wish audit record data.\", error);\r\n });\r\n };\r\n\r\nexport const getAuditRecordAsync =\r\n (batchNumber: string, seqNumber: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetAuditRecordAsync?batchNumber=${batchNumber}&seqNumber=${seqNumber}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetAuditRecord(data.recordData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish user batch data.\", error);\r\n });\r\n };\r\n\r\nexport const saveComment =\r\n (id: string, comment: string) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n const state: IAppState = getState();\r\n const user = state.session.userId ? state.session.userLogonId : \"\";\r\n return request(\r\n \"/MakeAWish/SaveCommentAsync\",\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n id,\r\n comment,\r\n user: user || \"AE_USER\",\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(UpdateComments(data.comments));\r\n dispatch(notifyGreen(\"Comment saved.\"));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error adding comment.\", error);\r\n });\r\n };\r\n\r\nexport const getBatchDonorAsync =\r\n (id: string, recType: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetBatchDonorAsync?id=${id}&recType=${recType}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetBatchDonor(data.donorsData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish edit donor data.\", error);\r\n });\r\n };\r\n\r\nexport const deleteBatchRecordAsync =\r\n (batchNumber: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/DeleteBatchRecordAsync?batchNumber=${batchNumber}`,\r\n {\r\n method: \"DELETE\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(DeleteBatchRecord(true));\r\n dispatch(notifyGreen(\"Batch record deleted successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n dispatch(DeleteBatchRecord(false));\r\n h.error(\"Error deleting make a wish batch record data.\", error);\r\n });\r\n };\r\n\r\nexport const deleteAuditRecordAsync =\r\n (batchNumber: string, seqNumber: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/DeleteAuditRecordAsync?batchNumber=${batchNumber}&seqNumber=${seqNumber}`,\r\n {\r\n method: \"DELETE\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(DeleteAuditRecord(true));\r\n dispatch(notifyGreen(\"Audit record deleted successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n dispatch(DeleteAuditRecord(false));\r\n h.error(\"Error deleting make a wish audit record data.\", error);\r\n });\r\n };\r\n\r\nexport const getPromotionInformation =\r\n (id: string, promoId: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetPromotionsLoading(true));\r\n return request(\r\n `/MakeAWish/GetPromotionInformationAsync?id=${id}&promoId=${promoId}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetPromotionsLoading(false));\r\n if (data.success) {\r\n dispatch(GetPromotionData(data.promotion));\r\n } else {\r\n dispatch(GetPromotionData({}));\r\n h.error(\"Error getting Used Make-a-Wish promotion information.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetPromotionsLoading(false));\r\n dispatch(GetPromotionData({}));\r\n h.error(\"Error getting Used Make-a-Wish promotion information.\", error);\r\n });\r\n };\r\n\r\nexport const getLinkedDonationInformation =\r\n (id: string, batchNumber: string, sequenceNumber: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonationsLoading(true));\r\n return request(\r\n `/MakeAWish/GetLinkedDonationInformationAsync?id=${id}&batchId=${batchNumber}&sequenceId=${sequenceNumber}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonationsLoading(false));\r\n if (data.success) {\r\n dispatch(GetLinkedDonationData(data.donation));\r\n } else {\r\n dispatch(GetLinkedDonationData({}));\r\n h.error(\"Error getting Used Make-a-Wish linked donation information.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonationsLoading(false));\r\n dispatch(GetLinkedDonationData({}));\r\n h.error(\"Error getting Used Make-a-Wish linked donation information.\", error);\r\n });\r\n };\r\n\r\nexport const getDonationInformation =\r\n (id: string, batchNumber: string, sequenceNumber: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonationsLoading(true));\r\n return request(\r\n `/MakeAWish/GetDonationInformationAsync?id=${id}&batchId=${batchNumber}&sequenceId=${sequenceNumber}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonationsLoading(false));\r\n if (data.success) {\r\n dispatch(GetDonationData(data.donation));\r\n } else {\r\n dispatch(GetDonationData({}));\r\n h.error(\"Error getting Used Make-a-Wish donation information.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonationsLoading(false));\r\n dispatch(GetDonationData({}));\r\n h.error(\"Error getting Used Make-a-Wish donation information.\", error);\r\n });\r\n };\r\n\r\nexport const deleteDonation =\r\n (id: string, batchNumber: string, sequenceNumber: string, logonId: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonationsLoading(true));\r\n return request(\r\n `/MakeAWish/DeleteDonationRecordAsync?identNumber=${id}&batchId=${batchNumber}&sequenceId=${sequenceNumber}&logonId=${logonId}`,\r\n {\r\n method: \"DELETE\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonationsLoading(false));\r\n if (data.success) {\r\n dispatch(getEditDonorHistoryAsync(id));\r\n } else {\r\n // dispatch(getEditDonorHistoryAsync({}));\r\n h.error(\"Error getting Make-a-Wish donation information.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonationsLoading(false));\r\n dispatch(GetDonationData({}));\r\n h.error(\"Error getting Used Make-a-Wish donation information.\", error);\r\n });\r\n };\r\n\r\nexport const getUsedInfoCodes =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetCodesLoading(true));\r\n return request(\r\n `/MakeAWish/GetUsedInfoCodesAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetCodesLoading(false));\r\n if (data.success) {\r\n dispatch(GetUsedInfoCodes(data.codes));\r\n } else {\r\n dispatch(GetUsedInfoCodes([]));\r\n h.error(\"Error getting Used Make-a-Wish Info Codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetCodesLoading(false));\r\n dispatch(GetUsedInfoCodes([]));\r\n h.error(\"Error getting Used Make-a-Wish Info Codes.\", error);\r\n });\r\n };\r\n\r\nexport const getUnusedInfoCodes =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetCodesLoading(true));\r\n return request(\r\n `/MakeAWish/GetUnusedInfoCodesAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetCodesLoading(false));\r\n if (data.success) {\r\n dispatch(GetUnusedInfoCodes(data.codes));\r\n } else {\r\n dispatch(GetUnusedInfoCodes([]));\r\n h.error(\"Error getting Unused Make-a-Wish Info Codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetCodesLoading(false));\r\n dispatch(GetUnusedInfoCodes([]));\r\n h.error(\"Error getting Unused Make-a-Wish Info Codes.\", error);\r\n });\r\n };\r\n\r\nexport const getUsedCampaignCodes =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetCodesLoading(true));\r\n return request(\r\n `/MakeAWish/GetUsedCampaignCodesAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetCodesLoading(false));\r\n if (data.success) {\r\n dispatch(GetUsedCampaignCodes(data.codes));\r\n dispatch(SetMailOnlySuppress(data.codes.length > 0 ? \"M\" : \"\"));\r\n } else {\r\n dispatch(GetUsedCampaignCodes([]));\r\n dispatch(SetMailOnlySuppress(\"\"));\r\n h.error(\"Error getting Used Make-a-Wish Campaign Codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetCodesLoading(false));\r\n dispatch(GetUsedCampaignCodes([]));\r\n dispatch(SetMailOnlySuppress(\"\"));\r\n h.error(\"Error getting Used Make-a-Wish Campaign Codes.\", error);\r\n });\r\n };\r\n\r\nexport const getUnusedCampaignCodes =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetCodesLoading(true));\r\n return request(\r\n `/MakeAWish/GetUnusedCampaignCodesAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetCodesLoading(false));\r\n if (data.success) {\r\n dispatch(GetUnusedCampaignCodes(data.codes));\r\n } else {\r\n dispatch(GetUnusedCampaignCodes([]));\r\n h.error(\"Error getting Unused Make-a-Wish Campaign Codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetCodesLoading(false));\r\n dispatch(GetUnusedCampaignCodes([]));\r\n h.error(\"Error getting Unused Make-a-Wish Campaign Codes.\", error);\r\n });\r\n };\r\n\r\nexport const getUsedFinanceCodes =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetCodesLoading(true));\r\n return request(\r\n `/MakeAWish/GetUsedFinanceCodesAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetCodesLoading(false));\r\n if (data.success) {\r\n dispatch(GetUsedFinanceCodes(data.codes));\r\n } else {\r\n dispatch(GetUsedFinanceCodes([]));\r\n h.error(\"Error getting Used Make-a-Wish Finance Codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetCodesLoading(false));\r\n dispatch(GetUsedFinanceCodes([]));\r\n h.error(\"Error getting Used Make-a-Wish Finance Codes.\", error);\r\n });\r\n };\r\n\r\nexport const getUnusedFinanceCodes =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetCodesLoading(true));\r\n return request(\r\n `/MakeAWish/GetUnusedFinanceCodesAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetCodesLoading(false));\r\n if (data.success) {\r\n dispatch(GetUnusedFinanceCodes(data.codes));\r\n } else {\r\n dispatch(GetUnusedFinanceCodes([]));\r\n h.error(\"Error getting Unused Make-a-Wish Finance Codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetCodesLoading(false));\r\n dispatch(GetUnusedFinanceCodes([]));\r\n h.error(\"Error getting Unused Make-a-Wish Finance Codes.\", error);\r\n });\r\n };\r\n\r\nexport const saveInfoCodesAsync =\r\n (id: string, codes: Array) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n const state: IAppState = getState();\r\n const userId = state.session.userId ? state.session.userLogonId : \"\";\r\n\r\n return request(\r\n `/MakeAWish/SaveInfoCodesAsync?id=${id}&userId=${userId}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n codes,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Info Codes saved successfully.\"));\r\n } else {\r\n h.error(\"Error saving info codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error saving info codes.\", error);\r\n });}\r\n\r\nexport const saveCampaignCodesAsync =\r\n (id: string, codes: Array) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n const state: IAppState = getState();\r\n const userId = state.session.userId ? state.session.userLogonId : \"\";\r\n\r\n return request(\r\n `/MakeAWish/SaveCampaignCodesAsync?id=${id}&userId=${userId}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n codes,\r\n mailOnlySuppress: codes.length > 0,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Campaign Codes saved successfully.\"));\r\n } else {\r\n h.error(\"Error saving campaign codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error saving campaign codes.\", error);\r\n });\r\n }\r\n\r\nexport const saveFinanceCodesAsync =\r\n (id: string, codes: Array) =>\r\n (dispatch: Dispatch): void =>\r\n request(\r\n `/MakeAWish/SaveFinanceCodesAsync?id=${id}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n codes,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Finance Codes saved successfully.\"));\r\n } else {\r\n h.error(\"Error saving finance codes.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error saving finance codes.\", error);\r\n });\r\n\r\nexport const getOtherAddresses =\r\n (id: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetOtherAddressesAsync?id=${id}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetOtherAddresses(data.addresses));\r\n } else {\r\n dispatch(GetOtherAddresses([]));\r\n h.error(\"Error getting other addresses.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n dispatch(GetOtherAddresses([]));\r\n h.error(\"Error getting other addresses.\", error);\r\n });\r\n };\r\n\r\nexport const updateDonationData =\r\n (id: string, donation: DonationData) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n const state: IAppState = getState();\r\n const user = state.session.userId ? state.session.userLogonId : \"\";\r\n donation.LOGON_ID = user;\r\n return request(\r\n `/MakeAWish/UpdateDonationData`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n id,\r\n donation,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Donation updated successfully.\"));\r\n dispatch(getEditDonorHistoryAsync(id));\r\n } else {\r\n h.error(\"Error updating donation.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating donation.\", error);\r\n });\r\n };\r\n\r\nexport const updateOtherAddress =\r\n (id: string, address: Address) =>\r\n (dispatch: Dispatch): void =>\r\n request(\r\n `/MakeAWish/UpdateOtherAddress`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n address,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Address updated successfully.\"));\r\n } else {\r\n h.error(\"Error updating address.\");\r\n }\r\n dispatch(getOtherAddresses(id));\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating address.\", error);\r\n });\r\n\r\nexport const deleteOtherAddress =\r\n (id: string, address: Address) =>\r\n (dispatch: Dispatch): void =>\r\n request(\r\n `/MakeAWish/DeleteOtherAddress`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n address,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Address removed successfully.\"));\r\n } else {\r\n h.error(\"Error removing address.\");\r\n }\r\n dispatch(getOtherAddresses(id));\r\n })\r\n .catch(error => {\r\n h.error(\"Error removing address.\", error);\r\n });\r\n\r\nexport const addOtherAddress =\r\n (id: string, address: Address) =>\r\n (dispatch: Dispatch): void =>\r\n request(\r\n `/MakeAWish/AddOtherAddress`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n address,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Address added successfully.\"));\r\n } else {\r\n h.error(\"Error adding address.\");\r\n }\r\n dispatch(getOtherAddresses(id));\r\n })\r\n .catch(error => {\r\n h.error(\"Error adding address.\", error);\r\n });\r\n\r\nexport const addBatchHeaderAsync =\r\n (data: Batch) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n const state: IAppState = getState();\r\n const user = state.session.userId ? state.session.userLogonId : \"\";\r\n data.LogonId = user;\r\n return request(\r\n `/MakeAWish/AddBatchHeaderAsync`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n batchData: data,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(AddHeaderRecord(data.batchData));\r\n dispatch(notifyGreen(\"Added header record successfully.\"));\r\n dispatch(goToUrl(`/make-a-wish/edit-batch/${data.batchData}`));\r\n } else {\r\n h.error(\"Error adding make a wish header record data.\", data.messages);\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error adding make a wish header record data.\", error);\r\n });\r\n };\r\n\r\nexport const updateBatchHeaderAsync =\r\n (batchData: Batch) =>\r\n (dispatch: Dispatch): void =>\r\n request(\r\n `/MakeAWish/UpdateBatchHeaderAsync`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n batchData,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(UpdateHeaderRecord());\r\n dispatch(getCurrentBatchAsync(batchData.BatchNumber || \"\"));\r\n dispatch(notifyGreen(\"Batch header updated successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating make a wish batch data.\", error);\r\n });\r\n\r\nexport const saveDonorAsync =\r\n (data: Donor) =>\r\n (dispatch: Dispatch, getState: GetState): void => {\r\n const state: IAppState = getState();\r\n const user = state.session.userId ? state.session.userLogonId : \"\";\r\n data.LogonId = user;\r\n return request(\r\n `/MakeAWish/SaveDonorAsync`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n donor: data,\r\n user,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n let id = data.id;\r\n dispatch(notifyGreen(\"Donor saved successfully.\"));\r\n dispatch(goToUrl(`/make-a-wish/edit/${id}`));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error saving make a wish donor data.\", error);\r\n });\r\n };\r\n\r\nexport const getReports =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetIsReportsLoading(true));\r\n return request(\r\n `/MakeAWish/GetReports`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetIsReportsLoading(false));\r\n if (data.success) {\r\n dispatch(SetReports(data.reports));\r\n } else {\r\n dispatch(SetReports([]));\r\n h.error(\"Error getting Make-A-Wish reports.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetIsReportsLoading(false));\r\n dispatch(SetReports([]));\r\n h.error(\"Error getting Make-A-Wish reports.\", error);\r\n });\r\n };\r\n\r\nexport const getUserPermission =\r\n (logonId: string) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetIsReportsLoading(true));\r\n return request(\r\n `/MakeAWish/GetUserPermissionAsync?logonId=` + logonId,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n logonId,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(SetUserPermission(data.userPermission));\r\n } else {\r\n dispatch(SetUserPermission({}));\r\n h.error(\"Error getting Make-A-Wish permissions.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetUserPermission({}));\r\n dispatch(SetReports([]));\r\n h.error(\"Error getting Make-A-Wish permissions.\", error);\r\n });\r\n };\r\n\r\nexport const getAllUserPermissions =\r\n () =>\r\n (dispatch: Dispatch): void =>\r\n request(\r\n `/MakeAWish/GetAllUserPermissionsAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(SetAllUserPermissions(data.userPermissions));\r\n } else {\r\n dispatch(SetAllUserPermissions([]));\r\n h.error(\"Error getting Make-A-Wish permissions.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetAllUserPermissions([]));\r\n h.error(\"Error getting Make-A-Wish permissions.\", error);\r\n });\r\n\r\nexport const getAllGiftsSchedule =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetIsAllGiftsLoading(true));\r\n return request(\r\n `/MakeAWish/GetAllGiftsSchedule`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetIsAllGiftsLoading(false));\r\n if (data.success) {\r\n dispatch(SetAllGifts(data.allGiftsSchedule));\r\n } else {\r\n dispatch(SetAllGifts([]));\r\n h.error(\"Error getting Make-A-Wish all gifts schedule.\");\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetIsAllGiftsLoading(false));\r\n dispatch(SetAllGifts([]));\r\n h.error(\"Error getting Make-A-Wish all gifts schedule.\", error);\r\n });\r\n };\r\n\r\nexport const editAllDates =\r\n (runDate: string, startDate: string, endDate: string) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/UpdateAllDates`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n runDate,\r\n startDate,\r\n endDate,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(getAllGiftsSchedule());\r\n dispatch(notifyGreen(\"Dates updated successfully.\"));\r\n } else {\r\n h.error(\"Error updating dates in the schedule.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating dates in the schedule.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\n\r\nexport const submitBatchAsync =\r\n (batchNumber: string, seqNumber: string, actualCount: string, actualAmount: string) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/SubmitBatchAsync?batch_Number=${batchNumber}&seq_Number=${seqNumber}&actual_Count=${actualCount}&actual_Amount=${actualAmount}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Batch submitted successfully.\"));\r\n } else {\r\n h.error(\"Error submitting batch.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error submitting batch.\", error);\r\n });\r\n };\r\n\r\nexport const addGift =\r\n (gift: IGift) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/AddGift`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n gift,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(getAllGiftsSchedule());\r\n dispatch(notifyGreen(\"Gift saved successfully.\"));\r\n } else {\r\n h.error(\"Error saving gift in the schedule.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error saving gift in the schedule.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\nexport const editGift =\r\n (gift: IGift) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/EditGift`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n gift,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(getAllGiftsSchedule());\r\n dispatch(notifyGreen(\"Gift updated successfully.\"));\r\n } else {\r\n h.error(\"Error updating gift in the schedule.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating gift in the schedule.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\nexport const deleteGift =\r\n (gift: IGift) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/DeleteGift`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n gift,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(getAllGiftsSchedule());\r\n dispatch(notifyGreen(\"Gift deleted successfully.\"));\r\n } else {\r\n h.error(\"Error deleting gift in the schedule.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error deleting gift in the schedule.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\n\r\nexport const updatePrimaryIdentBatchAsync =\r\n (batchNumber: string, seqNumber: string, assocident: string) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/UpdatePrimaryIdentBatchAsync?batch_Number=${batchNumber}&seq_Number=${seqNumber}&assocident=${assocident}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(UpdatedAuditableBatch());\r\n dispatch(notifyGreen(\"Auditable batch updated successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating make a wish auditable batch data.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\n\r\nexport const updateAssocIdentBatchAsync =\r\n (batchNumber: string, seqNumber: string, assocident: string, tribtype: string) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/UpdateAssocIdentBatchAsync?batch_Number=${batchNumber}&seq_Number=${seqNumber}&assocident=${assocident}&tribtype=${tribtype}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(UpdatedAuditableBatch());\r\n dispatch(notifyGreen(\"Auditable batch updated successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating make a wish auditable batch data.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\n\r\nexport const updateNotifyIdentBatchAsync =\r\n (batchNumber: string, seqNumber: string, notifyident: string) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/UpdateNotifyIdentBatchAsync?batch_Number=${batchNumber}&seq_Number=${seqNumber}¬ifyident=${notifyident}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(UpdatedAuditableBatch());\r\n dispatch(notifyGreen(\"Auditable batch updated successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating make a wish auditable batch data.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\n\r\nexport const updateLinkedIdentBatchAsync =\r\n (batchNumber: string, seqNumber: string, linkedident: string) =>\r\n (dispatch: Dispatch): void => {\r\n request(\r\n `/MakeAWish/UpdateLinkedIdentBatchAsync?batch_Number=${batchNumber}&seq_Number=${seqNumber}&linkedident=${linkedident}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(UpdatedAuditableBatch());\r\n dispatch(notifyGreen(\"Auditable batch updated successfully.\"));\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error updating make a wish auditable batch data.\", error);\r\n dispatch(SetDonorIsLoading(false));\r\n });\r\n };\r\n\r\nexport const getLisTributeTypeAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetLisTributeTypeAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetTributeType(data.tributeTypeData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish tribute type data.\", error);\r\n });\r\n };\r\n\r\nexport const getListGiftTypeAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListGiftTypeAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetGiftType(data.giftTypeData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish gift type data.\", error);\r\n });\r\n };\r\n\r\nexport const zipLookup =\r\n (zipCode: string) =>\r\n (dispatch: Dispatch): void =>\r\n request(\r\n `/MakeAWish/ZipLookup?zipCode=${zipCode}`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n const response = data as unknown as {\r\n success: boolean;\r\n serviceCenterZip?: ServiceCenterZip;\r\n message: string;\r\n };\r\n if (response.success) {\r\n dispatch(SetServiceCenterZip(response.serviceCenterZip));\r\n } else {\r\n notifyBlue(\"Unable to find information for this zip code.\");\r\n }\r\n })\r\n .catch(error => {\r\n h.error(\"Error looking up zip code information.\", error);\r\n });\r\n\r\nexport const getListBatchCategoryAsync =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetDonorIsLoading(true));\r\n return request(\r\n `/MakeAWish/GetListBatchCategoryAsync`,\r\n {\r\n method: \"GET\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetDonorIsLoading(false));\r\n if (data.success) {\r\n dispatch(GetBatchCategories(data.batchCategoryData));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetDonorIsLoading(false));\r\n h.error(\"Error getting make a wish batch category data.\", error);\r\n });\r\n };\r\n","import h from \"../helpers\";\r\nimport { request } from \"../helpers/httpInterceptor\";\r\nimport { notifyGreen } from \"./notifyActions\";\r\nimport { userRolesPermissionsByTypes, wikiPageTypes } from \"../components/wiki/constants\";\r\nimport { incAjaxCount, decAjaxCount } from \"./actionCreators\";\r\nimport { Dispatch, Action } from \"redux\";\r\nimport { ThunkAction } from \"redux-thunk\";\r\nimport {\r\n ISetLoadingPage,\r\n ISetSavingPage,\r\n ISetLoadingImages,\r\n ISetWikiImages,\r\n IPage,\r\n IUpdatePage,\r\n ISetLoadingPreview,\r\n} from \"../types/stores/wiki\";\r\nimport {\r\n SET_LOADING_PAGE,\r\n SET_SAVING_PAGE,\r\n SET_WIKI_PAGES,\r\n SET_LOADING_IMAGES,\r\n UPDATE_WIKI_PAGE_PROPERTY,\r\n} from \"../reducers/wiki\";\r\nimport { IAppState } from \"../types/stores\";\r\nimport { ISetWikiPreview } from \"../types/stores/wiki\";\r\nimport { SET_WIKI_LOADING_PREVIEW, SET_WIKI_PREVIEW } from \"../reducers/wiki\";\r\n\r\nexport const SetWikiIsLoadingImages = (newValue: boolean): ISetLoadingImages => ({\r\n type: SET_LOADING_IMAGES,\r\n isLoading: newValue,\r\n});\r\n\r\nexport const SetWikiIsLoading = (newValue: boolean): ISetLoadingPage => ({\r\n type: SET_LOADING_PAGE,\r\n isLoading: newValue,\r\n});\r\n\r\nexport const SetWikiIsSaving = (newValue: boolean): ISetSavingPage => ({\r\n type: SET_SAVING_PAGE,\r\n isSaving: newValue,\r\n});\r\n\r\nexport const SetWikiPreviewLoading = (newValue: boolean): ISetLoadingPreview => ({\r\n type: SET_WIKI_LOADING_PREVIEW,\r\n isLoadingPreview: newValue,\r\n});\r\n\r\nexport const SetWikiPreview = (newValue: string): ISetWikiPreview => ({\r\n type: SET_WIKI_PREVIEW,\r\n selectedImagePreview: newValue,\r\n});\r\n\r\nexport const GetWikiPages =\r\n (): ThunkAction> =>\r\n (dispatch, getState): void => {\r\n const filteredPages: Array = [];\r\n const state: IAppState = getState();\r\n const roles = state.session.roles || [];\r\n const pageTypes = new Set();\r\n\r\n dispatch(SetWikiIsLoading(true));\r\n return request(\r\n `/api/wiki-pages/all`,\r\n {\r\n credentials: \"same-origin\",\r\n method: \"GET\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then((data: { success: boolean; pages: Array }) => {\r\n if (data && data.success) {\r\n // this should be on the controller level, we don't have to grab and potentially expose pages if we don't need to - vu\r\n if (roles.length == 0) {\r\n pageTypes.add(wikiPageTypes.default);\r\n } else {\r\n for (let i = 0; i < roles.length; i++) {\r\n const permittedPageTypes = userRolesPermissionsByTypes[roles[i]];\r\n for (let j = 0; j < permittedPageTypes.length; j++) {\r\n pageTypes.add(permittedPageTypes[j]);\r\n }\r\n }\r\n }\r\n\r\n for (let j = 0; j < data.pages.length; j++) {\r\n if (pageTypes.has(data.pages[j].Type)) {\r\n filteredPages.push(data.pages[j]);\r\n }\r\n }\r\n dispatch(SetWikiIsLoading(false));\r\n dispatch({ type: SET_WIKI_PAGES, pages: filteredPages });\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetWikiIsLoading(false));\r\n h.error(\"Error getting wiki pages.\", error);\r\n });\r\n };\r\n\r\nexport const CreateNewWikiPage =\r\n (pageData: IPage): ThunkAction> =>\r\n (dispatch): void => {\r\n dispatch(SetWikiIsLoading(false));\r\n return request(\r\n `/api/wiki-pages/`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n Title: pageData.Title,\r\n Content: pageData.Content,\r\n Category: pageData.Category,\r\n Type: pageData.Type,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(`Successfully added the page: \"${pageData.Title}\".`));\r\n dispatch(SetWikiIsLoading(false));\r\n dispatch(GetWikiPages());\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetWikiIsLoading(false));\r\n h.error(\"Error adding new page\", error);\r\n });\r\n };\r\n\r\nexport const DeleteWikiPage =\r\n (pageId: number): ThunkAction> =>\r\n (dispatch): void => {\r\n dispatch(SetWikiIsLoading(false));\r\n return request(\r\n `/api/wiki-pages/delete/${pageId}`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(`Successfully removed page.`));\r\n dispatch(SetWikiIsSaving(false));\r\n dispatch(GetWikiPages());\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetWikiIsSaving(false));\r\n h.error(\"Error deleting page\", error);\r\n });\r\n };\r\n\r\nexport const UpdateWikiPage =\r\n (pageId: number, pageData: IPage): ThunkAction> =>\r\n (dispatch): void => {\r\n dispatch(SetWikiIsSaving(true));\r\n\r\n return request(\r\n `/api/wiki-pages/${pageId}`,\r\n {\r\n method: \"PUT\",\r\n credentials: \"same-origin\",\r\n body: JSON.stringify({\r\n Title: pageData.Title,\r\n Content: pageData.Content,\r\n Category: pageData.Category,\r\n Type: pageData.Type,\r\n }),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(`Successfully update the page: \"${pageData.Title}\".`));\r\n dispatch(SetWikiIsSaving(false));\r\n dispatch(GetWikiPages());\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(SetWikiIsSaving(false));\r\n h.error(`Error updating \"${pageData.Title}\"`, error);\r\n });\r\n };\r\n\r\nexport const UpdateWikiPagesSortOrder =\r\n (pagesToUpdate: Array): ThunkAction> =>\r\n (dispatch): void => {\r\n // optimistic update, first update the UI for better user experience, then update in the DB.\r\n pagesToUpdate.forEach(x =>\r\n dispatch({\r\n type: UPDATE_WIKI_PAGE_PROPERTY,\r\n wikiPageId: x.Id,\r\n property: \"SortOrder\",\r\n newValue: x.SortOrder,\r\n })\r\n );\r\n\r\n dispatch(incAjaxCount());\r\n request(\r\n `/api/wiki-pages/pagesort`,\r\n {\r\n method: \"POST\",\r\n credentials: \"same-origin\",\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n },\r\n body: JSON.stringify(pagesToUpdate),\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(() => {\r\n dispatch(decAjaxCount());\r\n })\r\n .catch(error => {\r\n h.error(`Error updating page position.`, error);\r\n dispatch(decAjaxCount());\r\n dispatch(GetWikiPages());\r\n });\r\n };\r\n\r\nexport const GetWikiImagesList =\r\n () =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetWikiIsLoadingImages(true));\r\n request(\r\n \"/api/wiki-pages/images\",\r\n {\r\n credentials: \"same-origin\",\r\n method: \"GET\",\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then(data => {\r\n dispatch(SetWikiIsLoadingImages(false));\r\n dispatch({\r\n type: \"SET_WIKI_IMAGES\",\r\n images: data.images,\r\n });\r\n })\r\n .catch(error => {\r\n dispatch(SetWikiIsLoadingImages(false));\r\n h.error(\"Error fetching available images.\", error);\r\n });\r\n };\r\n\r\nexport const addWikiImage =\r\n (selectedImageContent: string, selectedImageTitleOverride: string, selectedImageCategory: number) =>\r\n (dispatch: Dispatch): void => {\r\n const imagesFiles = new FormData();\r\n dispatch(SetWikiIsSaving(true));\r\n imagesFiles.append(\"Image\", selectedImageContent);\r\n imagesFiles.append(\"OverrideName\", selectedImageTitleOverride);\r\n imagesFiles.append(\"Category\", selectedImageCategory.toString());\r\n\r\n request(\r\n \"/api/wiki-pages/images\",\r\n {\r\n credentials: \"same-origin\",\r\n method: \"POST\",\r\n body: imagesFiles,\r\n },\r\n dispatch\r\n )\r\n .then(h.toJson)\r\n .then((res: { error: string }) => {\r\n if (res && res.error) {\r\n h.error(res.error);\r\n } else {\r\n dispatch(notifyGreen(\"Image saved into your Available Images.\"));\r\n }\r\n\r\n dispatch(SetWikiIsSaving(false));\r\n })\r\n .catch(error => {\r\n dispatch(SetWikiIsSaving(false));\r\n h.error(error && error.message ? error.message : \"Error saving image.\", error);\r\n });\r\n };\r\n\r\nexport const getImagePreview =\r\n (previewData: FormData) =>\r\n (dispatch: Dispatch): void => {\r\n dispatch(SetWikiPreviewLoading(true));\r\n\r\n return request(\r\n \"/Images/GetUnsavedBase64StringFull\",\r\n {\r\n credentials: \"same-origin\",\r\n method: \"POST\",\r\n body: previewData,\r\n },\r\n dispatch\r\n )\r\n .then(h.checkStatus)\r\n .then(h.toJson)\r\n .then((data: { result: string }) => {\r\n dispatch(SetWikiPreviewLoading(false));\r\n dispatch(SetWikiPreview(data.result));\r\n })\r\n .catch(error => {\r\n dispatch(SetWikiPreviewLoading(false));\r\n h.error(\"Error loading image preview. Perhaps you can try a smaller image.\", error);\r\n });\r\n };\r\n","import React, { useCallback, useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport MaterialModal from \"../MaterialModal\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport Moment from \"moment\";\r\nimport { hideModal } from \"../../../actions/actionCreators\";\r\nimport { GetS3FileList, GetS3FileInfo, ResetS3Data } from \"../../../actions/awsActions\";\r\nimport { notifyError } from \"../../../actions/notifyActions\";\r\nimport TabPanel, { a11yProps } from \"../../material-components/Misc/TabPanel\";\r\nimport withModal from \"../withModal\";\r\nimport LoadingDots from \"../../loading/BouncingDots\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Tabs,\r\n Tab,\r\n Divider,\r\n List,\r\n ListItem,\r\n ListItemText,\r\n TextareaAutosize,\r\n IconButton,\r\n Checkbox,\r\n FormControlLabel,\r\n TextField,\r\n Button,\r\n} from \"@material-ui/core\";\r\nimport { Autocomplete } from \"@material-ui/lab\";\r\nimport { IAppState } from \"../../../types/stores/index\";\r\nimport { getFlowExternalServiceInputsForSelectedFlowItem } from \"../../../reducers/flowExternalServiceInputs\";\r\nimport { IFileInfo } from \"../../../types/actions/fileInfo\";\r\nimport { IS3File } from \"../../../types/actions/aws\";\r\nimport { getDeploymentDestinationServers } from \"../../../actions/DeploymentDestinationActions\";\r\nimport { IDeploymentDestinationServer } from \"../../../types/stores/deploymentDestination\";\r\nimport CircularLoading from \"../../loading/CircularLoading\";\r\nimport {\r\n GetNasFileInfo,\r\n RemoveNasFilesDownloadQueue,\r\n ResetNasData,\r\n SetNasFilesList,\r\n searchNasFiles,\r\n} from \"../../../actions/nasActions\";\r\nimport { endRequestProgress } from \"../../../actions/loadingActions\";\r\n\r\nconst FolderIcon = folder;\r\nconst CloseIcon = onClick => (\r\n \r\n close\r\n \r\n);\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.paper,\r\n height: 224,\r\n },\r\n tabs: {\r\n borderRight: `1px solid ${theme.palette.divider}`,\r\n textAlign: \"left\",\r\n },\r\n}));\r\n\r\nexport const BrowseFileIntegrations = {\r\n Computer: 0,\r\n S3: 1,\r\n SERVER: 2,\r\n};\r\n\r\nexport interface IS3Input {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nconst BrowseFilesModal = ({ isOpen, modalProps }) => {\r\n const dispatch = useDispatch();\r\n const classes = useStyles();\r\n const loadingPreviewLabel = \"Loading...\";\r\n\r\n // State\r\n\r\n // S3\r\n const [selectedS3Files, setSelectedS3Files] = useState>([]);\r\n // PC\r\n const [pcFilePreview, setPCFilePreview] = useState(\"\");\r\n // Others\r\n const [tabValue, setTabValue] = useState(BrowseFileIntegrations.Computer);\r\n const [requestor, setRequestor] = useState(\"\");\r\n // Server\r\n const [selectedNasServer, setSelectedNasServer] = useState(null);\r\n const [nasFilePath, setNasFilePath] = useState(\"\");\r\n const [selectedNasFiles, setSelectedNasFiles] = useState>(new Array());\r\n\r\n // Redux\r\n\r\n // S3\r\n const awsFilesList = useSelector((state: IAppState) => state.aws.files);\r\n const awsError = useSelector((state: IAppState) => state.aws.error);\r\n const awsIsLoadingFiles = useSelector((state: IAppState) => state.aws.isLoading);\r\n const awsIsDownloading = useSelector((state: IAppState) => state.aws.isDownloading);\r\n const awsFilePreview = useSelector((state: IAppState) => state.aws.filePreview);\r\n const awsFileQuantity = useSelector((state: IAppState) => state.aws.fileQuantity);\r\n const awsFilesInfo = useSelector>(state => state.aws.flowControlFilesInfo);\r\n\r\n // Others\r\n const enabledFeatures = useSelector((state: IAppState) => state.session.enabledFeatures || []);\r\n const flowExternalServiceInputs = useSelector(\r\n (state: IAppState) => getFlowExternalServiceInputsForSelectedFlowItem(state) || []\r\n );\r\n const roles = useSelector((state: IAppState) => state.session.roles);\r\n const isExperianOrSuperAdmin = roles.includes(\"Experian Admin\") || roles.includes(\"Super Admin\");\r\n const isInternal = useSelector((state: IAppState) => state.session.isInternal || false);\r\n\r\n // Deployment Destinations Servers\r\n const nasServers = useSelector((state: IAppState) => state.deploymentDestination.servers);\r\n const isNasServersLoading = useSelector((state: IAppState) => state.deploymentDestination.serversLoading);\r\n\r\n // NAS\r\n const isSearchingNasFiles = useSelector((state: IAppState) => state.nas.isLoading);\r\n const nasDownloadQueue = useSelector((state: IAppState) => state.nas.downloadQueue);\r\n const nasError = useSelector((state: IAppState) => state.nas.error);\r\n const nasFiles = useSelector((state: IAppState) => state.nas.files);\r\n const nasFilesInfo = useSelector((state: IAppState) => state.nas.filesInfo);\r\n\r\n // Features\r\n const flowControlFeature = enabledFeatures.includes(\"flow-control\");\r\n const multiInputFeature = enabledFeatures.includes(\"flow-control-multi-input\");\r\n\r\n // S3\r\n const s3Feature = enabledFeatures.includes(\"s3-file-import\");\r\n const allowS3 =\r\n (requestor == \"flow\" && flowControlFeature && modalProps.browseFileAllowed == BrowseFileIntegrations.S3) ||\r\n (s3Feature && requestor != \"flow\");\r\n\r\n // Server\r\n const serverFeature = enabledFeatures.includes(\"flow-control-server-input\");\r\n const allowNAS =\r\n serverFeature &&\r\n isExperianOrSuperAdmin &&\r\n isInternal &&\r\n requestor == \"flow\" &&\r\n flowControlFeature &&\r\n modalProps.browseFileAllowed == BrowseFileIntegrations.SERVER;\r\n\r\n useEffect(() => {\r\n if (modalProps.requestor && flowControlFeature) {\r\n setRequestor(modalProps.requestor);\r\n\r\n if (modalProps.requestor == \"flow\") {\r\n if (allowS3) {\r\n setTabValue(BrowseFileIntegrations.S3);\r\n } else {\r\n setTabValue(BrowseFileIntegrations.SERVER);\r\n dispatch(getDeploymentDestinationServers());\r\n }\r\n }\r\n }\r\n }, [dispatch, modalProps, flowControlFeature, allowS3]);\r\n\r\n useEffect(() => {\r\n if (tabValue == BrowseFileIntegrations.S3) {\r\n dispatch(GetS3FileList());\r\n }\r\n }, [tabValue, dispatch]);\r\n\r\n // Modal options\r\n const hide = () => {\r\n setTabValue(BrowseFileIntegrations.Computer);\r\n setRequestor(\"\");\r\n\r\n if (modalProps.browseFileAllowed == BrowseFileIntegrations.S3) {\r\n setSelectedS3Files([]);\r\n dispatch(ResetS3Data());\r\n } else if (modalProps.browseFileAllowed == BrowseFileIntegrations.SERVER) {\r\n setSelectedNasFiles([]);\r\n dispatch(ResetNasData());\r\n }\r\n\r\n dispatch(hideModal(\"BROWSE_FILES\"));\r\n };\r\n\r\n const handleTabChange = (_, newValue) => {\r\n setSelectedS3Files([]);\r\n setSelectedNasFiles([]);\r\n setTabValue(newValue);\r\n };\r\n\r\n const handleSave = () => {\r\n if (tabValue == BrowseFileIntegrations.S3) {\r\n if (requestor == \"flow\" && multiInputFeature) {\r\n // FlowControl handles multiple files\r\n modalProps.handleModalFile(tabValue, selectedS3Files);\r\n } else {\r\n // File Import only handles single file\r\n modalProps.handleModalFile(tabValue, selectedS3Files[0], awsFilePreview, awsFileQuantity);\r\n }\r\n hide();\r\n } else if (tabValue == BrowseFileIntegrations.SERVER) {\r\n if (requestor == \"flow\" && multiInputFeature) {\r\n // FlowControl handles multiple files\r\n const selectedNasFilesInfo = nasFilesInfo.filter(x => selectedNasFiles.includes(x.fileName)) || [];\r\n modalProps.handleModalFile(tabValue, selectedNasFilesInfo, selectedNasServer?.Id);\r\n } else {\r\n // File Import only handles single file\r\n const fileInfo = nasFilesInfo.find(x => x.fileName == selectedNasFiles[0]);\r\n modalProps.handleModalFile(\r\n tabValue,\r\n fileInfo?.fileName,\r\n fileInfo?.filePreview,\r\n fileInfo?.fileQuantity,\r\n selectedNasServer?.Id\r\n );\r\n }\r\n hide();\r\n } else {\r\n modalProps.handleModalFile(tabValue, selectedS3Files[0], pcFilePreview);\r\n hide();\r\n }\r\n };\r\n\r\n // PC files\r\n const readPCFile = useCallback(\r\n file => {\r\n const CHUNK_SIZE = 100000; // 100kb, arbitrarily chosen.\r\n const decoder = new TextDecoder();\r\n const maxLines = 10;\r\n let offset = 0;\r\n let lineCount = 0;\r\n let results: string | undefined = \"\";\r\n let preview = \"\";\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n // Use stream:true in case we cut the file\r\n // in the middle of a multi-byte character\r\n results += decoder.decode(fr.result as ArrayBuffer, { stream: true });\r\n const lines = (results && results.split(\"\\n\")) || [];\r\n results = lines.pop(); // In case the line did not end yet.\r\n lineCount += lines.length;\r\n\r\n if (lineCount > maxLines) {\r\n // Read too many lines? Truncate the results.\r\n lines.length -= lineCount - maxLines;\r\n lineCount = maxLines;\r\n }\r\n\r\n for (let i = 0; i < lines.length; ++i) {\r\n preview += lines[i] + \"\\n\";\r\n }\r\n\r\n offset += CHUNK_SIZE;\r\n seek();\r\n };\r\n fr.onerror = () => {\r\n dispatch(notifyError(\"Error reading file: \" + fr.error));\r\n };\r\n\r\n const seek = () => {\r\n if (lineCount === maxLines) {\r\n // We found enough lines.\r\n setPCFilePreview(preview);\r\n return;\r\n }\r\n if (offset !== 0 && offset >= file.size) {\r\n // We did not find all lines, but there are no more lines.\r\n setPCFilePreview(preview);\r\n return;\r\n }\r\n const slice = file.slice(offset, offset + CHUNK_SIZE);\r\n fr.readAsArrayBuffer(slice);\r\n };\r\n seek();\r\n },\r\n [dispatch]\r\n );\r\n\r\n const handlePCFileSelect = useCallback(\r\n selectedS3Files => {\r\n readPCFile(selectedS3Files[0]);\r\n setSelectedS3Files([selectedS3Files[0]]);\r\n },\r\n [readPCFile]\r\n );\r\n\r\n const onDrop = useCallback(\r\n acceptedFiles => {\r\n handlePCFileSelect([...acceptedFiles]);\r\n },\r\n [handlePCFileSelect]\r\n );\r\n\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, accept: \".csv, .txt, .dat\" });\r\n\r\n // S3 files\r\n const handleS3FileCheck = (file: IS3File, checked: boolean) => {\r\n if (checked) {\r\n handleS3FileSelect(file);\r\n } else {\r\n removeS3File(selectedS3Files.map(x => x.name).indexOf(file.Name));\r\n }\r\n };\r\n\r\n const handleS3FileSelect = (file: IS3File) => {\r\n if (!isS3FileSelected(file.Name)) {\r\n dispatch(GetS3FileInfo(file.Name));\r\n const nextId = selectedS3Files.length > 0 ? Math.max(...selectedS3Files.map(x => x.id)) + 1 : 1;\r\n const selectedFile: IS3Input = { id: nextId, name: file.Name };\r\n if (requestor == \"flow\" && multiInputFeature) {\r\n let updateSelected = [...selectedS3Files];\r\n updateSelected.push(selectedFile);\r\n setSelectedS3Files(updateSelected);\r\n } else {\r\n setSelectedS3Files([selectedFile]);\r\n }\r\n } else {\r\n removeS3File(selectedS3Files.map(x => x.name).indexOf(file.Name));\r\n }\r\n };\r\n\r\n const isS3FileSelected = (file: string) => selectedS3Files.map(x => x.name).includes(file);\r\n\r\n const removeS3File = fileIndex => {\r\n let filesCopy = [...selectedS3Files];\r\n if (fileIndex > -1) {\r\n filesCopy.splice(fileIndex, 1);\r\n }\r\n // reset id\r\n filesCopy.forEach((file, index) => {\r\n file.id = index + 1;\r\n });\r\n\r\n setSelectedS3Files(filesCopy);\r\n };\r\n\r\n // NAS files\r\n const handleNasServerChange = value => {\r\n setSelectedNasServer(value);\r\n setNasFilePath(value?.ServerPath ?? \"\");\r\n\r\n if (!value) {\r\n dispatch(SetNasFilesList([]));\r\n setSelectedNasFiles([]);\r\n }\r\n };\r\n\r\n const handleNasFilePathChange = event => {\r\n let value = event.target.value;\r\n if (value.startsWith(selectedNasServer?.ServerPath)) {\r\n setNasFilePath(value);\r\n } else {\r\n setNasFilePath(selectedNasServer?.ServerPath ?? \"\");\r\n }\r\n };\r\n\r\n const handleSearchNasFiles = () => {\r\n if (isSearchingNasFiles) {\r\n return;\r\n }\r\n\r\n if (selectedNasServer?.Id) {\r\n setSelectedNasFiles([]);\r\n dispatch(searchNasFiles(selectedNasServer.Id, nasFilePath));\r\n }\r\n };\r\n\r\n const isNasFileSelected = (file: string) => selectedNasFiles.map(x => x).includes(file);\r\n\r\n const handleNasFileCheck = (file: string, checked: boolean) => {\r\n if (checked) {\r\n handleNasFileSelect(file);\r\n } else {\r\n removeNasFile(selectedNasFiles.map(x => x).indexOf(file));\r\n }\r\n };\r\n\r\n const handleNasFileSelect = (file: string) => {\r\n if (!isNasFileSelected(file)) {\r\n if (selectedNasServer?.Id) {\r\n dispatch(GetNasFileInfo(selectedNasServer.Id, file));\r\n\r\n if (requestor == \"flow\" && multiInputFeature) {\r\n let updateSelected = [...selectedNasFiles];\r\n updateSelected.push(file);\r\n setSelectedNasFiles(updateSelected);\r\n } else {\r\n setSelectedNasFiles([file]);\r\n }\r\n }\r\n } else {\r\n removeNasFile(selectedNasFiles.map(x => x).indexOf(file));\r\n }\r\n };\r\n\r\n const removeNasFile = fileIndex => {\r\n let filesCopy = [...selectedNasFiles];\r\n if (fileIndex > -1) {\r\n const fileRemoved = filesCopy.splice(fileIndex, 1);\r\n\r\n if (nasDownloadQueue.length > 0 && !nasFilesInfo.some(x => x.fileName == fileRemoved[0])) {\r\n dispatch(RemoveNasFilesDownloadQueue(fileRemoved[0]));\r\n dispatch(endRequestProgress());\r\n }\r\n }\r\n\r\n setSelectedNasFiles(filesCopy);\r\n };\r\n\r\n // Shared functionality\r\n const isFileAdded = (file: string) => {\r\n if (requestor == \"flow\" && multiInputFeature) {\r\n return flowExternalServiceInputs.map(x => x.InputName).includes(file);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const getPreviewFiles = (source: number, fileName: string = \"\") => {\r\n let preview: string | undefined;\r\n\r\n if (source == BrowseFileIntegrations.S3) {\r\n preview =\r\n requestor == \"flow\" && multiInputFeature\r\n ? awsFilesInfo.find(x => x.fileName == fileName)?.filePreview ?? loadingPreviewLabel\r\n : awsFilePreview;\r\n } else if (source == BrowseFileIntegrations.SERVER) {\r\n preview = nasFilesInfo.find(x => x.fileName.endsWith(fileName))?.filePreview ?? loadingPreviewLabel;\r\n }\r\n\r\n return preview;\r\n };\r\n\r\n const displayPreviewFiles = (source: number) => {\r\n let isLoading =\r\n (source == BrowseFileIntegrations.S3 && awsIsDownloading) ||\r\n (source == BrowseFileIntegrations.SERVER && nasDownloadQueue.length > 0);\r\n\r\n const files =\r\n source == BrowseFileIntegrations.S3\r\n ? selectedS3Files.map(x => x.name)\r\n : selectedNasFiles.map(x => x.substring(x.lastIndexOf(\"\\\\\") + 1));\r\n\r\n return (\r\n
\r\n {isLoading && (\r\n
\r\n \r\n
\r\n )}\r\n {files &&\r\n files.length > 0 &&\r\n files.map((file, i) => (\r\n
\r\n \r\n \r\n {file}\r\n \r\n source == BrowseFileIntegrations.S3 ? removeS3File(i) : removeNasFile(i)\r\n }\r\n />\r\n \r\n \r\n \r\n
\r\n ))}\r\n
\r\n );\r\n };\r\n\r\n const displayOtherInfo = (sourceIntegrationName: string) => (\r\n
\r\n Other information\r\n
    \r\n
  1. Currently, only accepts .csv, .txt, and .dat files.
  2. \r\n
  3. \r\n Please contact your administrator for any assistance with setting up your {sourceIntegrationName}{\" \"}\r\n integration.\r\n
  4. \r\n
\r\n
\r\n );\r\n\r\n return (\r\n 0))\r\n }\r\n >\r\n
\r\n
\r\n \r\n \r\n {s3Feature && (\r\n \r\n )}\r\n {requestor == \"flow\" && serverFeature && isExperianOrSuperAdmin && isInternal && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {isDragActive ? (\r\n

Drop the files here ...

\r\n ) : (\r\n <>\r\n {FolderIcon}\r\n    Drag & drop your files here or click here to browse on your\r\n computer ...\r\n \r\n )}\r\n
\r\n
\r\n {selectedS3Files &&\r\n selectedS3Files.length > 0 &&\r\n selectedS3Files.map((file, i) => (\r\n
\r\n \r\n \r\n {file.name}\r\n removeS3File(i)} />\r\n \r\n \r\n \r\n
\r\n ))}\r\n
\r\n \r\n
\r\n Other information\r\n
    \r\n
  1. Currently, only accepts .csv, .txt, and .dat files.
  2. \r\n
  3. Please contact your administrator for any assistance.
  4. \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {!awsIsLoadingFiles && awsError && (\r\n \r\n {awsError}\r\n \r\n )}\r\n
\r\n {awsIsLoadingFiles && (\r\n
\r\n \r\n
\r\n )}\r\n {!awsIsLoadingFiles && !awsError && awsFilesList.length == 0 && (\r\n

Looks like there are no available files to import.

\r\n )}\r\n {!awsIsLoadingFiles && !awsError && awsFilesList.length > 0 && (\r\n <>\r\n

\r\n Available Files{\" \"}\r\n {requestor == \"flow\" && multiInputFeature && \"(Select 1 to Many)\"}\r\n

\r\n \r\n {awsFilesList.map((file, i) => (\r\n <>\r\n \r\n {requestor == \"flow\" && multiInputFeature && (\r\n \r\n handleS3FileCheck(file, e.target.checked)\r\n }\r\n />\r\n }\r\n label=\"\"\r\n />\r\n )}\r\n handleS3FileSelect(file)}\r\n style={{ paddingTop: \"0px\", paddingBottom: \"0px\" }}\r\n selected={isS3FileSelected(file.Name)}\r\n disabled={isFileAdded(file.Name)}\r\n >\r\n \r\n \r\n
\r\n \r\n ))}\r\n \r\n \r\n )}\r\n
\r\n {displayPreviewFiles(BrowseFileIntegrations.S3)}\r\n \r\n {displayOtherInfo(\"Amazon S3\")}\r\n
\r\n \r\n \r\n
\r\n option.Description}\r\n onChange={(_, value) => handleNasServerChange(value)}\r\n loading={isNasServersLoading}\r\n loadingText={\"Loading Servers...\"}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n handleSearchNasFiles()}\r\n disabled={isNasServersLoading || selectedNasServer == null || nasFilePath == \"\"}\r\n >\r\n
\r\n {isSearchingNasFiles ? (\r\n \r\n ) : null}\r\n {isSearchingNasFiles ? \"Searching...\" : \"Search\"}\r\n
\r\n \r\n {!isNasServersLoading && nasError && (\r\n \r\n {nasError}\r\n \r\n )}\r\n
\r\n {isNasServersLoading && (\r\n
\r\n \r\n
\r\n )}\r\n {!isNasServersLoading && !nasError && nasFiles.length == 0 && (\r\n

Looks like there are no available files to import.

\r\n )}\r\n {!isNasServersLoading && !nasError && nasFiles.length > 0 && (\r\n <>\r\n

\r\n Available Files{\" \"}\r\n {requestor == \"flow\" && multiInputFeature && \"(Select 1 to Many)\"}\r\n

\r\n \r\n {nasFiles.map((file, i) => (\r\n <>\r\n \r\n {requestor == \"flow\" && multiInputFeature && (\r\n \r\n handleNasFileCheck(file, e.target.checked)\r\n }\r\n />\r\n }\r\n label=\"\"\r\n />\r\n )}\r\n handleNasFileSelect(file)}\r\n style={{ paddingTop: \"0px\", paddingBottom: \"0px\" }}\r\n selected={isNasFileSelected(file)}\r\n disabled={isFileAdded(file)}\r\n >\r\n \r\n \r\n
\r\n \r\n ))}\r\n \r\n \r\n )}\r\n
\r\n {!isNasServersLoading && !nasError && nasFiles.length > 0\r\n ? displayPreviewFiles(BrowseFileIntegrations.SERVER)\r\n : null}\r\n \r\n {displayOtherInfo(\"SERVER\")}\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nBrowseFilesModal.propTypes = {\r\n modalProps: PropTypes.any,\r\n isOpen: PropTypes.bool,\r\n};\r\n\r\nBrowseFilesModal.displayName = \"BrowseFilesModal\";\r\n\r\nexport default withModal(BrowseFilesModal, \"BROWSE_FILES\");\r\n","import React, { useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport MaterialModal from \"../MaterialModal\";\r\n\r\nimport { hideModal } from \"../../../actions/actionCreators\";\r\nimport { List, ListItem, ListItemText, Button } from \"@material-ui/core\";\r\n\r\nimport withModal from \"../withModal\";\r\nimport { fetchT, IRequestResult, jsonHeaders } from \"../../../helpers/typedFetch\";\r\nimport { notifyGreen } from \"../../../actions/notifyActions\";\r\nimport h from \"../../../helpers\";\r\n\r\nimport { history } from \"../../../store\";\r\n\r\nexport type RefreshDeploymentModalProps = {\r\n flowId: number;\r\n flowName: string;\r\n flowItemId?: number;\r\n flowItemName?: string;\r\n destinationName?: string;\r\n flowUrl?: string;\r\n};\r\n\r\ntype IProps = {\r\n isOpen: boolean;\r\n modalProps: RefreshDeploymentModalProps;\r\n};\r\nconst RefreshDeployModal: React.FC = ({ isOpen, modalProps }: IProps) => {\r\n const dispatch = useDispatch();\r\n const [requestInProgress, setRequestInProgress] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n const handleClose = () => {\r\n setErrorMessage(\"\");\r\n dispatch(hideModal(\"DEPLOYMENT_REFRESH\"));\r\n };\r\n\r\n const requestDeploymentRefresh = (unlockAndEdit: boolean) => {\r\n const url = \"/flows/UnlockAndRefreshDeployment\";\r\n\r\n setRequestInProgress(true);\r\n fetchT(\r\n url,\r\n \"POST\",\r\n JSON.stringify({ flowId: modalProps.flowId, flowItemId: modalProps.flowItemId, unlockAndEdit }),\r\n jsonHeaders\r\n )\r\n .then(data => {\r\n if (data.success) {\r\n dispatch(notifyGreen(\"Deployment refresh was successfully submitted.\"));\r\n handleClose();\r\n if (unlockAndEdit) {\r\n history.push(modalProps.flowUrl);\r\n }\r\n } else if (data.message) {\r\n setErrorMessage(data.message);\r\n } else {\r\n h.error(\"There was an error requesting the deployment refresh.\");\r\n }\r\n setRequestInProgress(false);\r\n })\r\n .catch(error => {\r\n h.error(\"There was an error requesting the deployment refresh.\", error);\r\n });\r\n };\r\n\r\n const renderPreview = () => (\r\n
\r\n \r\n \r\n \r\n \r\n {modalProps.flowItemName && (\r\n \r\n \r\n \r\n )}\r\n {modalProps.destinationName && (\r\n \r\n \r\n \r\n )}\r\n {errorMessage != \"\" && (\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n\r\n if (!modalProps) {\r\n return null;\r\n }\r\n\r\n const renderFooter = () => {\r\n const cancelBtn = (\r\n \r\n Cancel\r\n \r\n );\r\n const unlockAndEditBtn = (\r\n requestDeploymentRefresh(true)}\r\n disabled={requestInProgress}\r\n >\r\n Unlock and Edit\r\n \r\n );\r\n\r\n const unlockAndDeployBtn = (\r\n requestDeploymentRefresh(false)}\r\n disabled={requestInProgress || errorMessage != \"\"}\r\n >\r\n Refresh and Deploy\r\n \r\n );\r\n\r\n return (\r\n <>\r\n {cancelBtn}\r\n {unlockAndEditBtn}\r\n {unlockAndDeployBtn}\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {renderPreview()}\r\n \r\n );\r\n};\r\nexport default withModal(RefreshDeployModal, \"DEPLOYMENT_REFRESH\");\r\n","import { ICategory } from \"../../types/stores/wiki\";\r\n\r\nexport const placeholder: string = `# New Wiki Page\r\n\r\n## This is a sub-heading...\r\n### And here's some other cool stuff:\r\n \r\nHeres some code, \\`
\\`, between 2 backticks.\r\n\r\n\\`\\`\\`\r\n// this is multi-line code:\r\n\r\nfunction anotherExample(firstLine, lastLine) {\r\n if (firstLine == \\'\\`\\`\\`\\' \\&\\& lastLine == \\'\\`\\`\\`\\') {\r\n return multiLineCode;\r\n }\r\n}\r\n\\`\\`\\`\r\n \r\nYou can also make text **bold**... whoa!\r\nOr _italic_.\r\nOr... wait for it... **_both!_**\r\nAnd feel free to go crazy ~~crossing stuff out~~.\r\n\r\nThere's also [links](https://google.com), and\r\n> Block Quotes!\r\n\r\nAnd if you want to get really crazy, even tables:\r\n\r\nWild Header | Crazy Header | Another Header?\r\n------------ | ------------- | ------------- \r\nYour content can | be here, and it | can be here....\r\nAnd here. | Okay. | I think we get it.\r\n\r\n- And of course there are lists.\r\n - Some are bulleted.\r\n - With different indentation levels.\r\n - That look like this.\r\n\r\n\r\n1. And there are numbered lists too.\r\n1. Use just 1s if you want! \r\n1. But the list goes on...\r\n- Even if you use dashes or asterisks.\r\n* And last but not least, let's not forget embedded images:\r\n\r\n`;\r\n\r\n///\r\n//id\r\n//title\r\n//content\r\n//category\r\n//createddate\r\n//createdby\r\n//updateddate\r\n//updatedby\r\n///\r\n\r\nexport const title: string = \"Title\";\r\n\r\nexport const wikiSearchHistoryKeyName: string = \"wikiSearchHistory\";\r\n\r\nexport const wikiCategories: { none: number; flows: number; release: number } = Object.freeze({\r\n none: 1, // pages that are none, have a stand alone page e.g. overview\r\n flows: 2,\r\n release: 3,\r\n});\r\n\r\n//trying to simulate generic categories from the db, should have a table with this data.\r\nexport const wikiCategoriesArray: Array = [\r\n {\r\n Id: 1,\r\n Name: \"None\",\r\n Collapsible: false,\r\n IsOpen: false,\r\n SortOrder: 1,\r\n },\r\n {\r\n Id: 2,\r\n Name: \"Flows\",\r\n Collapsible: true,\r\n IsOpen: false,\r\n SortOrder: 2,\r\n },\r\n {\r\n Id: 3,\r\n Name: \"Release\",\r\n Collapsible: true,\r\n IsOpen: false,\r\n SortOrder: 3,\r\n },\r\n];\r\n\r\nexport const wikiPageTypes: { default: number; internal: number } = Object.freeze({\r\n default: 1, // visible to all\r\n internal: 2,\r\n});\r\n\r\ninterface roles {\r\n \"Super Admin\": Array;\r\n \"Experian Admin\": Array;\r\n \"Client Admin\": Array;\r\n}\r\n\r\nexport const userRolesPermissionsByTypes: roles = Object.freeze({\r\n \"Super Admin\": [wikiPageTypes.default, wikiPageTypes.internal],\r\n \"Experian Admin\": [wikiPageTypes.default, wikiPageTypes.internal],\r\n \"Client Admin\": [wikiPageTypes.default],\r\n});\r\n\r\nexport const notFoundMarkdown: string = `## Oops... Looks like the page has been changed or deleted.\r\n### Try looking in the page list for your page.`;\r\n","export const titles = [\r\n \"2nd Lt.\",\r\n \"Adm & Mrs.\",\r\n \"Adm.\",\r\n \"Airman\",\r\n \"Ambdr.\",\r\n \"Archbishop\",\r\n \"Baroness\",\r\n \"Bishop\",\r\n \"Br.\",\r\n \"Brig.\",\r\n \"Brig. & Mrs.\",\r\n \"Brig. Gen.\",\r\n \"Brother\",\r\n \"C.W.O.\",\r\n \"CPO\",\r\n \"Capt.\",\r\n \"Capt. & Mrs.\",\r\n \"Cardinal\",\r\n \"Chaplain\",\r\n \"Cmdr.\",\r\n \"Cmdr. & Mrs.\",\r\n \"Col.\",\r\n \"Col. & Mrs.\",\r\n \"Col. & Ms.\",\r\n \"Comr.\",\r\n \"Cpl.\",\r\n \"Deacon\",\r\n \"Dean\",\r\n \"Dr.\",\r\n \"Dr. & Dr.\",\r\n \"Dr. & Mrs.\",\r\n \"Dr. & Ms.\",\r\n \"Elder\",\r\n \"Ensign\",\r\n \"Fr.\",\r\n \"Gen.\",\r\n \"Gen. & Mrs.\",\r\n \"Gov.\",\r\n \"Gov. & Mrs.\",\r\n \"Hon.\",\r\n \"Hon. & Mrs.\",\r\n \"Judge\",\r\n \"Judge & Mrs.\",\r\n \"Lt Col & Mrs\",\r\n \"Lt.\",\r\n \"Lt. & Mrs.\",\r\n \"Lt. Cmdr.\",\r\n \"Lt. Col.\",\r\n \"Lt. Cpl.\",\r\n \"Lt. Gen.\",\r\n \"Lt. Jg.\",\r\n \"Maj. & Mrs.\",\r\n \"Maj. Gen.\",\r\n \"Major\",\r\n \"Miss\",\r\n \"Misses\",\r\n \"Most Rev.\",\r\n \"Mother\",\r\n \"Mr.\",\r\n \"Mr. & Mrs.\",\r\n \"Mr. & Ms.\",\r\n \"Mrs.\",\r\n \"Ms.\",\r\n \"Msgr.\",\r\n \"Ofcr.\",\r\n \"PO\",\r\n \"Pastor\",\r\n \"Pres.\",\r\n \"Prof.\",\r\n \"Pvt.\",\r\n \"Rabbi\",\r\n \"Rabbi & Mrs.\",\r\n \"Rep.\",\r\n \"Rev.\",\r\n \"Rev. & Mrs.\",\r\n \"Rev. Msgr.\",\r\n \"Rt. Rev.\",\r\n \"SFC\",\r\n \"SSg.\",\r\n \"SXgt.\",\r\n \"Seaman\",\r\n \"Sen.\",\r\n \"Sen. & Mrs.\",\r\n \"Sgm. & Mrs.\",\r\n \"Sgt.\",\r\n \"Sgt. & Mrs.\",\r\n \"Sgt. Maj.\",\r\n \"Sheik\",\r\n \"Spec.\",\r\n \"Sr.\",\r\n \"Ssgt.\",\r\n \"The Hon.\",\r\n \"The Most Rev\",\r\n \"The Rev.\",\r\n];\r\n\r\nexport const surnameSuffixes = [\r\n \"CPA\",\r\n \"DDS\",\r\n \"DO\",\r\n \"DVM\",\r\n \"Esq\",\r\n \"Family\",\r\n \"I\",\r\n \"II\",\r\n \"III\",\r\n \"IV\",\r\n \"Jr.\",\r\n \"MD\",\r\n \"PHD\",\r\n \"RN\",\r\n \"Ret\",\r\n \"Rev\",\r\n \"Sr.\",\r\n];\r\n\r\nexport const states: Array<{ name: string; abbreviation: string }> = [\r\n { name: \"Alabama\", abbreviation: \"AL\" },\r\n { name: \"Alaska\", abbreviation: \"AK\" },\r\n { name: \"Arizona\", abbreviation: \"AZ\" },\r\n { name: \"Arkansas\", abbreviation: \"AR\" },\r\n { name: \"California\", abbreviation: \"CA\" },\r\n { name: \"Colorado\", abbreviation: \"CO\" },\r\n { name: \"Connecticut\", abbreviation: \"CT\" },\r\n { name: \"Delaware\", abbreviation: \"DE\" },\r\n { name: \"Florida\", abbreviation: \"FL\" },\r\n { name: \"Georgia\", abbreviation: \"GA\" },\r\n { name: \"Hawaii\", abbreviation: \"HI\" },\r\n { name: \"Idaho\", abbreviation: \"ID\" },\r\n { name: \"Illinois\", abbreviation: \"IL\" },\r\n { name: \"Indiana\", abbreviation: \"IN\" },\r\n { name: \"Iowa\", abbreviation: \"IA\" },\r\n { name: \"Kansas\", abbreviation: \"KS\" },\r\n { name: \"Kentucky\", abbreviation: \"KY\" },\r\n { name: \"Louisiana\", abbreviation: \"LA\" },\r\n { name: \"Maine\", abbreviation: \"ME\" },\r\n { name: \"Maryland\", abbreviation: \"MD\" },\r\n { name: \"Massachusetts\", abbreviation: \"MA\" },\r\n { name: \"Michigan\", abbreviation: \"MI\" },\r\n { name: \"Minnesota\", abbreviation: \"MN\" },\r\n { name: \"Mississippi\", abbreviation: \"MS\" },\r\n { name: \"Missouri\", abbreviation: \"MO\" },\r\n { name: \"Montana\", abbreviation: \"MT\" },\r\n { name: \"Nebraska\", abbreviation: \"NE\" },\r\n { name: \"Nevada\", abbreviation: \"NV\" },\r\n { name: \"New Hampshire\", abbreviation: \"NH\" },\r\n { name: \"New Jersey\", abbreviation: \"NJ\" },\r\n { name: \"New Mexico\", abbreviation: \"NM\" },\r\n { name: \"New York\", abbreviation: \"NY\" },\r\n { name: \"North Carolina\", abbreviation: \"NC\" },\r\n { name: \"North Dakota\", abbreviation: \"ND\" },\r\n { name: \"Ohio\", abbreviation: \"OH\" },\r\n { name: \"Oklahoma\", abbreviation: \"OK\" },\r\n { name: \"Oregon\", abbreviation: \"OR\" },\r\n { name: \"Pennsylvania\", abbreviation: \"PA\" },\r\n { name: \"Rhode Island\", abbreviation: \"RI\" },\r\n { name: \"South Carolina\", abbreviation: \"SC\" },\r\n { name: \"South Dakota\", abbreviation: \"SD\" },\r\n { name: \"Tennessee\", abbreviation: \"TN\" },\r\n { name: \"Texas\", abbreviation: \"TX\" },\r\n { name: \"Utah\", abbreviation: \"UT\" },\r\n { name: \"Vermont\", abbreviation: \"VT\" },\r\n { name: \"Virginia\", abbreviation: \"VA\" },\r\n { name: \"Washington\", abbreviation: \"WA\" },\r\n { name: \"West Virginia\", abbreviation: \"WV\" },\r\n { name: \"Wisconsin\", abbreviation: \"WI\" },\r\n { name: \"Wyoming\", abbreviation: \"WY\" },\r\n];\r\n","//this pattern validates that the name doesn't start with a number or simbol, only alpha and underscore\r\nconst columnPattern = /^[A-Za-z_]([A-Za-z0-9_])*$/i; // eslint-disable-line\r\n\r\nconst validSnowflakeTable = value => {\r\n const pattern = /[^a-zA-Z0-9_]+/i; // eslint-disable-line\r\n return !pattern.test(value);\r\n};\r\n\r\nexport const validSnowflakeTableSpaces = value => {\r\n const pattern = /[^a-zA-Z0-9_ ]+/; // eslint-disable-line\r\n return !pattern.test(value);\r\n};\r\n\r\nexport const validStartChar = value => !columnPattern.test(value);\r\n\r\nexport default validSnowflakeTable;\r\n\r\nexport const validSnowflakeColumn = value => columnPattern.test(value);\r\nexport const parseValidColumnName = value => value.replace(!columnPattern, \"_\");\r\n"],"names":["SetDeploymentDestination","destination","dispatch","type","SET_DEPLOYMENT_DESTINATION","IsDeploymentDestinationsLoading","isLoading","IS_DEPLOYMENT_DESTINATION_LOADING","IsUpdatingDeploymentDestinations","isUpdating","IS_UPDATING_DEPLOYMENT_DESTINATION","SetDeploymentDestinationServer","server","SET_DEPLOYMENT_DESTINATION_SERVER","SetDeploymentDestinationServersLoading","serversLoading","SET_DEPLOYMENT_DESTINATION_SERVERS_LOADING","SetDeploymentDestinationServersSaving","serversSaving","SET_DEPLOYMENT_DESTINATION_SERVERS_SAVING","getDeploymentDestinationList","companyId","request","concat","credentials","method","then","h","checkStatus","toJson","data","destinations","GET_DEPLOYMENT_DESTINATION_LIST","catch","error","addDeploymentDestination","dataModel","fetch","headers","body","JSON","stringify","result","notifyGreen","Error","updateDeploymentDestination","alert","deleteDeploymentDestination","id","Accept","getDeployDestinationDiffCompanyList","destinationsDiffCompany","GET_DEPLOY_DESTINATION_DIFF_COMPANY_LIST","getDeploymentDestinationServers","servers","SET_DEPLOYMENT_DESTINATION_SERVERS","saveDeploymentDestinationServer","model","successCallback","deleteDeploymentDestinationServer","SetAppSettingsIsLoading","newValue","SET_LOADING_APP_SETTINGS","SetAppSettingListingIsLoading","SET_LOADING_APP_SETTINGS_LIST","isLoadingList","SetAppSettingsIsSaving","SET_IS_SAVING_APP_SETTINGS","isSaving","SetAppSettingsSaveCompleted","SET_SAVE_COMPLETED_APP_SETTINGS","completed","SetAppSettingsFields","SET_APP_SETTINGS","appSettings","SetAppSettingList","SET_APP_SETTINGS_LIST","appSettingsList","GetAppSettingByCompanyId","settingName","async","getState","length","GetAppSettings","find","setting","Name","CompanyId","success","settings","SaveNewDefault","defaultSettingName","defaultSettingDescription","defaultSettingActive","defaultSettingMaxLength","defaultSettingValue","SettingName","SettingDescription","SettingMaxLength","SettingActive","DefaultValue","setTimeout","message","SaveNewAppSetting","selectedCompany","selectedSettingID","settingValue","maskSettingValue","SettingId","SettingValue","MaskSettingValue","GetAppSettingsList","list","SaveAppSettings","appSettingsToChanged","arguments","undefined","SetDestinationGroupingParentsLoading","SET_LOADING_DESTINATIONGROUPING_PARENTS","SetDestinationGroupingParentsSaving","SET_IS_SAVING_DESTINATIONGROUPING_PARENTS","SetDestinationGroupingParentsCompleted","SET_SAVE_COMPLETED_DESTINATIONGROUPING_PARENTS","GetDestinationGroupingParents","status","SET_DESTINATIONGROUPINGPARENTS","destinationGroupingParents","SetDestinationGroupingParents","AddEditDestinationGroupingParent","defaultGroupParent","ParentName","DestinationGroupingParentID","ParentIcon","Description","SubDestinations","DeleteDestinationGroupingParent","parentId","setSearchMessage","SET_SEARCH_MESSAGE","searchMessage","resetSearch","RESET_DONOR","donorsData","clientsData","GetEditDonor","GET_EDIT_DONOR","editDonorsData","GetEditDonorHistory","GET_EDIT_DONOR_HISTORY","editDonorsHistoryData","SetDonorIsLoading","SET_DONOR_IS_LOADING","GetAppealCode","GET_APPEAL_CODE","appealCodes","GetGiftSummary","GET_GIFT_SUMMARY","giftSummary","GetAddressSummary","GET_ADDRESS_SUMMARY","addressSummary","DeleteBatchRecord","DELETE_BATCH_RECORD","deleteBatch","DeleteAuditRecord","DELETE_AUDIT_RECORD","deleteAudit","GetUnusedInfoCodes","unusedInfoCodes","GET_UNUSED_INFO_CODES","GetUsedInfoCodes","usedInfoCodes","GET_USED_INFO_CODES","GetPromotionData","promotionData","GET_PROMOTION_DATA","GetDonationData","donationData","GET_DONATION_DATA","GetLinkedDonationData","linkedDonationData","GET_LINKED_DONATION_DATA","GetUnusedCampaignCodes","unusedCampaignCodes","GET_UNUSED_CAMPAIGN_CODES","GetUsedCampaignCodes","usedCampaignCodes","GET_USED_CAMPAIGN_CODES","SetCodesLoading","isCodesLoading","SET_CODES_LOADING","SetPromotionsLoading","isPromotionsLoading","SET_PROMOTIONS_LOADING","SetDonationsLoading","isDonationsLoading","SET_DONATIONS_LOADING","SetMailOnlySuppress","mailOnlySuppress","SET_MAIL_ONLY_SUPPRESS","GetUnusedFinanceCodes","unusedFinanceCodes","GET_UNUSED_FINANCE_CODES","GetUsedFinanceCodes","usedFinanceCodes","GET_USED_FINANCE_CODES","GetOtherAddresses","otherAddresses","GET_OTHER_ADDRESSES","SetIsReportsLoading","isReportsLoading","SET_REPORTS_LOADING","SetReports","reports","SET_REPORTS","SetUserPermission","permission","SET_USER_PERMISSION","SetAllUserPermissions","userPermissions","SET_ALL_USER_PERMISSIONS","SetIsAllGiftsLoading","isAllGiftsLoading","SET_ALL_GIFTS_LOADING","SetAllGifts","allGifts","SET_ALL_GIFTS","UpdatedAuditableBatch","UPDATED_AUDITABLE_BATCH","SetServiceCenterZip","SET_SERVICE_CENTER_ZIP","serviceCenterZip","getDonorAsync","caseState","searchData","caseSensitivity","startsWith","GET_DONOR","GetDonor","additionalMessage","getEditDonorAsync","getEditDonorHistoryAsync","donorsHistoryData","getListAddressTypeAsync","GET_ADDRESS_TYPE","addressType","GetAddressType","addressTypeData","getListMemberCodeAsync","GET_MEMBER_CODE","memberCode","GetMemberCode","memberCodeData","getListOriginCodeAsync","GET_ORIGIN_CODE","originCode","GetOriginCode","originCodeData","getListServiceCenterAsync","GET_SERVICE_CENTER","serviceCenter","GetServiceCenter","serviceCenterData","getListAcknowledgmentFlagAsync","GET_ACKNOWLEDGMENT_FLAG","acknowledgmentFlags","GetAcknowledgmentFlag","flagsData","getListFormCodeAsync","GET_FORM_CODE","formCodes","GetFormCode","codesData","getListAppealCodeAsync","appealCode","getGiftSummaryAsync","summary","getAddressSummaryAsync","updateUserPermissions","getAllUserPermissions","updateEditDonorsAsync","state","user","session","userId","userLogonId","LogonId","donorId","Id","donorData","getAuditRecsAsync","batchNumber","GET_AUDIT_RECORDS","auditRecords","GetAuditRecords","recordsData","getUserBatchesAsync","logonId","GET_USER_BATCHES","batchesData","GetUserBatches","getCurrentBatchAsync","seqNumber","params","GET_CURRENT_BATCH","batchData","GetCurrentBatch","addAuditRecordAsync","ADD_AUDIT_RECORD","addBatchData","AddAuditRecord","updateAuditRecordAsync","UPDATE_AUDIT_RECORD","updateBatchData","UpdateAuditRecord","getAuditRecordAsync","GET_AUDIT_RECORD","auditRecord","GetAuditRecord","recordData","saveComment","comment","UPDATE_COMMENTS","comments","UpdateComments","getBatchDonorAsync","recType","GET_BATCH_DONOR","batchDonorData","GetBatchDonor","deleteBatchRecordAsync","deleteAuditRecordAsync","getPromotionInformation","promoId","promotion","getLinkedDonationInformation","sequenceNumber","donation","getDonationInformation","deleteDonation","getUsedInfoCodes","codes","getUnusedInfoCodes","getUsedCampaignCodes","getUnusedCampaignCodes","getUsedFinanceCodes","getUnusedFinanceCodes","saveInfoCodesAsync","saveCampaignCodesAsync","saveFinanceCodesAsync","getOtherAddresses","addresses","updateDonationData","LOGON_ID","updateOtherAddress","address","deleteOtherAddress","addOtherAddress","addBatchHeaderAsync","ADD_HEADER_RECORD","newBatchNumber","AddHeaderRecord","goToUrl","messages","updateBatchHeaderAsync","UPDATE_HEADER_RECORD","BatchNumber","saveDonorAsync","donor","getReports","getUserPermission","userPermission","getAllGiftsSchedule","allGiftsSchedule","editAllDates","runDate","startDate","endDate","submitBatchAsync","actualCount","actualAmount","addGift","gift","editGift","deleteGift","updatePrimaryIdentBatchAsync","assocident","updateAssocIdentBatchAsync","tribtype","updateNotifyIdentBatchAsync","notifyident","updateLinkedIdentBatchAsync","linkedident","getLisTributeTypeAsync","GET_TRIBUTE_TYPE","tributeType","GetTributeType","tributeTypeData","getListGiftTypeAsync","GET_GIFT_TYPE","giftType","GetGiftType","giftTypeData","zipLookup","zipCode","response","notifyBlue","getListBatchCategoryAsync","GET_BATCH_CATEGORIES","batchCategories","GetBatchCategories","batchCategoryData","SetWikiIsLoadingImages","SET_LOADING_IMAGES","SetWikiIsLoading","SET_LOADING_PAGE","SetWikiIsSaving","SET_SAVING_PAGE","SetWikiPreviewLoading","SET_WIKI_LOADING_PREVIEW","isLoadingPreview","SetWikiPreview","SET_WIKI_PREVIEW","selectedImagePreview","GetWikiPages","filteredPages","roles","pageTypes","Set","add","wikiPageTypes","default","i","permittedPageTypes","userRolesPermissionsByTypes","j","pages","has","Type","push","SET_WIKI_PAGES","CreateNewWikiPage","pageData","Title","Content","Category","DeleteWikiPage","pageId","UpdateWikiPage","UpdateWikiPagesSortOrder","pagesToUpdate","forEach","x","UPDATE_WIKI_PAGE_PROPERTY","wikiPageId","property","SortOrder","incAjaxCount","decAjaxCount","GetWikiImagesList","images","addWikiImage","selectedImageContent","selectedImageTitleOverride","selectedImageCategory","imagesFiles","FormData","append","toString","res","getImagePreview","previewData","FolderIcon","_jsx","className","CloseIcon","onClick","IconButton","size","_i","useStyles","makeStyles","theme","root","flexGrow","backgroundColor","palette","background","paper","height","tabs","borderRight","divider","textAlign","BrowseFileIntegrations","Computer","S3","SERVER","BrowseFilesModal","_ref","isOpen","modalProps","useDispatch","classes","loadingPreviewLabel","selectedS3Files","setSelectedS3Files","useState","pcFilePreview","setPCFilePreview","tabValue","setTabValue","requestor","setRequestor","selectedNasServer","setSelectedNasServer","nasFilePath","setNasFilePath","selectedNasFiles","setSelectedNasFiles","Array","awsFilesList","useSelector","aws","files","awsError","awsIsLoadingFiles","awsIsDownloading","isDownloading","awsFilePreview","filePreview","awsFileQuantity","fileQuantity","awsFilesInfo","flowControlFilesInfo","enabledFeatures","flowExternalServiceInputs","getFlowExternalServiceInputsForSelectedFlowItem","isExperianOrSuperAdmin","includes","isInternal","nasServers","deploymentDestination","isNasServersLoading","isSearchingNasFiles","nas","nasDownloadQueue","downloadQueue","nasError","nasFiles","nasFilesInfo","filesInfo","flowControlFeature","multiInputFeature","s3Feature","allowS3","browseFileAllowed","serverFeature","allowNAS","useEffect","GetS3FileList","hide","ResetS3Data","ResetNasData","hideModal","readPCFile","useCallback","file","CHUNK_SIZE","decoder","TextDecoder","offset","lineCount","results","preview","fr","FileReader","onload","decode","stream","lines","split","pop","seek","onerror","notifyError","slice","readAsArrayBuffer","handlePCFileSelect","onDrop","acceptedFiles","getRootProps","getInputProps","isDragActive","useDropzone","accept","handleS3FileSelect","isS3FileSelected","removeS3File","map","name","indexOf","GetS3FileInfo","selectedFile","Math","max","updateSelected","fileIndex","filesCopy","splice","index","isNasFileSelected","handleNasFileSelect","removeNasFile","GetNasFileInfo","fileRemoved","some","fileName","RemoveNasFilesDownloadQueue","endRequestProgress","isFileAdded","InputName","getPreviewFiles","source","_awsFilesInfo$find$fi","_awsFilesInfo$find","_nasFilesInfo$find$fi","_nasFilesInfo$find","endsWith","displayPreviewFiles","substring","lastIndexOf","style","margin","_LoadingDots","LoadingDots","Alert","severity","TextareaAutosize","maxRows","width","resize","overflow","value","disabled","displayOtherInfo","sourceIntegrationName","_span","_li","MaterialModal","title","onClose","maxWidth","onPrimaryButtonRequest","handleSave","handleModalFile","selectedNasFilesInfo","filter","fileInfo","primaryButtonText","isPrimaryButtonDisabled","Tabs","orientation","variant","onChange","handleTabChange","_","_jsx2","Tab","_objectSpread","label","a11yProps","TabPanel","_jsxs","children","_p","_Fragment","Divider","_div","marginBottom","marginTop","_LoadingDots2","_p2","List","display","justifyContent","FormControlLabel","marginRight","checked","control","Checkbox","color","e","handleS3FileCheck","target","ListItem","button","paddingTop","paddingBottom","selected","ListItemText","primary","secondary","LastModified","Moment","format","Autocomplete","autoComplete","fullWidth","options","getOptionLabel","option","_value$ServerPath","ServerPath","SetNasFilesList","handleNasServerChange","loading","loadingText","renderInput","TextField","InputProps","helperText","event","_selectedNasServer$Se","Button","minWidth","searchNasFiles","padding","_CircularLoading","CircularLoading","saved","_LoadingDots3","_p3","handleNasFileCheck","propTypes","PropTypes","displayName","withModal","_Button","requestInProgress","setRequestInProgress","errorMessage","setErrorMessage","handleClose","requestDeploymentRefresh","unlockAndEdit","fetchT","flowId","flowItemId","jsonHeaders","history","flowUrl","footer","renderFooter","cancelBtn","unlockAndEditBtn","unlockAndDeployBtn","dense","flowName","flowItemName","destinationName","secondaryTypographyProps","placeholder","wikiSearchHistoryKeyName","wikiCategories","Object","freeze","none","flows","release","wikiCategoriesArray","Collapsible","IsOpen","internal","notFoundMarkdown","titles","surnameSuffixes","states","abbreviation","columnPattern","validSnowflakeTableSpaces","test","validStartChar","validSnowflakeColumn","parseValidColumnName","replace"],"sourceRoot":""}