@solidxai/core-ui 0.1.9-beta.18 → 0.1.9-beta.19

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.
Files changed (177) hide show
  1. package/dist/adapters/auth/handleLogout.d.ts +1 -1
  2. package/dist/adapters/auth/handleLogout.d.ts.map +1 -1
  3. package/dist/adapters/auth/handleLogout.js +20 -32
  4. package/dist/adapters/auth/handleLogout.js.map +1 -1
  5. package/dist/adapters/auth/handleLogout.ts +7 -14
  6. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  7. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
  8. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  9. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
  10. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  11. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
  12. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  13. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
  14. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  15. package/dist/components/core/common/SolidGlobalSearchElement.js +47 -13
  16. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  17. package/dist/components/core/common/SolidGlobalSearchElement.tsx +38 -4
  18. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
  19. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
  20. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
  21. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
  22. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
  23. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
  24. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
  25. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
  26. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
  27. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
  28. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
  29. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
  30. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
  31. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
  32. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
  33. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
  34. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
  35. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
  36. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
  37. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
  38. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
  39. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
  40. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
  41. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
  42. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
  43. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +12 -0
  44. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
  45. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +168 -0
  46. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
  47. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +241 -0
  48. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  49. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
  50. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  51. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
  52. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  53. package/dist/components/core/list/SolidListView.js +74 -68
  54. package/dist/components/core/list/SolidListView.js.map +1 -1
  55. package/dist/components/core/list/SolidListView.tsx +13 -4
  56. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  57. package/dist/components/core/list/SolidListViewColumn.js +0 -2
  58. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  59. package/dist/components/core/list/SolidListViewColumn.tsx +0 -1
  60. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  61. package/dist/components/core/list/SolidListViewConfigure.js +10 -9
  62. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  63. package/dist/components/core/list/SolidListViewConfigure.tsx +3 -1
  64. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  65. package/dist/components/core/list/SolidListViewHeaderButton.js +3 -0
  66. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  67. package/dist/components/core/list/SolidListViewHeaderButton.tsx +2 -0
  68. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  69. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +3 -0
  70. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  71. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +2 -0
  72. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
  73. package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
  74. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  75. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
  76. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  77. package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
  78. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  79. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
  80. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  81. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +3 -2
  82. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  83. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +3 -2
  84. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  85. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -2
  86. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  87. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -2
  88. package/dist/components/core/model/CreateModel.css +48 -0
  89. package/dist/components/core/model/CreateModel.d.ts +1 -0
  90. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  91. package/dist/components/core/model/CreateModel.js +69 -104
  92. package/dist/components/core/model/CreateModel.js.map +1 -1
  93. package/dist/components/core/model/CreateModel.tsx +92 -204
  94. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  95. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  96. package/dist/components/core/model/FieldMetaData.js +6 -22
  97. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  98. package/dist/components/core/model/FieldMetaData.tsx +6 -45
  99. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  100. package/dist/components/core/model/FieldMetaDataForm.js +196 -222
  101. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  102. package/dist/components/core/model/FieldMetaDataForm.tsx +0 -72
  103. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  104. package/dist/components/core/model/ModelMetaData.js +7 -7
  105. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  106. package/dist/components/core/model/ModelMetaData.tsx +7 -0
  107. package/dist/components/core/module/CreateModule.css +44 -0
  108. package/dist/components/core/module/CreateModule.d.ts +1 -0
  109. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  110. package/dist/components/core/module/CreateModule.js +40 -43
  111. package/dist/components/core/module/CreateModule.js.map +1 -1
  112. package/dist/components/core/module/CreateModule.tsx +243 -247
  113. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  114. package/dist/components/core/module/ModuleListViewData.js +47 -7
  115. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  116. package/dist/components/core/module/ModuleListViewData.tsx +58 -0
  117. package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
  118. package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
  119. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
  120. package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
  121. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
  122. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
  123. package/dist/components/core/module/ModulePackageDialog.css +540 -0
  124. package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
  125. package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
  126. package/dist/components/core/module/ModulePackageDialog.js +625 -0
  127. package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
  128. package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
  129. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  130. package/dist/components/layout/user-profile-menu.js +57 -33
  131. package/dist/components/layout/user-profile-menu.js.map +1 -1
  132. package/dist/components/layout/user-profile-menu.tsx +11 -59
  133. package/dist/helpers/buttonEnvironment.d.ts +5 -0
  134. package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
  135. package/dist/helpers/buttonEnvironment.js +30 -0
  136. package/dist/helpers/buttonEnvironment.js.map +1 -0
  137. package/dist/helpers/buttonEnvironment.ts +35 -0
  138. package/dist/helpers/fileTypeIcon.d.ts +12 -0
  139. package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
  140. package/dist/helpers/fileTypeIcon.js +37 -0
  141. package/dist/helpers/fileTypeIcon.js.map +1 -0
  142. package/dist/helpers/fileTypeIcon.tsx +65 -0
  143. package/dist/helpers/registry.d.ts.map +1 -1
  144. package/dist/helpers/registry.js +10 -0
  145. package/dist/helpers/registry.js.map +1 -1
  146. package/dist/helpers/registry.ts +10 -0
  147. package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
  148. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
  149. package/dist/helpers/waitForBackendAvailability.js +86 -0
  150. package/dist/helpers/waitForBackendAvailability.js.map +1 -0
  151. package/dist/helpers/waitForBackendAvailability.ts +37 -0
  152. package/dist/index.d.ts +2 -1
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +2 -1
  155. package/dist/index.js.map +1 -1
  156. package/dist/index.ts +18 -0
  157. package/dist/redux/api/moduleApi.d.ts +26 -1
  158. package/dist/redux/api/moduleApi.d.ts.map +1 -1
  159. package/dist/redux/api/moduleApi.js +237 -1
  160. package/dist/redux/api/moduleApi.js.map +1 -1
  161. package/dist/redux/api/moduleApi.ts +181 -1
  162. package/dist/redux/store/defaultStoreConfig.d.ts +22 -0
  163. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  164. package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
  165. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  166. package/dist/redux/store/solidEntityApiPool.js +4 -0
  167. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  168. package/dist/redux/store/solidEntityApiPool.ts +4 -0
  169. package/dist/resources/globals.css +56 -0
  170. package/dist/resources/shadcn-base.css +5 -0
  171. package/dist/routes/AppEventListener.d.ts.map +1 -1
  172. package/dist/routes/AppEventListener.js +58 -8
  173. package/dist/routes/AppEventListener.js.map +1 -1
  174. package/dist/routes/AppEventListener.tsx +69 -8
  175. package/dist/types/index.d.ts +1 -0
  176. package/dist/types/jsoneditor.d.ts +4 -0
  177. package/package.json +2 -1
@@ -47,7 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
47
47
  };
48
48
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
49
49
  import { CreateButton } from "../../../components/common/CreateButton";
50
- import { useDeleteMultiplemodulesMutation, useGenerateCodeFormoduleMutation, useLazyGetmodulesQuery, useRefreshPermissionsMutation, } from "../../../redux/api/moduleApi";
50
+ import { useExportModulePackageMutation, useDeleteMultiplemodulesMutation, useGenerateCodeFormoduleMutation, useLazyGetmodulesQuery, useRefreshPermissionsMutation, } from "../../../redux/api/moduleApi";
51
51
  import Link from "../../common/Link";
52
52
  import qs from "qs";
53
53
  import { useEffect, useState } from "react";
@@ -56,6 +56,7 @@ import { showToast } from "../../../redux/features/toastSlice";
56
56
  import { FilterMatchMode } from "../filter/filterMatchMode";
57
57
  import { SolidButton, SolidDialog, SolidIcon, SolidInput, SolidSpinner } from "../../shad-cn-ui";
58
58
  import { Column, SolidDataTable } from "../list/SolidDataTable";
59
+ import { ModulePackageDialog } from "./ModulePackageDialog";
59
60
  var createDefaultFilters = function () { return ({
60
61
  displayName: { value: null, matchMode: FilterMatchMode.STARTS_WITH },
61
62
  }); };
@@ -74,11 +75,14 @@ export var ModuleListViewData = function () {
74
75
  var _l = useState(true), loading = _l[0], setLoading = _l[1];
75
76
  var _m = useState(false), isDialogVisible = _m[0], setDialogVisible = _m[1];
76
77
  var _o = useState(false), isGenerateCodeVisible = _o[0], setGenerateCodeVisible = _o[1];
77
- var _p = useState(null), generateCodeForModule = _p[0], setGenerateCodeForModule = _p[1];
78
- var _q = useLazyGetmodulesQuery(), triggerGetModule = _q[0], _r = _q[1], module = _r.data, isLoading = _r.isLoading;
79
- var _s = useGenerateCodeFormoduleMutation(), generateCode = _s[0], _t = _s[1], isGenerateCodeError = _t.isError, isGenerateCodeSuceess = _t.isSuccess, generateCodeError = _t.error;
78
+ var _p = useState(false), isModulePackageDialogOpen = _p[0], setModulePackageDialogOpen = _p[1];
79
+ var _q = useState(null), generateCodeForModule = _q[0], setGenerateCodeForModule = _q[1];
80
+ var _r = useState(null), exportingModuleId = _r[0], setExportingModuleId = _r[1];
81
+ var _s = useLazyGetmodulesQuery(), triggerGetModule = _s[0], _t = _s[1], module = _t.data, isLoading = _t.isLoading;
82
+ var _u = useGenerateCodeFormoduleMutation(), generateCode = _u[0], _v = _u[1], isGenerateCodeError = _v.isError, isGenerateCodeSuceess = _v.isSuccess, generateCodeError = _v.error;
80
83
  var refreshPermission = useRefreshPermissionsMutation()[0];
81
84
  var deleteManyModules = useDeleteMultiplemodulesMutation()[0];
85
+ var exportModulePackage = useExportModulePackageMutation()[0];
82
86
  useEffect(function () {
83
87
  var _a, _b, _c;
84
88
  if (module) {
@@ -215,6 +219,39 @@ export var ModuleListViewData = function () {
215
219
  var handleRefreshPermission = function () {
216
220
  refreshPermission("");
217
221
  };
222
+ var handleExportModule = function (moduleId) { return __awaiter(void 0, void 0, void 0, function () {
223
+ var response, fileUrl, link, error_1, detail;
224
+ var _a;
225
+ return __generator(this, function (_b) {
226
+ switch (_b.label) {
227
+ case 0:
228
+ _b.trys.push([0, 2, 3, 4]);
229
+ setExportingModuleId(moduleId);
230
+ return [4 /*yield*/, exportModulePackage({ moduleName: moduleId }).unwrap()];
231
+ case 1:
232
+ response = _b.sent();
233
+ fileUrl = window.URL.createObjectURL(response.blob);
234
+ link = document.createElement("a");
235
+ link.href = fileUrl;
236
+ link.download = response.fileName || "".concat(moduleId, ".sldx");
237
+ document.body.appendChild(link);
238
+ link.click();
239
+ link.remove();
240
+ window.URL.revokeObjectURL(fileUrl);
241
+ dispatch(showToast({ severity: "success", summary: "Export started", detail: "".concat(moduleId, " was packaged as a .sldx archive.") }));
242
+ return [3 /*break*/, 4];
243
+ case 2:
244
+ error_1 = _b.sent();
245
+ detail = ((_a = error_1 === null || error_1 === void 0 ? void 0 : error_1.data) === null || _a === void 0 ? void 0 : _a.message) || (error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || "Unable to export the selected module.";
246
+ dispatch(showToast({ severity: "error", summary: "Export failed", detail: String(detail) }));
247
+ return [3 /*break*/, 4];
248
+ case 3:
249
+ setExportingModuleId(null);
250
+ return [7 /*endfinally*/];
251
+ case 4: return [2 /*return*/];
252
+ }
253
+ });
254
+ }); };
218
255
  var detailsBodyTemplate = function (record) { return (_jsx(Link, { href: "".concat(record.id), rel: "noopener noreferrer", className: "text-sm font-bold p-0", style: { color: "#12415D" }, children: record.isSystem ? (_jsx(SolidIcon, { name: "si-eye", style: { fontSize: "1rem" }, "aria-hidden": true })) : (_jsx(SolidIcon, { name: "si-pencil", style: { fontSize: "1rem" }, "aria-hidden": true })) })); };
219
256
  var generateCodeBodyTemplate = function (record) {
220
257
  if (record.isSystem)
@@ -224,12 +261,15 @@ export var ModuleListViewData = function () {
224
261
  setGenerateCodeVisible(true);
225
262
  }, children: _jsx(SolidIcon, { name: "si-cog", style: { fontSize: "1rem" }, "aria-hidden": true }) }));
226
263
  };
227
- return (_jsxs("div", { className: "solid-module-list w-full", children: [_jsxs("div", { className: "flex gap-3 mb-4 align-items-center flex-wrap", children: [_jsx(CreateButton, {}), _jsx(SolidButton, { className: "small-button", onClick: handleRefreshPermission, label: "Refresh Permissions" }), selectedMenus.length > 0 && (_jsx(SolidButton, { type: "button", label: "Delete", size: "small", severity: "danger", className: "small-button", onClick: function () { return setDialogVisible(true); } }))] }), _jsxs("div", { className: "flex flex-column md:flex-row align-items-start gap-3 mb-3", children: [_jsx(SolidInput, { value: (_a = pendingFilters.displayName.value) !== null && _a !== void 0 ? _a : "", onChange: function (event) { return handleFilterInputChange("displayName", event.currentTarget.value); }, placeholder: "Search module by name", className: "w-full md:w-20rem" }), _jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(SolidButton, { size: "small", onClick: applyFilters, label: "Apply" }), _jsx(SolidButton, { size: "small", variant: "ghost", onClick: clearFilters, label: "Clear" })] })] }), (loading || isLoading) && (_jsx("div", { className: "flex justify-content-center my-3", children: _jsx(SolidSpinner, {}) })), _jsxs(SolidDataTable, { value: moduleMetadata, size: "small", paginator: true, rows: rows, rowsPerPageOptions: [10, 25, 50], dataKey: "id", emptyMessage: "No Modules found", totalRecords: totalRecords, first: first, onPage: onPageChange, onSort: onSort, sortField: sortField, sortOrder: sortOrder, selection: selectedMenus, onSelectionChange: function (_a) {
264
+ var exportBodyTemplate = function (record) { return (_jsx("button", { type: "button", className: "text-primary border-0 bg-transparent cursor-pointer disabled:opacity-50", onClick: function () { return handleExportModule(record.id); }, disabled: exportingModuleId === record.id, title: "Export module package", children: exportingModuleId === record.id ? (_jsx(SolidSpinner, { size: 16 })) : (_jsx(SolidIcon, { name: "si-download", style: { fontSize: "1rem" }, "aria-hidden": true })) })); };
265
+ return (_jsxs("div", { className: "solid-module-list w-full", children: [_jsxs("div", { className: "flex gap-3 mb-4 align-items-center flex-wrap", children: [_jsx(CreateButton, {}), _jsx(SolidButton, { className: "small-button", onClick: function () { return setModulePackageDialogOpen(true); }, label: "Import Module", icon: "si-upload", iconPos: "left" }), _jsx(SolidButton, { className: "small-button", onClick: handleRefreshPermission, label: "Refresh Permissions" }), selectedMenus.length > 0 && (_jsx(SolidButton, { type: "button", label: "Delete", size: "small", severity: "danger", className: "small-button", onClick: function () { return setDialogVisible(true); } }))] }), _jsxs("div", { className: "flex flex-column md:flex-row align-items-start gap-3 mb-3", children: [_jsx(SolidInput, { value: (_a = pendingFilters.displayName.value) !== null && _a !== void 0 ? _a : "", onChange: function (event) { return handleFilterInputChange("displayName", event.currentTarget.value); }, placeholder: "Search module by name", className: "w-full md:w-20rem" }), _jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(SolidButton, { size: "small", onClick: applyFilters, label: "Apply" }), _jsx(SolidButton, { size: "small", variant: "ghost", onClick: clearFilters, label: "Clear" })] })] }), (loading || isLoading) && (_jsx("div", { className: "flex justify-content-center my-3", children: _jsx(SolidSpinner, {}) })), _jsxs(SolidDataTable, { value: moduleMetadata, size: "small", paginator: true, rows: rows, rowsPerPageOptions: [10, 25, 50], dataKey: "id", emptyMessage: "No Modules found", totalRecords: totalRecords, first: first, onPage: onPageChange, onSort: onSort, sortField: sortField, sortOrder: sortOrder, selection: selectedMenus, onSelectionChange: function (_a) {
228
266
  var value = _a.value;
229
267
  return setSelectedMenus(value);
230
- }, children: [_jsx(Column, { selectionMode: "multiple", headerStyle: { width: "3em" } }), _jsx(Column, { field: "id", header: "Id", className: "text-sm", sortable: true, headerClassName: "table-header-fs" }), _jsx(Column, { field: "displayName", header: "Display Name", className: "text-sm", sortable: true, style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { header: "Edit", body: detailsBodyTemplate }), _jsx(Column, { header: "Code", body: generateCodeBodyTemplate })] }), _jsxs(SolidDialog, { visible: isDialogVisible, header: "Confirm Delete", modal: true, className: "solid-confirm-dialog", onHide: function () { return setDialogVisible(false); }, children: [_jsx("p", { children: "Are you sure you want to delete the selected Modules?" }), _jsxs("div", { className: "flex justify-content-center gap-3 mt-3", children: [_jsx(SolidButton, { label: "Yes", className: "small-button", severity: "danger", autoFocus: true, onClick: deleteBulk }), _jsx(SolidButton, { label: "No", className: "small-button", variant: "ghost", onClick: function () { return setDialogVisible(false); } })] })] }), _jsxs(SolidDialog, { visible: isGenerateCodeVisible, header: "Generate Code", modal: true, className: "solid-confirm-dialog", onHide: function () {
268
+ }, children: [_jsx(Column, { selectionMode: "multiple", headerStyle: { width: "3em" } }), _jsx(Column, { field: "id", header: "Id", className: "text-sm", sortable: true, headerClassName: "table-header-fs" }), _jsx(Column, { field: "displayName", header: "Display Name", className: "text-sm", sortable: true, style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { header: "Edit", body: detailsBodyTemplate }), _jsx(Column, { header: "Code", body: generateCodeBodyTemplate }), _jsx(Column, { header: "Export", body: exportBodyTemplate })] }), _jsxs(SolidDialog, { visible: isDialogVisible, header: "Confirm Delete", modal: true, className: "solid-confirm-dialog", onHide: function () { return setDialogVisible(false); }, children: [_jsx("p", { children: "Are you sure you want to delete the selected Modules?" }), _jsxs("div", { className: "flex justify-content-center gap-3 mt-3", children: [_jsx(SolidButton, { label: "Yes", className: "small-button", severity: "danger", autoFocus: true, onClick: deleteBulk }), _jsx(SolidButton, { label: "No", className: "small-button", variant: "ghost", onClick: function () { return setDialogVisible(false); } })] })] }), _jsxs(SolidDialog, { visible: isGenerateCodeVisible, header: "Generate Code", modal: true, className: "solid-confirm-dialog", onHide: function () {
231
269
  setGenerateCodeVisible(false);
232
270
  setGenerateCodeForModule(null);
233
- }, children: [_jsx("p", { className: "text-center", children: "Proceed with module code generation? Existing files will be overwritten." }), _jsxs("div", { className: "flex justify-content-center gap-3 mt-3", children: [_jsx(SolidButton, { label: "Yes", className: "small-button", severity: "danger", autoFocus: true, onClick: handleGenerateCode }), _jsx(SolidButton, { label: "No", className: "small-button", variant: "ghost", onClick: function () { return setGenerateCodeVisible(false); } })] })] })] }));
271
+ }, children: [_jsx("p", { className: "text-center", children: "Proceed with module code generation? Existing files will be overwritten." }), _jsxs("div", { className: "flex justify-content-center gap-3 mt-3", children: [_jsx(SolidButton, { label: "Yes", className: "small-button", severity: "danger", autoFocus: true, onClick: handleGenerateCode }), _jsx(SolidButton, { label: "No", className: "small-button", variant: "ghost", onClick: function () { return setGenerateCodeVisible(false); } })] })] }), _jsx(ModulePackageDialog, { open: isModulePackageDialogOpen, onOpenChange: setModulePackageDialogOpen, onImported: function () {
272
+ setQueryString(first, rows, sortField, sortOrder, filters);
273
+ } })] }));
234
274
  };
235
275
  //# sourceMappingURL=ModuleListViewData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleListViewData.js","sourceRoot":"","sources":["../../../../src/components/core/module/ModuleListViewData.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CreateButton } from \"../../../components/common/CreateButton\";\nimport {\n useDeleteMultiplemodulesMutation,\n useGenerateCodeFormoduleMutation,\n useLazyGetmodulesQuery,\n useRefreshPermissionsMutation,\n} from \"../../../redux/api/moduleApi\";\nimport Link from \"../../common/Link\";\nimport qs from \"qs\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { FilterMatchMode } from \"../filter/filterMatchMode\";\nimport { SolidButton, SolidDialog, SolidIcon, SolidInput, SolidSpinner } from \"../../shad-cn-ui\";\nimport { Column, DataTableStateEvent, SolidDataTable } from \"../list/SolidDataTable\";\n\nexport interface ModelMetaData {\n id: string;\n displayName: string;\n isSystem: boolean;\n}\n\ntype FilterMeta = Record<string, { value: string | null; matchMode: string }>;\n\nconst createDefaultFilters = (): FilterMeta => ({\n displayName: { value: null, matchMode: FilterMatchMode.STARTS_WITH },\n});\n\nexport const ModuleListViewData = () => {\n const dispatch = useDispatch();\n const [moduleMetadata, setModuleMetadata] = useState<ModelMetaData[]>([]);\n const [filters, setFilters] = useState<FilterMeta>(() => createDefaultFilters());\n const [pendingFilters, setPendingFilters] = useState<FilterMeta>(() => createDefaultFilters());\n const [first, setFirst] = useState(0);\n const [rows, setRows] = useState(25);\n const [totalRecords, setTotalRecords] = useState(0);\n const [sortField, setSortField] = useState(\"\");\n const [sortOrder, setSortOrder] = useState<1 | -1 | 0>(0);\n const [selectedMenus, setSelectedMenus] = useState<ModelMetaData[]>([]);\n const [loading, setLoading] = useState<boolean>(true);\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [isGenerateCodeVisible, setGenerateCodeVisible] = useState(false);\n const [generateCodeForModule, setGenerateCodeForModule] = useState<string | null>(null);\n\n const [triggerGetModule, { data: module, isLoading }] = useLazyGetmodulesQuery();\n const [generateCode, { isError: isGenerateCodeError, isSuccess: isGenerateCodeSuceess, error: generateCodeError }] =\n useGenerateCodeFormoduleMutation();\n const [refreshPermission] = useRefreshPermissionsMutation();\n const [deleteManyModules] = useDeleteMultiplemodulesMutation();\n\n useEffect(() => {\n if (module) {\n setModuleMetadata(module?.records ?? []);\n setTotalRecords(module?.meta?.totalRecords ?? 0);\n setLoading(false);\n }\n }, [module]);\n\n useEffect(() => {\n const queryData = {\n offset: 0,\n limit: rows,\n sort: [`id:desc`],\n };\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n triggerGetModule(queryString);\n setSelectedMenus([]);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const onPageChange = (event: { first: number; rows: number }) => {\n setFirst(event.first);\n setRows(event.rows);\n setQueryString(event.first, event.rows, sortField, sortOrder, filters);\n };\n\n const onSort = (event: DataTableStateEvent) => {\n const nextSortField = event.sortField ?? \"\";\n const validSortOrder = event.sortOrder === 1 || event.sortOrder === -1 ? event.sortOrder : 0;\n setSortField(nextSortField);\n setSortOrder(validSortOrder);\n setFirst(0);\n setQueryString(0, rows, nextSortField, validSortOrder, filters);\n };\n\n const setQueryString = async (\n offset?: number,\n rowCount?: number,\n field?: string,\n order?: 1 | -1 | 0,\n filterQuery?: FilterMeta\n ) => {\n const formattedFilters: Record<string, any> = {};\n\n Object.keys(filterQuery ?? {}).forEach((fieldName) => {\n const filterValue = filterQuery?.[fieldName]?.value;\n const matchMode = filterQuery?.[fieldName]?.matchMode;\n\n if (filterValue !== null && filterValue !== undefined && matchMode) {\n let operator = matchMode;\n switch (matchMode) {\n case FilterMatchMode.CONTAINS:\n operator = \"$containsi\";\n break;\n case FilterMatchMode.STARTS_WITH:\n operator = \"$startsWithi\";\n break;\n case FilterMatchMode.EQUALS:\n operator = \"$eqi\";\n break;\n case FilterMatchMode.NOT_CONTAINS:\n operator = \"$notContainsi\";\n break;\n case FilterMatchMode.NOT_EQUALS:\n operator = \"$nei\";\n break;\n case FilterMatchMode.ENDS_WITH:\n operator = \"$endsWithi\";\n break;\n default:\n operator = matchMode;\n }\n\n formattedFilters[fieldName] = { [operator]: filterValue };\n }\n });\n\n const queryData: Record<string, any> = {\n offset: offset ?? first,\n limit: rowCount ?? rows,\n filters: formattedFilters,\n };\n\n if (field) {\n queryData.sort = [`${field}:${order === 0 ? null : order === 1 ? \"asc\" : \"desc\"}`];\n }\n\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n return triggerGetModule(queryString);\n };\n\n const handleFilterInputChange = (fieldName: string, value: string) => {\n setPendingFilters((prev) => ({\n ...prev,\n [fieldName]: { ...prev[fieldName], value },\n }));\n };\n\n const applyFilters = () => {\n setFirst(0);\n setFilters(pendingFilters);\n setQueryString(0, rows, sortField, sortOrder, pendingFilters);\n };\n\n const clearFilters = () => {\n const defaults = createDefaultFilters();\n setPendingFilters(defaults);\n setFilters(defaults);\n setFirst(0);\n setQueryString(0, rows, sortField, sortOrder, defaults);\n };\n\n const deleteBulk = () => {\n const deleteList = selectedMenus.map((element) => element.id);\n deleteManyModules(deleteList);\n setDialogVisible(false);\n setSelectedMenus([]);\n };\n\n const handleGenerateCode = async () => {\n if (!generateCodeForModule) return;\n await generateCode({ id: generateCodeForModule });\n setGenerateCodeVisible(false);\n setGenerateCodeForModule(null);\n };\n\n useEffect(() => {\n if (isGenerateCodeError) {\n const errorMessage =\n generateCodeError && typeof generateCodeError === \"object\" && \"data\" in generateCodeError && \"message\" in (generateCodeError as any).data\n ? (generateCodeError as any).data.message\n : \"Something went wrong\";\n const detail = Array.isArray(errorMessage) ? errorMessage.join(\", \") : String(errorMessage);\n dispatch(showToast({ severity: \"error\", summary: \"Error\", detail }));\n }\n }, [dispatch, isGenerateCodeError, generateCodeError]);\n\n useEffect(() => {\n if (isGenerateCodeSuceess) {\n dispatch(showToast({ severity: \"success\", summary: \"Success\", detail: \"Code Generated Successfully\" }));\n }\n }, [dispatch, isGenerateCodeSuceess]);\n\n const handleRefreshPermission = () => {\n refreshPermission(\"\");\n };\n\n const detailsBodyTemplate = (record: ModelMetaData) => (\n <Link\n href={`${record.id}`}\n rel=\"noopener noreferrer\"\n className=\"text-sm font-bold p-0\"\n style={{ color: \"#12415D\" }}\n >\n {record.isSystem ? (\n <SolidIcon name=\"si-eye\" style={{ fontSize: \"1rem\" }} aria-hidden />\n ) : (\n <SolidIcon name=\"si-pencil\" style={{ fontSize: \"1rem\" }} aria-hidden />\n )}\n </Link>\n );\n\n const generateCodeBodyTemplate = (record: ModelMetaData) => {\n if (record.isSystem) return null;\n return (\n <button\n type=\"button\"\n className=\"text-primary border-0 bg-transparent cursor-pointer\"\n onClick={() => {\n setGenerateCodeForModule(record.id);\n setGenerateCodeVisible(true);\n }}\n >\n <SolidIcon name=\"si-cog\" style={{ fontSize: \"1rem\" }} aria-hidden />\n </button>\n );\n };\n\n return (\n <div className=\"solid-module-list w-full\">\n <div className=\"flex gap-3 mb-4 align-items-center flex-wrap\">\n <CreateButton />\n <SolidButton className=\"small-button\" onClick={handleRefreshPermission} label=\"Refresh Permissions\" />\n {selectedMenus.length > 0 && (\n <SolidButton\n type=\"button\"\n label=\"Delete\"\n size=\"small\"\n severity=\"danger\"\n className=\"small-button\"\n onClick={() => setDialogVisible(true)}\n />\n )}\n </div>\n\n <div className=\"flex flex-column md:flex-row align-items-start gap-3 mb-3\">\n <SolidInput\n value={pendingFilters.displayName.value ?? \"\"}\n onChange={(event) => handleFilterInputChange(\"displayName\", event.currentTarget.value)}\n placeholder=\"Search module by name\"\n className=\"w-full md:w-20rem\"\n />\n <div className=\"flex align-items-center gap-2\">\n <SolidButton size=\"small\" onClick={applyFilters} label=\"Apply\" />\n <SolidButton size=\"small\" variant=\"ghost\" onClick={clearFilters} label=\"Clear\" />\n </div>\n </div>\n\n {(loading || isLoading) && (\n <div className=\"flex justify-content-center my-3\">\n <SolidSpinner />\n </div>\n )}\n\n <SolidDataTable\n value={moduleMetadata}\n size=\"small\"\n paginator\n rows={rows}\n rowsPerPageOptions={[10, 25, 50]}\n dataKey=\"id\"\n emptyMessage=\"No Modules found\"\n totalRecords={totalRecords}\n first={first}\n onPage={onPageChange}\n onSort={onSort}\n sortField={sortField}\n sortOrder={sortOrder}\n selection={selectedMenus}\n onSelectionChange={({ value }) => setSelectedMenus(value)}\n >\n <Column selectionMode=\"multiple\" headerStyle={{ width: \"3em\" }} />\n <Column field=\"id\" header=\"Id\" className=\"text-sm\" sortable headerClassName=\"table-header-fs\" />\n <Column\n field=\"displayName\"\n header=\"Display Name\"\n className=\"text-sm\"\n sortable\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n />\n <Column header=\"Edit\" body={detailsBodyTemplate} />\n <Column header=\"Code\" body={generateCodeBodyTemplate} />\n </SolidDataTable>\n\n <SolidDialog\n visible={isDialogVisible}\n header=\"Confirm Delete\"\n modal\n className=\"solid-confirm-dialog\"\n onHide={() => setDialogVisible(false)}\n >\n <p>Are you sure you want to delete the selected Modules?</p>\n <div className=\"flex justify-content-center gap-3 mt-3\">\n <SolidButton label=\"Yes\" className=\"small-button\" severity=\"danger\" autoFocus onClick={deleteBulk} />\n <SolidButton label=\"No\" className=\"small-button\" variant=\"ghost\" onClick={() => setDialogVisible(false)} />\n </div>\n </SolidDialog>\n\n <SolidDialog\n visible={isGenerateCodeVisible}\n header=\"Generate Code\"\n modal\n className=\"solid-confirm-dialog\"\n onHide={() => {\n setGenerateCodeVisible(false);\n setGenerateCodeForModule(null);\n }}\n >\n <p className=\"text-center\">Proceed with module code generation? Existing files will be overwritten.</p>\n <div className=\"flex justify-content-center gap-3 mt-3\">\n <SolidButton label=\"Yes\" className=\"small-button\" severity=\"danger\" autoFocus onClick={handleGenerateCode} />\n <SolidButton label=\"No\" className=\"small-button\" variant=\"ghost\" onClick={() => setGenerateCodeVisible(false)} />\n </div>\n </SolidDialog>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"ModuleListViewData.js","sourceRoot":"","sources":["../../../../src/components/core/module/ModuleListViewData.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CreateButton } from \"../../../components/common/CreateButton\";\nimport {\n useExportModulePackageMutation,\n useDeleteMultiplemodulesMutation,\n useGenerateCodeFormoduleMutation,\n useLazyGetmodulesQuery,\n useRefreshPermissionsMutation,\n} from \"../../../redux/api/moduleApi\";\nimport Link from \"../../common/Link\";\nimport qs from \"qs\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { FilterMatchMode } from \"../filter/filterMatchMode\";\nimport { SolidButton, SolidDialog, SolidIcon, SolidInput, SolidSpinner } from \"../../shad-cn-ui\";\nimport { Column, DataTableStateEvent, SolidDataTable } from \"../list/SolidDataTable\";\nimport { ModulePackageDialog } from \"./ModulePackageDialog\";\n\nexport interface ModelMetaData {\n id: string;\n displayName: string;\n isSystem: boolean;\n}\n\ntype FilterMeta = Record<string, { value: string | null; matchMode: string }>;\n\nconst createDefaultFilters = (): FilterMeta => ({\n displayName: { value: null, matchMode: FilterMatchMode.STARTS_WITH },\n});\n\nexport const ModuleListViewData = () => {\n const dispatch = useDispatch();\n const [moduleMetadata, setModuleMetadata] = useState<ModelMetaData[]>([]);\n const [filters, setFilters] = useState<FilterMeta>(() => createDefaultFilters());\n const [pendingFilters, setPendingFilters] = useState<FilterMeta>(() => createDefaultFilters());\n const [first, setFirst] = useState(0);\n const [rows, setRows] = useState(25);\n const [totalRecords, setTotalRecords] = useState(0);\n const [sortField, setSortField] = useState(\"\");\n const [sortOrder, setSortOrder] = useState<1 | -1 | 0>(0);\n const [selectedMenus, setSelectedMenus] = useState<ModelMetaData[]>([]);\n const [loading, setLoading] = useState<boolean>(true);\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [isGenerateCodeVisible, setGenerateCodeVisible] = useState(false);\n const [isModulePackageDialogOpen, setModulePackageDialogOpen] = useState(false);\n const [generateCodeForModule, setGenerateCodeForModule] = useState<string | null>(null);\n const [exportingModuleId, setExportingModuleId] = useState<string | null>(null);\n\n const [triggerGetModule, { data: module, isLoading }] = useLazyGetmodulesQuery();\n const [generateCode, { isError: isGenerateCodeError, isSuccess: isGenerateCodeSuceess, error: generateCodeError }] =\n useGenerateCodeFormoduleMutation();\n const [refreshPermission] = useRefreshPermissionsMutation();\n const [deleteManyModules] = useDeleteMultiplemodulesMutation();\n const [exportModulePackage] = useExportModulePackageMutation();\n\n useEffect(() => {\n if (module) {\n setModuleMetadata(module?.records ?? []);\n setTotalRecords(module?.meta?.totalRecords ?? 0);\n setLoading(false);\n }\n }, [module]);\n\n useEffect(() => {\n const queryData = {\n offset: 0,\n limit: rows,\n sort: [`id:desc`],\n };\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n triggerGetModule(queryString);\n setSelectedMenus([]);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const onPageChange = (event: { first: number; rows: number }) => {\n setFirst(event.first);\n setRows(event.rows);\n setQueryString(event.first, event.rows, sortField, sortOrder, filters);\n };\n\n const onSort = (event: DataTableStateEvent) => {\n const nextSortField = event.sortField ?? \"\";\n const validSortOrder = event.sortOrder === 1 || event.sortOrder === -1 ? event.sortOrder : 0;\n setSortField(nextSortField);\n setSortOrder(validSortOrder);\n setFirst(0);\n setQueryString(0, rows, nextSortField, validSortOrder, filters);\n };\n\n const setQueryString = async (\n offset?: number,\n rowCount?: number,\n field?: string,\n order?: 1 | -1 | 0,\n filterQuery?: FilterMeta\n ) => {\n const formattedFilters: Record<string, any> = {};\n\n Object.keys(filterQuery ?? {}).forEach((fieldName) => {\n const filterValue = filterQuery?.[fieldName]?.value;\n const matchMode = filterQuery?.[fieldName]?.matchMode;\n\n if (filterValue !== null && filterValue !== undefined && matchMode) {\n let operator = matchMode;\n switch (matchMode) {\n case FilterMatchMode.CONTAINS:\n operator = \"$containsi\";\n break;\n case FilterMatchMode.STARTS_WITH:\n operator = \"$startsWithi\";\n break;\n case FilterMatchMode.EQUALS:\n operator = \"$eqi\";\n break;\n case FilterMatchMode.NOT_CONTAINS:\n operator = \"$notContainsi\";\n break;\n case FilterMatchMode.NOT_EQUALS:\n operator = \"$nei\";\n break;\n case FilterMatchMode.ENDS_WITH:\n operator = \"$endsWithi\";\n break;\n default:\n operator = matchMode;\n }\n\n formattedFilters[fieldName] = { [operator]: filterValue };\n }\n });\n\n const queryData: Record<string, any> = {\n offset: offset ?? first,\n limit: rowCount ?? rows,\n filters: formattedFilters,\n };\n\n if (field) {\n queryData.sort = [`${field}:${order === 0 ? null : order === 1 ? \"asc\" : \"desc\"}`];\n }\n\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n return triggerGetModule(queryString);\n };\n\n const handleFilterInputChange = (fieldName: string, value: string) => {\n setPendingFilters((prev) => ({\n ...prev,\n [fieldName]: { ...prev[fieldName], value },\n }));\n };\n\n const applyFilters = () => {\n setFirst(0);\n setFilters(pendingFilters);\n setQueryString(0, rows, sortField, sortOrder, pendingFilters);\n };\n\n const clearFilters = () => {\n const defaults = createDefaultFilters();\n setPendingFilters(defaults);\n setFilters(defaults);\n setFirst(0);\n setQueryString(0, rows, sortField, sortOrder, defaults);\n };\n\n const deleteBulk = () => {\n const deleteList = selectedMenus.map((element) => element.id);\n deleteManyModules(deleteList);\n setDialogVisible(false);\n setSelectedMenus([]);\n };\n\n const handleGenerateCode = async () => {\n if (!generateCodeForModule) return;\n await generateCode({ id: generateCodeForModule });\n setGenerateCodeVisible(false);\n setGenerateCodeForModule(null);\n };\n\n useEffect(() => {\n if (isGenerateCodeError) {\n const errorMessage =\n generateCodeError && typeof generateCodeError === \"object\" && \"data\" in generateCodeError && \"message\" in (generateCodeError as any).data\n ? (generateCodeError as any).data.message\n : \"Something went wrong\";\n const detail = Array.isArray(errorMessage) ? errorMessage.join(\", \") : String(errorMessage);\n dispatch(showToast({ severity: \"error\", summary: \"Error\", detail }));\n }\n }, [dispatch, isGenerateCodeError, generateCodeError]);\n\n useEffect(() => {\n if (isGenerateCodeSuceess) {\n dispatch(showToast({ severity: \"success\", summary: \"Success\", detail: \"Code Generated Successfully\" }));\n }\n }, [dispatch, isGenerateCodeSuceess]);\n\n const handleRefreshPermission = () => {\n refreshPermission(\"\");\n };\n\n const handleExportModule = async (moduleId: string) => {\n try {\n setExportingModuleId(moduleId);\n const response = await exportModulePackage({ moduleName: moduleId }).unwrap();\n const fileUrl = window.URL.createObjectURL(response.blob);\n const link = document.createElement(\"a\");\n link.href = fileUrl;\n link.download = response.fileName || `${moduleId}.sldx`;\n document.body.appendChild(link);\n link.click();\n link.remove();\n window.URL.revokeObjectURL(fileUrl);\n dispatch(showToast({ severity: \"success\", summary: \"Export started\", detail: `${moduleId} was packaged as a .sldx archive.` }));\n } catch (error: any) {\n const detail = error?.data?.message || error?.message || \"Unable to export the selected module.\";\n dispatch(showToast({ severity: \"error\", summary: \"Export failed\", detail: String(detail) }));\n } finally {\n setExportingModuleId(null);\n }\n };\n\n const detailsBodyTemplate = (record: ModelMetaData) => (\n <Link\n href={`${record.id}`}\n rel=\"noopener noreferrer\"\n className=\"text-sm font-bold p-0\"\n style={{ color: \"#12415D\" }}\n >\n {record.isSystem ? (\n <SolidIcon name=\"si-eye\" style={{ fontSize: \"1rem\" }} aria-hidden />\n ) : (\n <SolidIcon name=\"si-pencil\" style={{ fontSize: \"1rem\" }} aria-hidden />\n )}\n </Link>\n );\n\n const generateCodeBodyTemplate = (record: ModelMetaData) => {\n if (record.isSystem) return null;\n return (\n <button\n type=\"button\"\n className=\"text-primary border-0 bg-transparent cursor-pointer\"\n onClick={() => {\n setGenerateCodeForModule(record.id);\n setGenerateCodeVisible(true);\n }}\n >\n <SolidIcon name=\"si-cog\" style={{ fontSize: \"1rem\" }} aria-hidden />\n </button>\n );\n };\n\n const exportBodyTemplate = (record: ModelMetaData) => (\n <button\n type=\"button\"\n className=\"text-primary border-0 bg-transparent cursor-pointer disabled:opacity-50\"\n onClick={() => handleExportModule(record.id)}\n disabled={exportingModuleId === record.id}\n title=\"Export module package\"\n >\n {exportingModuleId === record.id ? (\n <SolidSpinner size={16} />\n ) : (\n <SolidIcon name=\"si-download\" style={{ fontSize: \"1rem\" }} aria-hidden />\n )}\n </button>\n );\n\n return (\n <div className=\"solid-module-list w-full\">\n <div className=\"flex gap-3 mb-4 align-items-center flex-wrap\">\n <CreateButton />\n <SolidButton\n className=\"small-button\"\n onClick={() => setModulePackageDialogOpen(true)}\n label=\"Import Module\"\n icon=\"si-upload\"\n iconPos=\"left\"\n />\n <SolidButton className=\"small-button\" onClick={handleRefreshPermission} label=\"Refresh Permissions\" />\n {selectedMenus.length > 0 && (\n <SolidButton\n type=\"button\"\n label=\"Delete\"\n size=\"small\"\n severity=\"danger\"\n className=\"small-button\"\n onClick={() => setDialogVisible(true)}\n />\n )}\n </div>\n\n <div className=\"flex flex-column md:flex-row align-items-start gap-3 mb-3\">\n <SolidInput\n value={pendingFilters.displayName.value ?? \"\"}\n onChange={(event) => handleFilterInputChange(\"displayName\", event.currentTarget.value)}\n placeholder=\"Search module by name\"\n className=\"w-full md:w-20rem\"\n />\n <div className=\"flex align-items-center gap-2\">\n <SolidButton size=\"small\" onClick={applyFilters} label=\"Apply\" />\n <SolidButton size=\"small\" variant=\"ghost\" onClick={clearFilters} label=\"Clear\" />\n </div>\n </div>\n\n {(loading || isLoading) && (\n <div className=\"flex justify-content-center my-3\">\n <SolidSpinner />\n </div>\n )}\n\n <SolidDataTable\n value={moduleMetadata}\n size=\"small\"\n paginator\n rows={rows}\n rowsPerPageOptions={[10, 25, 50]}\n dataKey=\"id\"\n emptyMessage=\"No Modules found\"\n totalRecords={totalRecords}\n first={first}\n onPage={onPageChange}\n onSort={onSort}\n sortField={sortField}\n sortOrder={sortOrder}\n selection={selectedMenus}\n onSelectionChange={({ value }) => setSelectedMenus(value)}\n >\n <Column selectionMode=\"multiple\" headerStyle={{ width: \"3em\" }} />\n <Column field=\"id\" header=\"Id\" className=\"text-sm\" sortable headerClassName=\"table-header-fs\" />\n <Column\n field=\"displayName\"\n header=\"Display Name\"\n className=\"text-sm\"\n sortable\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n />\n <Column header=\"Edit\" body={detailsBodyTemplate} />\n <Column header=\"Code\" body={generateCodeBodyTemplate} />\n <Column header=\"Export\" body={exportBodyTemplate} />\n </SolidDataTable>\n\n <SolidDialog\n visible={isDialogVisible}\n header=\"Confirm Delete\"\n modal\n className=\"solid-confirm-dialog\"\n onHide={() => setDialogVisible(false)}\n >\n <p>Are you sure you want to delete the selected Modules?</p>\n <div className=\"flex justify-content-center gap-3 mt-3\">\n <SolidButton label=\"Yes\" className=\"small-button\" severity=\"danger\" autoFocus onClick={deleteBulk} />\n <SolidButton label=\"No\" className=\"small-button\" variant=\"ghost\" onClick={() => setDialogVisible(false)} />\n </div>\n </SolidDialog>\n\n <SolidDialog\n visible={isGenerateCodeVisible}\n header=\"Generate Code\"\n modal\n className=\"solid-confirm-dialog\"\n onHide={() => {\n setGenerateCodeVisible(false);\n setGenerateCodeForModule(null);\n }}\n >\n <p className=\"text-center\">Proceed with module code generation? Existing files will be overwritten.</p>\n <div className=\"flex justify-content-center gap-3 mt-3\">\n <SolidButton label=\"Yes\" className=\"small-button\" severity=\"danger\" autoFocus onClick={handleGenerateCode} />\n <SolidButton label=\"No\" className=\"small-button\" variant=\"ghost\" onClick={() => setGenerateCodeVisible(false)} />\n </div>\n </SolidDialog>\n\n <ModulePackageDialog\n open={isModulePackageDialogOpen}\n onOpenChange={setModulePackageDialogOpen}\n onImported={() => {\n setQueryString(first, rows, sortField, sortOrder, filters);\n }}\n />\n </div>\n );\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  import { CreateButton } from "../../../components/common/CreateButton";
2
2
  import {
3
+ useExportModulePackageMutation,
3
4
  useDeleteMultiplemodulesMutation,
4
5
  useGenerateCodeFormoduleMutation,
5
6
  useLazyGetmodulesQuery,
@@ -13,6 +14,7 @@ import { showToast } from "../../../redux/features/toastSlice";
13
14
  import { FilterMatchMode } from "../filter/filterMatchMode";
14
15
  import { SolidButton, SolidDialog, SolidIcon, SolidInput, SolidSpinner } from "../../shad-cn-ui";
15
16
  import { Column, DataTableStateEvent, SolidDataTable } from "../list/SolidDataTable";
17
+ import { ModulePackageDialog } from "./ModulePackageDialog";
16
18
 
17
19
  export interface ModelMetaData {
18
20
  id: string;
@@ -40,13 +42,16 @@ export const ModuleListViewData = () => {
40
42
  const [loading, setLoading] = useState<boolean>(true);
41
43
  const [isDialogVisible, setDialogVisible] = useState(false);
42
44
  const [isGenerateCodeVisible, setGenerateCodeVisible] = useState(false);
45
+ const [isModulePackageDialogOpen, setModulePackageDialogOpen] = useState(false);
43
46
  const [generateCodeForModule, setGenerateCodeForModule] = useState<string | null>(null);
47
+ const [exportingModuleId, setExportingModuleId] = useState<string | null>(null);
44
48
 
45
49
  const [triggerGetModule, { data: module, isLoading }] = useLazyGetmodulesQuery();
46
50
  const [generateCode, { isError: isGenerateCodeError, isSuccess: isGenerateCodeSuceess, error: generateCodeError }] =
47
51
  useGenerateCodeFormoduleMutation();
48
52
  const [refreshPermission] = useRefreshPermissionsMutation();
49
53
  const [deleteManyModules] = useDeleteMultiplemodulesMutation();
54
+ const [exportModulePackage] = useExportModulePackageMutation();
50
55
 
51
56
  useEffect(() => {
52
57
  if (module) {
@@ -194,6 +199,27 @@ export const ModuleListViewData = () => {
194
199
  refreshPermission("");
195
200
  };
196
201
 
202
+ const handleExportModule = async (moduleId: string) => {
203
+ try {
204
+ setExportingModuleId(moduleId);
205
+ const response = await exportModulePackage({ moduleName: moduleId }).unwrap();
206
+ const fileUrl = window.URL.createObjectURL(response.blob);
207
+ const link = document.createElement("a");
208
+ link.href = fileUrl;
209
+ link.download = response.fileName || `${moduleId}.sldx`;
210
+ document.body.appendChild(link);
211
+ link.click();
212
+ link.remove();
213
+ window.URL.revokeObjectURL(fileUrl);
214
+ dispatch(showToast({ severity: "success", summary: "Export started", detail: `${moduleId} was packaged as a .sldx archive.` }));
215
+ } catch (error: any) {
216
+ const detail = error?.data?.message || error?.message || "Unable to export the selected module.";
217
+ dispatch(showToast({ severity: "error", summary: "Export failed", detail: String(detail) }));
218
+ } finally {
219
+ setExportingModuleId(null);
220
+ }
221
+ };
222
+
197
223
  const detailsBodyTemplate = (record: ModelMetaData) => (
198
224
  <Link
199
225
  href={`${record.id}`}
@@ -225,10 +251,33 @@ export const ModuleListViewData = () => {
225
251
  );
226
252
  };
227
253
 
254
+ const exportBodyTemplate = (record: ModelMetaData) => (
255
+ <button
256
+ type="button"
257
+ className="text-primary border-0 bg-transparent cursor-pointer disabled:opacity-50"
258
+ onClick={() => handleExportModule(record.id)}
259
+ disabled={exportingModuleId === record.id}
260
+ title="Export module package"
261
+ >
262
+ {exportingModuleId === record.id ? (
263
+ <SolidSpinner size={16} />
264
+ ) : (
265
+ <SolidIcon name="si-download" style={{ fontSize: "1rem" }} aria-hidden />
266
+ )}
267
+ </button>
268
+ );
269
+
228
270
  return (
229
271
  <div className="solid-module-list w-full">
230
272
  <div className="flex gap-3 mb-4 align-items-center flex-wrap">
231
273
  <CreateButton />
274
+ <SolidButton
275
+ className="small-button"
276
+ onClick={() => setModulePackageDialogOpen(true)}
277
+ label="Import Module"
278
+ icon="si-upload"
279
+ iconPos="left"
280
+ />
232
281
  <SolidButton className="small-button" onClick={handleRefreshPermission} label="Refresh Permissions" />
233
282
  {selectedMenus.length > 0 && (
234
283
  <SolidButton
@@ -290,6 +339,7 @@ export const ModuleListViewData = () => {
290
339
  />
291
340
  <Column header="Edit" body={detailsBodyTemplate} />
292
341
  <Column header="Code" body={generateCodeBodyTemplate} />
342
+ <Column header="Export" body={exportBodyTemplate} />
293
343
  </SolidDataTable>
294
344
 
295
345
  <SolidDialog
@@ -322,6 +372,14 @@ export const ModuleListViewData = () => {
322
372
  <SolidButton label="No" className="small-button" variant="ghost" onClick={() => setGenerateCodeVisible(false)} />
323
373
  </div>
324
374
  </SolidDialog>
375
+
376
+ <ModulePackageDialog
377
+ open={isModulePackageDialogOpen}
378
+ onOpenChange={setModulePackageDialogOpen}
379
+ onImported={() => {
380
+ setQueryString(first, rows, sortField, sortOrder, filters);
381
+ }}
382
+ />
325
383
  </div>
326
384
  );
327
385
  };