@solidxai/core-ui 0.1.8-beta.1 → 0.1.8-beta.3

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 (56) hide show
  1. package/dist/components/Svg/FileSvg.js +1 -1
  2. package/dist/components/Svg/FileSvg.js.map +1 -1
  3. package/dist/components/Svg/FileSvg.tsx +1 -1
  4. package/dist/components/common/SolidFormStepper.js +1 -1
  5. package/dist/components/common/SolidFormStepper.js.map +1 -1
  6. package/dist/components/common/SolidFormStepper.tsx +1 -1
  7. package/dist/components/core/chatter/chatter.module.css +4 -4
  8. package/dist/components/core/common/SolidGlobalSearchElement.js +3 -3
  9. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  10. package/dist/components/core/common/SolidGlobalSearchElement.tsx +3 -3
  11. package/dist/components/core/common/dndCompat.d.ts +8 -0
  12. package/dist/components/core/common/dndCompat.d.ts.map +1 -0
  13. package/dist/components/core/common/dndCompat.js +5 -0
  14. package/dist/components/core/common/dndCompat.js.map +1 -0
  15. package/dist/components/core/common/dndCompat.ts +9 -0
  16. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  17. package/dist/components/core/form/SolidFormActionHeader.js +4 -0
  18. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  19. package/dist/components/core/form/SolidFormActionHeader.tsx +12 -0
  20. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  21. package/dist/components/core/kanban/KanbanCard.js +2 -2
  22. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  23. package/dist/components/core/kanban/KanbanCard.tsx +4 -3
  24. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  25. package/dist/components/core/kanban/KanbanColumn.js +3 -3
  26. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  27. package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
  28. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  29. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +4 -3
  30. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  31. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +13 -12
  32. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  33. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +1 -1
  34. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  35. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +6 -0
  36. package/dist/components/core/module/CreateModule.js +1 -1
  37. package/dist/components/core/module/CreateModule.js.map +1 -1
  38. package/dist/components/core/module/CreateModule.tsx +1 -1
  39. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  40. package/dist/components/layout/AdminTopHeader.js +25 -1
  41. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  42. package/dist/components/layout/AdminTopHeader.tsx +38 -1
  43. package/dist/components/shad-cn-ui/SolidTabs.js +1 -1
  44. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  45. package/dist/components/shad-cn-ui/SolidTabs.tsx +1 -1
  46. package/dist/resources/images/Background.svg +7 -1
  47. package/dist/resources/images/Navigation/SolidSettinsIcon.svg +9 -1
  48. package/dist/resources/images/errors/error.svg +16 -10
  49. package/dist/resources/shadcn-base.css +17 -13
  50. package/dist/resources/themes/solid-dark-purple/theme.css +6 -6
  51. package/dist/resources/themes/solid-light-purple/theme.css +102 -102
  52. package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
  53. package/dist/routes/guards/AuthGuard.js +4 -1
  54. package/dist/routes/guards/AuthGuard.js.map +1 -1
  55. package/dist/routes/guards/AuthGuard.tsx +6 -1
  56. package/package.json +1 -1
@@ -59,10 +59,11 @@ import { useFormik } from 'formik';
59
59
  import { useState } from 'react';
60
60
  import { useDispatch } from 'react-redux';
61
61
  import { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';
62
- import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';
62
+ import { DragDropContext } from '@hello-pangea/dnd';
63
63
  import styles from './SolidListColumnSelector.module.css';
64
64
  import { ERROR_MESSAGES } from '../../../../constants/error-messages';
65
65
  import { showToast } from '../../../../redux/features/toastSlice';
66
+ import { asCompatibleReactNode, CompatibleDraggable, CompatibleDroppable } from '../../common/dndCompat';
66
67
  export var SolidListColumnSelector = function (_a) {
67
68
  var _b, _c;
68
69
  var listViewMetaData = _a.listViewMetaData, onClose = _a.onClose;
@@ -190,12 +191,12 @@ export var SolidListColumnSelector = function (_a) {
190
191
  reordered.splice(result.destination.index, 0, moved);
191
192
  setFields(reordered);
192
193
  };
193
- return (_jsx(_Fragment, { children: _jsxs("form", { onSubmit: formik.handleSubmit, className: "flex flex-column gap-1 px-0", children: [_jsx(DragDropContext, { onDragEnd: onDragEnd, onDragStart: function () { return setIsDragging(true); }, children: _jsx(Droppable, { droppableId: "columns", children: function (provided) { return (_jsxs("div", __assign({}, provided.droppableProps, { ref: provided.innerRef, className: "flex flex-column cogwheel-column-filter px-0 ".concat(isDragging ? styles.SolidColumnDragContextActive : ''), style: { maxHeight: 400, overflowY: 'auto' }, children: [fields.map(function (column, index) { return (_jsx(Draggable, { draggableId: column.key, index: index, children: function (provided, snapshot) { return (_jsxs("div", __assign({ ref: provided.innerRef }, provided.draggableProps, provided.dragHandleProps, { className: "flex align-items-center justify-content-between gap-3 px-2 py-2 ".concat(snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''), style: __assign({}, provided.draggableProps.style), children: [_jsxs("label", { htmlFor: column.key, className: 'solid-column-selector-item-main', children: [_jsx("input", { id: column.key, type: "checkbox", name: "selectedColumns", className: "solid-column-selector-checkbox", checked: formik.values.selectedColumns.some(function (item) { return item.key === column.key; }), onChange: function () {
194
+ return (_jsx(_Fragment, { children: _jsxs("form", { onSubmit: formik.handleSubmit, className: "flex flex-column gap-1 px-0", children: [_jsx(DragDropContext, { onDragEnd: onDragEnd, onDragStart: function () { return setIsDragging(true); }, children: _jsx(CompatibleDroppable, { droppableId: "columns", children: function (provided) { return (_jsxs("div", __assign({}, provided.droppableProps, { ref: provided.innerRef, className: "flex flex-column cogwheel-column-filter px-0 ".concat(isDragging ? styles.SolidColumnDragContextActive : ''), style: { maxHeight: 400, overflowY: 'auto' }, children: [fields.map(function (column, index) { return (_jsx(CompatibleDraggable, { draggableId: column.key, index: index, children: function (provided, snapshot) { return (_jsxs("div", __assign({ ref: provided.innerRef }, provided.draggableProps, provided.dragHandleProps, { className: "flex align-items-center justify-content-between gap-3 px-2 py-2 ".concat(snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''), style: __assign({}, provided.draggableProps.style), children: [_jsxs("label", { htmlFor: column.key, className: 'solid-column-selector-item-main', children: [_jsx("input", { id: column.key, type: "checkbox", name: "selectedColumns", className: "solid-column-selector-checkbox", checked: formik.values.selectedColumns.some(function (item) { return item.key === column.key; }), onChange: function () {
194
195
  var isChecked = formik.values.selectedColumns.some(function (item) { return item.key === column.key; });
195
196
  formik.setFieldValue("selectedColumns", isChecked
196
197
  ? formik.values.selectedColumns.filter(function (item) { return item.key !== column.key; })
197
198
  : __spreadArray(__spreadArray([], formik.values.selectedColumns, true), [column], false));
198
- } }), _jsx("span", { className: "solid-column-selector-label", children: column.name })] }), _jsx(DragActive, { active: snapshot.isDragging })] }))); } }, column.key)); }), provided.placeholder] }))); } }) }), _jsxs("div", { className: "solid-column-selector-actions", children: [_jsx("button", { type: 'submit', className: "solid-compact-action-button solid-compact-action-button-primary", children: "Apply" }), _jsx("button", { type: 'button', className: "solid-compact-action-button", onClick: function () { return onClose === null || onClose === void 0 ? void 0 : onClose(); }, children: "Cancel" })] })] }) }));
199
+ } }), _jsx("span", { className: "solid-column-selector-label", children: column.name })] }), _jsx(DragActive, { active: snapshot.isDragging })] }))); } }, column.key)); }), asCompatibleReactNode(provided.placeholder)] }))); } }) }), _jsxs("div", { className: "solid-column-selector-actions", children: [_jsx("button", { type: 'submit', className: "solid-compact-action-button solid-compact-action-button-primary", children: "Apply" }), _jsx("button", { type: 'button', className: "solid-compact-action-button", onClick: function () { return onClose === null || onClose === void 0 ? void 0 : onClose(); }, children: "Cancel" })] })] }) }));
199
200
  };
200
201
  var DragActive = function (_a) {
201
202
  var active = _a.active;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListColumnSelector.js","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport React, { useState } from 'react'\nimport { useDispatch } from 'react-redux';\nimport { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';\nimport { DragDropContext, Droppable, Draggable, DropResult } from '@hello-pangea/dnd';\nimport styles from './SolidListColumnSelector.module.css'\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { showToast } from '../../../../redux/features/toastSlice';\n\ninterface FieldMetadata {\n displayName: string;\n}\n\ninterface FilterColumns {\n name: string;\n key: string;\n}\n\nexport const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {\n const dispatch = useDispatch();\n const [isDragging, setIsDragging] = useState(false);\n const entityApi = createSolidEntityApi('userViewMetadata');\n const {\n useUpsertSolidEntityMutation\n } = entityApi;\n\n const [upsertUserView, { isLoading, error: viewCreateError, isSuccess, data: data }] = useUpsertSolidEntityMutation();\n\n if (!listViewMetaData) {\n return;\n }\n if (!listViewMetaData.data) {\n return;\n }\n\n const solidView = listViewMetaData?.data?.solidView;\n\n // This is a key value map of field name vs field metadata.\n const solidFieldsMetadata = listViewMetaData?.data?.solidFieldsMetadata as Record<string, FieldMetadata>;\n\n\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n\n const checkedFieldNames = new Set(solidView.layout.children.map((col: { attrs: { name: string } }) => col.attrs.name));\n\n const solidListColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const [fields, setFields] = useState<FilterColumns[]>(() => {\n const selectedOrder = solidView.layout.children.map((child: any) => child.attrs.name);\n\n const allColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const selectedFields: FilterColumns[] = [];\n const remainingFields: FilterColumns[] = [];\n\n const usedKeys = new Set<string>();\n\n // First, add selected fields in the order of solidView\n for (const key of selectedOrder) {\n const column = allColumns.find(col => col.key === key);\n if (column) {\n selectedFields.push(column);\n usedKeys.add(key);\n }\n }\n\n // Then, add remaining fields that are not selected\n for (const col of allColumns) {\n if (!usedKeys.has(col.key)) {\n remainingFields.push(col);\n }\n }\n\n return [...selectedFields, ...remainingFields];\n });\n\n const formik = useFormik({\n initialValues: {\n selectedColumns: solidListColumns.filter(col => checkedFieldNames.has(col.key)),\n },\n onSubmit: async (values) => {\n const selectedKeys = values.selectedColumns.map(col => col.key);\n\n // Step 1: Extract current children\n const currentChildren = solidView.layout.children;\n\n // Step 2: Create a map of all available metadata\n const allFieldMeta = solidFieldsMetadata;\n\n // Step 3: Filter children to include only selected keys\n const newChildren = fields\n .filter(col => selectedKeys.includes(col.key))\n .map(({ key }) => {\n const existingChild = currentChildren.find((child: any) => child.attrs.name === key);\n if (existingChild) return existingChild;\n \n // @ts-ignore\n const fieldType = allFieldMeta[key]?.type;\n const isTextType = fieldType === \"shortText\" || fieldType === \"longText\" || fieldType ===\"selectionStatic\" || fieldType ===\"selectionDynamic\";\n \n return {\n type: 'field',\n attrs: {\n name: key,\n label: allFieldMeta[key]?.displayName || key,\n ...(isTextType ? { isSearchable: true } : {}),\n },\n };\n });\n \n // Now build updated solidView\n const updatedView = {\n layout: {\n ...solidView.layout,\n children: newChildren\n }\n };\n\n try {\n if (listViewMetaData?.data?.solidView?.id) {\n // Update existing user view\n const response = await upsertUserView({\n viewMetadataId: listViewMetaData?.data?.solidView?.id,\n layout: JSON.stringify(updatedView.layout),\n }).unwrap();\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.FORM_LAYOUT_UPDATE }));\n window.location.reload();\n }\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.UPDATING_USER, error);\n }\n },\n });\n\n const onDragEnd = (result: DropResult) => {\n setIsDragging(false);\n if (!result.destination) return;\n const reordered = [...fields];\n const [moved] = reordered.splice(result.source.index, 1);\n reordered.splice(result.destination.index, 0, moved);\n setFields(reordered);\n };\n\n return (\n <>\n <form onSubmit={formik.handleSubmit} className=\"flex flex-column gap-1 px-0\">\n <DragDropContext onDragEnd={onDragEnd} onDragStart={() => setIsDragging(true)}>\n <Droppable droppableId=\"columns\">\n {(provided): React.ReactElement => (\n <div\n {...provided.droppableProps}\n ref={provided.innerRef}\n className={`flex flex-column cogwheel-column-filter px-0 ${isDragging ? styles.SolidColumnDragContextActive : ''}`}\n style={{ maxHeight: 400, overflowY: 'auto' }}\n >\n {fields.map((column, index) => (\n <Draggable key={column.key} draggableId={column.key} index={index}>\n {(provided, snapshot): React.ReactElement => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n className={`flex align-items-center justify-content-between gap-3 px-2 py-2 ${snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''}`}\n style={{\n ...provided.draggableProps.style,\n }}\n >\n <label htmlFor={column.key} className='solid-column-selector-item-main'>\n <input\n id={column.key}\n type=\"checkbox\"\n name=\"selectedColumns\"\n className=\"solid-column-selector-checkbox\"\n checked={formik.values.selectedColumns.some(item => item.key === column.key)}\n onChange={() => {\n const isChecked = formik.values.selectedColumns.some(item => item.key === column.key);\n formik.setFieldValue(\n \"selectedColumns\",\n isChecked\n ? formik.values.selectedColumns.filter(item => item.key !== column.key)\n : [...formik.values.selectedColumns, column]\n );\n }}\n />\n <span className=\"solid-column-selector-label\">\n {column.name}\n </span>\n </label>\n <DragActive active={snapshot.isDragging} />\n </div>\n )}\n </Draggable>\n ))}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n <div className=\"solid-column-selector-actions\">\n <button type='submit' className=\"solid-compact-action-button solid-compact-action-button-primary\">Apply</button>\n <button type='button' className=\"solid-compact-action-button\" onClick={() => onClose?.()}>\n Cancel\n </button>\n </div>\n </form>\n </>\n )\n}\n\nconst DragActive = ({ active }: any) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.46354 11.7331C7.46354 12.0997 7.33299 12.4136 7.07187 12.6747C6.81076 12.9359 6.49687 13.0664 6.13021 13.0664C5.76354 13.0664 5.44965 12.9359 5.18854 12.6747C4.92743 12.4136 4.79688 12.0997 4.79688 11.7331C4.79688 11.3664 4.92743 11.0525 5.18854 10.7914C5.44965 10.5303 5.76354 10.3997 6.13021 10.3997C6.49687 10.3997 6.81076 10.5303 7.07187 10.7914C7.33299 11.0525 7.46354 11.3664 7.46354 11.7331ZM7.46354 7.73307C7.46354 8.09974 7.33299 8.41363 7.07187 8.67474C6.81076 8.93585 6.49687 9.06641 6.13021 9.06641C5.76354 9.06641 5.44965 8.93585 5.18854 8.67474C4.92743 8.41363 4.79688 8.09974 4.79688 7.73307C4.79688 7.36641 4.92743 7.05252 5.18854 6.79141C5.44965 6.5303 5.76354 6.39974 6.13021 6.39974C6.49687 6.39974 6.81076 6.5303 7.07187 6.79141C7.33299 7.05252 7.46354 7.36641 7.46354 7.73307ZM7.46354 3.73307C7.46354 4.09974 7.33299 4.41363 7.07187 4.67474C6.81076 4.93585 6.49687 5.06641 6.13021 5.06641C5.76354 5.06641 5.44965 4.93585 5.18854 4.67474C4.92743 4.41363 4.79688 4.09974 4.79688 3.73307C4.79688 3.36641 4.92743 3.05252 5.18854 2.79141C5.44965 2.5303 5.76354 2.39974 6.13021 2.39974C6.49687 2.39974 6.81076 2.5303 7.07187 2.79141C7.33299 3.05252 7.46354 3.36641 7.46354 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n <path d=\"M11.737 11.7331C11.737 12.0997 11.6064 12.4136 11.3453 12.6747C11.0842 12.9359 10.7703 13.0664 10.4036 13.0664C10.037 13.0664 9.72309 12.9359 9.46198 12.6747C9.20087 12.4136 9.07031 12.0997 9.07031 11.7331C9.07031 11.3664 9.20087 11.0525 9.46198 10.7914C9.72309 10.5303 10.037 10.3997 10.4036 10.3997C10.7703 10.3997 11.0842 10.5303 11.3453 10.7914C11.6064 11.0525 11.737 11.3664 11.737 11.7331ZM11.737 7.73307C11.737 8.09974 11.6064 8.41363 11.3453 8.67474C11.0842 8.93585 10.7703 9.06641 10.4036 9.06641C10.037 9.06641 9.72309 8.93585 9.46198 8.67474C9.20087 8.41363 9.07031 8.09974 9.07031 7.73307C9.07031 7.36641 9.20087 7.05252 9.46198 6.79141C9.72309 6.5303 10.037 6.39974 10.4036 6.39974C10.7703 6.39974 11.0842 6.5303 11.3453 6.79141C11.6064 7.05252 11.737 7.36641 11.737 7.73307ZM11.737 3.73307C11.737 4.09974 11.6064 4.41363 11.3453 4.67474C11.0842 4.93585 10.7703 5.06641 10.4036 5.06641C10.037 5.06641 9.72309 4.93585 9.46198 4.67474C9.20087 4.41363 9.07031 4.09974 9.07031 3.73307C9.07031 3.36641 9.20087 3.05252 9.46198 2.79141C9.72309 2.5303 10.037 2.39974 10.4036 2.39974C10.7703 2.39974 11.0842 2.5303 11.3453 2.79141C11.6064 3.05252 11.737 3.36641 11.737 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n </svg>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidListColumnSelector.js","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport React, { useState } from 'react'\nimport { useDispatch } from 'react-redux';\nimport { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';\nimport { DragDropContext, DropResult } from '@hello-pangea/dnd';\nimport styles from './SolidListColumnSelector.module.css'\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { showToast } from '../../../../redux/features/toastSlice';\nimport { asCompatibleReactNode, CompatibleDraggable, CompatibleDroppable } from '../../common/dndCompat';\n\ninterface FieldMetadata {\n displayName: string;\n}\n\ninterface FilterColumns {\n name: string;\n key: string;\n}\n\nexport const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {\n const dispatch = useDispatch();\n const [isDragging, setIsDragging] = useState(false);\n const entityApi = createSolidEntityApi('userViewMetadata');\n const {\n useUpsertSolidEntityMutation\n } = entityApi;\n\n const [upsertUserView, { isLoading, error: viewCreateError, isSuccess, data: data }] = useUpsertSolidEntityMutation();\n\n if (!listViewMetaData) {\n return;\n }\n if (!listViewMetaData.data) {\n return;\n }\n\n const solidView = listViewMetaData?.data?.solidView;\n\n // This is a key value map of field name vs field metadata.\n const solidFieldsMetadata = listViewMetaData?.data?.solidFieldsMetadata as Record<string, FieldMetadata>;\n\n\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n\n const checkedFieldNames = new Set(solidView.layout.children.map((col: { attrs: { name: string } }) => col.attrs.name));\n\n const solidListColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const [fields, setFields] = useState<FilterColumns[]>(() => {\n const selectedOrder = solidView.layout.children.map((child: any) => child.attrs.name);\n\n const allColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({\n name: field.displayName,\n key,\n }));\n\n const selectedFields: FilterColumns[] = [];\n const remainingFields: FilterColumns[] = [];\n\n const usedKeys = new Set<string>();\n\n // First, add selected fields in the order of solidView\n for (const key of selectedOrder) {\n const column = allColumns.find(col => col.key === key);\n if (column) {\n selectedFields.push(column);\n usedKeys.add(key);\n }\n }\n\n // Then, add remaining fields that are not selected\n for (const col of allColumns) {\n if (!usedKeys.has(col.key)) {\n remainingFields.push(col);\n }\n }\n\n return [...selectedFields, ...remainingFields];\n });\n\n const formik = useFormik({\n initialValues: {\n selectedColumns: solidListColumns.filter(col => checkedFieldNames.has(col.key)),\n },\n onSubmit: async (values) => {\n const selectedKeys = values.selectedColumns.map(col => col.key);\n\n // Step 1: Extract current children\n const currentChildren = solidView.layout.children;\n\n // Step 2: Create a map of all available metadata\n const allFieldMeta = solidFieldsMetadata;\n\n // Step 3: Filter children to include only selected keys\n const newChildren = fields\n .filter(col => selectedKeys.includes(col.key))\n .map(({ key }) => {\n const existingChild = currentChildren.find((child: any) => child.attrs.name === key);\n if (existingChild) return existingChild;\n\n // @ts-ignore\n const fieldType = allFieldMeta[key]?.type;\n const isTextType = fieldType === \"shortText\" || fieldType === \"longText\" || fieldType === \"selectionStatic\" || fieldType === \"selectionDynamic\";\n\n return {\n type: 'field',\n attrs: {\n name: key,\n label: allFieldMeta[key]?.displayName || key,\n ...(isTextType ? { isSearchable: true } : {}),\n },\n };\n });\n\n // Now build updated solidView\n const updatedView = {\n layout: {\n ...solidView.layout,\n children: newChildren\n }\n };\n\n try {\n if (listViewMetaData?.data?.solidView?.id) {\n // Update existing user view\n const response = await upsertUserView({\n viewMetadataId: listViewMetaData?.data?.solidView?.id,\n layout: JSON.stringify(updatedView.layout),\n }).unwrap();\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.FORM_LAYOUT_UPDATE }));\n window.location.reload();\n }\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.UPDATING_USER, error);\n }\n },\n });\n\n const onDragEnd = (result: DropResult) => {\n setIsDragging(false);\n if (!result.destination) return;\n const reordered = [...fields];\n const [moved] = reordered.splice(result.source.index, 1);\n reordered.splice(result.destination.index, 0, moved);\n setFields(reordered);\n };\n\n return (\n <>\n <form onSubmit={formik.handleSubmit} className=\"flex flex-column gap-1 px-0\">\n <DragDropContext onDragEnd={onDragEnd} onDragStart={() => setIsDragging(true)}>\n <CompatibleDroppable droppableId=\"columns\">\n {(provided): any => (\n <div\n {...provided.droppableProps}\n ref={provided.innerRef}\n className={`flex flex-column cogwheel-column-filter px-0 ${isDragging ? styles.SolidColumnDragContextActive : ''}`}\n style={{ maxHeight: 400, overflowY: 'auto' }}\n >\n {fields.map((column, index) => (\n <CompatibleDraggable key={column.key} draggableId={column.key} index={index}>\n {(provided, snapshot): any => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n className={`flex align-items-center justify-content-between gap-3 px-2 py-2 ${snapshot.isDragging ? styles.SolidColumnDraggedActiveElement : ''}`}\n style={{\n ...provided.draggableProps.style,\n }}\n >\n <label htmlFor={column.key} className='solid-column-selector-item-main'>\n <input\n id={column.key}\n type=\"checkbox\"\n name=\"selectedColumns\"\n className=\"solid-column-selector-checkbox\"\n checked={formik.values.selectedColumns.some(item => item.key === column.key)}\n onChange={() => {\n const isChecked = formik.values.selectedColumns.some(item => item.key === column.key);\n formik.setFieldValue(\n \"selectedColumns\",\n isChecked\n ? formik.values.selectedColumns.filter(item => item.key !== column.key)\n : [...formik.values.selectedColumns, column]\n );\n }}\n />\n <span className=\"solid-column-selector-label\">\n {column.name}\n </span>\n </label>\n <DragActive active={snapshot.isDragging} />\n </div>\n )}\n </CompatibleDraggable>\n ))}\n {asCompatibleReactNode(provided.placeholder)}\n </div>\n )}\n </CompatibleDroppable>\n </DragDropContext>\n <div className=\"solid-column-selector-actions\">\n <button type='submit' className=\"solid-compact-action-button solid-compact-action-button-primary\">Apply</button>\n <button type='button' className=\"solid-compact-action-button\" onClick={() => onClose?.()}>\n Cancel\n </button>\n </div>\n </form>\n </>\n )\n}\n\nconst DragActive = ({ active }: any) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.46354 11.7331C7.46354 12.0997 7.33299 12.4136 7.07187 12.6747C6.81076 12.9359 6.49687 13.0664 6.13021 13.0664C5.76354 13.0664 5.44965 12.9359 5.18854 12.6747C4.92743 12.4136 4.79688 12.0997 4.79688 11.7331C4.79688 11.3664 4.92743 11.0525 5.18854 10.7914C5.44965 10.5303 5.76354 10.3997 6.13021 10.3997C6.49687 10.3997 6.81076 10.5303 7.07187 10.7914C7.33299 11.0525 7.46354 11.3664 7.46354 11.7331ZM7.46354 7.73307C7.46354 8.09974 7.33299 8.41363 7.07187 8.67474C6.81076 8.93585 6.49687 9.06641 6.13021 9.06641C5.76354 9.06641 5.44965 8.93585 5.18854 8.67474C4.92743 8.41363 4.79688 8.09974 4.79688 7.73307C4.79688 7.36641 4.92743 7.05252 5.18854 6.79141C5.44965 6.5303 5.76354 6.39974 6.13021 6.39974C6.49687 6.39974 6.81076 6.5303 7.07187 6.79141C7.33299 7.05252 7.46354 7.36641 7.46354 7.73307ZM7.46354 3.73307C7.46354 4.09974 7.33299 4.41363 7.07187 4.67474C6.81076 4.93585 6.49687 5.06641 6.13021 5.06641C5.76354 5.06641 5.44965 4.93585 5.18854 4.67474C4.92743 4.41363 4.79688 4.09974 4.79688 3.73307C4.79688 3.36641 4.92743 3.05252 5.18854 2.79141C5.44965 2.5303 5.76354 2.39974 6.13021 2.39974C6.49687 2.39974 6.81076 2.5303 7.07187 2.79141C7.33299 3.05252 7.46354 3.36641 7.46354 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n <path d=\"M11.737 11.7331C11.737 12.0997 11.6064 12.4136 11.3453 12.6747C11.0842 12.9359 10.7703 13.0664 10.4036 13.0664C10.037 13.0664 9.72309 12.9359 9.46198 12.6747C9.20087 12.4136 9.07031 12.0997 9.07031 11.7331C9.07031 11.3664 9.20087 11.0525 9.46198 10.7914C9.72309 10.5303 10.037 10.3997 10.4036 10.3997C10.7703 10.3997 11.0842 10.5303 11.3453 10.7914C11.6064 11.0525 11.737 11.3664 11.737 11.7331ZM11.737 7.73307C11.737 8.09974 11.6064 8.41363 11.3453 8.67474C11.0842 8.93585 10.7703 9.06641 10.4036 9.06641C10.037 9.06641 9.72309 8.93585 9.46198 8.67474C9.20087 8.41363 9.07031 8.09974 9.07031 7.73307C9.07031 7.36641 9.20087 7.05252 9.46198 6.79141C9.72309 6.5303 10.037 6.39974 10.4036 6.39974C10.7703 6.39974 11.0842 6.5303 11.3453 6.79141C11.6064 7.05252 11.737 7.36641 11.737 7.73307ZM11.737 3.73307C11.737 4.09974 11.6064 4.41363 11.3453 4.67474C11.0842 4.93585 10.7703 5.06641 10.4036 5.06641C10.037 5.06641 9.72309 4.93585 9.46198 4.67474C9.20087 4.41363 9.07031 4.09974 9.07031 3.73307C9.07031 3.36641 9.20087 3.05252 9.46198 2.79141C9.72309 2.5303 10.037 2.39974 10.4036 2.39974C10.7703 2.39974 11.0842 2.5303 11.3453 2.79141C11.6064 3.05252 11.737 3.36641 11.737 3.73307Z\" fill=\"var(--icon-color)\" fill-opacity={active ? \"0.75\" : \"0.25\"} />\n </svg>\n )\n}\n"]}
@@ -2,10 +2,11 @@ import { useFormik } from 'formik';
2
2
  import React, { useState } from 'react'
3
3
  import { useDispatch } from 'react-redux';
4
4
  import { createSolidEntityApi } from '../../../../redux/api/solidEntityApi';
5
- import { DragDropContext, Droppable, Draggable, DropResult } from '@hello-pangea/dnd';
5
+ import { DragDropContext, DropResult } from '@hello-pangea/dnd';
6
6
  import styles from './SolidListColumnSelector.module.css'
7
7
  import { ERROR_MESSAGES } from '../../../../constants/error-messages';
8
8
  import { showToast } from '../../../../redux/features/toastSlice';
9
+ import { asCompatibleReactNode, CompatibleDraggable, CompatibleDroppable } from '../../common/dndCompat';
9
10
 
10
11
  interface FieldMetadata {
11
12
  displayName: string;
@@ -101,11 +102,11 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
101
102
  .map(({ key }) => {
102
103
  const existingChild = currentChildren.find((child: any) => child.attrs.name === key);
103
104
  if (existingChild) return existingChild;
104
-
105
+
105
106
  // @ts-ignore
106
107
  const fieldType = allFieldMeta[key]?.type;
107
- const isTextType = fieldType === "shortText" || fieldType === "longText" || fieldType ==="selectionStatic" || fieldType ==="selectionDynamic";
108
-
108
+ const isTextType = fieldType === "shortText" || fieldType === "longText" || fieldType === "selectionStatic" || fieldType === "selectionDynamic";
109
+
109
110
  return {
110
111
  type: 'field',
111
112
  attrs: {
@@ -115,7 +116,7 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
115
116
  },
116
117
  };
117
118
  });
118
-
119
+
119
120
  // Now build updated solidView
120
121
  const updatedView = {
121
122
  layout: {
@@ -155,8 +156,8 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
155
156
  <>
156
157
  <form onSubmit={formik.handleSubmit} className="flex flex-column gap-1 px-0">
157
158
  <DragDropContext onDragEnd={onDragEnd} onDragStart={() => setIsDragging(true)}>
158
- <Droppable droppableId="columns">
159
- {(provided): React.ReactElement => (
159
+ <CompatibleDroppable droppableId="columns">
160
+ {(provided): any => (
160
161
  <div
161
162
  {...provided.droppableProps}
162
163
  ref={provided.innerRef}
@@ -164,8 +165,8 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
164
165
  style={{ maxHeight: 400, overflowY: 'auto' }}
165
166
  >
166
167
  {fields.map((column, index) => (
167
- <Draggable key={column.key} draggableId={column.key} index={index}>
168
- {(provided, snapshot): React.ReactElement => (
168
+ <CompatibleDraggable key={column.key} draggableId={column.key} index={index}>
169
+ {(provided, snapshot): any => (
169
170
  <div
170
171
  ref={provided.innerRef}
171
172
  {...provided.draggableProps}
@@ -199,12 +200,12 @@ export const SolidListColumnSelector = ({ listViewMetaData, onClose }: any) => {
199
200
  <DragActive active={snapshot.isDragging} />
200
201
  </div>
201
202
  )}
202
- </Draggable>
203
+ </CompatibleDraggable>
203
204
  ))}
204
- {provided.placeholder}
205
+ {asCompatibleReactNode(provided.placeholder)}
205
206
  </div>
206
207
  )}
207
- </Droppable>
208
+ </CompatibleDroppable>
208
209
  </DragDropContext>
209
210
  <div className="solid-column-selector-actions">
210
211
  <button type='submit' className="solid-compact-action-button solid-compact-action-button-primary">Apply</button>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidEmptyListViewPlaceholder.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,6BAA6B,4HAOvC,GAAG,4CAgIL,CAAC"}
1
+ {"version":3,"file":"SolidEmptyListViewPlaceholder.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,6BAA6B,4HAOvC,GAAG,4CAsIL,CAAC"}
@@ -60,6 +60,6 @@ export var SolidEmptyListViewPlaceholder = function (_a) {
60
60
  }, children: button.attrs.label }, ((_j = button === null || button === void 0 ? void 0 : button.attrs) === null || _j === void 0 ? void 0 : _j.name) || ((_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.label)));
61
61
  }) }));
62
62
  };
63
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: 'solid-empty-listview-placeholder-container', children: _jsxs("div", { className: "solid-empty-listview-placeholder-panel", children: [_jsxs("div", { className: "solid-empty-listview-header", children: [_jsx("div", { className: "solid-empty-listview-header-title", children: displayName }), _jsx("div", { className: "solid-empty-listview-header-subtitle", children: noDataText })] }), _jsxs("div", { className: "solid-empty-listview-body", children: [_jsxs("div", { className: "solid-empty-listview-actions", children: [canCreate && (_jsx("div", { className: "solid-empty-listview-create-action", children: _jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, title: (_s = (_r = solidListViewMetaData === null || solidListViewMetaData === void 0 ? void 0 : solidListViewMetaData.data) === null || _r === void 0 ? void 0 : _r.solidView) === null || _s === void 0 ? void 0 : _s.displayName }) })), canImport && (_jsx(SolidButton, { type: "button", variant: "outline", leftIcon: _jsx(Download, { size: 14 }), className: "solid-empty-listview-import-button", onClick: function () { return setOpenImportDialog(true); }, children: "Import" }))] }), _jsxs("div", { className: "solid-empty-listview-description", children: ["Click Create or Import to add ", entityName, " entities."] }), _jsx(CustomActionButtons, {})] })] }) }), openImportDialog && (_jsx(SolidGenericImport, { openImportDialog: openImportDialog, setOpenImportDialog: setOpenImportDialog, listViewMetaData: solidListViewMetaData, handleFetchUpdatedRecords: handleFetchUpdatedRecords }))] }));
63
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: 'solid-empty-listview-placeholder-container', children: _jsxs("div", { className: "solid-empty-listview-placeholder-panel", children: [_jsxs("div", { className: "solid-empty-listview-header", children: [_jsx("div", { className: "solid-empty-listview-header-title", children: displayName }), _jsx("div", { className: "solid-empty-listview-header-subtitle", children: noDataText })] }), _jsxs("div", { className: "solid-empty-listview-body", children: [_jsxs("div", { className: "solid-empty-listview-actions", children: [canCreate && (_jsx("div", { className: "solid-empty-listview-create-action", children: _jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, title: (_s = (_r = solidListViewMetaData === null || solidListViewMetaData === void 0 ? void 0 : solidListViewMetaData.data) === null || _r === void 0 ? void 0 : _r.solidView) === null || _s === void 0 ? void 0 : _s.displayName }) })), canImport && (_jsx(SolidButton, { type: "button", variant: "outline", leftIcon: _jsx(Download, { size: 14 }), className: "solid-empty-listview-import-button", onClick: function () { return setOpenImportDialog(true); }, children: "Import" }))] }), _jsxs("div", { className: "solid-empty-listview-description", children: ["Click Create or Import to add ", entityName, " entities."] }), _jsx(CustomActionButtons, {}), (canCreate || canImport) && (_jsxs("div", { className: "solid-empty-listview-description", children: ["Click Create or Import to add ", entityName, " entities."] }))] })] }) }), openImportDialog && (_jsx(SolidGenericImport, { openImportDialog: openImportDialog, setOpenImportDialog: setOpenImportDialog, listViewMetaData: solidListViewMetaData, handleFetchUpdatedRecords: handleFetchUpdatedRecords }))] }));
64
64
  };
65
65
  //# sourceMappingURL=SolidEmptyListViewPlaceholder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidEmptyListViewPlaceholder.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from '../../../helpers/permissions'\nimport { SolidCreateButton } from '../common/SolidCreateButton'\nimport { useHandleListCustomButtonClick } from '../../../components/common/useHandleListCustomButtonClick'\nimport { hasAnyRole } from '../../../helpers/rolesHelper'\nimport { env } from \"../../../adapters/env\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { useState } from \"react\";\nimport { Download, SquarePen } from \"lucide-react\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport { SolidButton } from \"../../shad-cn-ui\";\n\nexport const SolidEmptyListViewPlaceholder = ({\n createButtonUrl,\n createActionQueryParams,\n actionsAllowed,\n params,\n solidListViewMetaData,\n handleFetchUpdatedRecords,\n}: any) => {\n const [openImportDialog, setOpenImportDialog] = useState(false);\n const { data: session } = useSession();\n const user = session?.user;\n\n const layoutAttrs = solidListViewMetaData?.data?.solidView?.layout?.attrs ?? {};\n const displayName = solidListViewMetaData?.data?.solidView?.displayName ?? \"records\";\n const entityName = displayName.toLowerCase();\n const noDataText = solidListViewMetaData?.data?.solidView?.layout?.attrs?.listViewNoDataHelperText\n ?? (env(\"NEXT_PUBLIC_DEFAULT_LIST_VIEW_NODATA_HELPER_TEXT\") && solidListViewMetaData?.data?.solidView?.displayName\n ? `${env(\"NEXT_PUBLIC_DEFAULT_LIST_VIEW_NODATA_HELPER_TEXT\")} ${solidListViewMetaData.data.solidView.displayName}`\n : `There are no ${entityName} records yet.`);\n\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const normalizeAction = (value: boolean | string[] | undefined) => {\n if (value === true || value === undefined) return { enabled: true, roles: [] as string[] };\n if (value === false) return { enabled: false, roles: [] as string[] };\n if (Array.isArray(value)) return { enabled: true, roles: value };\n return { enabled: true, roles: [] as string[] };\n };\n\n const importAction = normalizeAction(layoutAttrs.import);\n const canCreate =\n actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n layoutAttrs?.create !== false &&\n params.embeded !== true &&\n layoutAttrs.showDefaultAddButton !== false;\n const canImport =\n params.embeded !== true &&\n importAction.enabled &&\n actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) &&\n (importAction.roles.length === 0 || hasAnyRole(user?.roles, importAction.roles));\n\n const CustomActionButtons = () => {\n const headerButtons = layoutAttrs?.headerButtons ?? [];\n if (layoutAttrs.showDefaultAddButton !== false || !headerButtons.length) return null;\n\n return (\n <div className=\"solid-empty-listview-custom-actions\">\n {headerButtons.map((button: any) => {\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n if (!hasRole) return null;\n\n return (\n <SolidButton\n key={button?.attrs?.name || button?.attrs?.label}\n type=\"button\"\n className={`solid-empty-listview-secondary-action ${button?.attrs?.className ?? ''}`}\n variant={button?.attrs?.showText === false ? \"primary\" : \"ghost\"}\n size=\"small\"\n icon={button?.attrs?.icon}\n leftIcon={!button?.attrs?.icon ? <SquarePen size={14} /> : undefined}\n onClick={() => {\n const event = {\n params,\n solidListViewMetaData: solidListViewMetaData.data\n };\n handleCustomButtonClick(button.attrs, event);\n }}\n >\n {button.attrs.label}\n </SolidButton>\n );\n })}\n </div>\n );\n };\n\n return (\n <>\n <div className='solid-empty-listview-placeholder-container'>\n <div className=\"solid-empty-listview-placeholder-panel\">\n <div className=\"solid-empty-listview-header\">\n <div className=\"solid-empty-listview-header-title\">{displayName}</div>\n <div className=\"solid-empty-listview-header-subtitle\">{noDataText}</div>\n </div>\n\n <div className=\"solid-empty-listview-body\">\n {/* <div className=\"solid-empty-listview-icon-wrap\">\n <FolderOpen className=\"solid-empty-listview-icon\" aria-hidden=\"true\" />\n </div>\n <div className=\"solid-empty-listview-title\">\n No {displayName} Data Available\n </div> */}\n\n <div className=\"solid-empty-listview-actions\">\n {canCreate && (\n <div className=\"solid-empty-listview-create-action\">\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n title={solidListViewMetaData?.data?.solidView?.displayName}\n />\n </div>\n )}\n {canImport && (\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n leftIcon={<Download size={14} />}\n className=\"solid-empty-listview-import-button\"\n onClick={() => setOpenImportDialog(true)}\n >\n Import\n </SolidButton>\n )}\n </div>\n\n <div className=\"solid-empty-listview-description\">\n Click Create or Import to add {entityName} entities.\n </div>\n\n <CustomActionButtons />\n </div>\n </div>\n </div>\n {openImportDialog && (\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={solidListViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n )}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidEmptyListViewPlaceholder.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidEmptyListViewPlaceholder.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAA;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,IAAM,6BAA6B,GAAG,UAAC,EAOxC;;QANF,eAAe,qBAAA,EACf,uBAAuB,6BAAA,EACvB,cAAc,oBAAA,EACd,MAAM,YAAA,EACN,qBAAqB,2BAAA,EACrB,yBAAyB,+BAAA;IAEnB,IAAA,KAA0C,QAAQ,CAAC,KAAK,CAAC,EAAxD,gBAAgB,QAAA,EAAE,mBAAmB,QAAmB,CAAC;IACxD,IAAM,OAAO,GAAK,UAAU,EAAE,KAAjB,CAAkB;IACvC,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,IAAM,WAAW,GAAG,MAAA,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,mCAAI,EAAE,CAAC;IAChF,IAAM,WAAW,GAAG,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW,mCAAI,SAAS,CAAC;IACrF,IAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAM,UAAU,GAAG,MAAA,MAAA,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,wBAAwB,mCAC3F,CAAC,GAAG,CAAC,kDAAkD,CAAC,KAAI,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW,CAAA;QAC9G,CAAC,CAAC,UAAG,GAAG,CAAC,kDAAkD,CAAC,cAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAE;QAClH,CAAC,CAAC,uBAAgB,UAAU,kBAAe,CAAC,CAAC;IAErD,IAAM,uBAAuB,GAAG,8BAA8B,EAAE,CAAC;IAEjE,IAAM,eAAe,GAAG,UAAC,KAAqC;QAC1D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;QAC3F,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;QACtE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;IACpD,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,IAAM,SAAS,GACX,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAE,CAAC;QAC9E,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,MAAK,KAAK;QAC7B,MAAM,CAAC,OAAO,KAAK,IAAI;QACvB,WAAW,CAAC,oBAAoB,KAAK,KAAK,CAAC;IAC/C,IAAM,SAAS,GACX,MAAM,CAAC,OAAO,KAAK,IAAI;QACvB,YAAY,CAAC,OAAO;QACpB,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAE,CAAC;QAC9E,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAE,CAAC;QACjF,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAErF,IAAM,mBAAmB,GAAG;;QACxB,IAAM,aAAa,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,aAAa,mCAAI,EAAE,CAAC;QACvD,IAAI,WAAW,CAAC,oBAAoB,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAErF,OAAO,CACH,cAAK,SAAS,EAAC,qCAAqC,YAC/C,aAAa,CAAC,GAAG,CAAC,UAAC,MAAW;;gBAC3B,IAAM,OAAO,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC;gBAClI,IAAI,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAC;gBAE1B,OAAO,CACH,KAAC,WAAW,IAER,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,gDAAyC,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,mCAAI,EAAE,CAAE,EACpF,OAAO,EAAE,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,MAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAChE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,EACzB,QAAQ,EAAE,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAA,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,SAAS,EACpE,OAAO,EAAE;wBACL,IAAM,KAAK,GAAG;4BACV,MAAM,QAAA;4BACN,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;yBACpD,CAAC;wBACF,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACjD,CAAC,YAEA,MAAM,CAAC,KAAK,CAAC,KAAK,IAfd,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,MAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,CAgBtC,CACjB,CAAC;YACN,CAAC,CAAC,GACA,CACT,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACH,8BACI,cAAK,SAAS,EAAC,4CAA4C,YACvD,eAAK,SAAS,EAAC,wCAAwC,aACnD,eAAK,SAAS,EAAC,6BAA6B,aACxC,cAAK,SAAS,EAAC,mCAAmC,YAAE,WAAW,GAAO,EACtE,cAAK,SAAS,EAAC,sCAAsC,YAAE,UAAU,GAAO,IACtE,EAEN,eAAK,SAAS,EAAC,2BAA2B,aAQtC,eAAK,SAAS,EAAC,8BAA8B,aACxC,SAAS,IAAI,CACV,cAAK,SAAS,EAAC,oCAAoC,YAC/C,KAAC,iBAAiB,IACd,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,uBAAuB,EAChD,KAAK,EAAE,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW,GAC5D,GACA,CACT,EACA,SAAS,IAAI,CACV,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,EAChC,SAAS,EAAC,oCAAoC,EAC9C,OAAO,EAAE,cAAM,OAAA,mBAAmB,CAAC,IAAI,CAAC,EAAzB,CAAyB,uBAG9B,CACjB,IACC,EAEN,eAAK,SAAS,EAAC,kCAAkC,+CACd,UAAU,kBACvC,EAEN,KAAC,mBAAmB,KAAG,EAEtB,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CACzB,eAAK,SAAS,EAAC,kCAAkC,+CACd,UAAU,kBACvC,CACT,IACC,IACJ,GACJ,EACL,gBAAgB,IAAI,CACjB,KAAC,kBAAkB,IACf,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,qBAAqB,EACvC,yBAAyB,EAAE,yBAAyB,GACtD,CACL,IACF,CACN,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { permissionExpression } from '../../../helpers/permissions'\nimport { SolidCreateButton } from '../common/SolidCreateButton'\nimport { useHandleListCustomButtonClick } from '../../../components/common/useHandleListCustomButtonClick'\nimport { hasAnyRole } from '../../../helpers/rolesHelper'\nimport { env } from \"../../../adapters/env\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { useState } from \"react\";\nimport { Download, SquarePen } from \"lucide-react\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport { SolidButton } from \"../../shad-cn-ui\";\n\nexport const SolidEmptyListViewPlaceholder = ({\n createButtonUrl,\n createActionQueryParams,\n actionsAllowed,\n params,\n solidListViewMetaData,\n handleFetchUpdatedRecords,\n}: any) => {\n const [openImportDialog, setOpenImportDialog] = useState(false);\n const { data: session } = useSession();\n const user = session?.user;\n\n const layoutAttrs = solidListViewMetaData?.data?.solidView?.layout?.attrs ?? {};\n const displayName = solidListViewMetaData?.data?.solidView?.displayName ?? \"records\";\n const entityName = displayName.toLowerCase();\n const noDataText = solidListViewMetaData?.data?.solidView?.layout?.attrs?.listViewNoDataHelperText\n ?? (env(\"NEXT_PUBLIC_DEFAULT_LIST_VIEW_NODATA_HELPER_TEXT\") && solidListViewMetaData?.data?.solidView?.displayName\n ? `${env(\"NEXT_PUBLIC_DEFAULT_LIST_VIEW_NODATA_HELPER_TEXT\")} ${solidListViewMetaData.data.solidView.displayName}`\n : `There are no ${entityName} records yet.`);\n\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const normalizeAction = (value: boolean | string[] | undefined) => {\n if (value === true || value === undefined) return { enabled: true, roles: [] as string[] };\n if (value === false) return { enabled: false, roles: [] as string[] };\n if (Array.isArray(value)) return { enabled: true, roles: value };\n return { enabled: true, roles: [] as string[] };\n };\n\n const importAction = normalizeAction(layoutAttrs.import);\n const canCreate =\n actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n layoutAttrs?.create !== false &&\n params.embeded !== true &&\n layoutAttrs.showDefaultAddButton !== false;\n const canImport =\n params.embeded !== true &&\n importAction.enabled &&\n actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) &&\n (importAction.roles.length === 0 || hasAnyRole(user?.roles, importAction.roles));\n\n const CustomActionButtons = () => {\n const headerButtons = layoutAttrs?.headerButtons ?? [];\n if (layoutAttrs.showDefaultAddButton !== false || !headerButtons.length) return null;\n\n return (\n <div className=\"solid-empty-listview-custom-actions\">\n {headerButtons.map((button: any) => {\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n if (!hasRole) return null;\n\n return (\n <SolidButton\n key={button?.attrs?.name || button?.attrs?.label}\n type=\"button\"\n className={`solid-empty-listview-secondary-action ${button?.attrs?.className ?? ''}`}\n variant={button?.attrs?.showText === false ? \"primary\" : \"ghost\"}\n size=\"small\"\n icon={button?.attrs?.icon}\n leftIcon={!button?.attrs?.icon ? <SquarePen size={14} /> : undefined}\n onClick={() => {\n const event = {\n params,\n solidListViewMetaData: solidListViewMetaData.data\n };\n handleCustomButtonClick(button.attrs, event);\n }}\n >\n {button.attrs.label}\n </SolidButton>\n );\n })}\n </div>\n );\n };\n\n return (\n <>\n <div className='solid-empty-listview-placeholder-container'>\n <div className=\"solid-empty-listview-placeholder-panel\">\n <div className=\"solid-empty-listview-header\">\n <div className=\"solid-empty-listview-header-title\">{displayName}</div>\n <div className=\"solid-empty-listview-header-subtitle\">{noDataText}</div>\n </div>\n\n <div className=\"solid-empty-listview-body\">\n {/* <div className=\"solid-empty-listview-icon-wrap\">\n <FolderOpen className=\"solid-empty-listview-icon\" aria-hidden=\"true\" />\n </div>\n <div className=\"solid-empty-listview-title\">\n No {displayName} Data Available\n </div> */}\n\n <div className=\"solid-empty-listview-actions\">\n {canCreate && (\n <div className=\"solid-empty-listview-create-action\">\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n title={solidListViewMetaData?.data?.solidView?.displayName}\n />\n </div>\n )}\n {canImport && (\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n leftIcon={<Download size={14} />}\n className=\"solid-empty-listview-import-button\"\n onClick={() => setOpenImportDialog(true)}\n >\n Import\n </SolidButton>\n )}\n </div>\n\n <div className=\"solid-empty-listview-description\">\n Click Create or Import to add {entityName} entities.\n </div>\n\n <CustomActionButtons />\n\n {(canCreate || canImport) && (\n <div className=\"solid-empty-listview-description\">\n Click Create or Import to add {entityName} entities.\n </div>\n )}\n </div>\n </div>\n </div>\n {openImportDialog && (\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={solidListViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n )}\n </>\n );\n};\n"]}
@@ -131,6 +131,12 @@ export const SolidEmptyListViewPlaceholder = ({
131
131
  </div>
132
132
 
133
133
  <CustomActionButtons />
134
+
135
+ {(canCreate || canImport) && (
136
+ <div className="solid-empty-listview-description">
137
+ Click Create or Import to add {entityName} entities.
138
+ </div>
139
+ )}
134
140
  </div>
135
141
  </div>
136
142
  </div>
@@ -335,7 +335,7 @@ var CreateModule = function (_a) {
335
335
  if (pathname.includes('new')) {
336
336
  formik.setFieldValue("name", toKebabCase);
337
337
  }
338
- }, 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 col-12 lg:col-6", 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: "formgrid grid mt-4", children: [_jsx("div", { className: "field col-12 pb-3 ld:pb-0 lg:col-6", 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 col-12 lg:col-6", 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: "formgrid grid mt-3", children: [_jsx("div", { className: "field col-12 pb-3 lg:pb-0 lg:col-6", 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 col-12 lg:col-6", 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 align-items-center gap-2", children: [_jsx(FileReaderExt, { fileDetails: fileDetails }), _jsxs("div", { className: "w-full flex flex-column gap-1", children: [_jsxs("div", { className: "flex align-items-center justify-content-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 align-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: "#722ED1" }) })] }), "Completed"] })) : (_jsxs("div", { className: "flex align-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 })] }) }));
338
+ }, 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 col-12 lg:col-6", 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: "formgrid grid mt-4", children: [_jsx("div", { className: "field col-12 pb-3 ld:pb-0 lg:col-6", 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 col-12 lg:col-6", 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: "formgrid grid mt-3", children: [_jsx("div", { className: "field col-12 pb-3 lg:pb-0 lg:col-6", 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 col-12 lg:col-6", 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 align-items-center gap-2", children: [_jsx(FileReaderExt, { fileDetails: fileDetails }), _jsxs("div", { className: "w-full flex flex-column gap-1", children: [_jsxs("div", { className: "flex align-items-center justify-content-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 align-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 align-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 })] }) }));
339
339
  };
340
340
  export default CreateModule;
341
341
  //# sourceMappingURL=CreateModule.js.map
@@ -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, useDeletemoduleMutation, 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 SolidPopover,\n SolidPopoverContent,\n SolidPopoverTrigger,\n SolidProgressBar,\n SolidTextarea,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { useSolidAutocompleteField } from \"../../../hooks/useSolidAutocompleteField\";\nimport { Settings, Trash2 } from \"lucide-react\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\n\n\n\n\nconst CreateModule = ({ params, data }: any) => {\n const dispatch = useDispatch();\n const router = useRouter();\n const pathname = usePathname()\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [isImageDialogVisible, setImageDialogVisible] = useState(false);\n const [isLoadingData, setIsLoadingData] = useState(data ? true : false);\n\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 deleteModule,\n { isLoading: isModuleDeleted, isSuccess: isDeleteModuleSuceess, isError: isModuleDeleteError, error: ModuleDeleteError, data: DeletedModule },\n ] = useDeletemoduleMutation();\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 deteleAction = async () => {\n deleteModule(data.id);\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 // toast.current.show({\n // severity: \"success\",\n // summary: \"Can you send me the report?\",\n // // sticky: true,\n // life: 3000,\n // //@ts-ignore\n // content: (props) => (\n // <div\n // className=\"flex flex-column align-items-left\"\n // style={{ flex: \"1\" }}\n // >\n // {errorMessages.map((m: any, index) => (\n // <div className=\"flex align-items-center gap-2\" key={index}>\n // <span className=\"font-bold text-900\">{m}</span>\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 || isDeleteModuleSuceess == true || isModuleUpdateSuccess == true) {\n router.push(`/admin/core/solid-core/module-metadata/list`);\n }\n }, [isSuccess, isDeleteModuleSuceess, 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: isModuleDeleteError, error: ModuleDeleteError },\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, isModuleDeleteError, isMediaDeleteError])\n\n const [formActionsMenuOpen, setFormActionsMenuOpen] = useState(false);\n\n const isCreateMode = pathname.includes('new');\n const headerTitle = isCreateMode ? \"Create Module\" : \"Edit Module\";\n const canShowActionsMenu = !isCreateMode && data?.isSystem !== true;\n\n const handleCancel = () => {\n router.back();\n };\n\n const formActionDropdown = () => (\n <SolidPopover open={formActionsMenuOpen} onOpenChange={setFormActionsMenuOpen}>\n <SolidPopoverTrigger asChild>\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n aria-label=\"Module actions\"\n >\n <Settings size={16} />\n </SolidButton>\n </SolidPopoverTrigger>\n <SolidPopoverContent\n side=\"bottom\"\n align=\"end\"\n className=\"solid-form-actions-popover\"\n onClick={(event) => event.stopPropagation()}\n >\n <button\n type=\"button\"\n className=\"solid-row-action-button solid-row-action-button-danger\"\n onClick={() => {\n setFormActionsMenuOpen(false);\n deteleAction();\n }}\n >\n <Trash2 size={14} className=\"solid-row-action-button-icon\" />\n <span className=\"solid-row-action-button-label\">Delete</span>\n </button>\n </SolidPopoverContent>\n </SolidPopover>\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 <form style={{ width: '100%', background: \"#fff\" }} onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header flex align-items-center justify-content-between gap-3 flex-wrap\">\n <div className=\"flex flex-column gap-1\">\n {/* <span className=\"text-sm text-color-secondary uppercase tracking-wider\">Module</span> */}\n {/* <div className=\"form-wrapper-title m-0\">{headerTitle}</div> */}\n </div>\n <div className=\"flex align-items-center gap-2\">\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n onClick={handleCancel}\n className=\"bg-primary-reverse\"\n >\n Cancel\n </SolidButton>\n {formik.dirty && (\n <SolidButton size=\"sm\" type=\"submit\" onClick={() => showError()}>\n Save\n </SolidButton>\n )}\n {canShowActionsMenu && formActionDropdown()}\n </div>\n </div>\n {/* <SolidFormHeader /> */}\n <div className=\"solid-form-content\">\n {/* <p className=\"form-wrapper-heading text-base\">Basic Info</p> */}\n <SolidPanel header={\"Basic Info\"} className=\"solid-column-panel\">\n <div className=\"formgrid grid mt-3\">\n <div className=\"field col-12 pb-3 lg:pb-0 lg:col-6\">\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 col-12 lg:col-6\">\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=\"formgrid grid mt-4\">\n <div className=\"field col-12 pb-3 ld:pb-0 lg:col-6\">\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 col-12 lg:col-6\">\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 {/* <Divider /> */}\n {/* <p className=\"form-wrapper-heading text-base\" style={{ fontSize: 16 }}>Configurations</p> */}\n <SolidPanel header={\"Configurations\"} className=\"solid-column-panel mt-4\">\n <div className=\"formgrid grid mt-3\">\n <div className=\"field col-12 pb-3 lg:pb-0 lg:col-6\">\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 col-12 lg:col-6\">\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 align-items-center gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-center justify-content-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 align-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=\"#722ED1\" />\n </g>\n </svg>\n Completed\n </div>\n ) : (\n <div className=\"flex align-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 {/* <div style={{ width: '22.5%' }}></div> */}\n <SolidFormFooter params={params}></SolidFormFooter>\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, useDeletemoduleMutation, 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 SolidPopover,\n SolidPopoverContent,\n SolidPopoverTrigger,\n SolidProgressBar,\n SolidTextarea,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { useSolidAutocompleteField } from \"../../../hooks/useSolidAutocompleteField\";\nimport { Settings, Trash2 } from \"lucide-react\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\n\n\n\n\nconst CreateModule = ({ params, data }: any) => {\n const dispatch = useDispatch();\n const router = useRouter();\n const pathname = usePathname()\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [isImageDialogVisible, setImageDialogVisible] = useState(false);\n const [isLoadingData, setIsLoadingData] = useState(data ? true : false);\n\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 deleteModule,\n { isLoading: isModuleDeleted, isSuccess: isDeleteModuleSuceess, isError: isModuleDeleteError, error: ModuleDeleteError, data: DeletedModule },\n ] = useDeletemoduleMutation();\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 deteleAction = async () => {\n deleteModule(data.id);\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 // toast.current.show({\n // severity: \"success\",\n // summary: \"Can you send me the report?\",\n // // sticky: true,\n // life: 3000,\n // //@ts-ignore\n // content: (props) => (\n // <div\n // className=\"flex flex-column align-items-left\"\n // style={{ flex: \"1\" }}\n // >\n // {errorMessages.map((m: any, index) => (\n // <div className=\"flex align-items-center gap-2\" key={index}>\n // <span className=\"font-bold text-900\">{m}</span>\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 || isDeleteModuleSuceess == true || isModuleUpdateSuccess == true) {\n router.push(`/admin/core/solid-core/module-metadata/list`);\n }\n }, [isSuccess, isDeleteModuleSuceess, 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: isModuleDeleteError, error: ModuleDeleteError },\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, isModuleDeleteError, isMediaDeleteError])\n\n const [formActionsMenuOpen, setFormActionsMenuOpen] = useState(false);\n\n const isCreateMode = pathname.includes('new');\n const headerTitle = isCreateMode ? \"Create Module\" : \"Edit Module\";\n const canShowActionsMenu = !isCreateMode && data?.isSystem !== true;\n\n const handleCancel = () => {\n router.back();\n };\n\n const formActionDropdown = () => (\n <SolidPopover open={formActionsMenuOpen} onOpenChange={setFormActionsMenuOpen}>\n <SolidPopoverTrigger asChild>\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n aria-label=\"Module actions\"\n >\n <Settings size={16} />\n </SolidButton>\n </SolidPopoverTrigger>\n <SolidPopoverContent\n side=\"bottom\"\n align=\"end\"\n className=\"solid-form-actions-popover\"\n onClick={(event) => event.stopPropagation()}\n >\n <button\n type=\"button\"\n className=\"solid-row-action-button solid-row-action-button-danger\"\n onClick={() => {\n setFormActionsMenuOpen(false);\n deteleAction();\n }}\n >\n <Trash2 size={14} className=\"solid-row-action-button-icon\" />\n <span className=\"solid-row-action-button-label\">Delete</span>\n </button>\n </SolidPopoverContent>\n </SolidPopover>\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 <form style={{ width: '100%', background: \"#fff\" }} onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header flex align-items-center justify-content-between gap-3 flex-wrap\">\n <div className=\"flex flex-column gap-1\">\n {/* <span className=\"text-sm text-color-secondary uppercase tracking-wider\">Module</span> */}\n {/* <div className=\"form-wrapper-title m-0\">{headerTitle}</div> */}\n </div>\n <div className=\"flex align-items-center gap-2\">\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n onClick={handleCancel}\n className=\"bg-primary-reverse\"\n >\n Cancel\n </SolidButton>\n {formik.dirty && (\n <SolidButton size=\"sm\" type=\"submit\" onClick={() => showError()}>\n Save\n </SolidButton>\n )}\n {canShowActionsMenu && formActionDropdown()}\n </div>\n </div>\n {/* <SolidFormHeader /> */}\n <div className=\"solid-form-content\">\n {/* <p className=\"form-wrapper-heading text-base\">Basic Info</p> */}\n <SolidPanel header={\"Basic Info\"} className=\"solid-column-panel\">\n <div className=\"formgrid grid mt-3\">\n <div className=\"field col-12 pb-3 lg:pb-0 lg:col-6\">\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 col-12 lg:col-6\">\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=\"formgrid grid mt-4\">\n <div className=\"field col-12 pb-3 ld:pb-0 lg:col-6\">\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 col-12 lg:col-6\">\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 {/* <Divider /> */}\n {/* <p className=\"form-wrapper-heading text-base\" style={{ fontSize: 16 }}>Configurations</p> */}\n <SolidPanel header={\"Configurations\"} className=\"solid-column-panel mt-4\">\n <div className=\"formgrid grid mt-3\">\n <div className=\"field col-12 pb-3 lg:pb-0 lg:col-6\">\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 col-12 lg:col-6\">\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 align-items-center gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-center justify-content-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 align-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 align-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 {/* <div style={{ width: '22.5%' }}></div> */}\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n </div>\n );\n};\n\nexport default CreateModule;\n"]}