@erpsquad/common 1.8.99 → 1.8.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index/index.esm10.js +3 -3
- package/dist/_virtual/index/index.esm11.js +4 -2
- package/dist/_virtual/index/index.esm11.js.map +1 -1
- package/dist/_virtual/index/index.esm2.js +3 -3
- package/dist/_virtual/index/index.esm3.js +2 -4
- package/dist/_virtual/index/index.esm3.js.map +1 -1
- package/dist/_virtual/index/index.esm4.js +3 -3
- package/dist/_virtual/index/index.esm5.js +3 -3
- package/dist/_virtual/index/index.esm6.js +3 -3
- package/dist/_virtual/index/index.esm7.js +3 -3
- package/dist/_virtual/index/index.esm8.js +3 -3
- package/dist/_virtual/index/index.esm9.js +3 -3
- package/dist/_virtual/index/index10.js +1 -1
- package/dist/_virtual/index/index11.js +1 -1
- package/dist/_virtual/index/index2.js +1 -1
- package/dist/_virtual/index/index3.js +1 -1
- package/dist/_virtual/index/index4.js +1 -1
- package/dist/_virtual/index/index5.js +1 -1
- package/dist/_virtual/index/index6.js +1 -1
- package/dist/_virtual/index/index7.js +1 -1
- package/dist/_virtual/index/index8.js +1 -1
- package/dist/_virtual/index/index9.js +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js +9 -12
- package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
- package/dist/components/action-bar/action-bar/index.js +24 -24
- package/dist/components/action-bar/action-bar/index.js.map +1 -1
- package/dist/components/filter/filter/index.esm.js +7 -10
- package/dist/components/filter/filter/index.esm.js.map +1 -1
- package/dist/components/filter/filter/index.js +21 -21
- package/dist/components/filter/filter/index.js.map +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -3
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -3
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/index.esm.js +3 -1
- package/dist/index.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js.map +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js.map +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
- package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
- package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
- package/dist/src/utils/api-config.d.ts +15 -0
- package/dist/style.css +77 -77
- package/dist/utils/api/index.esm.js +13 -5
- package/dist/utils/api/index.esm.js.map +1 -1
- package/dist/utils/api/index.js +1 -1
- package/dist/utils/api/index.js.map +1 -1
- package/dist/utils/api-config/index.esm.js +20 -0
- package/dist/utils/api-config/index.esm.js.map +1 -1
- package/dist/utils/api-config/index.js +1 -1
- package/dist/utils/api-config/index.js.map +1 -1
- package/dist/utils/api-config.d.ts +15 -0
- package/dist/utils/index.esm.js +3 -1
- package/dist/utils/index.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -3
- package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
- package/dist/views/template-editor/templates/index.esm.js +0 -3
- package/dist/views/template-editor/templates/index.esm.js.map +1 -1
- package/dist/views/template-editor/templates/index.js +5 -5
- package/dist/views/template-editor/templates/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
let apiConfig = null;
|
|
2
|
+
const subscribers = [];
|
|
3
|
+
function onApiConfigReady(callback) {
|
|
4
|
+
if (apiConfig) {
|
|
5
|
+
callback(apiConfig);
|
|
6
|
+
} else {
|
|
7
|
+
subscribers.push(callback);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
2
10
|
function initializeApiConfig(config) {
|
|
3
11
|
if (apiConfig) {
|
|
4
12
|
console.warn("API configuration is already initialized. Overwriting with new values.");
|
|
@@ -12,6 +20,13 @@ function initializeApiConfig(config) {
|
|
|
12
20
|
s3BucketUrl: apiConfig.s3BucketUrl,
|
|
13
21
|
socketBaseUrl: apiConfig.socketBaseUrl
|
|
14
22
|
});
|
|
23
|
+
subscribers.forEach((callback) => {
|
|
24
|
+
try {
|
|
25
|
+
callback(apiConfig);
|
|
26
|
+
} catch (error) {
|
|
27
|
+
console.error("Error in API config subscriber:", error);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
15
30
|
}
|
|
16
31
|
function getApiConfig() {
|
|
17
32
|
if (!apiConfig) {
|
|
@@ -21,6 +36,9 @@ function getApiConfig() {
|
|
|
21
36
|
}
|
|
22
37
|
return apiConfig;
|
|
23
38
|
}
|
|
39
|
+
function getApiConfigSafe() {
|
|
40
|
+
return apiConfig;
|
|
41
|
+
}
|
|
24
42
|
function isApiConfigInitialized() {
|
|
25
43
|
return apiConfig !== null;
|
|
26
44
|
}
|
|
@@ -29,8 +47,10 @@ function resetApiConfig() {
|
|
|
29
47
|
}
|
|
30
48
|
export {
|
|
31
49
|
getApiConfig,
|
|
50
|
+
getApiConfigSafe,
|
|
32
51
|
initializeApiConfig,
|
|
33
52
|
isApiConfigInitialized,
|
|
53
|
+
onApiConfigReady,
|
|
34
54
|
resetApiConfig
|
|
35
55
|
};
|
|
36
56
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../src/utils/api-config.ts"],"sourcesContent":["\nexport interface ApiConfig {\n backendBaseUrl: string;\n s3BucketUrl: string;\n socketBaseUrl: string;\n}\n\nlet apiConfig: ApiConfig | null = null;\n\nexport function initializeApiConfig(config: ApiConfig): void {\n if (apiConfig) {\n console.warn('API configuration is already initialized. Overwriting with new values.');\n }\n\n // Validate required fields\n if (!config.backendBaseUrl) {\n throw new Error('backendBaseUrl is required in API configuration');\n }\n\n apiConfig = { ...config };\n\n console.log('API configuration initialized:', {\n backendBaseUrl: apiConfig.backendBaseUrl,\n s3BucketUrl: apiConfig.s3BucketUrl,\n socketBaseUrl: apiConfig.socketBaseUrl,\n });\n}\n\nexport function getApiConfig(): ApiConfig {\n if (!apiConfig) {\n throw new Error(\n 'API configuration not initialized. Please call initializeApiConfig() before using API features. ' +\n 'See documentation: https://github.com/erpforce/common#api-configuration'\n );\n }\n\n return apiConfig;\n}\n\n\nexport function isApiConfigInitialized(): boolean {\n return apiConfig !== null;\n}\n\n\nexport function resetApiConfig(): void {\n apiConfig = null;\n}\n"],"names":[],"mappings":"AAOA,IAAI,YAA8B;
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../src/utils/api-config.ts"],"sourcesContent":["\nexport interface ApiConfig {\n backendBaseUrl: string;\n s3BucketUrl: string;\n socketBaseUrl: string;\n}\n\nlet apiConfig: ApiConfig | null = null;\n\n// Subscriber pattern - callbacks to be notified when config is ready\ntype ConfigSubscriber = (config: ApiConfig) => void;\nconst subscribers: ConfigSubscriber[] = [];\n\n/**\n * Register a callback to be called when API config is initialized.\n * If config is already initialized, the callback is called immediately.\n * This allows modules to register their setBaseUrl calls without\n * worrying about initialization order.\n */\nexport function onApiConfigReady(callback: ConfigSubscriber): void {\n if (apiConfig) {\n // Config already initialized, call immediately\n callback(apiConfig);\n } else {\n // Store for later when config is initialized\n subscribers.push(callback);\n }\n}\n\nexport function initializeApiConfig(config: ApiConfig): void {\n if (apiConfig) {\n console.warn('API configuration is already initialized. Overwriting with new values.');\n }\n\n // Validate required fields\n if (!config.backendBaseUrl) {\n throw new Error('backendBaseUrl is required in API configuration');\n }\n\n apiConfig = { ...config };\n\n console.log('API configuration initialized:', {\n backendBaseUrl: apiConfig.backendBaseUrl,\n s3BucketUrl: apiConfig.s3BucketUrl,\n socketBaseUrl: apiConfig.socketBaseUrl,\n });\n\n // Notify all subscribers\n subscribers.forEach(callback => {\n try {\n callback(apiConfig!);\n } catch (error) {\n console.error('Error in API config subscriber:', error);\n }\n });\n}\n\nexport function getApiConfig(): ApiConfig {\n if (!apiConfig) {\n throw new Error(\n 'API configuration not initialized. Please call initializeApiConfig() before using API features. ' +\n 'See documentation: https://github.com/erpforce/common#api-configuration'\n );\n }\n\n return apiConfig;\n}\n\n/**\n * Get API config if available, otherwise return null.\n * Use this for optional access where you want to gracefully handle\n * uninitialized state.\n */\nexport function getApiConfigSafe(): ApiConfig | null {\n return apiConfig;\n}\n\nexport function isApiConfigInitialized(): boolean {\n return apiConfig !== null;\n}\n\n\nexport function resetApiConfig(): void {\n apiConfig = null;\n}\n"],"names":[],"mappings":"AAOA,IAAI,YAA8B;AAIlC,MAAM,cAAkC,CAAA;AAQjC,SAAS,iBAAiB,UAAkC;AAC/D,MAAI,WAAW;AAEX,aAAS,SAAS;AAAA,EACtB,OAAO;AAEH,gBAAY,KAAK,QAAQ;AAAA,EAC7B;AACJ;AAEO,SAAS,oBAAoB,QAAyB;AACzD,MAAI,WAAW;AACX,YAAQ,KAAK,wEAAwE;AAAA,EACzF;AAGA,MAAI,CAAC,OAAO,gBAAgB;AACxB,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACrE;AAEA,cAAY,EAAE,GAAG,OAAA;AAEjB,UAAQ,IAAI,kCAAkC;AAAA,IAC1C,gBAAgB,UAAU;AAAA,IAC1B,aAAa,UAAU;AAAA,IACvB,eAAe,UAAU;AAAA,EAAA,CAC5B;AAGD,cAAY,QAAQ,CAAA,aAAY;AAC5B,QAAI;AACA,eAAS,SAAU;AAAA,IACvB,SAAS,OAAO;AACZ,cAAQ,MAAM,mCAAmC,KAAK;AAAA,IAC1D;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,eAA0B;AACtC,MAAI,CAAC,WAAW;AACZ,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAAA,EAGR;AAEA,SAAO;AACX;AAOO,SAAS,mBAAqC;AACjD,SAAO;AACX;AAEO,SAAS,yBAAkC;AAC9C,SAAO,cAAc;AACzB;AAGO,SAAS,iBAAuB;AACnC,cAAY;AAChB;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});let i=null;exports.getApiConfig=function(){if(!i)throw new Error("API configuration not initialized. Please call initializeApiConfig() before using API features. See documentation: https://github.com/erpforce/common#api-configuration");return i},exports.initializeApiConfig=function(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});let i=null;const e=[];exports.getApiConfig=function(){if(!i)throw new Error("API configuration not initialized. Please call initializeApiConfig() before using API features. See documentation: https://github.com/erpforce/common#api-configuration");return i},exports.getApiConfigSafe=function(){return i},exports.initializeApiConfig=function(n){if(!n.backendBaseUrl)throw new Error("backendBaseUrl is required in API configuration");i={...n},e.forEach(e=>{try{e(i)}catch(n){}})},exports.isApiConfigInitialized=function(){return null!==i},exports.onApiConfigReady=function(n){i?n(i):e.push(n)},exports.resetApiConfig=function(){i=null};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/utils/api-config.ts"],"sourcesContent":["\nexport interface ApiConfig {\n backendBaseUrl: string;\n s3BucketUrl: string;\n socketBaseUrl: string;\n}\n\nlet apiConfig: ApiConfig | null = null;\n\nexport function initializeApiConfig(config: ApiConfig): void {\n if (apiConfig) {\n console.warn('API configuration is already initialized. Overwriting with new values.');\n }\n\n // Validate required fields\n if (!config.backendBaseUrl) {\n throw new Error('backendBaseUrl is required in API configuration');\n }\n\n apiConfig = { ...config };\n\n console.log('API configuration initialized:', {\n backendBaseUrl: apiConfig.backendBaseUrl,\n s3BucketUrl: apiConfig.s3BucketUrl,\n socketBaseUrl: apiConfig.socketBaseUrl,\n });\n}\n\nexport function getApiConfig(): ApiConfig {\n if (!apiConfig) {\n throw new Error(\n 'API configuration not initialized. Please call initializeApiConfig() before using API features. ' +\n 'See documentation: https://github.com/erpforce/common#api-configuration'\n );\n }\n\n return apiConfig;\n}\n\n\nexport function isApiConfigInitialized(): boolean {\n return apiConfig !== null;\n}\n\n\nexport function resetApiConfig(): void {\n apiConfig = null;\n}\n"],"names":["apiConfig","Error","config","backendBaseUrl"],"mappings":"oEAOA,IAAIA,EAA8B,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/utils/api-config.ts"],"sourcesContent":["\nexport interface ApiConfig {\n backendBaseUrl: string;\n s3BucketUrl: string;\n socketBaseUrl: string;\n}\n\nlet apiConfig: ApiConfig | null = null;\n\n// Subscriber pattern - callbacks to be notified when config is ready\ntype ConfigSubscriber = (config: ApiConfig) => void;\nconst subscribers: ConfigSubscriber[] = [];\n\n/**\n * Register a callback to be called when API config is initialized.\n * If config is already initialized, the callback is called immediately.\n * This allows modules to register their setBaseUrl calls without\n * worrying about initialization order.\n */\nexport function onApiConfigReady(callback: ConfigSubscriber): void {\n if (apiConfig) {\n // Config already initialized, call immediately\n callback(apiConfig);\n } else {\n // Store for later when config is initialized\n subscribers.push(callback);\n }\n}\n\nexport function initializeApiConfig(config: ApiConfig): void {\n if (apiConfig) {\n console.warn('API configuration is already initialized. Overwriting with new values.');\n }\n\n // Validate required fields\n if (!config.backendBaseUrl) {\n throw new Error('backendBaseUrl is required in API configuration');\n }\n\n apiConfig = { ...config };\n\n console.log('API configuration initialized:', {\n backendBaseUrl: apiConfig.backendBaseUrl,\n s3BucketUrl: apiConfig.s3BucketUrl,\n socketBaseUrl: apiConfig.socketBaseUrl,\n });\n\n // Notify all subscribers\n subscribers.forEach(callback => {\n try {\n callback(apiConfig!);\n } catch (error) {\n console.error('Error in API config subscriber:', error);\n }\n });\n}\n\nexport function getApiConfig(): ApiConfig {\n if (!apiConfig) {\n throw new Error(\n 'API configuration not initialized. Please call initializeApiConfig() before using API features. ' +\n 'See documentation: https://github.com/erpforce/common#api-configuration'\n );\n }\n\n return apiConfig;\n}\n\n/**\n * Get API config if available, otherwise return null.\n * Use this for optional access where you want to gracefully handle\n * uninitialized state.\n */\nexport function getApiConfigSafe(): ApiConfig | null {\n return apiConfig;\n}\n\nexport function isApiConfigInitialized(): boolean {\n return apiConfig !== null;\n}\n\n\nexport function resetApiConfig(): void {\n apiConfig = null;\n}\n"],"names":["apiConfig","subscribers","Error","config","backendBaseUrl","forEach","callback","error","push"],"mappings":"oEAOA,IAAIA,EAA8B,KAIlC,MAAMC,EAAkC,wBA8CjC,WACH,IAAKD,EACD,MAAM,IAAIE,MACN,2KAKR,OAAOF,CACX,2BAOO,WACH,OAAOA,CACX,8BA9CO,SAA6BG,GAMhC,IAAKA,EAAOC,eACR,MAAM,IAAIF,MAAM,mDAGpBF,EAAY,IAAKG,GASjBF,EAAYI,QAAQC,IAChB,IACIA,EAASN,EACb,OAASO,GAET,GAER,iCAsBO,WACH,OAAqB,OAAdP,CACX,2BA5DO,SAA0BM,GACzBN,EAEAM,EAASN,GAGTC,EAAYO,KAAKF,EAEzB,yBAuDO,WACHN,EAAY,IAChB"}
|
|
@@ -3,7 +3,22 @@ export interface ApiConfig {
|
|
|
3
3
|
s3BucketUrl: string;
|
|
4
4
|
socketBaseUrl: string;
|
|
5
5
|
}
|
|
6
|
+
type ConfigSubscriber = (config: ApiConfig) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Register a callback to be called when API config is initialized.
|
|
9
|
+
* If config is already initialized, the callback is called immediately.
|
|
10
|
+
* This allows modules to register their setBaseUrl calls without
|
|
11
|
+
* worrying about initialization order.
|
|
12
|
+
*/
|
|
13
|
+
export declare function onApiConfigReady(callback: ConfigSubscriber): void;
|
|
6
14
|
export declare function initializeApiConfig(config: ApiConfig): void;
|
|
7
15
|
export declare function getApiConfig(): ApiConfig;
|
|
16
|
+
/**
|
|
17
|
+
* Get API config if available, otherwise return null.
|
|
18
|
+
* Use this for optional access where you want to gracefully handle
|
|
19
|
+
* uninitialized state.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getApiConfigSafe(): ApiConfig | null;
|
|
8
22
|
export declare function isApiConfigInitialized(): boolean;
|
|
9
23
|
export declare function resetApiConfig(): void;
|
|
24
|
+
export {};
|
package/dist/utils/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { apiConfigurations, fetchApi, getCurrency, getItems, getOptions, initializeApiBaseUrls } from "./api/index.esm.js";
|
|
2
|
-
import { getApiConfig, initializeApiConfig, isApiConfigInitialized, resetApiConfig } from "./api-config/index.esm.js";
|
|
2
|
+
import { getApiConfig, getApiConfigSafe, initializeApiConfig, isApiConfigInitialized, onApiConfigReady, resetApiConfig } from "./api-config/index.esm.js";
|
|
3
3
|
import { calculateEntries } from "./calculation/index.esm.js";
|
|
4
4
|
import { blue, error, green, lightGreen, magenta, neutral, olive, primaryGreen, red } from "./color/index.esm.js";
|
|
5
5
|
import { getFileNamesFromUrls, getFileNamesFromUrlsAsLink, renderEmptyRowsFallback, renderValueField, transformTableColumns } from "./common-utility/index.esm.js";
|
|
@@ -116,6 +116,7 @@ export {
|
|
|
116
116
|
generateRouteWithId,
|
|
117
117
|
getAccessibleModules,
|
|
118
118
|
getApiConfig,
|
|
119
|
+
getApiConfigSafe,
|
|
119
120
|
getCountry,
|
|
120
121
|
getCountryIdByName,
|
|
121
122
|
getCurrency,
|
|
@@ -169,6 +170,7 @@ export {
|
|
|
169
170
|
neutral,
|
|
170
171
|
olive,
|
|
171
172
|
omitDataKeys,
|
|
173
|
+
onApiConfigReady,
|
|
172
174
|
partyDuplicateCheck,
|
|
173
175
|
partyEmailIds,
|
|
174
176
|
pastDateValidation,
|
package/dist/utils/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./api/index.js"),t=require("./api-config/index.js"),r=require("./calculation/index.js"),a=require("./color/index.js"),o=require("./common-utility/index.js"),s=require("./common/index.js"),i=require("./constant/index.js"),n=require("./country/index.js"),p=require("./date-range/index.js"),l=require("./dateFormat/index.js"),d=require("./dateValidation/index.js"),x=require("./deformat-text/index.js"),m=require("./export-filters/index.js"),u=require("./fileSize/index.js"),c=require("./form-builder-conversion/index.js"),g=require("./form-builder-deconversion/index.js"),D=require("./format-text/index.js");require("./i18n/index.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./api/index.js"),t=require("./api-config/index.js"),r=require("./calculation/index.js"),a=require("./color/index.js"),o=require("./common-utility/index.js"),s=require("./common/index.js"),i=require("./constant/index.js"),n=require("./country/index.js"),p=require("./date-range/index.js"),l=require("./dateFormat/index.js"),d=require("./dateValidation/index.js"),x=require("./deformat-text/index.js"),m=require("./export-filters/index.js"),u=require("./fileSize/index.js"),c=require("./form-builder-conversion/index.js"),g=require("./form-builder-deconversion/index.js"),D=require("./format-text/index.js");require("./i18n/index.js");var f=require("./language/index.js"),T=require("./menu-filter/index.js"),I=require("./metaComponent/index.js"),y=require("./migration-utils/index.js"),A=require("./navigation-utils/index.js"),F=require("./route-utils/index.js"),E=require("./translations/index.js"),S=require("i18next"),C=require("../api-client/api.rbac/api/index.js"),h=require("../api-client/api.drive/api/index.js"),N=require("../api-client/api.system-feature/api/index.js");function R(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var O=/* @__PURE__ */R(S);exports.apiConfigurations=e.apiConfigurations,exports.fetchApi=e.fetchApi,exports.getCurrency=e.getCurrency,exports.getItems=e.getItems,exports.getOptions=e.getOptions,exports.initializeApiBaseUrls=e.initializeApiBaseUrls,exports.getApiConfig=t.getApiConfig,exports.getApiConfigSafe=t.getApiConfigSafe,exports.initializeApiConfig=t.initializeApiConfig,exports.isApiConfigInitialized=t.isApiConfigInitialized,exports.onApiConfigReady=t.onApiConfigReady,exports.resetApiConfig=t.resetApiConfig,exports.calculateEntries=r.calculateEntries,exports.blue=a.blue,exports.error=a.error,exports.green=a.green,exports.lightGreen=a.lightGreen,exports.magenta=a.magenta,exports.neutral=a.neutral,exports.olive=a.olive,exports.primaryGreen=a.primaryGreen,exports.red=a.red,exports.getFileNamesFromUrls=o.getFileNamesFromUrls,exports.getFileNamesFromUrlsAsLink=o.getFileNamesFromUrlsAsLink,exports.renderEmptyRowsFallback=o.renderEmptyRowsFallback,exports.renderValueField=o.renderValueField,exports.transformTableColumns=o.transformTableColumns,exports.InvoiceStatus=s.InvoiceStatus,exports.addOrEditArray=s.addOrEditArray,exports.appendConditionSafely=s.appendConditionSafely,exports.calculateAmountData=s.calculateAmountData,exports.calculatePeriods=s.calculatePeriods,exports.checkDuplicateTracking=s.checkDuplicateTracking,exports.checkForDuplicate=s.checkForDuplicate,exports.checkSkuAndItemName=s.checkSkuAndItemName,exports.createdOnAndBy=s.createdOnAndBy,exports.defaultCompany=s.defaultCompany,exports.defaultCurrencyFormat=s.defaultCurrencyFormat,exports.defaultCurrencySymbol=s.defaultCurrencySymbol,exports.displayPhone=s.displayPhone,exports.downloadDoc=s.downloadDoc,exports.downloadFile=s.downloadFile,exports.fetchAssemblyItemData=s.fetchAssemblyItemData,exports.fetchCompanyLocations=s.fetchCompanyLocations,exports.fetchDataLocally=s.fetchDataLocally,exports.fetchExchageRate=s.fetchExchageRate,exports.fetchItems=s.fetchItems,exports.fetchOptions=s.fetchOptions,exports.fetchRentalResponseItems=s.fetchRentalResponseItems,exports.fetchRfqItemsByIdForResponse=s.fetchRfqItemsByIdForResponse,exports.filterAccessibleModules=s.filterAccessibleModules,exports.filterCoaByCompanyIdOrNull=s.filterCoaByCompanyIdOrNull,exports.findById=s.findById,exports.formatAmount=s.formatAmount,exports.formatAmountWithCurrency=s.formatAmountWithCurrency,exports.formatAmountWithCurrencyData=s.formatAmountWithCurrencyData,exports.formatDateForPayload=s.formatDateForPayload,exports.formatDateTimeForPayload=s.formatDateTimeForPayload,exports.formatEmptyDataToNull=s.formatEmptyDataToNull,exports.formatResponseDatesToDayJS=s.formatResponseDatesToDayJS,exports.formatResponseOnlyDatesToDayJS=s.formatResponseOnlyDatesToDayJS,exports.formatTimeForPayload=s.formatTimeForPayload,exports.generateAndFormatStringFromObj=s.generateAndFormatStringFromObj,exports.generateFields=s.generateFields,exports.generateQueryString=s.generateQueryString,exports.generateRandomId=s.generateRandomId,exports.getAccessibleModules=s.getAccessibleModules,exports.getCountryIdByName=s.getCountryIdByName,exports.getErrorMessage=s.getErrorMessage,exports.getExcelExportTemplate=s.getExcelExportTemplate,exports.getExcelTemplateGenerateTemplate=s.getExcelTemplateGenerateTemplate,exports.getFieldFilters=s.getFieldFilters,exports.getFileName=s.getFileName,exports.getLabelValuePairs=s.getLabelValuePairs,exports.getName=s.getName,exports.getNestedValue=s.getNestedValue,exports.getNextScheduleDate=s.getNextScheduleDate,exports.getOperatorLabel=s.getOperatorLabel,exports.getOptionsData=s.getOptionsData,exports.getPartyDependentData=s.getPartyDependentData,exports.getPartyName=s.getPartyName,exports.getSlicedValue=s.getSlicedValue,exports.getTaxAmountDataFromMultipleTaxCodes=s.getTaxAmountDataFromMultipleTaxCodes,exports.getTaxAmountFromMultipleTaxCodes=s.getTaxAmountFromMultipleTaxCodes,exports.getToken=s.getToken,exports.handleRegularUpload=s.handleRegularUpload,exports.hasValue=s.hasValue,exports.isBetweenTheDates=s.isBetweenTheDates,exports.isJSONString=s.isJSONString,exports.isJsonParse=s.isJsonParse,exports.manageItems=s.manageItems,exports.mapApiPayload=s.mapApiPayload,exports.mapAsyncApiPayload=s.mapAsyncApiPayload,exports.matchedMaterialCostingTypeLabel=s.matchedMaterialCostingTypeLabel,exports.omitDataKeys=s.omitDataKeys,exports.partyDuplicateCheck=s.partyDuplicateCheck,exports.partyEmailIds=s.partyEmailIds,exports.postImportSheet=s.postImportSheet,exports.remainingMaterialCostingTypes=s.remainingMaterialCostingTypes,exports.removeIdFromObject=s.removeIdFromObject,exports.removeIdStaticIdsFromMongoObject=s.removeIdStaticIdsFromMongoObject,exports.setRateBasedOnPriceRules=s.setRateBasedOnPriceRules,exports.showSnackBar=s.showSnackBar,exports.skuGenerator=s.skuGenerator,exports.toFixedWithNumbers=s.toFixedWithNumbers,exports.updateFieldsDisabledState=s.updateFieldsDisabledState,exports.uploadAttachments=s.uploadAttachments,exports.uploadFiles=s.uploadFiles,exports.validateDiscountValidity=s.validateDiscountValidity,exports.INVENTORY_ADD_MODE_DISABLED_FIELDS=i.INVENTORY_ADD_MODE_DISABLED_FIELDS,exports.INVENTORY_ALWAYS_DISABLED_FIELDS=i.INVENTORY_ALWAYS_DISABLED_FIELDS,exports.INVENTORY_EDIT_MODE_DISABLED_FIELDS=i.INVENTORY_EDIT_MODE_DISABLED_FIELDS,exports.INVENTORY_FIELDS_TO_BE_DISABLED=i.INVENTORY_FIELDS_TO_BE_DISABLED,exports.INVENTORY_MATERIAL_COSTING_TYPE_ARR=i.INVENTORY_MATERIAL_COSTING_TYPE_ARR,exports.INVENTORY_MATERIAL_COSTING_TYPE_OPTIONS=i.INVENTORY_MATERIAL_COSTING_TYPE_OPTIONS,exports.INVENTORY_VARIANT_DISABLED_FIELDS=i.INVENTORY_VARIANT_DISABLED_FIELDS,exports.SECTION_TYPES=i.SECTION_TYPES,exports.responseItemDetailsColumns=i.responseItemDetailsColumns,exports.getCountry=n.getCountry,exports.RANGE=p.RANGE,exports.handleCompareDateRange=p.handleCompareDateRange,exports.handleCompareDateRangeSync=p.handleCompareDateRangeSync,exports.UTCDateFormat=l.UTCDateFormat,exports.dateFormat=l.dateFormat,exports.formatDataTime=l.formatDataTime,exports.formatDate=l.formatDate,exports.formatOnlyTime=l.formatOnlyTime,exports.formatUtcDate=l.formatUtcDate,exports.getMinutesFromTime=l.getMinutesFromTime,exports.getTimeFromMinutes=l.getTimeFromMinutes,exports.COMMON_DATE_VALIDATIONS=d.COMMON_DATE_VALIDATIONS,exports.anyDateValidation=d.anyDateValidation,exports.businessDateValidation=d.businessDateValidation,exports.conditionalDateValidation=d.conditionalDateValidation,exports.createCustomMessages=d.createCustomMessages,exports.createDateValidation=d.createDateValidation,exports.dateRangeValidation=d.dateRangeValidation,exports.dateTimeValidation=d.dateTimeValidation,exports.dateValidation=d.dateValidation,exports.futureDateValidation=d.futureDateValidation,exports.pastDateValidation=d.pastDateValidation,exports.deFormatText=x.deFormatText,exports.specificFilters=m.specificFilters,exports.subModuleMappings=m.subModuleMappings,exports.fileSize=u.fileSize,exports.formBuilderConversion=c.formBuilderConversion,exports.convertTableColumns=g.convertTableColumns,exports.formBuilderDeConversion=g.formBuilderDeConversion,exports.convertToUnderscore=D.convertToUnderscore,exports.formatLabel=D.formatLabel,exports.formatText=D.formatText,exports.fetchLanguages=f.fetchLanguages,exports.MenuFilter=T.MenuFilter,exports.MenuFilterService=T.MenuFilterService,exports.ModuleAccessService=T.ModuleAccessService,exports.StorageUtils=T.StorageUtils,exports.MetaComponent=I.MetaComponent,exports.createParameterizedNavigationHandler=y.createParameterizedNavigationHandler,exports.migrateRoutesToUseParams=y.migrateRoutesToUseParams,exports.migrateToPathWithId=y.migrateToPathWithId,exports.updateTableConfigForParameterizedNavigation=y.updateTableConfigForParameterizedNavigation,exports.getEntityId=A.getEntityId,exports.navigateWithId=A.navigateWithId,exports.convertRoutesToUseIdParams=F.convertRoutesToUseIdParams,exports.generateRouteWithId=F.generateRouteWithId,exports.navigateToRouteWithId=F.navigateToRouteWithId,exports.updatePathnameWithIdParams=F.updatePathnameWithIdParams,exports.loadModuleTranslations=E.loadModuleTranslations,Object.defineProperty(exports,"i18n",{enumerable:!0,get:function(){return O.default}}),exports.setRoleURL=C.setBaseUrl,exports.setDriveURL=h.setBaseUrl,exports.setSystemFeatureURL=N.setBaseUrl;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { patchV1FormBuilderId, getV1FormBuilderId, getV1FormBuilderFieldsId
|
|
1
|
+
import { patchV1FormBuilderId, getV1FormBuilderId, getV1FormBuilderFieldsId } from "../../../../api-client/api.system-feature/api/index.esm.js";
|
|
2
2
|
import { createAsyncThunk } from "@reduxjs/toolkit";
|
|
3
3
|
import { getToken } from "../../../../utils/common/index.esm.js";
|
|
4
|
-
import { getApiConfig } from "../../../../utils/api-config/index.esm.js";
|
|
5
|
-
setBaseUrl(`${getApiConfig().backendBaseUrl}/system-feature`);
|
|
6
4
|
const patchFormDataById = createAsyncThunk(
|
|
7
5
|
"formBuilder/put",
|
|
8
6
|
async ({ id, data }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/form-builder/redux/actionCreator.ts"],"sourcesContent":["import { getV1FormBuilderFieldsId, getV1FormBuilderId, patchV1FormBuilderId
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/form-builder/redux/actionCreator.ts"],"sourcesContent":["import { getV1FormBuilderFieldsId, getV1FormBuilderId, patchV1FormBuilderId } from \"@/api-client/api.system-feature/api\";\nimport { GetV1FormBuilderFieldsIdRequest } from \"@/api-client/api.system-feature/api-types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nexport const patchFormDataById = createAsyncThunk(\n\n \"formBuilder/put\",\n async ({ id, data }: any) => {\n const response = await patchV1FormBuilderId({\n ...getToken(),\n id: id,\n ...data,\n });\n return response;\n },\n);\n\nexport const getFormDataById = createAsyncThunk(\n \"formBuilder/getById\",\n async (id: string) => {\n const response = await getV1FormBuilderId({\n ...getToken(),\n id: id,\n });\n return response;\n }\n);\n\n\n\nexport const getFieldsByFormId = createAsyncThunk(\n \"formBuilder/fields/get\",\n async ({ id }: GetV1FormBuilderFieldsIdRequest) => {\n // id = \"661537c19ac80d3d5d0a915a\";\n const response: any = await getV1FormBuilderFieldsId({\n ...getToken(),\n id: id,\n });\n return response?.data.fields;\n },\n);\n"],"names":[],"mappings":";;;AAKO,MAAM,oBAAoB;AAAA,EAE/B;AAAA,EACA,OAAO,EAAE,IAAI,WAAgB;AAC3B,UAAM,WAAW,MAAM,qBAAqB;AAAA,MAC1C,GAAG,SAAA;AAAA,MACH;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AACD,WAAO;AAAA,EACT;AACF;AAEO,MAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA,OAAO,OAAe;AACpB,UAAM,WAAW,MAAM,mBAAmB;AAAA,MACxC,GAAG,SAAA;AAAA,MACH;AAAA,IAAA,CACD;AACD,WAAO;AAAA,EACT;AACF;AAIO,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA,OAAO,EAAE,GAAA,MAA0C;AAEjD,UAAM,WAAgB,MAAM,yBAAyB;AAAA,MACnD,GAAG,SAAA;AAAA,MACH;AAAA,IAAA,CACD;AACD,WAAO,qCAAU,KAAK;AAAA,EACxB;AACF;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../api-client/api.system-feature/api/index.js"),t=require("@reduxjs/toolkit"),r=require("../../../../utils/common/index.js")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../api-client/api.system-feature/api/index.js"),t=require("@reduxjs/toolkit"),r=require("../../../../utils/common/index.js");const i=t.createAsyncThunk("formBuilder/put",async({id:t,data:i})=>await e.patchV1FormBuilderId({...r.getToken(),id:t,...i})),d=t.createAsyncThunk("formBuilder/getById",async t=>await e.getV1FormBuilderId({...r.getToken(),id:t})),a=t.createAsyncThunk("formBuilder/fields/get",async({id:t})=>{const i=await e.getV1FormBuilderFieldsId({...r.getToken(),id:t});return null==i?void 0:i.data.fields});exports.getFieldsByFormId=a,exports.getFormDataById=d,exports.patchFormDataById=i;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/form-builder/redux/actionCreator.ts"],"sourcesContent":["import { getV1FormBuilderFieldsId, getV1FormBuilderId, patchV1FormBuilderId
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/form-builder/redux/actionCreator.ts"],"sourcesContent":["import { getV1FormBuilderFieldsId, getV1FormBuilderId, patchV1FormBuilderId } from \"@/api-client/api.system-feature/api\";\nimport { GetV1FormBuilderFieldsIdRequest } from \"@/api-client/api.system-feature/api-types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nexport const patchFormDataById = createAsyncThunk(\n\n \"formBuilder/put\",\n async ({ id, data }: any) => {\n const response = await patchV1FormBuilderId({\n ...getToken(),\n id: id,\n ...data,\n });\n return response;\n },\n);\n\nexport const getFormDataById = createAsyncThunk(\n \"formBuilder/getById\",\n async (id: string) => {\n const response = await getV1FormBuilderId({\n ...getToken(),\n id: id,\n });\n return response;\n }\n);\n\n\n\nexport const getFieldsByFormId = createAsyncThunk(\n \"formBuilder/fields/get\",\n async ({ id }: GetV1FormBuilderFieldsIdRequest) => {\n // id = \"661537c19ac80d3d5d0a915a\";\n const response: any = await getV1FormBuilderFieldsId({\n ...getToken(),\n id: id,\n });\n return response?.data.fields;\n },\n);\n"],"names":["patchFormDataById","createAsyncThunk","async","id","data","patchV1FormBuilderId","getToken","getFormDataById","getV1FormBuilderId","getFieldsByFormId","response","getV1FormBuilderFieldsId","fields"],"mappings":"yNAKO,MAAMA,EAAoBC,EAAAA,iBAE/B,kBACAC,OAASC,KAAIC,gBACYC,uBAAqB,IACvCC,aACHH,QACGC,KAMIG,EAAkBN,EAAAA,iBAC7B,sBACAC,MAAOC,SACkBK,qBAAmB,IACrCF,aACHH,QAQOM,EAAoBR,EAAAA,iBAC/B,yBACAC,OAASC,SAEP,MAAMO,QAAsBC,2BAAyB,IAChDL,aACHH,OAEF,aAAOO,WAAUN,KAAKQ"}
|
|
@@ -21,11 +21,8 @@ import { usePermissions } from "../../../hooks/use-permissions/index.esm.js";
|
|
|
21
21
|
import { getV1Subjects } from "../../../api-client/api.system-feature/api/index.esm.js";
|
|
22
22
|
import { TemplateModal } from "../template-modal/template-modal/index.esm.js";
|
|
23
23
|
import CompanySelectionModal from "../company-selection-modal/company-selection-modal/index.esm.js";
|
|
24
|
-
import { setBaseUrl } from "../../../api-client/api.rbac/api/index.esm.js";
|
|
25
24
|
/* empty css */
|
|
26
25
|
import MenuItem from "../../../node_modules/@mui/material/MenuItem/MenuItem/index.esm.js";
|
|
27
|
-
import { getApiConfig } from "../../../utils/api-config/index.esm.js";
|
|
28
|
-
setBaseUrl(`${getApiConfig().backendBaseUrl}/rbac`);
|
|
29
26
|
const Templates = ({ type, module, modulePath }) => {
|
|
30
27
|
const { t } = useTranslation();
|
|
31
28
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\nimport { usePages } from '../../hooks/use-pages';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '../../hooks/use-permissions';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\nimport { setBaseUrl } from '../../api-client/api.rbac/api';\nimport { getApiConfig } from '@/utils';\n\nimport './templates.scss';\n\nsetBaseUrl(`${getApiConfig().backendBaseUrl}/rbac`);\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n\tconst { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n\tconst viewEmails = localStorage.getItem('email-subjects-view');\n\tconst [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n\tconst [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 });\n\tconst [rows, setRows] = useState<any[]>([]);\n\tconst [isFetching, setIsFetching] = useState<boolean>(false);\n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst SubjectPermissions = permissions?.Subjects || {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif (!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif (companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else {\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value } })\n\t\t}\n\t};\n\n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif (type == \"email\") {\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({ ...paginationModel, ...(response?.pagination || {}) });\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\tconst companiesArr = await fetchApi({ apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" } });\n\t\tsetCompanies(companiesArr?.data || []);\n\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n\tuseEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt', viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t<MaterialTable\n\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\ttotalPages={total}\n\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\tenableEditing={false}\n\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t}\n\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\tisResetRow={false}\n\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t}\n\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t<GridCard\n\t\t\t\t\tdata={tableRows}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!actionBarActiveTab && (\n\t\t\t\t<Fallback\n\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t</Fallback>\n\t\t\t)}\n\n\t\t\t<Footer\n\t\t\t\ttotal={total}\n\t\t\t\tpaginationModel={{\n\t\t\t\t\t...paginationModel,\n\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t}}\n\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\tresource=''\n\t\t\t/>\n\n\t\t\t{/* Action Menu */}\n\t\t\t<Menu\n\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t</Menu>\n\t\t\t{showTemplateModal && (\n\t\t\t\t<TemplateModal\n\t\t\t\t\temail={showTemplateModal}\n\t\t\t\t\tonClose={() => setShowTemplateModal(null)}\n\t\t\t\t\topen={showTemplateModal !== null}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{showCompanySelectionModal && (\n\t\t\t\t<CompanySelectionModal\n\t\t\t\t\tisOpen={showCompanySelectionModal !== null}\n\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["logo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\nimport { usePages } from '../../hooks/use-pages';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '../../hooks/use-permissions';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\n\nimport './templates.scss';\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n\tconst { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n\tconst viewEmails = localStorage.getItem('email-subjects-view');\n\tconst [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n\tconst [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 });\n\tconst [rows, setRows] = useState<any[]>([]);\n\tconst [isFetching, setIsFetching] = useState<boolean>(false);\n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst SubjectPermissions = permissions?.Subjects || {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif (!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif (companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else {\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value } })\n\t\t}\n\t};\n\n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif (type == \"email\") {\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({ ...paginationModel, ...(response?.pagination || {}) });\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\tconst companiesArr = await fetchApi({ apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" } });\n\t\tsetCompanies(companiesArr?.data || []);\n\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n\tuseEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt', viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t<MaterialTable\n\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\ttotalPages={total}\n\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\tenableEditing={false}\n\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t}\n\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\tisResetRow={false}\n\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t}\n\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t<GridCard\n\t\t\t\t\tdata={tableRows}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!actionBarActiveTab && (\n\t\t\t\t<Fallback\n\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t</Fallback>\n\t\t\t)}\n\n\t\t\t<Footer\n\t\t\t\ttotal={total}\n\t\t\t\tpaginationModel={{\n\t\t\t\t\t...paginationModel,\n\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t}}\n\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\tresource=''\n\t\t\t/>\n\n\t\t\t{/* Action Menu */}\n\t\t\t<Menu\n\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t</Menu>\n\t\t\t{showTemplateModal && (\n\t\t\t\t<TemplateModal\n\t\t\t\t\temail={showTemplateModal}\n\t\t\t\t\tonClose={() => setShowTemplateModal(null)}\n\t\t\t\t\topen={showTemplateModal !== null}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{showCompanySelectionModal && (\n\t\t\t\t<CompanySelectionModal\n\t\t\t\t\tisOpen={showCompanySelectionModal !== null}\n\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["logo"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),
|
|
2
|
-
/* @__PURE__ */e.jsx(
|
|
3
|
-
/* @__PURE__ */e.jsx(r.Footer,{total:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=,/* empty css */i=,/* empty css */s=,/* empty css */l=,/* empty css */n=,/* empty css */o=,/* empty css */r=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */p=,/* empty css */g=,/* empty css */j=require("react-i18next"),x=,/* empty css */b=,/* empty css */y=require("react-router-dom"),h=,/* empty css */f=,/* empty css */v=,/* empty css */q=;/* empty css */;/* empty css */var S=;/* empty css */exports.default=({type:C,module:k,modulePath:A})=>{const{t:M}=j.useTranslation(),{activePage:T,updatePageInfo:w,schemaFields:_,generatedColumns:E,updateGeneratedColumns:P}=d.usePages(),N=u.default(T),[F,I]=t.useState(null),R=localStorage.getItem("email-subjects-view"),[D,O]=t.useState(R?JSON.parse(R):[{label:"Table",position:0}]),[$,G]=t.useState(i.default.TABLE),[z,B]=t.useState({pageNo:1,limit:10,totalCount:0,skip:0}),[K,L]=t.useState([]),[V]=t.useState(!1),[J,Q]=t.useState([]),[H,U]=t.useState(null),[W,X]=t.useState(null),[Y,Z]=t.useState([]),ee=y.useNavigate(),{pageNo:te,limit:ae,totalCount:ie}=z,se=N.page_size||ae,le=se?Math.ceil(ie/se):0,ne=se*(te-1),oe=h.usePermissions(),re=b.templateRoutes(A,C),ue=(null==oe?void 0:oe.Subjects)||{},{canAdd:de=!1,canEdit:ce=!1}=ue,me=[{label:"New Template",handleAction:e=>(e=>{var t,a;(null==Y?void 0:Y.length)?(null==Y?void 0:Y.length)>1?X(e):ee(re.ADD_TEMPLATE(e._id),{state:{company_id:(null==(t=Y[0])?void 0:t.id)||(null==(a=Y[0])?void 0:a.value)}}):x.enqueueSnackbar("Please add a company first",{variant:"error"})})(e),disabled:e=>!ce},{label:"Add From Template",handleAction:e=>U(e),disabled:e=>!de}],pe=t.useCallback(async()=>{const{sort:e,filterQueryString:t,search:a}=N,i=a?`&subject.like=${a}`:"",s=[];s.push(C),"email"==C&&s.push("approval_email");const l=m.appendConditionSafely(t,`&type.in=[${s.join(",")}]&module.eq=${k}${i}`),n=await f.getV1Subjects({...m.getToken(),skip:ne,limit:se,...e&&{order:`${e.id}:${e.desc?-1:1}`},...l&&"()"!==l&&{filters:l}});L((null==n?void 0:n.data)||[]),B({...z,...(null==n?void 0:n.pagination)||{}})},[se,ne,null==N?void 0:N.search,null==N?void 0:N.filterQueryString,null==N?void 0:N.sort]),ge=t.useMemo(()=>K||[],[K]),je=t.useMemo(()=>c.transformTableColumns({columns:E.columns,currencySymbol:e=>{var t,a;return(null==(a=null==(t=e.original)?void 0:t.currency_data)?void 0:a.symbol)||m.defaultCurrencySymbol()},translationFn:M,enableFooter:!0,rows:ge,statusClasses:""}),[ge,M,E.columns]),xe=()=>{B({pageNo:1,limit:10,totalCount:0})};return t.useEffect(()=>{pe()},[pe]),t.useEffect(()=>((async()=>{const e=await g.fetchApi({apiKey:"company",filters:{skip:0,limit:100,order:"id:1"}});Z((null==e?void 0:e.data)||[])})(),xe),[]),t.useEffect(()=>{(null==D?void 0:D.length)&&localStorage.setItem("email-subjects-view",JSON.stringify(D))},[D]),/* @__PURE__ */e.jsxs("section",{className:"templates",children:[
|
|
2
|
+
/* @__PURE__ */e.jsx(a.ActionBar,{title:"email"===C?"Emails":"PDFs",data:D,setData:O,active:$,setActive:G,handleSearch:e=>{w({search:e}),B({...z,pageNo:1})},disabledViews:["Kanban","Calendar","Gantt",i.default.GRID],fields:_,selectedIds:J,button:!1}),$===i.default.TABLE&&/* @__PURE__ */e.jsx(s.MaterialTable,{rows:ge||[],columns:je,paginationModel:z,totalPages:le,columnOrder:["mrt-row-select",...E.orderKeys],states:{isLoading:V},onSortingChange:e=>w({sort:e}),enableColumnDragging:!1,enableEditing:!1,onSelectRow:e=>Q(e.map(e=>e.original.id)),enableAddCustomField:!1,rowActionMenu:me,isResetRow:!1,handleColumnOrdering:e=>P({orderKeys:e.slice(1)}),onColumnVisibility:e=>P({columns:e})}),$===i.default.GRID&&/* @__PURE__ */e.jsx(GridCard,{data:ge,rowActionMenu:me}),!$&&/* @__PURE__ */e.jsx(n.Fallback,{heading:M("rental.settings.termsAndConditions.title"),subHeading:"No data available",icon:/* @__PURE__ */e.jsx("img",{src:p.images.invoiceFallback})}),
|
|
3
|
+
/* @__PURE__ */e.jsx(r.Footer,{total:le,paginationModel:{...z,limit:N.page_size},handlePaginationModel:e=>{N.page_size!=(null==e?void 0:e.limit)&&w({page_size:e.limit}),B(e)},resource:""}),
|
|
4
4
|
/* @__PURE__ */e.jsxs(o.Menu,{anchorEl:F,open:Boolean(F),onClose:()=>I(null),children:[
|
|
5
|
-
/* @__PURE__ */e.jsx(
|
|
6
|
-
/* @__PURE__ */e.jsx(
|
|
5
|
+
/* @__PURE__ */e.jsx(S.default,{children:/* @__PURE__ */e.jsx(l.Typography,{type:"s4",color:"theme.secondary.1000",children:M("common.upload")})}),
|
|
6
|
+
/* @__PURE__ */e.jsx(S.default,{children:/* @__PURE__ */e.jsx(l.Typography,{type:"s4",color:"theme.secondary.1000",children:M("common.print")})})]}),H&&/* @__PURE__ */e.jsx(v.TemplateModal,{email:H,onClose:()=>U(null),open:null!==H,companies:Y,templateRoutes:re}),W&&/* @__PURE__ */e.jsx(q.default,{isOpen:null!==W,setIsOpen:X,companies:Y,email:W,templateRoutes:re})]})};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\nimport { usePages } from '../../hooks/use-pages';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '../../hooks/use-permissions';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\nimport { setBaseUrl } from '../../api-client/api.rbac/api';\nimport { getApiConfig } from '@/utils';\n\nimport './templates.scss';\n\nsetBaseUrl(`${getApiConfig().backendBaseUrl}/rbac`);\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n\tconst { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n\tconst viewEmails = localStorage.getItem('email-subjects-view');\n\tconst [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n\tconst [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 });\n\tconst [rows, setRows] = useState<any[]>([]);\n\tconst [isFetching, setIsFetching] = useState<boolean>(false);\n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst SubjectPermissions = permissions?.Subjects || {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif (!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif (companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else {\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value } })\n\t\t}\n\t};\n\n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif (type == \"email\") {\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({ ...paginationModel, ...(response?.pagination || {}) });\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\tconst companiesArr = await fetchApi({ apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" } });\n\t\tsetCompanies(companiesArr?.data || []);\n\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n\tuseEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt', viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t<MaterialTable\n\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\ttotalPages={total}\n\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\tenableEditing={false}\n\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t}\n\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\tisResetRow={false}\n\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t}\n\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t<GridCard\n\t\t\t\t\tdata={tableRows}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!actionBarActiveTab && (\n\t\t\t\t<Fallback\n\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t</Fallback>\n\t\t\t)}\n\n\t\t\t<Footer\n\t\t\t\ttotal={total}\n\t\t\t\tpaginationModel={{\n\t\t\t\t\t...paginationModel,\n\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t}}\n\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\tresource=''\n\t\t\t/>\n\n\t\t\t{/* Action Menu */}\n\t\t\t<Menu\n\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t</Menu>\n\t\t\t{showTemplateModal && (\n\t\t\t\t<TemplateModal\n\t\t\t\t\temail={showTemplateModal}\n\t\t\t\t\tonClose={() => setShowTemplateModal(null)}\n\t\t\t\t\topen={showTemplateModal !== null}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{showCompanySelectionModal && (\n\t\t\t\t<CompanySelectionModal\n\t\t\t\t\tisOpen={showCompanySelectionModal !== null}\n\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["setBaseUrl","getApiConfig","backendBaseUrl","type","module","modulePath","t","useTranslation","activePage","aPage","updatePageInfo","schemaFields","generatedColumns","updateGeneratedColumns","usePages","useDeepMemo","actionAnchorEl","setActionAnchorEl","useState","viewEmails","localStorage","getItem","actionBarData","setActionBarData","JSON","parse","label","position","actionBarActiveTab","setActionBarActiveTab","viewTypes","TABLE","paginationModel","setPaginationModel","pageNo","limit","totalCount","skip","rows","setRows","isFetching","selectedRow","setSelectedRow","showTemplateModal","setShowTemplateModal","showCompanySelectionModal","setShowCompanySelectionModal","companies","setCompanies","navigate","useNavigate","pLimit","page_size","total","Math","ceil","permissions","usePermissions","ROUTES","templateRoutes","SubjectPermissions","Subjects","canAdd","canEdit","rowActionMenu","handleAction","email","length","ADD_TEMPLATE","_id","state","company_id","_a","id","_b","value","enqueueSnackbar","variant","handleNewEmail","disabled","row","getEmails","useCallback","async","sort","filterQueryString","search","searchFiters","types","push","uFilters","appendConditionSafely","join","response","getV1Subjects","getToken","order","desc","filters","data","pagination","tableRows","useMemo","tableColumns","transformTableColumns","columns","currencySymbol","original","currency_data","symbol","defaultCurrencySymbol","translationFn","enableFooter","statusClasses","cleanUp","useEffect","companiesArr","fetchApi","apiKey","getCopmanies","setItem","stringify","jsxs","className","children","jsx","ActionBar","title","setData","active","setActive","handleSearch","disabledViews","GRID","fields","selectedIds","button","MaterialTable","totalPages","columnOrder","orderKeys","states","isLoading","onSortingChange","enableColumnDragging","enableEditing","onSelectRow","r","map","ele","enableAddCustomField","isResetRow","handleColumnOrdering","colOrder","slice","onColumnVisibility","GridCard","Fallback","heading","subHeading","icon","src","logo","invoiceFallback","Footer","handlePaginationModel","model","resource","Menu","anchorEl","open","Boolean","onClose","MenuItem","Typography","color","TemplateModal","CompanySelectionModal","isOpen","setIsOpen"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\nimport { usePages } from '../../hooks/use-pages';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '../../hooks/use-permissions';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\n\nimport './templates.scss';\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n\tconst { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n\tconst viewEmails = localStorage.getItem('email-subjects-view');\n\tconst [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n\tconst [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 });\n\tconst [rows, setRows] = useState<any[]>([]);\n\tconst [isFetching, setIsFetching] = useState<boolean>(false);\n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst SubjectPermissions = permissions?.Subjects || {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif (!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif (companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else {\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value } })\n\t\t}\n\t};\n\n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif (type == \"email\") {\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({ ...paginationModel, ...(response?.pagination || {}) });\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\tconst companiesArr = await fetchApi({ apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" } });\n\t\tsetCompanies(companiesArr?.data || []);\n\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n\tuseEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt', viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t<MaterialTable\n\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\ttotalPages={total}\n\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\tenableEditing={false}\n\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t}\n\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\tisResetRow={false}\n\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t}\n\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t<GridCard\n\t\t\t\t\tdata={tableRows}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!actionBarActiveTab && (\n\t\t\t\t<Fallback\n\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t</Fallback>\n\t\t\t)}\n\n\t\t\t<Footer\n\t\t\t\ttotal={total}\n\t\t\t\tpaginationModel={{\n\t\t\t\t\t...paginationModel,\n\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t}}\n\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\tresource=''\n\t\t\t/>\n\n\t\t\t{/* Action Menu */}\n\t\t\t<Menu\n\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t</Menu>\n\t\t\t{showTemplateModal && (\n\t\t\t\t<TemplateModal\n\t\t\t\t\temail={showTemplateModal}\n\t\t\t\t\tonClose={() => setShowTemplateModal(null)}\n\t\t\t\t\topen={showTemplateModal !== null}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{showCompanySelectionModal && (\n\t\t\t\t<CompanySelectionModal\n\t\t\t\t\tisOpen={showCompanySelectionModal !== null}\n\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["type","module","modulePath","t","useTranslation","activePage","aPage","updatePageInfo","schemaFields","generatedColumns","updateGeneratedColumns","usePages","useDeepMemo","actionAnchorEl","setActionAnchorEl","useState","viewEmails","localStorage","getItem","actionBarData","setActionBarData","JSON","parse","label","position","actionBarActiveTab","setActionBarActiveTab","viewTypes","TABLE","paginationModel","setPaginationModel","pageNo","limit","totalCount","skip","rows","setRows","isFetching","selectedRow","setSelectedRow","showTemplateModal","setShowTemplateModal","showCompanySelectionModal","setShowCompanySelectionModal","companies","setCompanies","navigate","useNavigate","pLimit","page_size","total","Math","ceil","permissions","usePermissions","ROUTES","templateRoutes","SubjectPermissions","Subjects","canAdd","canEdit","rowActionMenu","handleAction","email","length","ADD_TEMPLATE","_id","state","company_id","_a","id","_b","value","enqueueSnackbar","variant","handleNewEmail","disabled","row","getEmails","useCallback","async","sort","filterQueryString","search","searchFiters","types","push","uFilters","appendConditionSafely","join","response","getV1Subjects","getToken","order","desc","filters","data","pagination","tableRows","useMemo","tableColumns","transformTableColumns","columns","currencySymbol","original","currency_data","symbol","defaultCurrencySymbol","translationFn","enableFooter","statusClasses","cleanUp","useEffect","companiesArr","fetchApi","apiKey","getCopmanies","setItem","stringify","jsxs","className","children","jsx","ActionBar","title","setData","active","setActive","handleSearch","disabledViews","GRID","fields","selectedIds","button","MaterialTable","totalPages","columnOrder","orderKeys","states","isLoading","onSortingChange","enableColumnDragging","enableEditing","onSelectRow","r","map","ele","enableAddCustomField","isResetRow","handleColumnOrdering","colOrder","slice","onColumnVisibility","GridCard","Fallback","heading","subHeading","icon","src","logo","invoiceFallback","Footer","handlePaginationModel","model","resource","Menu","anchorEl","open","Boolean","onClose","MenuItem","Typography","color","TemplateModal","CompanySelectionModal","isOpen","setIsOpen"],"mappings":"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"}
|