@solidxai/core-ui 0.1.9-beta.19 → 0.1.9-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/common/GeneralSettings.js +1 -1
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +1 -1
- package/dist/components/common/SettingsComponent.module.css +78 -2
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +1 -1
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +2 -0
- package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
- package/dist/components/core/common/FilterComponent.js +1 -1
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/FilterComponent.tsx +1 -0
- package/dist/components/core/common/GroupingComponent.d.ts.map +1 -1
- package/dist/components/core/common/GroupingComponent.js +2 -2
- package/dist/components/core/common/GroupingComponent.js.map +1 -1
- package/dist/components/core/common/GroupingComponent.tsx +2 -0
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts.map +1 -1
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.js +5 -2
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.js.map +1 -1
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.ts +5 -2
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts.map +1 -1
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js +6 -1
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js.map +1 -1
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.tsx +13 -1
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts.map +1 -1
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js +54 -10
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js.map +1 -1
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.tsx +56 -10
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.js +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.tsx +3 -2
- package/dist/components/core/filter/fields/SolidDateField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidDateField.js +1 -1
- package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidDateField.tsx +2 -1
- package/dist/components/core/filter/fields/SolidDatetimeField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidDatetimeField.js +1 -1
- package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidDatetimeField.tsx +3 -2
- package/dist/components/core/filter/fields/SolidExternalIdField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidExternalIdField.js +1 -1
- package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidExternalIdField.tsx +2 -1
- package/dist/components/core/filter/fields/SolidIdField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidIdField.js +1 -1
- package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidIdField.tsx +1 -0
- package/dist/components/core/filter/fields/SolidIntField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidIntField.js +1 -1
- package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidIntField.tsx +2 -1
- package/dist/components/core/filter/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaMultipleField.js +1 -1
- package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +2 -1
- package/dist/components/core/filter/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaSingleField.js +1 -1
- package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +2 -1
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +1 -1
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +3 -2
- package/dist/components/core/filter/fields/SolidSelectionStaticField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionStaticField.js +1 -1
- package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +3 -2
- package/dist/components/core/filter/fields/SolidShortTextField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidShortTextField.js +1 -1
- package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidShortTextField.tsx +2 -1
- package/dist/components/core/filter/fields/SolidTimeField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidTimeField.js +1 -1
- package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidTimeField.tsx +3 -2
- package/dist/components/core/filter/fields/SolidUuidField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidUuidField.js +1 -1
- package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidUuidField.tsx +2 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +3 -2
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +3 -2
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +3 -2
- package/dist/components/core/form/SolidFormFooter.js +1 -1
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +1 -1
- package/dist/components/core/form/SolidFormView.js +2 -2
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +2 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +1 -1
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +2 -1
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +8 -9
- package/dist/components/core/list/SolidListView.js +13 -15
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +12 -12
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +1 -1
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +10 -4
- package/dist/components/core/tree/SolidTreeView.js +2 -2
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +3 -3
- package/dist/components/core/users/CreateUser.js +1 -1
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +1 -1
- package/dist/components/layout/AdminHeaderActions.d.ts +7 -0
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -0
- package/dist/components/layout/AdminHeaderActions.js +77 -0
- package/dist/components/layout/AdminHeaderActions.js.map +1 -0
- package/dist/components/layout/AdminHeaderActions.tsx +155 -0
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +3 -16
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +4 -64
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +2 -1
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +2 -0
- package/dist/components/shad-cn-ui/SolidDatePicker.d.ts +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.js +2 -2
- package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.tsx +4 -0
- package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.js +51 -1
- package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.tsx +95 -0
- package/dist/resources/globals.css +93 -12
- package/dist/resources/shadcn-base.css +339 -171
- package/dist/resources/solid-responsive.css +235 -50
- package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.js +101 -21
- package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.module.css +33 -0
- package/dist/routes/pages/admin/core/DashboardPage.tsx +144 -17
- package/package.json +1 -1
|
@@ -1314,16 +1314,16 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1314
1314
|
const hasAnyContextMenuActions =
|
|
1315
1315
|
hasEditInContextMenu || hasDeleteInContextMenu || hasCustomContextMenuButtons;
|
|
1316
1316
|
|
|
1317
|
-
const toggleBothSidebars = () => {
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
};
|
|
1317
|
+
// const toggleBothSidebars = () => {
|
|
1318
|
+
// if (visibleNavbar) {
|
|
1319
|
+
// dispatch(toggleNavbar()); // close both
|
|
1320
|
+
// } else {
|
|
1321
|
+
// dispatch(showNavbar()); // open both
|
|
1322
|
+
// }
|
|
1323
|
+
// };
|
|
1324
1324
|
return (
|
|
1325
1325
|
<div className="page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden">
|
|
1326
|
-
<div className={`solid-list-content
|
|
1326
|
+
<div className={`solid-list-content flex flex-column flex-grow-1 ${styles.ListContentWrapper}`}>
|
|
1327
1327
|
<div className="solid-list-surface flex flex-column flex-1 min-h-0">
|
|
1328
1328
|
{solidListViewInitialMetaData &&
|
|
1329
1329
|
<div className="page-header solid-list-toolbar flex-column lg:flex-row">
|
|
@@ -1331,12 +1331,12 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1331
1331
|
<div className="flex justify-content-between w-full">
|
|
1332
1332
|
<div className="flex gap-3 align-items-center w-full solid-list-toolbar-left">
|
|
1333
1333
|
<div className='flex align-items-center gap-2'>
|
|
1334
|
-
{params.embeded !== true &&
|
|
1334
|
+
{/* {params.embeded !== true &&
|
|
1335
1335
|
<div className="apps-icon block md:hidden cursor-pointer" onClick={toggleBothSidebars}>
|
|
1336
1336
|
<LayoutGrid size={18} />
|
|
1337
1337
|
</div>
|
|
1338
|
-
}
|
|
1339
|
-
<p className="m-0 view-title solid-text-wrapper">
|
|
1338
|
+
} */}
|
|
1339
|
+
<p className="m-0 view-title solid-list-view-text-wrapper">
|
|
1340
1340
|
{solidListViewMetaData?.data?.solidView?.action?.displayName || solidListViewMetaData?.data?.solidView?.displayName}
|
|
1341
1341
|
</p>
|
|
1342
1342
|
</div>
|
|
@@ -1508,7 +1508,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1508
1508
|
>
|
|
1509
1509
|
<DataTable
|
|
1510
1510
|
value={listViewData}
|
|
1511
|
-
viewportHeight={params.embeded === true ? undefined : "calc(100dvh - 128px)"}
|
|
1511
|
+
// viewportHeight={params.embeded === true ? undefined : "calc(100dvh - 128px)"}
|
|
1512
1512
|
rowClassName={(rowData) => {
|
|
1513
1513
|
return rowData.deletedAt ? "greyed-out-row" : "";
|
|
1514
1514
|
}}
|
|
@@ -155,7 +155,7 @@ export var DefaultMediaMultipleListWidget = function (_a) {
|
|
|
155
155
|
}
|
|
156
156
|
}, children: ["+", fullrecord.length - 1] }), _jsx(SolidDialog, { open: isShowAllFiles, onOpenChange: setShowAllFiles, header: "Items Uploaded", style: { width: '32rem', maxWidth: '94vw' }, children: fullrecord === null || fullrecord === void 0 ? void 0 : fullrecord.map(function (file) {
|
|
157
157
|
var fileId = "".concat(file.name, "-").concat(file.size);
|
|
158
|
-
return (_jsx("div", { className: "solid-file-upload-wrapper mb-3", children: _jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(FileReaderExt, { fileDetails: file }), _jsxs("div", { className: "w-full flex flex-column gap-1", children: [_jsxs("div", { className: "flex align-items-center justify-content-between", children: [_jsx("p", { className: "font-normal w-11 text-primary m-0", style: { cursor: "pointer" }, onClick: function () { return handleFileView(file); }, children: file === null || file === void 0 ? void 0 : file.name }), _jsx(SolidButton, { type: "button", size: "small", variant: "ghost", leftIcon: _jsx(Download, { size: 14 }), onClick: function () {
|
|
158
|
+
return (_jsx("div", { className: "solid-file-upload-wrapper mb-3", children: _jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(FileReaderExt, { fileDetails: file }), _jsxs("div", { className: "w-full flex flex-column gap-1", children: [_jsxs("div", { className: "flex align-items-center justify-content-between", children: [_jsx("p", { className: "font-normal w-11 text-primary m-0 solid-media-column-text-wrapper", style: { cursor: "pointer" }, onClick: function () { return handleFileView(file); }, children: file === null || file === void 0 ? void 0 : file.name }), _jsx(SolidButton, { type: "button", size: "small", variant: "ghost", leftIcon: _jsx(Download, { size: 14 }), onClick: function () {
|
|
159
159
|
downloadFile(file === null || file === void 0 ? void 0 : file.fileUrl, "");
|
|
160
160
|
}, style: { height: 16, width: 16 } })] }), _jsx("div", { className: "text-sm", children: formatFileSize(file.size) })] })] }) }, fileId));
|
|
161
161
|
}) })] })) : (_jsx("div", { style: { height: 40, width: 40 } }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidMediaMultipleColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaMultipleColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState } from 'react';\nimport { Download, Volume2 } from \"lucide-react\";\nimport { Column } from \"../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidMediaListFieldWidgetProps } from '../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../helpers/registry';\nimport { FileReaderExt } from '../../../../components/common/FileReaderExt';\nimport { SolidButton, SolidDialog } from \"../../../shad-cn-ui\";\nimport { SolidFileTypeIcon } from '../../../../helpers/fileTypeIcon';\n\nconst getCleanUrl = (url: string) => url.split(\"?\")[0];\n\nconst isImageFile = (url: string) => /\\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(getCleanUrl(url));\n\nconst isVideoFile = (url: string) => /\\.(mp4|webm|ogg)$/i.test(getCleanUrl(url));\n\nconst isAudioFile = (url: string) => /\\.(mp3|wav|ogg)$/i.test(getCleanUrl(url));\n\nconst isDocumentType = (url: string) => {\n const ext = getCleanUrl(url).split(\".\").pop()?.toLowerCase();\n return ext ? downloadOnlyExt.includes(ext) : false;\n};\n\nconst downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\",\n \"pdf\", \"csv\"\n];\n\nconst downloadFile = (url: string, name: string = \"\") => {\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = name;\n link.target = \"_blank\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\n\n\n// Thumbnail preview component\nconst MediaPreview = ({ src, onClick }: { src: string; onClick: (event: React.MouseEvent) => void }) => {\n const [isBroken, setIsBroken] = useState(false);\n\n const handleClick = (event: React.MouseEvent) => {\n onClick(event);\n };\n\n if (!isBroken) {\n if (isImageFile(src)) {\n return (\n <img\n src={src}\n alt=\"media\"\n className=\"shadow-2 border-round\"\n width={40}\n height={40}\n style={{ objectFit: \"cover\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n />\n );\n }\n\n if (isVideoFile(src)) {\n return (\n <video\n src={src}\n width={40}\n height={40}\n className=\"shadow-2 border-round\"\n style={{ objectFit: \"cover\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n muted\n />\n );\n }\n\n if (isAudioFile(src)) {\n return (\n <div\n className=\"shadow-2 border-round flex align-items-center justify-content-center bg-gray-100\"\n style={{ width: 40, height: 40 }}\n onClick={handleClick}\n >\n <Volume2 size={18} className=\"text-gray-600\" />\n </div>\n );\n }\n }\n\n return (\n <div\n style={{ width: 40, height: 40, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}\n onClick={handleClick}\n >\n <SolidFileTypeIcon fileUrl={src} size={24} />\n </div>\n );\n};\n\n\nconst SolidMediaMultipleColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultMediaMultipleListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidMediaListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox\n }\n return (\n <>\n {\n DynamicWidget && <DynamicWidget {...widgetProps} />\n }\n </>\n )\n }}\n sortable={column.attrs.sortable}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n />\n );\n};\n\nexport default SolidMediaMultipleColumn;\n\n// Default multiple widget\nexport const DefaultMediaMultipleListWidget = ({ rowData, fieldMetadata, setLightboxUrls, setOpenLightbox }: SolidMediaListFieldWidgetProps) => {\n const [isShowAllFiles, setShowAllFiles] = useState(false);\n\n if (!rowData?._media?.[fieldMetadata.name]) return null;\n\n const fullrecord = rowData._media[fieldMetadata.name]?.map((file: any) => ({\n name: file.originalFileName,\n type: file.mimeType,\n size: file.fileSize,\n id: file.id,\n fileUrl: file._full_url\n }));\n\n\n const formatFileSize = (size: number) =>\n size >= 1024 * 1024 ? `${(size / (1024 * 1024)).toFixed(1)} MB` : `${(size / 1024).toFixed(1)} KB`;\n\n\n const handleFileView = (file: any) => {\n const fileUrl = file?.fileUrl || \"\";\n // const cleanUrl = fileUrl.split(\"?\")[0];\n // const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (isDocumentType(fileUrl)) {\n downloadFile(file?.fileUrl, \"\")\n\n } else {\n setLightboxUrls?.([{ src: file.fileUrl, downloadUrl: file.fileUrl }]);\n setOpenLightbox?.(true);\n }\n };\n\n\n\n return fullrecord.length > 0 ? (\n <div className='flex gap-2 align-items-end'>\n\n {/* THUMBNAIL - FIXED BEHAVIOR */}\n <MediaPreview\n src={fullrecord[0]?.fileUrl}\n onClick={(event) => {\n event.stopPropagation();\n\n // const cleanUrl = fullrecord[0]?.fileUrl.split(\"?\")[0];\n // const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (isDocumentType(fullrecord[0]?.fileUrl) && fullrecord?.length > 1) {\n setShowAllFiles(true)\n return;\n }\n\n else if (isDocumentType(fullrecord[0]?.fileUrl)) {\n downloadFile(fullrecord[0]?.fileUrl, \"\")\n return;\n }\n // FIRST FILE IS MEDIA ⇒ OPEN LIGHTBOX\n const urlsWithType = fullrecord.map((file: any) => ({\n src: file.fileUrl,\n downloadUrl: file.fileUrl,\n }));\n setLightboxUrls(urlsWithType);\n setOpenLightbox(true);\n }}\n />\n\n {fullrecord?.length > 1 && <span\n style={{\n color: \"#0895CD\",\n fontWeight: \"bold\",\n cursor: \"pointer\",\n marginLeft: \"4px\"\n }}\n onClick={(event) => {\n event.stopPropagation();\n\n if (isDocumentType(fullrecord[0]?.fileUrl)) {\n setShowAllFiles(true);\n } else {\n const urlsWithType = fullrecord.map((file: any) => ({\n src: file.fileUrl,\n downloadUrl: file.fileUrl\n }));\n setLightboxUrls(urlsWithType);\n setOpenLightbox(true);\n }\n }}\n >\n +{fullrecord.length - 1}\n </span>\n }\n\n\n\n {/* VIEW ALL DIALOG */}\n <SolidDialog\n open={isShowAllFiles}\n onOpenChange={setShowAllFiles}\n header=\"Items Uploaded\"\n style={{ width: '32rem', maxWidth: '94vw' }}\n >\n {fullrecord?.map((file: any) => {\n const fileId = `${file.name}-${file.size}`;\n return (\n <div key={fileId} className=\"solid-file-upload-wrapper mb-3\">\n <div className=\"flex align-items-center gap-2\">\n\n <FileReaderExt fileDetails={file} />\n\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-center justify-content-between\">\n\n <p\n className=\"font-normal w-11 text-primary m-0\"\n style={{ cursor: \"pointer\" }}\n onClick={() => handleFileView(file)}\n >\n {file?.name}\n </p>\n\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<Download size={14} />}\n onClick={() => {\n downloadFile(file?.fileUrl, \"\")\n }}\n style={{ height: 16, width: 16 }}\n />\n </div>\n\n <div className=\"text-sm\">{formatFileSize(file.size)}</div>\n </div>\n\n </div>\n </div>\n )\n }\n )}\n </SolidDialog>\n </div>\n ) : (\n <div style={{ height: 40, width: 40 }} />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SolidMediaMultipleColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaMultipleColumn.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,IAAM,WAAW,GAAG,UAAC,GAAW,IAAK,OAAA,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC;AAEvD,IAAM,WAAW,GAAG,UAAC,GAAW,IAAK,OAAA,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAxD,CAAwD,CAAC;AAE9F,IAAM,WAAW,GAAG,UAAC,GAAW,IAAK,OAAA,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAA3C,CAA2C,CAAC;AAEjF,IAAM,WAAW,GAAG,UAAC,GAAW,IAAK,OAAA,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAA1C,CAA0C,CAAC;AAEhF,IAAM,cAAc,GAAG,UAAC,GAAW;;IAC/B,IAAM,GAAG,GAAG,MAAA,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,0CAAE,WAAW,EAAE,CAAC;IAC7D,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC,CAAC;AAEF,IAAM,eAAe,GAAG;IACpB,KAAK,EAAE,KAAK,EAAE,KAAK;IACnB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,KAAK;CACf,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,GAAW,EAAE,IAAiB;IAAjB,qBAAA,EAAA,SAAiB;IAChD,IAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;IACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAIF,8BAA8B;AAC9B,IAAM,YAAY,GAAG,UAAC,EAA6E;QAA3E,GAAG,SAAA,EAAE,OAAO,aAAA;IAC1B,IAAA,KAA0B,QAAQ,CAAC,KAAK,CAAC,EAAxC,QAAQ,QAAA,EAAE,WAAW,QAAmB,CAAC;IAEhD,IAAM,WAAW,GAAG,UAAC,KAAuB;QACxC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE;QACX,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,CACH,cACI,GAAG,EAAE,GAAG,EACR,GAAG,EAAC,OAAO,EACX,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAC7B,OAAO,EAAE,cAAM,OAAA,WAAW,CAAC,IAAI,CAAC,EAAjB,CAAiB,EAChC,OAAO,EAAE,WAAW,GACtB,CACL,CAAC;SACL;QAED,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,CACH,gBACI,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAC7B,OAAO,EAAE,cAAM,OAAA,WAAW,CAAC,IAAI,CAAC,EAAjB,CAAiB,EAChC,OAAO,EAAE,WAAW,EACpB,KAAK,SACP,CACL,CAAC;SACL;QAED,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,CACH,cACI,SAAS,EAAC,kFAAkF,EAC5F,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAChC,OAAO,EAAE,WAAW,YAEpB,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,eAAe,GAAG,GAC7C,CACT,CAAC;SACL;KACJ;IAED,OAAO,CACH,cACI,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EACjG,OAAO,EAAE,WAAW,YAEpB,KAAC,iBAAiB,IAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAI,GAC3C,CACT,CAAC;AACN,CAAC,CAAC;AAGF,IAAM,wBAAwB,GAAG,UAAC,EAA6G;;QAA3G,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA,EAAE,eAAe,qBAAA,EAAE,eAAe,qBAAA;IAC9G,IAAM,MAAM,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAE/D,OAAO,CACH,KAAC,MAAM,IAEH,KAAK,EAAE,aAAa,CAAC,IAAI,EACzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAC,OAAO;YACV,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,gCAAgC,CAAC;aACjD;YACD,IAAI,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAM,WAAW,GAAmC;gBAChD,OAAO,SAAA;gBACP,qBAAqB,uBAAA;gBACrB,aAAa,eAAA;gBACb,MAAM,QAAA;gBACN,eAAe,iBAAA;gBACf,eAAe,iBAAA;aAClB,CAAA;YACD,OAAO,CACH,4BAEQ,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GAExD,CACN,CAAA;QACL,CAAC,EACD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC5B,eAAe,EAAC,iBAAiB,IA3B5B,aAAa,CAAC,IAAI,CA4BzB,CACL,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,wBAAwB,CAAC;AAExC,0BAA0B;AAC1B,MAAM,CAAC,IAAM,8BAA8B,GAAG,UAAC,EAA4F;;QAA1F,OAAO,aAAA,EAAE,aAAa,mBAAA,EAAE,eAAe,qBAAA,EAAE,eAAe,qBAAA;IAC/F,IAAA,KAAoC,QAAQ,CAAC,KAAK,CAAC,EAAlD,cAAc,QAAA,EAAE,eAAe,QAAmB,CAAC;IAE1D,IAAI,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAG,aAAa,CAAC,IAAI,CAAC,CAAA;QAAE,OAAO,IAAI,CAAC;IAExD,IAAM,UAAU,GAAG,MAAA,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,0CAAE,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,CAAC;QACvE,IAAI,EAAE,IAAI,CAAC,gBAAgB;QAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ;QACnB,IAAI,EAAE,IAAI,CAAC,QAAQ;QACnB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,EANwE,CAMxE,CAAC,CAAC;IAGJ,IAAM,cAAc,GAAG,UAAC,IAAY;QAChC,OAAA,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,UAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAK,CAAC,CAAC,CAAC,UAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAK;IAAlG,CAAkG,CAAC;IAGvG,IAAM,cAAc,GAAG,UAAC,IAAS;QAC7B,IAAM,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,EAAE,CAAC;QACpC,0CAA0C;QAC1C,wDAAwD;QAExD,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;YACzB,YAAY,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,EAAE,CAAC,CAAA;SAElC;aAAM;YACH,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACtE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,IAAI,CAAC,CAAC;SAC3B;IACL,CAAC,CAAC;IAIF,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC3B,eAAK,SAAS,EAAC,4BAA4B,aAGvC,KAAC,YAAY,IACT,GAAG,EAAE,MAAA,UAAU,CAAC,CAAC,CAAC,0CAAE,OAAO,EAC3B,OAAO,EAAE,UAAC,KAAK;;oBACX,KAAK,CAAC,eAAe,EAAE,CAAC;oBAExB,yDAAyD;oBACzD,wDAAwD;oBAExD,IAAI,cAAc,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,IAAG,CAAC,EAAE;wBAClE,eAAe,CAAC,IAAI,CAAC,CAAA;wBACrB,OAAO;qBACV;yBAEI,IAAI,cAAc,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,EAAE;wBAC7C,YAAY,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,0CAAE,OAAO,EAAE,EAAE,CAAC,CAAA;wBACxC,OAAO;qBACV;oBACD,sCAAsC;oBACtC,IAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,CAAC;wBAChD,GAAG,EAAE,IAAI,CAAC,OAAO;wBACjB,WAAW,EAAE,IAAI,CAAC,OAAO;qBAC5B,CAAC,EAHiD,CAGjD,CAAC,CAAC;oBACJ,eAAe,CAAC,YAAY,CAAC,CAAC;oBAC9B,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC,GACH,EAED,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,IAAG,CAAC,IAAI,gBACvB,KAAK,EAAE;oBACH,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,KAAK;iBACpB,EACD,OAAO,EAAE,UAAC,KAAK;;oBACX,KAAK,CAAC,eAAe,EAAE,CAAC;oBAExB,IAAI,cAAc,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,EAAE;wBACxC,eAAe,CAAC,IAAI,CAAC,CAAC;qBACzB;yBAAM;wBACH,IAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,CAAC;4BAChD,GAAG,EAAE,IAAI,CAAC,OAAO;4BACjB,WAAW,EAAE,IAAI,CAAC,OAAO;yBAC5B,CAAC,EAHiD,CAGjD,CAAC,CAAC;wBACJ,eAAe,CAAC,YAAY,CAAC,CAAC;wBAC9B,eAAe,CAAC,IAAI,CAAC,CAAC;qBACzB;gBACL,CAAC,kBAEC,UAAU,CAAC,MAAM,GAAG,CAAC,IACpB,EAMP,KAAC,WAAW,IACR,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,eAAe,EAC7B,MAAM,EAAC,gBAAgB,EACvB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAE1C,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,UAAC,IAAS;oBACvB,IAAM,MAAM,GAAG,UAAG,IAAI,CAAC,IAAI,cAAI,IAAI,CAAC,IAAI,CAAE,CAAC;oBAC3C,OAAO,CACH,cAAkB,SAAS,EAAC,gCAAgC,YACxD,eAAK,SAAS,EAAC,+BAA+B,aAE1C,KAAC,aAAa,IAAC,WAAW,EAAE,IAAI,GAAI,EAEpC,eAAK,SAAS,EAAC,+BAA+B,aAC1C,eAAK,SAAS,EAAC,iDAAiD,aAE5D,YACI,SAAS,EAAC,mEAAmE,EAC7E,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAC5B,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,IAAI,CAAC,EAApB,CAAoB,YAElC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,GACX,EAEJ,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,EAChC,OAAO,EAAE;wDACL,YAAY,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,EAAE,CAAC,CAAA;oDACnC,CAAC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAClC,IACA,EAEN,cAAK,SAAS,EAAC,SAAS,YAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAO,IACxD,IAEJ,IA/BA,MAAM,CAgCV,CACT,CAAA;gBACL,CAAC,CACA,GACS,IACZ,CACT,CAAC,CAAC,CAAC,CACA,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAI,CAC5C,CAAC;AACN,CAAC,CAAC","sourcesContent":["\nimport React, { useState } from 'react';\nimport { Download, Volume2 } from \"lucide-react\";\nimport { Column } from \"../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidMediaListFieldWidgetProps } from '../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../helpers/registry';\nimport { FileReaderExt } from '../../../../components/common/FileReaderExt';\nimport { SolidButton, SolidDialog } from \"../../../shad-cn-ui\";\nimport { SolidFileTypeIcon } from '../../../../helpers/fileTypeIcon';\n\nconst getCleanUrl = (url: string) => url.split(\"?\")[0];\n\nconst isImageFile = (url: string) => /\\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(getCleanUrl(url));\n\nconst isVideoFile = (url: string) => /\\.(mp4|webm|ogg)$/i.test(getCleanUrl(url));\n\nconst isAudioFile = (url: string) => /\\.(mp3|wav|ogg)$/i.test(getCleanUrl(url));\n\nconst isDocumentType = (url: string) => {\n const ext = getCleanUrl(url).split(\".\").pop()?.toLowerCase();\n return ext ? downloadOnlyExt.includes(ext) : false;\n};\n\nconst downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\",\n \"pdf\", \"csv\"\n];\n\nconst downloadFile = (url: string, name: string = \"\") => {\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = name;\n link.target = \"_blank\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\n\n\n// Thumbnail preview component\nconst MediaPreview = ({ src, onClick }: { src: string; onClick: (event: React.MouseEvent) => void }) => {\n const [isBroken, setIsBroken] = useState(false);\n\n const handleClick = (event: React.MouseEvent) => {\n onClick(event);\n };\n\n if (!isBroken) {\n if (isImageFile(src)) {\n return (\n <img\n src={src}\n alt=\"media\"\n className=\"shadow-2 border-round\"\n width={40}\n height={40}\n style={{ objectFit: \"cover\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n />\n );\n }\n\n if (isVideoFile(src)) {\n return (\n <video\n src={src}\n width={40}\n height={40}\n className=\"shadow-2 border-round\"\n style={{ objectFit: \"cover\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n muted\n />\n );\n }\n\n if (isAudioFile(src)) {\n return (\n <div\n className=\"shadow-2 border-round flex align-items-center justify-content-center bg-gray-100\"\n style={{ width: 40, height: 40 }}\n onClick={handleClick}\n >\n <Volume2 size={18} className=\"text-gray-600\" />\n </div>\n );\n }\n }\n\n return (\n <div\n style={{ width: 40, height: 40, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}\n onClick={handleClick}\n >\n <SolidFileTypeIcon fileUrl={src} size={24} />\n </div>\n );\n};\n\n\nconst SolidMediaMultipleColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultMediaMultipleListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidMediaListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox\n }\n return (\n <>\n {\n DynamicWidget && <DynamicWidget {...widgetProps} />\n }\n </>\n )\n }}\n sortable={column.attrs.sortable}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n />\n );\n};\n\nexport default SolidMediaMultipleColumn;\n\n// Default multiple widget\nexport const DefaultMediaMultipleListWidget = ({ rowData, fieldMetadata, setLightboxUrls, setOpenLightbox }: SolidMediaListFieldWidgetProps) => {\n const [isShowAllFiles, setShowAllFiles] = useState(false);\n\n if (!rowData?._media?.[fieldMetadata.name]) return null;\n\n const fullrecord = rowData._media[fieldMetadata.name]?.map((file: any) => ({\n name: file.originalFileName,\n type: file.mimeType,\n size: file.fileSize,\n id: file.id,\n fileUrl: file._full_url\n }));\n\n\n const formatFileSize = (size: number) =>\n size >= 1024 * 1024 ? `${(size / (1024 * 1024)).toFixed(1)} MB` : `${(size / 1024).toFixed(1)} KB`;\n\n\n const handleFileView = (file: any) => {\n const fileUrl = file?.fileUrl || \"\";\n // const cleanUrl = fileUrl.split(\"?\")[0];\n // const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (isDocumentType(fileUrl)) {\n downloadFile(file?.fileUrl, \"\")\n\n } else {\n setLightboxUrls?.([{ src: file.fileUrl, downloadUrl: file.fileUrl }]);\n setOpenLightbox?.(true);\n }\n };\n\n\n\n return fullrecord.length > 0 ? (\n <div className='flex gap-2 align-items-end'>\n\n {/* THUMBNAIL - FIXED BEHAVIOR */}\n <MediaPreview\n src={fullrecord[0]?.fileUrl}\n onClick={(event) => {\n event.stopPropagation();\n\n // const cleanUrl = fullrecord[0]?.fileUrl.split(\"?\")[0];\n // const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (isDocumentType(fullrecord[0]?.fileUrl) && fullrecord?.length > 1) {\n setShowAllFiles(true)\n return;\n }\n\n else if (isDocumentType(fullrecord[0]?.fileUrl)) {\n downloadFile(fullrecord[0]?.fileUrl, \"\")\n return;\n }\n // FIRST FILE IS MEDIA ⇒ OPEN LIGHTBOX\n const urlsWithType = fullrecord.map((file: any) => ({\n src: file.fileUrl,\n downloadUrl: file.fileUrl,\n }));\n setLightboxUrls(urlsWithType);\n setOpenLightbox(true);\n }}\n />\n\n {fullrecord?.length > 1 && <span\n style={{\n color: \"#0895CD\",\n fontWeight: \"bold\",\n cursor: \"pointer\",\n marginLeft: \"4px\"\n }}\n onClick={(event) => {\n event.stopPropagation();\n\n if (isDocumentType(fullrecord[0]?.fileUrl)) {\n setShowAllFiles(true);\n } else {\n const urlsWithType = fullrecord.map((file: any) => ({\n src: file.fileUrl,\n downloadUrl: file.fileUrl\n }));\n setLightboxUrls(urlsWithType);\n setOpenLightbox(true);\n }\n }}\n >\n +{fullrecord.length - 1}\n </span>\n }\n\n\n\n {/* VIEW ALL DIALOG */}\n <SolidDialog\n open={isShowAllFiles}\n onOpenChange={setShowAllFiles}\n header=\"Items Uploaded\"\n style={{ width: '32rem', maxWidth: '94vw' }}\n >\n {fullrecord?.map((file: any) => {\n const fileId = `${file.name}-${file.size}`;\n return (\n <div key={fileId} className=\"solid-file-upload-wrapper mb-3\">\n <div className=\"flex align-items-center gap-2\">\n\n <FileReaderExt fileDetails={file} />\n\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-center justify-content-between\">\n\n <p\n className=\"font-normal w-11 text-primary m-0 solid-media-column-text-wrapper\"\n style={{ cursor: \"pointer\" }}\n onClick={() => handleFileView(file)}\n >\n {file?.name}\n </p>\n\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<Download size={14} />}\n onClick={() => {\n downloadFile(file?.fileUrl, \"\")\n }}\n style={{ height: 16, width: 16 }}\n />\n </div>\n\n <div className=\"text-sm\">{formatFileSize(file.size)}</div>\n </div>\n\n </div>\n </div>\n )\n }\n )}\n </SolidDialog>\n </div>\n ) : (\n <div style={{ height: 40, width: 40 }} />\n );\n};\n"]}
|
|
@@ -257,7 +257,7 @@ export const DefaultMediaMultipleListWidget = ({ rowData, fieldMetadata, setLigh
|
|
|
257
257
|
<div className="flex align-items-center justify-content-between">
|
|
258
258
|
|
|
259
259
|
<p
|
|
260
|
-
className="font-normal w-11 text-primary m-0"
|
|
260
|
+
className="font-normal w-11 text-primary m-0 solid-media-column-text-wrapper"
|
|
261
261
|
style={{ cursor: "pointer" }}
|
|
262
262
|
onClick={() => handleFileView(file)}
|
|
263
263
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldMetaData.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"AAoBA,QAAA,MAAM,aAAa,mJAAoJ,GAAG,
|
|
1
|
+
{"version":3,"file":"FieldMetaData.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"AAoBA,QAAA,MAAM,aAAa,mJAAoJ,GAAG,4CA6OzK,CAAC;AACF,eAAe,aAAa,CAAC"}
|
|
@@ -111,7 +111,7 @@ var FieldMetaData = function (_a) {
|
|
|
111
111
|
setDeleteAlertPopup(false);
|
|
112
112
|
setRowToDelete(null);
|
|
113
113
|
}
|
|
114
|
-
}, className: "solid-shadcn-confirm-dialog solid-field-delete-flow-dialog", style: { width: "min(560px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-shadcn-dialog-head solid-field-delete-flow-head", children: [_jsx(SolidDialogTitle, { children: _jsxs("span", { className: "flex align-items-center gap-2", children: [_jsx(AlertTriangle, { size: 18, className: "text-yellow-500" }), _jsx("span", { children: "Remove Field" })] }) }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogSeparator, { className: "solid-shadcn-dialog-sep" }), _jsxs(SolidDialogBody, { className: "solid-shadcn-dialog-body solid-field-delete-flow-body", children: [_jsx("p", { className: "solid-shadcn-dialog-text solid-field-delete-flow-intro", children: "Removing a field is a 2 step process." }), _jsxs("ol", { className: "solid-field-delete-flow-list", children: [_jsxs("li", { children: ["Delete the field and save the model form.", _jsx("span", { children: "This marks the field for removal." })] }), _jsxs("li", { children: ["Generate code for this model.", _jsx("span", { children: "This removes the field from generated code, metadata tables, and JSON." })] })] })] }), _jsxs(SolidDialogFooter, { className: "solid-shadcn-dialog-actions solid-field-delete-flow-actions", children: [_jsx(SolidButton, { size: "sm", onClick: function () {
|
|
114
|
+
}, className: "solid-shadcn-confirm-dialog solid-field-delete-flow-dialog", style: { width: "min(560px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-shadcn-dialog-head solid-field-delete-flow-head", children: [_jsx(SolidDialogTitle, { children: _jsxs("span", { className: "flex align-items-center gap-2", children: [_jsx(AlertTriangle, { size: 18, className: "text-yellow-500" }), _jsx("span", { children: "Remove Field" })] }) }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogSeparator, { className: "solid-shadcn-dialog-sep" }), _jsxs(SolidDialogBody, { className: "solid-shadcn-dialog-body solid-field-delete-flow-body", children: [_jsx("p", { className: "solid-shadcn-dialog-text solid-field-delete-flow-intro", children: "Removing a field is a 2 step process." }), _jsxs("ol", { className: "solid-field-delete-flow-list", children: [_jsxs("li", { children: [_jsx("span", { className: "solid-field-delete-flow-index", children: "1." }), _jsxs("div", { className: "solid-field-delete-flow-step", children: [_jsx("p", { className: "solid-field-delete-flow-step-title", children: "Delete the field and save the model form." }), _jsx("span", { className: "solid-field-delete-flow-step-note", children: "This marks the field for removal." })] })] }), _jsxs("li", { children: [_jsx("span", { className: "solid-field-delete-flow-index", children: "2." }), _jsxs("div", { className: "solid-field-delete-flow-step", children: [_jsx("p", { className: "solid-field-delete-flow-step-title", children: "Generate code for this model." }), _jsx("span", { className: "solid-field-delete-flow-step-note", children: "This removes the field from generated code, metadata tables, and JSON." })] })] })] })] }), _jsxs(SolidDialogFooter, { className: "solid-shadcn-dialog-actions solid-field-delete-flow-actions", children: [_jsx(SolidButton, { size: "sm", onClick: function () {
|
|
115
115
|
if (rowToDelete) {
|
|
116
116
|
deleteRow(rowToDelete);
|
|
117
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldMetaData.js","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"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","sourcesContent":["import { usePathname } from \"../../../hooks/usePathname\";\nimport { SolidDataTable as DataTable, Column } from \"../list/SolidDataTable\";\nimport { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaDataForm from \"./FieldMetaDataForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { AlertTriangle, Info, Trash2 } from \"lucide-react\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui\";\n\n\nconst FieldMetaData = ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params }: any) => {\n const pathname = usePathname();\n const dispatch = useDispatch();\n const [visiblePopup, setVisiblePopup] = useState(false);\n const [isRequiredPopUp, setIsRequiredPopUp] = useState(false);\n const [currentPopup, setCurrentPopup] = useState();\n const [selectedFieldMetaData, setSelectedFieldMetaData] = useState(null);\n const [deleteAlertPopup, setDeleteAlertPopup] = useState(false);\n const [rowToDelete, setRowToDelete] = useState<any>(null);\n const onRowSelect = (event: any) => {\n setVisiblePopup(true);\n\n };\n\n\n const bodyTemplate = (rowData: any) => {\n return (\n <>\n\n {rowData.displayName &&\n <>\n <p>{rowData.displayName}\n {rowData.isMarkedForRemoval === true &&\n <>\n <br></br> <span style={{ fontSize: '11px', color: 'red' }}>This field will be removed next time you generate code for this model.</span>\n </>\n }\n </p>\n </>\n }\n </>\n )\n };\n\n\n // Function to delete a row\n const deleteRow = (rowData: any) => {\n //show dialog bbefore deletion & which will have to option ok and cancel\n setFieldMetaData((prevData: any) => {\n const updatedData = prevData.filter((item: any) => item.name !== rowData.name);\n setIsDirty(true); // Ensure dirty state is updated immediately\n if (setFieldDeleted) setFieldDeleted(true);\n return updatedData;\n });\n };\n\n // Template for the trash (delete) icon column\n const deleteTemplate = (rowData: any) => {\n return (\n <>\n {(pathname.includes('create') || (rowData.isSystem !== true && rowData.isMarkedForRemoval !== true)) &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n style={{ color: \"var(--solid-danger, #ef4444)\" }}\n aria-label=\"Delete field\"\n leftIcon={<Trash2 size={14} />}\n onClick={() => { setRowToDelete(rowData); setDeleteAlertPopup(true) }}\n />\n\n }\n </>\n )\n };\n\n const showToaster = async (message: any, severity: any) => {\n const errorMessages = Object.values(message);\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity, summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.map(String).join(', '), life: 3000 }));\n }\n };\n\n\n // const rowClass = (data: any) => {\n // return {\n // 'bg-red-row': data.isMarkedForRemoval === true\n // };\n // };\n\n\n const needsModelSetup = !modelMetaData.moduleId || !modelMetaData.dataSource;\n\n return (\n <>\n\n {needsModelSetup ?\n <div className=\"solid-placeholder-card-wrapper\">\n <div className=\"solid-placeholder-card\">\n <div className=\"solid-placeholder-card-icon\">\n <Info size={18} />\n </div>\n <div className=\"solid-placeholder-card-body\">\n <p className=\"solid-placeholder-card-title\">Model setup incomplete</p>\n <p className=\"solid-placeholder-card-text\">Please select Module and Datasource from the models tab before managing fields.</p>\n </div>\n </div>\n </div>\n :\n <>\n\n <div className=\"solid-datatable-wrapper solid-list-table-area flex-1 min-h-0 overflow-hidden\">\n <DataTable\n value={fieldMetaData}\n dataKey=\"id\"\n size=\"small\"\n emptyMessage=\"No fields configured\"\n rowClassName={(rowData) => rowData.isMarkedForRemoval === true ? \"greyed-out-row\" : \"\"}\n >\n <Column field=\"displayName\" header=\"Display Name\" body={bodyTemplate}></Column>\n <Column field=\"name\" header=\"Name\"></Column>\n <Column field=\"type\" header=\"Type\"></Column>\n\n\n {modelMetaData.isSystem !== true &&\n <Column body={deleteTemplate} header=\"Delete\" style={{ width: '90px' }} />\n }\n </DataTable>\n </div>\n <SolidDialog\n open={visiblePopup}\n onOpenChange={(open) => {\n if (!open) {\n setVisiblePopup(false);\n }\n }}\n className=\"solid-dialog solid-field-dialog\"\n style={{ width: \"30vw\" }}\n showHeader={false}\n >\n <SolidDialogBody className=\"solid-dialog-body-flush\">\n <FieldMetaDataForm setIsDirty={setIsDirty} modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={isRequiredPopUp}\n onOpenChange={(open) => {\n if (!open) {\n setIsRequiredPopUp(false);\n }\n }}\n className=\"solid-dialog solid-confirm-dialog solid-field-confirm-dialog\"\n style={{ width: \"min(420px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-field-confirm-header\">\n <SolidDialogTitle>\n <span className=\"flex align-items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Warning</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">If there is data against this model this operation might not work and manual intervention will be required.</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-field-confirm-actions\">\n <SolidButton size=\"sm\" onClick={() => setIsRequiredPopUp(false)}>\n Ok\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n <SolidDialog\n open={deleteAlertPopup}\n onOpenChange={(open) => {\n if (!open) {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-field-delete-flow-dialog\"\n style={{ width: \"min(560px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head solid-field-delete-flow-head\">\n <SolidDialogTitle>\n <span className=\"flex align-items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Remove Field</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body solid-field-delete-flow-body\">\n <p className=\"solid-shadcn-dialog-text solid-field-delete-flow-intro\">\n Removing a field is a 2 step process.\n </p>\n <ol className=\"solid-field-delete-flow-list\">\n <li>\n Delete the field and save the model form.\n <span>This marks the field for removal.</span>\n </li>\n <li>\n Generate code for this model.\n <span>This removes the field from generated code, metadata tables, and JSON.</span>\n </li>\n </ol>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions solid-field-delete-flow-actions\">\n <SolidButton\n size=\"sm\"\n onClick={() => {\n if (rowToDelete) {\n deleteRow(rowToDelete);\n }\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Ok\n </SolidButton>\n <SolidButton\n size=\"sm\"\n variant=\"outline\"\n onClick={() => {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Cancel\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n </>\n }\n </>\n\n\n\n );\n};\nexport default FieldMetaData;\n"]}
|
|
1
|
+
{"version":3,"file":"FieldMetaData.js","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"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","sourcesContent":["import { usePathname } from \"../../../hooks/usePathname\";\nimport { SolidDataTable as DataTable, Column } from \"../list/SolidDataTable\";\nimport { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaDataForm from \"./FieldMetaDataForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { AlertTriangle, Info, Trash2 } from \"lucide-react\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui\";\n\n\nconst FieldMetaData = ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params }: any) => {\n const pathname = usePathname();\n const dispatch = useDispatch();\n const [visiblePopup, setVisiblePopup] = useState(false);\n const [isRequiredPopUp, setIsRequiredPopUp] = useState(false);\n const [currentPopup, setCurrentPopup] = useState();\n const [selectedFieldMetaData, setSelectedFieldMetaData] = useState(null);\n const [deleteAlertPopup, setDeleteAlertPopup] = useState(false);\n const [rowToDelete, setRowToDelete] = useState<any>(null);\n const onRowSelect = (event: any) => {\n setVisiblePopup(true);\n\n };\n\n\n const bodyTemplate = (rowData: any) => {\n return (\n <>\n\n {rowData.displayName &&\n <>\n <p>{rowData.displayName}\n {rowData.isMarkedForRemoval === true &&\n <>\n <br></br> <span style={{ fontSize: '11px', color: 'red' }}>This field will be removed next time you generate code for this model.</span>\n </>\n }\n </p>\n </>\n }\n </>\n )\n };\n\n\n // Function to delete a row\n const deleteRow = (rowData: any) => {\n //show dialog bbefore deletion & which will have to option ok and cancel\n setFieldMetaData((prevData: any) => {\n const updatedData = prevData.filter((item: any) => item.name !== rowData.name);\n setIsDirty(true); // Ensure dirty state is updated immediately\n if (setFieldDeleted) setFieldDeleted(true);\n return updatedData;\n });\n };\n\n // Template for the trash (delete) icon column\n const deleteTemplate = (rowData: any) => {\n return (\n <>\n {(pathname.includes('create') || (rowData.isSystem !== true && rowData.isMarkedForRemoval !== true)) &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n style={{ color: \"var(--solid-danger, #ef4444)\" }}\n aria-label=\"Delete field\"\n leftIcon={<Trash2 size={14} />}\n onClick={() => { setRowToDelete(rowData); setDeleteAlertPopup(true) }}\n />\n\n }\n </>\n )\n };\n\n const showToaster = async (message: any, severity: any) => {\n const errorMessages = Object.values(message);\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity, summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.map(String).join(', '), life: 3000 }));\n }\n };\n\n\n // const rowClass = (data: any) => {\n // return {\n // 'bg-red-row': data.isMarkedForRemoval === true\n // };\n // };\n\n\n const needsModelSetup = !modelMetaData.moduleId || !modelMetaData.dataSource;\n\n return (\n <>\n\n {needsModelSetup ?\n <div className=\"solid-placeholder-card-wrapper\">\n <div className=\"solid-placeholder-card\">\n <div className=\"solid-placeholder-card-icon\">\n <Info size={18} />\n </div>\n <div className=\"solid-placeholder-card-body\">\n <p className=\"solid-placeholder-card-title\">Model setup incomplete</p>\n <p className=\"solid-placeholder-card-text\">Please select Module and Datasource from the models tab before managing fields.</p>\n </div>\n </div>\n </div>\n :\n <>\n\n <div className=\"solid-datatable-wrapper solid-list-table-area flex-1 min-h-0 overflow-hidden\">\n <DataTable\n value={fieldMetaData}\n dataKey=\"id\"\n size=\"small\"\n emptyMessage=\"No fields configured\"\n rowClassName={(rowData) => rowData.isMarkedForRemoval === true ? \"greyed-out-row\" : \"\"}\n >\n <Column field=\"displayName\" header=\"Display Name\" body={bodyTemplate}></Column>\n <Column field=\"name\" header=\"Name\"></Column>\n <Column field=\"type\" header=\"Type\"></Column>\n\n\n {modelMetaData.isSystem !== true &&\n <Column body={deleteTemplate} header=\"Delete\" style={{ width: '90px' }} />\n }\n </DataTable>\n </div>\n <SolidDialog\n open={visiblePopup}\n onOpenChange={(open) => {\n if (!open) {\n setVisiblePopup(false);\n }\n }}\n className=\"solid-dialog solid-field-dialog\"\n style={{ width: \"30vw\" }}\n showHeader={false}\n >\n <SolidDialogBody className=\"solid-dialog-body-flush\">\n <FieldMetaDataForm setIsDirty={setIsDirty} modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={isRequiredPopUp}\n onOpenChange={(open) => {\n if (!open) {\n setIsRequiredPopUp(false);\n }\n }}\n className=\"solid-dialog solid-confirm-dialog solid-field-confirm-dialog\"\n style={{ width: \"min(420px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-field-confirm-header\">\n <SolidDialogTitle>\n <span className=\"flex align-items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Warning</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">If there is data against this model this operation might not work and manual intervention will be required.</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-field-confirm-actions\">\n <SolidButton size=\"sm\" onClick={() => setIsRequiredPopUp(false)}>\n Ok\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n <SolidDialog\n open={deleteAlertPopup}\n onOpenChange={(open) => {\n if (!open) {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-field-delete-flow-dialog\"\n style={{ width: \"min(560px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head solid-field-delete-flow-head\">\n <SolidDialogTitle>\n <span className=\"flex align-items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Remove Field</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body solid-field-delete-flow-body\">\n <p className=\"solid-shadcn-dialog-text solid-field-delete-flow-intro\">\n Removing a field is a 2 step process.\n </p>\n <ol className=\"solid-field-delete-flow-list\">\n <li>\n <span className=\"solid-field-delete-flow-index\">1.</span>\n <div className=\"solid-field-delete-flow-step\">\n <p className=\"solid-field-delete-flow-step-title\">Delete the field and save the model form.</p>\n <span className=\"solid-field-delete-flow-step-note\">This marks the field for removal.</span>\n </div>\n </li>\n <li>\n <span className=\"solid-field-delete-flow-index\">2.</span>\n <div className=\"solid-field-delete-flow-step\">\n <p className=\"solid-field-delete-flow-step-title\">Generate code for this model.</p>\n <span className=\"solid-field-delete-flow-step-note\">This removes the field from generated code, metadata tables, and JSON.</span>\n </div>\n </li>\n </ol>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions solid-field-delete-flow-actions\">\n <SolidButton\n size=\"sm\"\n onClick={() => {\n if (rowToDelete) {\n deleteRow(rowToDelete);\n }\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Ok\n </SolidButton>\n <SolidButton\n size=\"sm\"\n variant=\"outline\"\n onClick={() => {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Cancel\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n </>\n }\n </>\n\n\n\n );\n};\nexport default FieldMetaData;\n"]}
|
|
@@ -207,12 +207,18 @@ const FieldMetaData = ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaDa
|
|
|
207
207
|
</p>
|
|
208
208
|
<ol className="solid-field-delete-flow-list">
|
|
209
209
|
<li>
|
|
210
|
-
|
|
211
|
-
<
|
|
210
|
+
<span className="solid-field-delete-flow-index">1.</span>
|
|
211
|
+
<div className="solid-field-delete-flow-step">
|
|
212
|
+
<p className="solid-field-delete-flow-step-title">Delete the field and save the model form.</p>
|
|
213
|
+
<span className="solid-field-delete-flow-step-note">This marks the field for removal.</span>
|
|
214
|
+
</div>
|
|
212
215
|
</li>
|
|
213
216
|
<li>
|
|
214
|
-
|
|
215
|
-
<
|
|
217
|
+
<span className="solid-field-delete-flow-index">2.</span>
|
|
218
|
+
<div className="solid-field-delete-flow-step">
|
|
219
|
+
<p className="solid-field-delete-flow-step-title">Generate code for this model.</p>
|
|
220
|
+
<span className="solid-field-delete-flow-step-note">This removes the field from generated code, metadata tables, and JSON.</span>
|
|
221
|
+
</div>
|
|
216
222
|
</li>
|
|
217
223
|
</ol>
|
|
218
224
|
</SolidDialogBody>
|
|
@@ -1147,7 +1147,7 @@ export var SolidTreeView = forwardRef(function (params, ref) {
|
|
|
1147
1147
|
var rootHasNext = hasNext("root");
|
|
1148
1148
|
var start = total === 0 ? 0 : offset + 1;
|
|
1149
1149
|
var end = total === 0 ? 0 : Math.min(offset + limit, total);
|
|
1150
|
-
return (_jsxs("div", { className: "w-full solid-table-paginator solid-table-paginator-align-end flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background", children: [_jsxs("div", { className: "solid-paginator-meta flex items-center gap-2 ml-auto", children: [_jsx("span", { className: "solid-paginator-label", children: "Rows" }), _jsx("select", { value: limit, onChange: function (event) {
|
|
1150
|
+
return (_jsxs("div", { className: "w-full solid-table-paginator solid-table-paginator-align-end flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-2 sm:px-3 py-1.5 bg-background", children: [_jsxs("div", { className: "solid-paginator-meta flex items-center gap-2 sm:ml-auto", children: [_jsx("span", { className: "solid-paginator-label", children: "Rows" }), _jsx("select", { value: limit, onChange: function (event) {
|
|
1151
1151
|
setGlobalLimit(Number(event.target.value));
|
|
1152
1152
|
}, className: "solid-paginator-select", children: pageSizeOptions.map(function (option) { return (_jsx("option", { value: option, children: option }, option)); }) }), _jsxs("span", { className: "solid-paginator-report", children: [start, " - ", end, " of ", total] })] }), _jsxs("div", { className: "solid-paginator-actions flex items-center gap-2", children: [_jsx("button", { type: "button", className: "solid-paginator-btn", onClick: function () { void handleRootPageChange("prev"); }, disabled: !rootHasPrev || treeLoading, children: "Previous" }), _jsx("button", { type: "button", className: "solid-paginator-btn", onClick: function () { void handleRootPageChange("next"); }, disabled: !rootHasNext || treeLoading, children: "Next" })] })] }));
|
|
1153
1153
|
};
|
|
@@ -1316,7 +1316,7 @@ export var SolidTreeView = forwardRef(function (params, ref) {
|
|
|
1316
1316
|
})] })] }))] }));
|
|
1317
1317
|
};
|
|
1318
1318
|
// ─── Render ───────────────────────────────────────────────────────────────
|
|
1319
|
-
return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper solid-tree-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content
|
|
1319
|
+
return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper solid-tree-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content flex flex-column flex-grow-1", children: _jsxs("div", { className: "solid-list-surface solid-tree-surface flex flex-column flex-1 min-h-0", children: [_jsxs("div", { className: "page-header solid-list-toolbar solid-tree-toolbar flex-column lg:flex-row", children: [_jsxs("div", { className: "flex justify-content-between w-full", children: [_jsxs("div", { className: "flex gap-3 align-items-center w-full solid-list-toolbar-left", children: [_jsxs("div", { className: "flex align-items-center gap-2", children: [params.embeded !== true && (_jsx("div", { className: "apps-icon block md:hidden cursor-pointer", onClick: toggleBothSidebars, children: _jsx(SolidIcon, { name: "si-th-large" }) })), _jsx("p", { className: "m-0 view-title solid-text-wrapper", children: treeViewTitle })] }), ((_h = (_g = (_f = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _f === void 0 ? void 0 : _f.solidView) === null || _g === void 0 ? void 0 : _g.layout) === null || _h === void 0 ? void 0 : _h.attrs.enableGlobalSearch) === true && (_jsx("div", { className: "hidden lg:flex", children: _jsx(SolidGlobalSearchElement, { viewType: "tree", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidTreeViewMetaData, handleApplyCustomFilter: handleApplyCustomFilter }) }))] }), _jsxs("div", { className: "flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions", children: [headerRequestStatusLabel ? _jsx(SolidHeaderRequestStatus, { label: headerRequestStatusLabel }) : null, ((_l = (_k = (_j = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _j === void 0 ? void 0 : _j.solidView) === null || _k === void 0 ? void 0 : _k.layout) === null || _l === void 0 ? void 0 : _l.attrs.enableGlobalSearch) === true && (_jsx("div", { className: "flex lg:hidden", children: _jsx(SolidButton, { type: "button", size: "sm", variant: "outline", leftIcon: _jsx(Search, { size: 14 }), className: "solid-icon-button", onClick: function () { return setShowGlobalSearchElement(!showGlobalSearchElement); } }) })), actionsAllowed.includes("".concat(permissionExpression(params.modelName, "create"))) &&
|
|
1320
1320
|
((_p = (_o = (_m = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _m === void 0 ? void 0 : _m.solidView) === null || _o === void 0 ? void 0 : _o.layout) === null || _p === void 0 ? void 0 : _p.attrs.create) !== false && (_jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, responsiveIconOnly: true })), actionsAllowed.includes("".concat(permissionExpression(params.modelName, "delete"))) &&
|
|
1321
1321
|
((_s = (_r = (_q = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _q === void 0 ? void 0 : _q.solidView) === null || _r === void 0 ? void 0 : _r.layout) === null || _s === void 0 ? void 0 : _s.attrs.delete) !== false &&
|
|
1322
1322
|
selectedRecords.length > 0 && (_jsx(SolidButton, { type: "button", label: "Delete", size: "sm", onClick: function () { return setDeleteRecordsDialogVisible(true); }, className: "small-button", severity: "danger" })), _jsx(SolidButton, { type: "button", size: "sm", variant: "outline", leftIcon: _jsx(RefreshCw, { size: 14 }), className: "solid-icon-button", onClick: function () { void loadRootGroups(getPagination("root").offset); } }), showArchived && (_jsx(SolidButton, { type: "button", label: "Recover", size: "sm", variant: "outline", leftIcon: _jsx(RefreshCw, { size: 14 }), className: "hidden lg:flex solid-icon-button ", onClick: function () { return setRecoverDialogVisible(true); } })), params.embeded === false &&
|