@solidxai/core-ui 0.1.11 → 0.1.12-beta.1

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 (105) hide show
  1. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -1
  2. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
  3. package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
  4. package/dist/adapters/auth/signInWithOAuthAccessCode.ts +1 -1
  5. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  6. package/dist/components/auth/SolidLogin.js +10 -6
  7. package/dist/components/auth/SolidLogin.js.map +1 -1
  8. package/dist/components/auth/SolidLogin.tsx +19 -3
  9. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  10. package/dist/components/auth/SolidRegister.js +12 -8
  11. package/dist/components/auth/SolidRegister.js.map +1 -1
  12. package/dist/components/auth/SolidRegister.tsx +19 -3
  13. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  14. package/dist/components/common/GeneralSettings.js +46 -43
  15. package/dist/components/common/GeneralSettings.js.map +1 -1
  16. package/dist/components/common/GeneralSettings.tsx +22 -0
  17. package/dist/components/common/SocialMediaLogin.d.ts +2 -1
  18. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  19. package/dist/components/common/SocialMediaLogin.js +6 -6
  20. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  21. package/dist/components/common/SocialMediaLogin.tsx +36 -8
  22. package/dist/components/common/SolidLoadingState.d.ts +10 -0
  23. package/dist/components/common/SolidLoadingState.d.ts.map +1 -0
  24. package/dist/components/common/SolidLoadingState.js +8 -0
  25. package/dist/components/common/SolidLoadingState.js.map +1 -0
  26. package/dist/components/common/SolidLoadingState.module.css +56 -0
  27. package/dist/components/common/SolidLoadingState.tsx +28 -0
  28. package/dist/components/core/json/SolidJsonEditor.css +195 -0
  29. package/dist/components/core/json/SolidJsonEditor.d.ts +19 -0
  30. package/dist/components/core/json/SolidJsonEditor.d.ts.map +1 -0
  31. package/dist/components/core/json/SolidJsonEditor.js +109 -0
  32. package/dist/components/core/json/SolidJsonEditor.js.map +1 -0
  33. package/dist/components/core/json/SolidJsonEditor.tsx +150 -0
  34. package/dist/components/core/module/CreateModule.css +70 -2
  35. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  36. package/dist/components/core/module/CreateModule.js +2 -2
  37. package/dist/components/core/module/CreateModule.js.map +1 -1
  38. package/dist/components/core/module/CreateModule.tsx +13 -1
  39. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  40. package/dist/components/shad-cn-ui/SolidTabs.js +1 -1
  41. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  42. package/dist/components/shad-cn-ui/SolidTabs.tsx +1 -0
  43. package/dist/index.d.ts +5 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +5 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.ts +16 -0
  48. package/dist/redux/api/datasourceIntrospectionApi.d.ts +203 -0
  49. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -0
  50. package/dist/redux/api/datasourceIntrospectionApi.js +71 -0
  51. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -0
  52. package/dist/redux/api/datasourceIntrospectionApi.ts +261 -0
  53. package/dist/redux/api/datasourceManagementApi.d.ts +46 -0
  54. package/dist/redux/api/datasourceManagementApi.d.ts.map +1 -0
  55. package/dist/redux/api/datasourceManagementApi.js +35 -0
  56. package/dist/redux/api/datasourceManagementApi.js.map +1 -0
  57. package/dist/redux/api/datasourceManagementApi.ts +86 -0
  58. package/dist/redux/store/StoreProvider.d.ts.map +1 -1
  59. package/dist/redux/store/StoreProvider.js +4 -2
  60. package/dist/redux/store/StoreProvider.js.map +1 -1
  61. package/dist/redux/store/StoreProvider.tsx +9 -1
  62. package/dist/redux/store/defaultStoreConfig.d.ts +23 -0
  63. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  64. package/dist/redux/store/defaultStoreConfig.js +4 -0
  65. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  66. package/dist/redux/store/defaultStoreConfig.ts +4 -0
  67. package/dist/resources/solid-custom.css +72 -18
  68. package/dist/routes/guards/AdminGuard.d.ts.map +1 -1
  69. package/dist/routes/guards/AdminGuard.js +2 -1
  70. package/dist/routes/guards/AdminGuard.js.map +1 -1
  71. package/dist/routes/guards/AdminGuard.tsx +7 -1
  72. package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
  73. package/dist/routes/guards/AuthGuard.js +2 -1
  74. package/dist/routes/guards/AuthGuard.js.map +1 -1
  75. package/dist/routes/guards/AuthGuard.tsx +8 -2
  76. package/dist/routes/guards/GuestGuard.d.ts.map +1 -1
  77. package/dist/routes/guards/GuestGuard.js +2 -1
  78. package/dist/routes/guards/GuestGuard.js.map +1 -1
  79. package/dist/routes/guards/GuestGuard.tsx +8 -2
  80. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  81. package/dist/routes/pages/admin/core/DashboardPage.js +7 -5
  82. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  83. package/dist/routes/pages/admin/core/DashboardPage.module.css +18 -0
  84. package/dist/routes/pages/admin/core/DashboardPage.tsx +50 -32
  85. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +828 -0
  86. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts +3 -0
  87. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -0
  88. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +947 -0
  89. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -0
  90. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1719 -0
  91. package/dist/routes/pages/admin/core/DatasourcesPage.css +337 -0
  92. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts +3 -0
  93. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -0
  94. package/dist/routes/pages/admin/core/DatasourcesPage.js +221 -0
  95. package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -0
  96. package/dist/routes/pages/admin/core/DatasourcesPage.tsx +540 -0
  97. package/dist/routes/solidRoutes.d.ts.map +1 -1
  98. package/dist/routes/solidRoutes.js +7 -1
  99. package/dist/routes/solidRoutes.js.map +1 -1
  100. package/dist/routes/solidRoutes.tsx +6 -0
  101. package/dist/routes/types.d.ts +1 -1
  102. package/dist/routes/types.d.ts.map +1 -1
  103. package/dist/routes/types.js.map +1 -1
  104. package/dist/routes/types.ts +1 -0
  105. package/package.json +1 -1
@@ -0,0 +1,150 @@
1
+ import { forwardRef, useEffect, useImperativeHandle, useRef } from "react";
2
+ import "jsoneditor/dist/jsoneditor.css";
3
+ import "./SolidJsonEditor.css";
4
+
5
+ export type SolidJsonEditorHandle = {
6
+ format: () => void;
7
+ getText: () => string;
8
+ };
9
+
10
+ type SolidJsonEditorProps = {
11
+ value: any;
12
+ resetToken: string;
13
+ readOnly?: boolean;
14
+ className?: string;
15
+ onValueChange?: (value: any) => void;
16
+ onTextChange?: (text: string) => void;
17
+ onErrorChange?: (message: string | null) => void;
18
+ };
19
+
20
+ export const SolidJsonEditor = forwardRef<SolidJsonEditorHandle, SolidJsonEditorProps>(function SolidJsonEditor(
21
+ {
22
+ value,
23
+ resetToken,
24
+ readOnly = false,
25
+ className = "",
26
+ onValueChange,
27
+ onTextChange,
28
+ onErrorChange,
29
+ },
30
+ ref,
31
+ ) {
32
+ const containerRef = useRef<HTMLDivElement | null>(null);
33
+ const editorRef = useRef<any>(null);
34
+ const latestValueRef = useRef<any>(value);
35
+
36
+ useEffect(() => {
37
+ latestValueRef.current = value;
38
+ }, [value]);
39
+
40
+ const emitState = () => {
41
+ const editor = editorRef.current;
42
+
43
+ if (!editor) {
44
+ return;
45
+ }
46
+
47
+ try {
48
+ const nextValue = editor.get();
49
+ const nextText = editor.getText?.() ?? JSON.stringify(nextValue, null, 2);
50
+ onValueChange?.(nextValue);
51
+ onTextChange?.(nextText);
52
+ onErrorChange?.(null);
53
+ } catch (error: any) {
54
+ const rawText = editor.getText?.() ?? "";
55
+ onTextChange?.(rawText);
56
+ onErrorChange?.(
57
+ error?.message ? String(error.message) : "The JSON is currently invalid.",
58
+ );
59
+ }
60
+ };
61
+
62
+ useImperativeHandle(ref, () => ({
63
+ format() {
64
+ try {
65
+ editorRef.current?.format?.();
66
+ } catch (_error) {
67
+ // jsoneditor already surfaces parse states through onErrorChange.
68
+ }
69
+
70
+ emitState();
71
+ },
72
+ getText() {
73
+ return editorRef.current?.getText?.() ?? "";
74
+ },
75
+ }), []);
76
+
77
+ useEffect(() => {
78
+ if (!containerRef.current || editorRef.current) {
79
+ return;
80
+ }
81
+
82
+ let destroyed = false;
83
+
84
+ void import("jsoneditor").then((jsonEditorModule: any) => {
85
+ if (destroyed || !containerRef.current || editorRef.current) {
86
+ return;
87
+ }
88
+
89
+ const JSONEditor = jsonEditorModule?.default ?? jsonEditorModule;
90
+ editorRef.current = new JSONEditor(containerRef.current, {
91
+ mode: "code",
92
+ modes: ["code"],
93
+ mainMenuBar: true,
94
+ navigationBar: true,
95
+ statusBar: true,
96
+ search: true,
97
+ enableSort: false,
98
+ enableTransform: false,
99
+ onChange: () => emitState(),
100
+ });
101
+
102
+ try {
103
+ editorRef.current.set(latestValueRef.current);
104
+ } catch (_error) {
105
+ // Ignore seed failures and let jsoneditor surface them through its own state.
106
+ }
107
+
108
+ emitState();
109
+
110
+ if (editorRef.current?.aceEditor?.setReadOnly) {
111
+ editorRef.current.aceEditor.setReadOnly(readOnly);
112
+ }
113
+ });
114
+
115
+ return () => {
116
+ destroyed = true;
117
+ editorRef.current?.destroy?.();
118
+ editorRef.current = null;
119
+ };
120
+ }, []);
121
+
122
+ useEffect(() => {
123
+ if (!editorRef.current) {
124
+ return;
125
+ }
126
+
127
+ try {
128
+ editorRef.current.set(latestValueRef.current);
129
+ } catch (_error) {
130
+ // Ignore reset parse failures and surface them via emitState instead.
131
+ }
132
+
133
+ emitState();
134
+ }, [resetToken]);
135
+
136
+ useEffect(() => {
137
+ if (!editorRef.current?.aceEditor?.setReadOnly) {
138
+ return;
139
+ }
140
+
141
+ editorRef.current.aceEditor.setReadOnly(readOnly);
142
+ }, [readOnly]);
143
+
144
+ return (
145
+ <div
146
+ ref={containerRef}
147
+ className={`solid-json-editor-host solid-json-editor ${readOnly ? "is-readonly" : ""} ${className}`.trim()}
148
+ />
149
+ );
150
+ });
@@ -1,7 +1,13 @@
1
1
  .solid-module-form-workspace {
2
2
  display: flex;
3
3
  flex-direction: column;
4
- gap: 0.25rem;
4
+ gap: 0;
5
+ }
6
+
7
+ .solid-module-workspace-header {
8
+ padding: 0.55rem 0.9rem 0.2rem;
9
+ background: transparent;
10
+ border-bottom: none;
5
11
  }
6
12
 
7
13
  .solid-module-form-workspace .solid-module-form-tabs {
@@ -12,10 +18,16 @@
12
18
 
13
19
  .solid-module-form-workspace .solid-module-form-tablist {
14
20
  width: 100% !important;
15
- padding: 0 0.25rem;
21
+ padding: 0 0.35rem;
16
22
  border-bottom: 1px solid color-mix(in srgb, var(--border) 86%, transparent);
17
23
  }
18
24
 
25
+ .solid-module-form-tab-extra {
26
+ display: inline-flex;
27
+ align-items: center;
28
+ padding-right: 0.35rem;
29
+ }
30
+
19
31
  .solid-module-form-workspace .solid-module-form-tabpanel {
20
32
  padding-top: 0.65rem;
21
33
  }
@@ -31,6 +43,14 @@
31
43
  padding: 0.9rem 0.95rem 0.8rem;
32
44
  }
33
45
 
46
+ .solid-module-workspace-header .solid-form-toolbar-left {
47
+ min-height: 0;
48
+ }
49
+
50
+ .solid-module-workspace-header .solid-form-toolbar-actions {
51
+ flex: 0 0 auto;
52
+ }
53
+
34
54
  .solid-module-general-info-content.is-tabbed {
35
55
  padding: 0 0.9rem 1rem;
36
56
  }
@@ -42,3 +62,51 @@
42
62
  gap: 0.5rem;
43
63
  margin-bottom: 0.75rem;
44
64
  }
65
+
66
+ .solid-module-upload-card {
67
+ margin: 1rem 0 0;
68
+ padding: 0.9rem 1rem;
69
+ border-color: color-mix(in srgb, var(--border, #d6dae5) 90%, transparent);
70
+ background: color-mix(in srgb, var(--card, #ffffff) 94%, var(--background, #f8fafc) 6%);
71
+ }
72
+
73
+ .solid-module-upload-row {
74
+ display: flex;
75
+ align-items: flex-start;
76
+ gap: 0.8rem;
77
+ }
78
+
79
+ .solid-module-upload-copy {
80
+ flex: 1;
81
+ min-width: 0;
82
+ display: flex;
83
+ flex-direction: column;
84
+ gap: 0.35rem;
85
+ }
86
+
87
+ .solid-module-upload-header {
88
+ display: flex;
89
+ align-items: flex-start;
90
+ justify-content: space-between;
91
+ gap: 0.75rem;
92
+ }
93
+
94
+ .solid-module-upload-name {
95
+ min-width: 0;
96
+ line-height: 1.35;
97
+ }
98
+
99
+ .solid-module-upload-remove {
100
+ flex: 0 0 auto;
101
+ margin-top: 0.1rem;
102
+ }
103
+
104
+ .solid-module-upload-status {
105
+ display: flex;
106
+ flex-wrap: wrap;
107
+ align-items: center;
108
+ gap: 0.45rem;
109
+ color: color-mix(in srgb, var(--foreground, #111827) 78%, var(--muted-foreground, #6b7280));
110
+ font-size: 0.875rem;
111
+ line-height: 1.4;
112
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"CreateModule.d.ts","sourceRoot":"","sources":["../../../../src/components/core/module/CreateModule.tsx"],"names":[],"mappings":"AA+BA,OAAO,oBAAoB,CAAC;AAK5B,QAAA,MAAM,YAAY,qBAAsB,GAAG,4CAogB1C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"CreateModule.d.ts","sourceRoot":"","sources":["../../../../src/components/core/module/CreateModule.tsx"],"names":[],"mappings":"AA+BA,OAAO,oBAAoB,CAAC;AAK5B,QAAA,MAAM,YAAY,qBAAsB,GAAG,4CAghB1C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -306,8 +306,8 @@ var CreateModule = function (_a) {
306
306
  if (pathname.includes('new')) {
307
307
  formik.setFieldValue("name", toKebabCase);
308
308
  }
309
- }, value: formik.values.displayName, className: styles.fieldInput }), isFormFieldValid(formik, "displayName") && (_jsx("p", { className: styles.fieldError, children: (_c = (_b = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _b === void 0 ? void 0 : _b.displayName) === null || _c === void 0 ? void 0 : _c.toString() }))] }) }), _jsx("div", { className: "field w-full px-2 pt-2 lg:w-1/2", children: _jsxs("div", { className: styles.fieldWrapper, children: [_jsxs("label", { htmlFor: "name", className: "".concat(styles.fieldLabel, " form-field-label"), children: ["Name ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx(SolidInput, { disabled: true, type: "text", id: "name", name: "name", onChange: formik.handleChange, value: formik.values.name, className: styles.fieldInput }), isFormFieldValid(formik, "name") && (_jsx("p", { className: styles.fieldError, children: (_e = (_d = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.toString() }))] }) })] }), _jsxs("div", { className: "mt-4 flex flex-wrap -mx-2 -mt-2", children: [_jsx("div", { className: "field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0", children: _jsxs("div", { className: styles.fieldWrapper, children: [_jsx("label", { htmlFor: "menuSequenceNumber", className: "".concat(styles.fieldLabel, " form-field-label"), children: "Menu Sequence Number" }), _jsx(SolidInput, { id: "menuSequenceNumber", type: "number", onChange: formik.handleChange, min: 0, value: formik.values.menuSequenceNumber, className: styles.fieldInput }), isFormFieldValid(formik, "menuSequenceNumber") && (_jsx("p", { className: styles.fieldError, children: (_g = (_f = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _f === void 0 ? void 0 : _f.menuSequenceNumber) === null || _g === void 0 ? void 0 : _g.toString() }))] }) }), _jsx("div", { className: "field w-full px-2 pt-2 lg:w-1/2", children: _jsxs("div", { className: styles.fieldWrapper, children: [_jsxs("label", { htmlFor: "description", className: "".concat(styles.fieldLabel, " form-field-label"), children: ["Description ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx(SolidTextarea, { id: "description", name: "description", onChange: formik.handleChange, value: formik.values.description, className: styles.fieldTextarea, rows: 5, cols: 30 }), isFormFieldValid(formik, "description") && (_jsx("p", { className: styles.fieldError, children: (_j = (_h = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _h === void 0 ? void 0 : _h.description) === null || _j === void 0 ? void 0 : _j.toString() }))] }) })] })] }), _jsx(SolidPanel, { header: "Configurations", className: "solid-column-panel mt-4", children: _jsxs("div", { className: "mt-3 flex flex-wrap -mx-2 -mt-2", children: [_jsx("div", { className: "field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0", children: _jsxs("div", { className: styles.fieldWrapper, children: [_jsx("label", { htmlFor: "defaultDataSource", className: "".concat(styles.fieldLabel, " form-field-label"), children: "Default Data Source" }), _jsx("div", { className: "solid-standard-autocomplete w-full", children: _jsx(SolidAutocomplete, { disabled: !!data, value: defaultDataSourceField.selectedItem, suggestions: defaultDataSourceField.filteredItems, completeMethod: defaultDataSourceField.searchItems, onChange: defaultDataSourceField.handleChange, dropdown: true, field: "label", className: "w-full" }) }), isFormFieldValid(formik, "defaultDataSource") && (_jsx("p", { className: styles.fieldError, children: (_l = (_k = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _k === void 0 ? void 0 : _k.defaultDataSource) === null || _l === void 0 ? void 0 : _l.toString() }))] }) }), _jsx("div", { className: "field w-full px-2 pt-2 lg:w-1/2", children: _jsxs("div", { className: "".concat(styles.fieldWrapper, " relative"), children: [_jsxs("label", { htmlFor: "menuIconUrl", className: "".concat(styles.fieldLabel, " form-field-label"), children: ["Menu Icon ", _jsx("small", { className: "text-red-500 helper-text", children: "(only svg, png and jpeg are allowed)" })] }), _jsxs("div", __assign({}, getRootPropsmenuIcon(), { className: "solid-dropzone-wrapper", children: [_jsx("input", __assign({}, getInputPropsmenuIcon())), _jsx(DropzonePlaceholder, {})] })), isFormFieldValid(formik, "menuIconUrl") && (_jsx(SolidMessage, { severity: "error", text: (_o = (_m = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _m === void 0 ? void 0 : _m.menuIconUrl) === null || _o === void 0 ? void 0 : _o.toString(), className: "mt-2" })), fileDetails && (_jsxs("div", { className: "solid-file-upload-wrapper mt-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FileReaderExt, { fileDetails: fileDetails }), _jsxs("div", { className: "flex w-full flex-col gap-1", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "font-bold solid-module-mobile-text-wrapper", children: fileDetails.name }), _jsx("button", { type: "button", className: "solid-file-icon-btn is-danger", onClick: handleCancelUpload, children: _jsx(SolidIcon, { name: "si-times", "aria-hidden": true }) })] }), uploadCompleted ? (_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [totalSize, " of ", totalSize, _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "4", height: "4", viewBox: "0 0 4 4", fill: "none", children: _jsx("circle", { cx: "2", cy: "2", r: "2", fill: "#C1C1C1" }) }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: [_jsx("mask", { id: "mask0_2480_8635", style: { maskType: 'alpha' }, maskUnits: "userSpaceOnUse", x: "0", y: "0", width: "20", height: "20", children: _jsx("rect", { width: "20", height: "20", fill: "#D9D9D9" }) }), _jsx("g", { mask: "url(#mask0_2480_8635)", children: _jsx("path", { d: "M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 5.215 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z", fill: "var(--primary-color, var(--primary))" }) })] }), "Completed"] })) : (_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [uploadedSize, " of ", totalSize, _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "4", height: "4", viewBox: "0 0 4 4", fill: "none", children: _jsx("circle", { cx: "2", cy: "2", r: "2", fill: "#C1C1C1" }) }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: _jsx("path", { d: "M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z", fill: "black" }) }), "Uploading $", uploadProgress, "% Completed"] }))] })] }), _jsx(SolidProgressBar, { value: uploadProgress, showValue: false, style: { height: 4 }, className: "mt-2" })] }))] }) })] }) })] }) }), _jsx(SolidFormFooter, { params: params })] }));
310
- return (_jsx("div", { className: "solid-form-wrapper", children: _jsxs("div", { className: "solid-form-section", style: { borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }, children: [isCreateMode && (_jsxs("div", { className: "solid-form-header flex flex-wrap items-center justify-between gap-3", children: [_jsx("div", { className: "flex flex-col gap-1" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SolidButton, { variant: "outline", size: "sm", type: "button", onClick: handleCancel, className: "bg-[var(--primary-color-text)]", children: "Cancel" }), shouldShowGeneralSave && formik.dirty && (_jsx(SolidButton, { size: "sm", type: "submit", form: "module-general-info-form", onClick: function () { return showError(); }, children: "Save" }))] })] })), isCreateMode ? (generalInfoContent) : (_jsx("div", { className: "solid-module-form-workspace", children: _jsx(SolidTabGroup, { value: activeWorkspaceTab, onValueChange: setActiveWorkspaceTab, className: "solid-module-form-tabs", listClassName: "solid-module-form-tablist", panelClassName: "solid-module-form-tabpanel", tabs: [
309
+ }, value: formik.values.displayName, className: styles.fieldInput }), isFormFieldValid(formik, "displayName") && (_jsx("p", { className: styles.fieldError, children: (_c = (_b = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _b === void 0 ? void 0 : _b.displayName) === null || _c === void 0 ? void 0 : _c.toString() }))] }) }), _jsx("div", { className: "field w-full px-2 pt-2 lg:w-1/2", children: _jsxs("div", { className: styles.fieldWrapper, children: [_jsxs("label", { htmlFor: "name", className: "".concat(styles.fieldLabel, " form-field-label"), children: ["Name ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx(SolidInput, { disabled: true, type: "text", id: "name", name: "name", onChange: formik.handleChange, value: formik.values.name, className: styles.fieldInput }), isFormFieldValid(formik, "name") && (_jsx("p", { className: styles.fieldError, children: (_e = (_d = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.toString() }))] }) })] }), _jsxs("div", { className: "mt-4 flex flex-wrap -mx-2 -mt-2", children: [_jsx("div", { className: "field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0", children: _jsxs("div", { className: styles.fieldWrapper, children: [_jsx("label", { htmlFor: "menuSequenceNumber", className: "".concat(styles.fieldLabel, " form-field-label"), children: "Menu Sequence Number" }), _jsx(SolidInput, { id: "menuSequenceNumber", type: "number", onChange: formik.handleChange, min: 0, value: formik.values.menuSequenceNumber, className: styles.fieldInput }), isFormFieldValid(formik, "menuSequenceNumber") && (_jsx("p", { className: styles.fieldError, children: (_g = (_f = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _f === void 0 ? void 0 : _f.menuSequenceNumber) === null || _g === void 0 ? void 0 : _g.toString() }))] }) }), _jsx("div", { className: "field w-full px-2 pt-2 lg:w-1/2", children: _jsxs("div", { className: styles.fieldWrapper, children: [_jsxs("label", { htmlFor: "description", className: "".concat(styles.fieldLabel, " form-field-label"), children: ["Description ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx(SolidTextarea, { id: "description", name: "description", onChange: formik.handleChange, value: formik.values.description, className: styles.fieldTextarea, rows: 5, cols: 30 }), isFormFieldValid(formik, "description") && (_jsx("p", { className: styles.fieldError, children: (_j = (_h = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _h === void 0 ? void 0 : _h.description) === null || _j === void 0 ? void 0 : _j.toString() }))] }) })] })] }), _jsx(SolidPanel, { header: "Configurations", className: "solid-column-panel mt-4", children: _jsxs("div", { className: "mt-3 flex flex-wrap -mx-2 -mt-2", children: [_jsx("div", { className: "field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0", children: _jsxs("div", { className: styles.fieldWrapper, children: [_jsx("label", { htmlFor: "defaultDataSource", className: "".concat(styles.fieldLabel, " form-field-label"), children: "Default Data Source" }), _jsx("div", { className: "solid-standard-autocomplete w-full", children: _jsx(SolidAutocomplete, { disabled: !!data, value: defaultDataSourceField.selectedItem, suggestions: defaultDataSourceField.filteredItems, completeMethod: defaultDataSourceField.searchItems, onChange: defaultDataSourceField.handleChange, dropdown: true, field: "label", className: "w-full" }) }), isFormFieldValid(formik, "defaultDataSource") && (_jsx("p", { className: styles.fieldError, children: (_l = (_k = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _k === void 0 ? void 0 : _k.defaultDataSource) === null || _l === void 0 ? void 0 : _l.toString() }))] }) }), _jsx("div", { className: "field w-full px-2 pt-2 lg:w-1/2", children: _jsxs("div", { className: "".concat(styles.fieldWrapper, " relative"), children: [_jsxs("label", { htmlFor: "menuIconUrl", className: "".concat(styles.fieldLabel, " form-field-label"), children: ["Menu Icon ", _jsx("small", { className: "text-red-500 helper-text", children: "(only svg, png and jpeg are allowed)" })] }), _jsxs("div", __assign({}, getRootPropsmenuIcon(), { className: "solid-dropzone-wrapper", children: [_jsx("input", __assign({}, getInputPropsmenuIcon())), _jsx(DropzonePlaceholder, {})] })), isFormFieldValid(formik, "menuIconUrl") && (_jsx(SolidMessage, { severity: "error", text: (_o = (_m = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _m === void 0 ? void 0 : _m.menuIconUrl) === null || _o === void 0 ? void 0 : _o.toString(), className: "mt-2" })), fileDetails && (_jsxs("div", { className: "solid-file-upload-wrapper mt-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FileReaderExt, { fileDetails: fileDetails }), _jsxs("div", { className: "flex w-full flex-col gap-1", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "font-bold solid-module-mobile-text-wrapper", children: fileDetails.name }), _jsx("button", { type: "button", className: "solid-file-icon-btn is-danger solid-module-upload-remove", "aria-label": "Remove uploaded menu icon", onClick: handleCancelUpload, children: _jsx(SolidIcon, { name: "si-times", "aria-hidden": true }) })] }), uploadCompleted ? (_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [totalSize, " of ", totalSize, _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "4", height: "4", viewBox: "0 0 4 4", fill: "none", children: _jsx("circle", { cx: "2", cy: "2", r: "2", fill: "#C1C1C1" }) }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: [_jsx("mask", { id: "mask0_2480_8635", style: { maskType: 'alpha' }, maskUnits: "userSpaceOnUse", x: "0", y: "0", width: "20", height: "20", children: _jsx("rect", { width: "20", height: "20", fill: "#D9D9D9" }) }), _jsx("g", { mask: "url(#mask0_2480_8635)", children: _jsx("path", { d: "M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 5.215 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z", fill: "var(--primary-color, var(--primary))" }) })] }), "Completed"] })) : (_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [uploadedSize, " of ", totalSize, _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "4", height: "4", viewBox: "0 0 4 4", fill: "none", children: _jsx("circle", { cx: "2", cy: "2", r: "2", fill: "#C1C1C1" }) }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: _jsx("path", { d: "M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z", fill: "black" }) }), "Uploading $", uploadProgress, "% Completed"] }))] })] }), _jsx(SolidProgressBar, { value: uploadProgress, showValue: false, style: { height: 4 }, className: "mt-2" })] }))] }) })] }) })] }) }), _jsx(SolidFormFooter, { params: params })] }));
310
+ return (_jsx("div", { className: "solid-form-wrapper", children: _jsxs("div", { className: "solid-form-section", style: { borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }, children: [isCreateMode && (_jsxs("div", { className: "solid-form-header flex flex-wrap items-center justify-between gap-3", children: [_jsx("div", { className: "flex flex-col gap-1" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SolidButton, { variant: "outline", size: "sm", type: "button", onClick: handleCancel, className: "bg-[var(--primary-color-text)]", children: "Cancel" }), shouldShowGeneralSave && formik.dirty && (_jsx(SolidButton, { size: "sm", type: "submit", form: "module-general-info-form", onClick: function () { return showError(); }, children: "Save" }))] })] })), isCreateMode ? (generalInfoContent) : (_jsx("div", { className: "solid-module-form-workspace", children: _jsx(SolidTabGroup, { value: activeWorkspaceTab, onValueChange: setActiveWorkspaceTab, className: "solid-module-form-tabs", listClassName: "solid-module-form-tablist", panelClassName: "solid-module-form-tabpanel", extra: (_jsx("div", { className: "solid-module-form-tab-extra", children: _jsx(SolidButton, { type: "button", size: "sm", onClick: function () { return router.push("/admin/core/solid-core/modules/".concat(data === null || data === void 0 ? void 0 : data.id, "/datasource-introspection")); }, children: "Auto Map Tables" }) })), tabs: [
311
311
  {
312
312
  value: "general",
313
313
  label: _jsx("span", { className: "solid-module-form-tab-label", children: "General Info" }),
@@ -1 +1 @@
1
- {"version":3,"file":"CreateModule.js","sourceRoot":"","sources":["../../../../src/components/core/module/CreateModule.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DropzonePlaceholder } from \"../../../components/common/DropzonePlaceholder\";\nimport { FileReaderExt } from \"../../../components/common/FileReaderExt\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { getSingularAndPlural } from \"../../../helpers/helpers\";\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useDeleteMediaMutation } from \"../../../redux/api/mediaApi\";\nimport { useCreatemoduleMutation, useUpdatemoduleMutation } from \"../../../redux/api/moduleApi\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDropzone } from \"react-dropzone\";\nimport * as Yup from \"yup\";\nimport { env } from \"../../../adapters/env\";\nimport styles from \"../form/fields/solidFields.module.css\";\nimport {\n SolidAutocomplete,\n SolidButton,\n SolidInput,\n SolidMessage,\n SolidPanel,\n SolidProgressBar,\n SolidTabGroup,\n SolidTextarea,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { useSolidAutocompleteField } from \"../../../hooks/useSolidAutocompleteField\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\nimport { ModuleMetadataExplorer } from \"./ModuleMetadataExplorer\";\nimport \"./CreateModule.css\";\n\n\n\n\nconst CreateModule = ({ params, data }: any) => {\n const dispatch = useDispatch();\n const router = useRouter();\n const pathname = usePathname()\n const [menuIconPreview, setmenuIconPreview] = useState<\n string | ArrayBuffer | null\n >(null);\n const [uploadProgress, setUploadProgress] = useState<number>(0);\n const [uploadCompleted, setUploadCompleted] = useState<boolean>(false);\n const [fileDetails, setFileDetails] = useState<{ name: string; type: string } | null>(null);\n const [uploadedSize, setUploadedSize] = useState<string>(\"0 MB\");\n const [totalSize, setTotalSize] = useState<string>(\"0 KB\");\n\n const formatFileSize = (size: number) => {\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n const [\n CreateModule,\n { isLoading, isSuccess, isError, error, data: newModule },\n ] = useCreatemoduleMutation();\n\n const [\n UpdateModule,\n { isLoading: isModuleUpdateLoading, isSuccess: isModuleUpdateSuccess, isError: isModuleUpdateError, error: updateModuleError, data: updatedModule },\n ] = useUpdatemoduleMutation();\n\n const { data: fieldDefaultMetaData, isLoading: isFieldDefaultMetaDataLoading, error: FieldDefaultMetaDataError, refetch: fieldDefaultMetaDataRefech } = useGetFieldDefaultMetaDataQuery(null);\n\n const [\n deleteMedia,\n { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },\n ] = useDeleteMediaMutation();\n\n const initialValues = {\n name: data ? data.name : \"\",\n displayName: data ? data.displayName : \"\",\n description: data ? data.description : \"\",\n defaultDataSource: data ? data.defaultDataSource : \"\",\n isSystem: data ? data.isSystem : false,\n menuIconUrl: data ? data.menuIconUrl : \"\",\n menuSequenceNumber: data ? data.menuSequenceNumber : \"\"\n };\n\n\n const validationSchema = Yup.object({\n name: Yup.string()\n // .matches(\n // /^[a-z]+(-[a-z]+)*$/,\n // \"Invalid format. Use lowercase letters and hyphens only\"\n // )\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Name')),\n displayName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Display Name\")),\n description: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Description Name\")),\n defaultDataSource: Yup.string(),\n menuIconUrl: Yup.string().nullable(),\n isSystem: Yup.boolean(),\n menuSequenceNumber: Yup.number(),\n\n });\n\n const dataSources = [\n { label: \"Mysql\", value: \"mysql\" },\n { label: \"Postgres\", value: \"postgres\" },\n { label: \"Mssql\", value: \"mssql\" },\n { label: \"Oracle\", value: \"oracle\" },\n { label: \"Mariadb\", value: \"mariadb\" },\n ];\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n let formData = new FormData();\n formData.append('name', values.name);\n formData.append('displayName', values.displayName.trim());\n formData.append('description', values.description);\n formData.append('defaultDataSource', values.defaultDataSource);\n formData.append('isSystem', values.isSystem == \"true\" ? \"true\" : \"\");\n if (values.menuIconUrl) {\n formData.append('menuIconUrl', values.menuIconUrl);\n }\n formData.append('menuSequenceNumber', values.menuSequenceNumber);\n\n // let formData = new FormData();\n // formData.append('name', values.name);\n // formData.append('displayName', values.displayName);\n // formData.append('description', values.description);\n // formData.append('defaultDataSource', values.defaultDataSource);\n if (data) {\n UpdateModule({ id: data.id, data: formData });\n } else {\n CreateModule(formData);\n }\n } catch (err) {\n console.error(ERROR_MESSAGES.FAILED_CREATE_MENU, err);\n }\n },\n });\n\n const handleDropmenuIcon = (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (!file) return;\n\n setUploadCompleted(false);\n setUploadProgress(0);\n setTotalSize(formatFileSize(file.size));\n setUploadedSize(\"0 KB\");\n setFileDetails({ name: file.name, type: file.type });\n\n const reader = new FileReader();\n\n reader.onloadstart = () => {\n setUploadProgress(0);\n setUploadedSize(\"0 KB\");\n };\n reader.onprogress = (event) => {\n if (event.loaded && event.total) {\n const percent = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percent);\n setUploadedSize(formatFileSize(event.loaded));\n }\n };\n\n reader.onloadend = () => {\n setUploadProgress(100);\n setUploadCompleted(true);\n setUploadedSize(totalSize); // Set uploaded size to total size after completion\n };\n\n reader.readAsDataURL(file);\n formik.setFieldValue(\"menuIconUrl\", file);\n };\n\n const { getRootProps: getRootPropsmenuIcon, getInputProps: getInputPropsmenuIcon, isDragActive: isDragActivemenuIcon } = useDropzone({\n onDrop: handleDropmenuIcon,\n accept: {\n 'image/jpeg': [],\n 'image/png': [],\n 'image/svg+xml': ['.svg']\n },\n maxSize: 2 * 1024 * 1024, // 2MB\n });\n\n useEffect(() => {\n if (data) {\n setmenuIconPreview(`${env(\"API_URL\")}/${data.menuIconUrl}`);\n\n const fileName = data?.menuIconUrl?.split(\"/\").pop(); // Extract filename from URL\n setFileDetails({ name: fileName || \"Unknown File\", type: \"Uploaded File\" });\n\n // Set the upload progress to 100% since the file is already uploaded\n setUploadProgress(100);\n setUploadCompleted(true);\n\n // Ensure Formik has the existing file URL\n formik.setFieldValue(\"menuIconUrl\", data.menuIconUrl);\n }\n }, [data])\n const handleCancelUpload = (e: React.MouseEvent) => {\n e.stopPropagation();\n setUploadProgress(0);\n setUploadCompleted(false);\n setFileDetails(null);\n formik.setFieldValue(\"menuIconUrl\", null);\n };\n\n\n const showError = async () => {\n const errors = await formik.validateForm(); // Trigger validation and get the updated errors\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n const detail = Array.isArray(errorMessages) ? errorMessages.join(', ') : String(errorMessages);\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n // </div>\n // ))}\n // </div>\n // ),\n // });\n }\n };\n\n const showCustomeError = async (error: string[]) => {\n if (error.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: error.join(', '), life: 3000 }));\n }\n };\n\n useEffect(() => {\n if (isSuccess == true || isModuleUpdateSuccess == true) {\n router.push(`/admin/core/solid-core/module-metadata/list`);\n }\n }, [isSuccess, isModuleUpdateSuccess])\n\n\n\n const serachDDefaultDataSource = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.dataSource.filter((t: any) => t.name.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.name, value: e.name, type: e.type }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n const defaultDataSourceField = useSolidAutocompleteField({\n formik,\n fieldName: \"defaultDataSource\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: serachDDefaultDataSource,\n existingData: formik.values.defaultDataSource,\n });\n\n\n // Error Handler \n\n useEffect(() => {\n const errors = [\n { isError, error },\n { isError: isModuleUpdateError, error: updateModuleError },\n { isError: isMediaDeleteError, error: mediaDeleteError },\n ];\n\n // Handle any error\n errors.forEach(({ isError, error }) => {\n if (isError && error) {\n const errorMessage = error && typeof error === 'object' && 'data' in error && 'message' in (error as any).data\n ? (error 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 });\n }, [isError, isModuleUpdateError, isMediaDeleteError])\n\n const [activeWorkspaceTab, setActiveWorkspaceTab] = useState(\"general\");\n\n const isCreateMode = pathname.includes('new');\n const shouldShowGeneralSave = isCreateMode || activeWorkspaceTab === \"general\";\n\n const handleCancel = () => {\n router.back();\n };\n\n const generalInfoContent = (\n <div className={`solid-module-general-info-content ${!isCreateMode ? \"is-tabbed\" : \"\"}`}>\n {!isCreateMode && shouldShowGeneralSave && formik.dirty && (\n <div className=\"solid-module-general-info-actions\">\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n form=\"module-general-info-form\"\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n </div>\n )}\n <form\n id=\"module-general-info-form\"\n style={{ width: '100%', background: \"#fff\" }}\n onSubmit={formik.handleSubmit}\n >\n <div className=\"solid-form-content\">\n <SolidPanel header={\"Basic Info\"} className=\"solid-column-panel\">\n <div className=\"mt-3 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"displayName\" className={`${styles.fieldLabel} form-field-label`}>\n Display Name <span className=\"text-red-500\">*</span>\n </label>\n <SolidInput\n disabled={!!data}\n type=\"text\"\n id=\"displayName\"\n name=\"displayName\"\n onChange={(e) => {\n formik.handleChange(e);\n const { toKebabCase } = getSingularAndPlural(e.target.value);\n if (pathname.includes('new')) {\n formik.setFieldValue(\"name\", toKebabCase);\n }\n }}\n value={formik.values.displayName}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"displayName\") && (\n <p className={styles.fieldError}>{formik?.errors?.displayName?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"name\" className={`${styles.fieldLabel} form-field-label`}>\n Name <span className=\"text-red-500\">*</span>\n </label>\n <SolidInput\n disabled\n type=\"text\"\n id=\"name\"\n name=\"name\"\n onChange={formik.handleChange}\n value={formik.values.name}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"name\") && (\n <p className={styles.fieldError}>{formik?.errors?.name?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n <div className=\"mt-4 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"menuSequenceNumber\" className={`${styles.fieldLabel} form-field-label`}>\n Menu Sequence Number\n </label>\n <SolidInput\n id=\"menuSequenceNumber\"\n type=\"number\"\n onChange={formik.handleChange}\n min={0}\n value={formik.values.menuSequenceNumber}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"menuSequenceNumber\") && (\n <p className={styles.fieldError}>{formik?.errors?.menuSequenceNumber?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"description\" className={`${styles.fieldLabel} form-field-label`}>\n Description <span className=\"text-red-500\">*</span>\n </label>\n <SolidTextarea\n id=\"description\"\n name=\"description\"\n onChange={formik.handleChange}\n value={formik.values.description}\n className={styles.fieldTextarea}\n rows={5}\n cols={30}\n />\n {isFormFieldValid(formik, \"description\") && (\n <p className={styles.fieldError}>{formik?.errors?.description?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n </SolidPanel>\n <SolidPanel header={\"Configurations\"} className=\"solid-column-panel mt-4\">\n <div className=\"mt-3 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"defaultDataSource\" className={`${styles.fieldLabel} form-field-label`}>\n Default Data Source\n </label>\n <div className=\"solid-standard-autocomplete w-full\">\n <SolidAutocomplete\n disabled={!!data}\n value={defaultDataSourceField.selectedItem}\n suggestions={defaultDataSourceField.filteredItems}\n completeMethod={defaultDataSourceField.searchItems}\n onChange={defaultDataSourceField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"defaultDataSource\") && (\n <p className={styles.fieldError}>{formik?.errors?.defaultDataSource?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={`${styles.fieldWrapper} relative`}>\n <label htmlFor=\"menuIconUrl\" className={`${styles.fieldLabel} form-field-label`}>\n Menu Icon <small className=\"text-red-500 helper-text\">(only svg, png and jpeg are allowed)</small>\n </label>\n <div {...getRootPropsmenuIcon()} className=\"solid-dropzone-wrapper\">\n <input {...getInputPropsmenuIcon()} />\n <DropzonePlaceholder />\n </div>\n {isFormFieldValid(formik, \"menuIconUrl\") && (\n <SolidMessage severity=\"error\" text={formik?.errors?.menuIconUrl?.toString()} className=\"mt-2\" />\n )}\n\n {fileDetails && (\n <div className=\"solid-file-upload-wrapper mt-4\">\n <div className=\"flex items-center gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"flex w-full flex-col gap-1\">\n <div className=\"flex items-center justify-between\">\n <div className=\"font-bold solid-module-mobile-text-wrapper\">{fileDetails.name}</div>\n <button\n type=\"button\"\n className=\"solid-file-icon-btn is-danger\"\n onClick={handleCancelUpload}\n >\n <SolidIcon name=\"si-times\" aria-hidden />\n </button>\n </div>\n {uploadCompleted ? (\n <div className=\"flex items-center gap-2 text-sm\">\n {totalSize} of {totalSize}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"4\" viewBox=\"0 0 4 4\" fill=\"none\">\n <circle cx=\"2\" cy=\"2\" r=\"2\" fill=\"#C1C1C1\" />\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <mask id=\"mask0_2480_8635\" style={{ maskType: 'alpha' }} maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"20\" height=\"20\">\n <rect width=\"20\" height=\"20\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2480_8635)\">\n <path d=\"M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 5.215 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z\" fill=\"var(--primary-color, var(--primary))\" />\n </g>\n </svg>\n Completed\n </div>\n ) : (\n <div className=\"flex items-center gap-2 text-sm\">\n {uploadedSize} of {totalSize}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"4\" viewBox=\"0 0 4 4\" fill=\"none\">\n <circle cx=\"2\" cy=\"2\" r=\"2\" fill=\"#C1C1C1\" />\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z\" fill=\"black\" />\n </svg>\n Uploading ${uploadProgress}% Completed\n </div>\n )}\n </div>\n </div>\n <SolidProgressBar value={uploadProgress} showValue={false} style={{ height: 4 }} className=\"mt-2\" />\n </div>\n )}\n </div>\n </div>\n </div>\n </SolidPanel>\n </div>\n </form>\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n );\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >\n {isCreateMode && (\n <div className=\"solid-form-header flex flex-wrap items-center justify-between gap-3\">\n <div className=\"flex flex-col gap-1\" />\n <div className=\"flex items-center gap-2\">\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n onClick={handleCancel}\n className=\"bg-[var(--primary-color-text)]\"\n >\n Cancel\n </SolidButton>\n {shouldShowGeneralSave && formik.dirty && (\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n form=\"module-general-info-form\"\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n )}\n </div>\n </div>\n )}\n\n {isCreateMode ? (\n generalInfoContent\n ) : (\n <div className=\"solid-module-form-workspace\">\n <SolidTabGroup\n value={activeWorkspaceTab}\n onValueChange={setActiveWorkspaceTab}\n className=\"solid-module-form-tabs\"\n listClassName=\"solid-module-form-tablist\"\n panelClassName=\"solid-module-form-tabpanel\"\n tabs={[\n {\n value: \"general\",\n label: <span className=\"solid-module-form-tab-label\">General Info</span>,\n content: generalInfoContent,\n },\n {\n value: \"explorer\",\n label: <span className=\"solid-module-form-tab-label\">Explorer</span>,\n content: <ModuleMetadataExplorer moduleName={data?.name} moduleId={data?.id} />,\n },\n ]}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default CreateModule;\n"]}
1
+ {"version":3,"file":"CreateModule.js","sourceRoot":"","sources":["../../../../src/components/core/module/CreateModule.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DropzonePlaceholder } from \"../../../components/common/DropzonePlaceholder\";\nimport { FileReaderExt } from \"../../../components/common/FileReaderExt\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { getSingularAndPlural } from \"../../../helpers/helpers\";\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useDeleteMediaMutation } from \"../../../redux/api/mediaApi\";\nimport { useCreatemoduleMutation, useUpdatemoduleMutation } from \"../../../redux/api/moduleApi\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDropzone } from \"react-dropzone\";\nimport * as Yup from \"yup\";\nimport { env } from \"../../../adapters/env\";\nimport styles from \"../form/fields/solidFields.module.css\";\nimport {\n SolidAutocomplete,\n SolidButton,\n SolidInput,\n SolidMessage,\n SolidPanel,\n SolidProgressBar,\n SolidTabGroup,\n SolidTextarea,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { useSolidAutocompleteField } from \"../../../hooks/useSolidAutocompleteField\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\nimport { ModuleMetadataExplorer } from \"./ModuleMetadataExplorer\";\nimport \"./CreateModule.css\";\n\n\n\n\nconst CreateModule = ({ params, data }: any) => {\n const dispatch = useDispatch();\n const router = useRouter();\n const pathname = usePathname()\n const [menuIconPreview, setmenuIconPreview] = useState<\n string | ArrayBuffer | null\n >(null);\n const [uploadProgress, setUploadProgress] = useState<number>(0);\n const [uploadCompleted, setUploadCompleted] = useState<boolean>(false);\n const [fileDetails, setFileDetails] = useState<{ name: string; type: string } | null>(null);\n const [uploadedSize, setUploadedSize] = useState<string>(\"0 MB\");\n const [totalSize, setTotalSize] = useState<string>(\"0 KB\");\n\n const formatFileSize = (size: number) => {\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n const [\n CreateModule,\n { isLoading, isSuccess, isError, error, data: newModule },\n ] = useCreatemoduleMutation();\n\n const [\n UpdateModule,\n { isLoading: isModuleUpdateLoading, isSuccess: isModuleUpdateSuccess, isError: isModuleUpdateError, error: updateModuleError, data: updatedModule },\n ] = useUpdatemoduleMutation();\n\n const { data: fieldDefaultMetaData, isLoading: isFieldDefaultMetaDataLoading, error: FieldDefaultMetaDataError, refetch: fieldDefaultMetaDataRefech } = useGetFieldDefaultMetaDataQuery(null);\n\n const [\n deleteMedia,\n { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },\n ] = useDeleteMediaMutation();\n\n const initialValues = {\n name: data ? data.name : \"\",\n displayName: data ? data.displayName : \"\",\n description: data ? data.description : \"\",\n defaultDataSource: data ? data.defaultDataSource : \"\",\n isSystem: data ? data.isSystem : false,\n menuIconUrl: data ? data.menuIconUrl : \"\",\n menuSequenceNumber: data ? data.menuSequenceNumber : \"\"\n };\n\n\n const validationSchema = Yup.object({\n name: Yup.string()\n // .matches(\n // /^[a-z]+(-[a-z]+)*$/,\n // \"Invalid format. Use lowercase letters and hyphens only\"\n // )\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Name')),\n displayName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Display Name\")),\n description: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Description Name\")),\n defaultDataSource: Yup.string(),\n menuIconUrl: Yup.string().nullable(),\n isSystem: Yup.boolean(),\n menuSequenceNumber: Yup.number(),\n\n });\n\n const dataSources = [\n { label: \"Mysql\", value: \"mysql\" },\n { label: \"Postgres\", value: \"postgres\" },\n { label: \"Mssql\", value: \"mssql\" },\n { label: \"Oracle\", value: \"oracle\" },\n { label: \"Mariadb\", value: \"mariadb\" },\n ];\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n let formData = new FormData();\n formData.append('name', values.name);\n formData.append('displayName', values.displayName.trim());\n formData.append('description', values.description);\n formData.append('defaultDataSource', values.defaultDataSource);\n formData.append('isSystem', values.isSystem == \"true\" ? \"true\" : \"\");\n if (values.menuIconUrl) {\n formData.append('menuIconUrl', values.menuIconUrl);\n }\n formData.append('menuSequenceNumber', values.menuSequenceNumber);\n\n // let formData = new FormData();\n // formData.append('name', values.name);\n // formData.append('displayName', values.displayName);\n // formData.append('description', values.description);\n // formData.append('defaultDataSource', values.defaultDataSource);\n if (data) {\n UpdateModule({ id: data.id, data: formData });\n } else {\n CreateModule(formData);\n }\n } catch (err) {\n console.error(ERROR_MESSAGES.FAILED_CREATE_MENU, err);\n }\n },\n });\n\n const handleDropmenuIcon = (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (!file) return;\n\n setUploadCompleted(false);\n setUploadProgress(0);\n setTotalSize(formatFileSize(file.size));\n setUploadedSize(\"0 KB\");\n setFileDetails({ name: file.name, type: file.type });\n\n const reader = new FileReader();\n\n reader.onloadstart = () => {\n setUploadProgress(0);\n setUploadedSize(\"0 KB\");\n };\n reader.onprogress = (event) => {\n if (event.loaded && event.total) {\n const percent = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percent);\n setUploadedSize(formatFileSize(event.loaded));\n }\n };\n\n reader.onloadend = () => {\n setUploadProgress(100);\n setUploadCompleted(true);\n setUploadedSize(totalSize); // Set uploaded size to total size after completion\n };\n\n reader.readAsDataURL(file);\n formik.setFieldValue(\"menuIconUrl\", file);\n };\n\n const { getRootProps: getRootPropsmenuIcon, getInputProps: getInputPropsmenuIcon, isDragActive: isDragActivemenuIcon } = useDropzone({\n onDrop: handleDropmenuIcon,\n accept: {\n 'image/jpeg': [],\n 'image/png': [],\n 'image/svg+xml': ['.svg']\n },\n maxSize: 2 * 1024 * 1024, // 2MB\n });\n\n useEffect(() => {\n if (data) {\n setmenuIconPreview(`${env(\"API_URL\")}/${data.menuIconUrl}`);\n\n const fileName = data?.menuIconUrl?.split(\"/\").pop(); // Extract filename from URL\n setFileDetails({ name: fileName || \"Unknown File\", type: \"Uploaded File\" });\n\n // Set the upload progress to 100% since the file is already uploaded\n setUploadProgress(100);\n setUploadCompleted(true);\n\n // Ensure Formik has the existing file URL\n formik.setFieldValue(\"menuIconUrl\", data.menuIconUrl);\n }\n }, [data])\n const handleCancelUpload = (e: React.MouseEvent) => {\n e.stopPropagation();\n setUploadProgress(0);\n setUploadCompleted(false);\n setFileDetails(null);\n formik.setFieldValue(\"menuIconUrl\", null);\n };\n\n\n const showError = async () => {\n const errors = await formik.validateForm(); // Trigger validation and get the updated errors\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n const detail = Array.isArray(errorMessages) ? errorMessages.join(', ') : String(errorMessages);\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n // </div>\n // ))}\n // </div>\n // ),\n // });\n }\n };\n\n const showCustomeError = async (error: string[]) => {\n if (error.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: error.join(', '), life: 3000 }));\n }\n };\n\n useEffect(() => {\n if (isSuccess == true || isModuleUpdateSuccess == true) {\n router.push(`/admin/core/solid-core/module-metadata/list`);\n }\n }, [isSuccess, isModuleUpdateSuccess])\n\n\n\n const serachDDefaultDataSource = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.dataSource.filter((t: any) => t.name.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.name, value: e.name, type: e.type }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n const defaultDataSourceField = useSolidAutocompleteField({\n formik,\n fieldName: \"defaultDataSource\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: serachDDefaultDataSource,\n existingData: formik.values.defaultDataSource,\n });\n\n\n // Error Handler \n\n useEffect(() => {\n const errors = [\n { isError, error },\n { isError: isModuleUpdateError, error: updateModuleError },\n { isError: isMediaDeleteError, error: mediaDeleteError },\n ];\n\n // Handle any error\n errors.forEach(({ isError, error }) => {\n if (isError && error) {\n const errorMessage = error && typeof error === 'object' && 'data' in error && 'message' in (error as any).data\n ? (error 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 });\n }, [isError, isModuleUpdateError, isMediaDeleteError])\n\n const [activeWorkspaceTab, setActiveWorkspaceTab] = useState(\"general\");\n\n const isCreateMode = pathname.includes('new');\n const shouldShowGeneralSave = isCreateMode || activeWorkspaceTab === \"general\";\n\n const handleCancel = () => {\n router.back();\n };\n\n const generalInfoContent = (\n <div className={`solid-module-general-info-content ${!isCreateMode ? \"is-tabbed\" : \"\"}`}>\n {!isCreateMode && shouldShowGeneralSave && formik.dirty && (\n <div className=\"solid-module-general-info-actions\">\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n form=\"module-general-info-form\"\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n </div>\n )}\n <form\n id=\"module-general-info-form\"\n style={{ width: '100%', background: \"#fff\" }}\n onSubmit={formik.handleSubmit}\n >\n <div className=\"solid-form-content\">\n <SolidPanel header={\"Basic Info\"} className=\"solid-column-panel\">\n <div className=\"mt-3 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"displayName\" className={`${styles.fieldLabel} form-field-label`}>\n Display Name <span className=\"text-red-500\">*</span>\n </label>\n <SolidInput\n disabled={!!data}\n type=\"text\"\n id=\"displayName\"\n name=\"displayName\"\n onChange={(e) => {\n formik.handleChange(e);\n const { toKebabCase } = getSingularAndPlural(e.target.value);\n if (pathname.includes('new')) {\n formik.setFieldValue(\"name\", toKebabCase);\n }\n }}\n value={formik.values.displayName}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"displayName\") && (\n <p className={styles.fieldError}>{formik?.errors?.displayName?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"name\" className={`${styles.fieldLabel} form-field-label`}>\n Name <span className=\"text-red-500\">*</span>\n </label>\n <SolidInput\n disabled\n type=\"text\"\n id=\"name\"\n name=\"name\"\n onChange={formik.handleChange}\n value={formik.values.name}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"name\") && (\n <p className={styles.fieldError}>{formik?.errors?.name?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n <div className=\"mt-4 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"menuSequenceNumber\" className={`${styles.fieldLabel} form-field-label`}>\n Menu Sequence Number\n </label>\n <SolidInput\n id=\"menuSequenceNumber\"\n type=\"number\"\n onChange={formik.handleChange}\n min={0}\n value={formik.values.menuSequenceNumber}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"menuSequenceNumber\") && (\n <p className={styles.fieldError}>{formik?.errors?.menuSequenceNumber?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"description\" className={`${styles.fieldLabel} form-field-label`}>\n Description <span className=\"text-red-500\">*</span>\n </label>\n <SolidTextarea\n id=\"description\"\n name=\"description\"\n onChange={formik.handleChange}\n value={formik.values.description}\n className={styles.fieldTextarea}\n rows={5}\n cols={30}\n />\n {isFormFieldValid(formik, \"description\") && (\n <p className={styles.fieldError}>{formik?.errors?.description?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n </SolidPanel>\n <SolidPanel header={\"Configurations\"} className=\"solid-column-panel mt-4\">\n <div className=\"mt-3 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"defaultDataSource\" className={`${styles.fieldLabel} form-field-label`}>\n Default Data Source\n </label>\n <div className=\"solid-standard-autocomplete w-full\">\n <SolidAutocomplete\n disabled={!!data}\n value={defaultDataSourceField.selectedItem}\n suggestions={defaultDataSourceField.filteredItems}\n completeMethod={defaultDataSourceField.searchItems}\n onChange={defaultDataSourceField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"defaultDataSource\") && (\n <p className={styles.fieldError}>{formik?.errors?.defaultDataSource?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={`${styles.fieldWrapper} relative`}>\n <label htmlFor=\"menuIconUrl\" className={`${styles.fieldLabel} form-field-label`}>\n Menu Icon <small className=\"text-red-500 helper-text\">(only svg, png and jpeg are allowed)</small>\n </label>\n <div {...getRootPropsmenuIcon()} className=\"solid-dropzone-wrapper\">\n <input {...getInputPropsmenuIcon()} />\n <DropzonePlaceholder />\n </div>\n {isFormFieldValid(formik, \"menuIconUrl\") && (\n <SolidMessage severity=\"error\" text={formik?.errors?.menuIconUrl?.toString()} className=\"mt-2\" />\n )}\n\n {fileDetails && (\n <div className=\"solid-file-upload-wrapper mt-4\">\n <div className=\"flex items-center gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"flex w-full flex-col gap-1\">\n <div className=\"flex items-center justify-between\">\n <div className=\"font-bold solid-module-mobile-text-wrapper\">{fileDetails.name}</div>\n <button\n type=\"button\"\n className=\"solid-file-icon-btn is-danger solid-module-upload-remove\"\n aria-label=\"Remove uploaded menu icon\"\n onClick={handleCancelUpload}\n >\n <SolidIcon name=\"si-times\" aria-hidden />\n </button>\n </div>\n {uploadCompleted ? (\n <div className=\"flex items-center gap-2 text-sm\">\n {totalSize} of {totalSize}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"4\" viewBox=\"0 0 4 4\" fill=\"none\">\n <circle cx=\"2\" cy=\"2\" r=\"2\" fill=\"#C1C1C1\" />\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <mask id=\"mask0_2480_8635\" style={{ maskType: 'alpha' }} maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"20\" height=\"20\">\n <rect width=\"20\" height=\"20\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2480_8635)\">\n <path d=\"M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 5.215 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z\" fill=\"var(--primary-color, var(--primary))\" />\n </g>\n </svg>\n Completed\n </div>\n ) : (\n <div className=\"flex items-center gap-2 text-sm\">\n {uploadedSize} of {totalSize}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"4\" viewBox=\"0 0 4 4\" fill=\"none\">\n <circle cx=\"2\" cy=\"2\" r=\"2\" fill=\"#C1C1C1\" />\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z\" fill=\"black\" />\n </svg>\n Uploading ${uploadProgress}% Completed\n </div>\n )}\n </div>\n </div>\n <SolidProgressBar value={uploadProgress} showValue={false} style={{ height: 4 }} className=\"mt-2\" />\n </div>\n )}\n </div>\n </div>\n </div>\n </SolidPanel>\n </div>\n </form>\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n );\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >\n {isCreateMode && (\n <div className=\"solid-form-header flex flex-wrap items-center justify-between gap-3\">\n <div className=\"flex flex-col gap-1\" />\n <div className=\"flex items-center gap-2\">\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n onClick={handleCancel}\n className=\"bg-[var(--primary-color-text)]\"\n >\n Cancel\n </SolidButton>\n {shouldShowGeneralSave && formik.dirty && (\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n form=\"module-general-info-form\"\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n )}\n </div>\n </div>\n )}\n\n {isCreateMode ? (\n generalInfoContent\n ) : (\n <div className=\"solid-module-form-workspace\">\n <SolidTabGroup\n value={activeWorkspaceTab}\n onValueChange={setActiveWorkspaceTab}\n className=\"solid-module-form-tabs\"\n listClassName=\"solid-module-form-tablist\"\n panelClassName=\"solid-module-form-tabpanel\"\n extra={(\n <div className=\"solid-module-form-tab-extra\">\n <SolidButton\n type=\"button\"\n size=\"sm\"\n onClick={() => router.push(`/admin/core/solid-core/modules/${data?.id}/datasource-introspection`)}\n >\n Auto Map Tables\n </SolidButton>\n </div>\n )}\n tabs={[\n {\n value: \"general\",\n label: <span className=\"solid-module-form-tab-label\">General Info</span>,\n content: generalInfoContent,\n },\n {\n value: \"explorer\",\n label: <span className=\"solid-module-form-tab-label\">Explorer</span>,\n content: <ModuleMetadataExplorer moduleName={data?.name} moduleId={data?.id} />,\n },\n ]}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default CreateModule;\n"]}
@@ -443,7 +443,8 @@ const CreateModule = ({ params, data }: any) => {
443
443
  <div className="font-bold solid-module-mobile-text-wrapper">{fileDetails.name}</div>
444
444
  <button
445
445
  type="button"
446
- className="solid-file-icon-btn is-danger"
446
+ className="solid-file-icon-btn is-danger solid-module-upload-remove"
447
+ aria-label="Remove uploaded menu icon"
447
448
  onClick={handleCancelUpload}
448
449
  >
449
450
  <SolidIcon name="si-times" aria-hidden />
@@ -532,6 +533,17 @@ const CreateModule = ({ params, data }: any) => {
532
533
  className="solid-module-form-tabs"
533
534
  listClassName="solid-module-form-tablist"
534
535
  panelClassName="solid-module-form-tabpanel"
536
+ extra={(
537
+ <div className="solid-module-form-tab-extra">
538
+ <SolidButton
539
+ type="button"
540
+ size="sm"
541
+ onClick={() => router.push(`/admin/core/solid-core/modules/${data?.id}/datasource-introspection`)}
542
+ >
543
+ Auto Map Tables
544
+ </SolidButton>
545
+ </div>
546
+ )}
535
547
  tabs={[
536
548
  {
537
549
  value: "general",
@@ -1 +1 @@
1
- {"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAoB,EACpB,WAA0B,EAC1B,KAAK,GACN,EAAE,kBAAkB,2CAwFpB"}
1
+ {"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAoB,EACpB,WAA0B,EAC1B,KAAK,GACN,EAAE,kBAAkB,2CAyFpB"}
@@ -19,7 +19,7 @@ export function SolidTabGroup(_a) {
19
19
  return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, "aria-controls": "solid-tab-panel-".concat(tab.value), id: "solid-tab-".concat(tab.value), className: cx("solid-notebook-tab-trigger", "solid-tabs-trigger", tab.hasError && "error", isActive && "active", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
20
20
  })), extra && _jsx("div", { children: extra })] }), tabs.map(function (tab) {
21
21
  var isActive = tab.value === value;
22
- return (_jsx("div", { role: "tabpanel", id: "solid-tab-panel-".concat(tab.value), "aria-labelledby": "solid-tab-".concat(tab.value), hidden: !isActive, className: cx("solid-notebook-content", "solid-tabs-panel", panelClassName), children: isActive ? tab.content : null }, tab.value));
22
+ return (_jsx("div", { role: "tabpanel", id: "solid-tab-panel-".concat(tab.value), "aria-labelledby": "solid-tab-".concat(tab.value), hidden: !isActive, className: cx("solid-notebook-content", "solid-tabs-panel", panelClassName), style: !isActive ? { display: "none" } : undefined, children: isActive ? tab.content : null }, tab.value));
23
23
  })] }));
24
24
  }
25
25
  //# sourceMappingURL=SolidTabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n hasError?: boolean;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n tabPosition?: \"left\" | \"center\" | \"right\";\n orientation?: \"horizontal\" | \"vertical\";\n extra?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n tabPosition = \"left\",\n orientation = \"horizontal\",\n extra,\n}: SolidTabGroupProps) {\n return (\n <div\n className={cx(\n \"solid-notebook\",\n \"solid-tabs\",\n `solid-tabs--${tabPosition}`,\n orientation === \"vertical\" && \"solid-tabs--vertical\",\n className,\n )}\n >\n <div\n className={cx(\"solid-notebook-tablist\", \"solid-tabs-list\", listClassName)}\n role=\"tablist\"\n aria-orientation={orientation}\n style={extra ? { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" } : undefined}\n >\n {extra ? (\n <div style={{ display: \"flex\" }}>\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n ) : (\n tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })\n )}\n {extra && <div>{extra}</div>}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-notebook-content\", \"solid-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n hasError?: boolean;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n tabPosition?: \"left\" | \"center\" | \"right\";\n orientation?: \"horizontal\" | \"vertical\";\n extra?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n tabPosition = \"left\",\n orientation = \"horizontal\",\n extra,\n}: SolidTabGroupProps) {\n return (\n <div\n className={cx(\n \"solid-notebook\",\n \"solid-tabs\",\n `solid-tabs--${tabPosition}`,\n orientation === \"vertical\" && \"solid-tabs--vertical\",\n className,\n )}\n >\n <div\n className={cx(\"solid-notebook-tablist\", \"solid-tabs-list\", listClassName)}\n role=\"tablist\"\n aria-orientation={orientation}\n style={extra ? { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" } : undefined}\n >\n {extra ? (\n <div style={{ display: \"flex\" }}>\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n ) : (\n tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })\n )}\n {extra && <div>{extra}</div>}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-notebook-content\", \"solid-tabs-panel\", panelClassName)}\n style={!isActive ? { display: \"none\" } : undefined}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
@@ -118,6 +118,7 @@ export function SolidTabGroup({
118
118
  aria-labelledby={`solid-tab-${tab.value}`}
119
119
  hidden={!isActive}
120
120
  className={cx("solid-notebook-content", "solid-tabs-panel", panelClassName)}
121
+ style={!isActive ? { display: "none" } : undefined}
121
122
  >
122
123
  {isActive ? tab.content : null}
123
124
  </div>