@solidxai/core-ui 0.1.14-beta.9 → 0.1.14
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/auth/AuthLayout.js +1 -1
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +2 -2
- package/dist/components/common/SettingsComponent.module.css +1 -4
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
- package/dist/components/common/SolidFormStepper.js +6 -7
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +1 -7
- package/dist/components/common/SolidThemeProvider.d.ts.map +1 -1
- package/dist/components/common/SolidThemeProvider.js +11 -127
- package/dist/components/common/SolidThemeProvider.js.map +1 -1
- package/dist/components/common/SolidThemeProvider.tsx +22 -104
- package/dist/components/core/card/CardGrid.d.ts +1 -1
- package/dist/components/core/card/CardGrid.d.ts.map +1 -1
- package/dist/components/core/card/CardGrid.js +2 -2
- package/dist/components/core/card/CardGrid.js.map +1 -1
- package/dist/components/core/card/CardGrid.tsx +0 -4
- package/dist/components/core/card/CardItem.d.ts +0 -2
- package/dist/components/core/card/CardItem.d.ts.map +1 -1
- package/dist/components/core/card/CardItem.js +3 -4
- package/dist/components/core/card/CardItem.js.map +1 -1
- package/dist/components/core/card/CardItem.tsx +0 -15
- package/dist/components/core/card/SolidCardView.d.ts +1 -28
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +44 -99
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +7 -124
- package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +6 -15
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +0 -34
- package/dist/components/core/common/PDFViewer.d.ts +5 -9
- package/dist/components/core/common/PDFViewer.d.ts.map +1 -1
- package/dist/components/core/common/PDFViewer.js +102 -10
- package/dist/components/core/common/PDFViewer.js.map +1 -1
- package/dist/components/core/common/PDFViewer.tsx +88 -29
- package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
- package/dist/components/core/common/SolidCreateButton.js +2 -2
- package/dist/components/core/common/SolidCreateButton.js.map +1 -1
- package/dist/components/core/common/SolidCreateButton.tsx +2 -22
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +134 -137
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +119 -127
- package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.js +21 -21
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +53 -62
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +2 -5
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +2 -7
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +1 -3
- package/dist/components/core/kanban/KanbanCard.d.ts +0 -2
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +2 -4
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +1 -14
- package/dist/components/core/kanban/KanbanColumn.d.ts +1 -3
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +2 -2
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +2 -4
- package/dist/components/core/kanban/SolidKanbanView.d.ts +1 -25
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +50 -89
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +9 -82
- package/dist/components/core/list/PLAN.md +1 -1
- package/dist/components/core/list/SolidListView.d.ts +0 -11
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +3 -8
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +43 -82
- package/dist/components/core/list/SolidListViewConfigure.js +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +1 -2
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +0 -2
- package/dist/components/core/model/FieldMetaData.d.ts +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +8 -8
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +2 -2
- package/dist/components/core/model/FieldMetaDataForm.css +0 -119
- package/dist/components/core/model/FieldMetaDataForm.js +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.css +0 -64
- package/dist/components/core/module/ModulePackageDialog.css +12 -117
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +3 -6
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +13 -35
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
- package/dist/components/layout/AdminHeaderActions.js +10 -15
- package/dist/components/layout/AdminHeaderActions.js.map +1 -1
- package/dist/components/layout/AdminHeaderActions.tsx +8 -15
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +18 -1
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +21 -3
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/index.ts +0 -5
- package/dist/resources/globals.css +0 -15
- package/dist/resources/solid-custom.css +0 -11
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/resources/themes/solid-light-modern/theme.css +3 -4
- package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/CardPage.js +2 -15
- package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/CardPage.tsx +2 -17
- package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.js +3 -31
- package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.tsx +11 -39
- package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.js +2 -15
- package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.tsx +2 -17
- package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.js +13 -5
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +15 -5
- package/dist/types/solid-core.d.ts +0 -8
- package/package.json +1 -1
|
@@ -32,7 +32,6 @@ import { isArchivedListRow } from "./columns/PublishStatusColumnDefaults";
|
|
|
32
32
|
import { SolidBeforeListDataLoad, SolidListUiEventResponse, SolidLoadList, SolidDefinedFilter } from "../../../types/solid-core";
|
|
33
33
|
import { getExtensionFunction } from "../../../helpers/registry";
|
|
34
34
|
import { useSession } from "../../../hooks/useSession";
|
|
35
|
-
import { resolveActiveUserId } from "../../../helpers/resolveActiveUserId";
|
|
36
35
|
import { ERROR_MESSAGES } from "../../../constants/error-messages";
|
|
37
36
|
import { getSettingsMap, resolveRecordClickAction } from "../../../helpers/settingsPayload";
|
|
38
37
|
import { useGetSolidSettingsQuery } from "../../../redux/api/solidSettingsApi";
|
|
@@ -107,17 +106,6 @@ export type SolidListViewHandle = {
|
|
|
107
106
|
saved_filter_predicate?: any;
|
|
108
107
|
predefined_search_predicate?: any;
|
|
109
108
|
}) => void;
|
|
110
|
-
/**
|
|
111
|
-
* Returns the saved filters currently available in the list view, including
|
|
112
|
-
* any seeded/system filters supplied by the view.
|
|
113
|
-
*/
|
|
114
|
-
getSavedFilters: () => any[];
|
|
115
|
-
/**
|
|
116
|
-
* Applies the currently available saved filter with the given name using the
|
|
117
|
-
* same selection path as clicking that filter in the search UI.
|
|
118
|
-
* Returns false when no saved filter with that name is available.
|
|
119
|
-
*/
|
|
120
|
-
applySavedFilter: (name: string, variables?: Record<string, any>) => boolean;
|
|
121
109
|
/**
|
|
122
110
|
* Updates pagination state directly.
|
|
123
111
|
* Use this when a caller needs to jump to a specific page window
|
|
@@ -920,7 +908,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
920
908
|
fileterTobeStored.custom_filter_predicate = latestFilterPredicatesRef.current.custom_filter_predicate || null;
|
|
921
909
|
fileterTobeStored.search_predicate = latestFilterPredicatesRef.current.search_predicate || null;
|
|
922
910
|
fileterTobeStored.saved_filter_predicate = latestFilterPredicatesRef.current.saved_filter_predicate || null;
|
|
923
|
-
fileterTobeStored.saved_filter_variables = latestFilterPredicatesRef.current.saved_filter_variables || {};
|
|
924
911
|
fileterTobeStored.saved_filter_id = latestFilterPredicatesRef.current.saved_filter_id || null;
|
|
925
912
|
fileterTobeStored.saved_filter_system_key = latestFilterPredicatesRef.current.saved_filter_system_key || null;
|
|
926
913
|
fileterTobeStored.saved_filter_name = latestFilterPredicatesRef.current.saved_filter_name || null;
|
|
@@ -943,8 +930,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
943
930
|
queryfilter.$and.push(filterPredicates.search_predicate);
|
|
944
931
|
}
|
|
945
932
|
if (filterPredicates.saved_filter_predicate) {
|
|
946
|
-
queryfilter.$and.push(filterPredicates.
|
|
947
|
-
resolveActiveUserId(filterPredicates.saved_filter_predicate, user?.id));
|
|
933
|
+
queryfilter.$and.push(filterPredicates.saved_filter_predicate);
|
|
948
934
|
}
|
|
949
935
|
if (filterPredicates.predefined_search_predicate) {
|
|
950
936
|
queryfilter.$and.push(filterPredicates.predefined_search_predicate);
|
|
@@ -1083,8 +1069,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1083
1069
|
applyFilter: (filter) => {
|
|
1084
1070
|
handleApplyCustomFilter(filter);
|
|
1085
1071
|
},
|
|
1086
|
-
getSavedFilters: () => solidGlobalSearchElementRef.current?.getSavedFilters?.() ?? [],
|
|
1087
|
-
applySavedFilter: (name, variables) => solidGlobalSearchElementRef.current?.applySavedFilterByName?.(name, variables) ?? false,
|
|
1088
1072
|
setPagination: (nextFirst, nextRows) => {
|
|
1089
1073
|
setFirst(nextFirst);
|
|
1090
1074
|
setRows(nextRows);
|
|
@@ -1478,53 +1462,30 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1478
1462
|
</p>
|
|
1479
1463
|
</div> */}
|
|
1480
1464
|
{params.embeded === false && (
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
>
|
|
1499
|
-
</SolidGlobalSearchElement>
|
|
1500
|
-
</div>
|
|
1501
|
-
|
|
1502
|
-
{/* Mobile Version of global search element */}
|
|
1503
|
-
<div className={`${showGlobalSearchElement ? "lg:flex" : "hidden"} lg:hidden mt-3 lg:mt-0 w-full lg:min-w-0`}>
|
|
1504
|
-
{/* Keep global search mounted for now because list bootstrap/filter hydration still flows through this element. */}
|
|
1505
|
-
<SolidGlobalSearchElement
|
|
1506
|
-
key={params.modelName}
|
|
1507
|
-
viewType="list"
|
|
1508
|
-
showSaveFilterPopup={showSaveFilterPopup}
|
|
1509
|
-
setShowSaveFilterPopup={setShowSaveFilterPopup}
|
|
1510
|
-
ref={solidGlobalSearchElementRef}
|
|
1511
|
-
viewData={solidListViewMetaData}
|
|
1512
|
-
handleApplyCustomFilter={handleApplyCustomFilter}
|
|
1513
|
-
filterPredicates={filterPredicates}
|
|
1514
|
-
definedFilters={definedFilters}
|
|
1515
|
-
onRemoveDefinedFilter={removeDefinedFilter}
|
|
1516
|
-
onApplyDefinedFilter={applyDefinedFilter}
|
|
1517
|
-
>
|
|
1518
|
-
</SolidGlobalSearchElement>
|
|
1519
|
-
</div>
|
|
1520
|
-
</>
|
|
1465
|
+
<div className={`${showGlobalSearchElement ? "flex" : "hidden lg:flex"} mt-3 lg:mt-0 w-full lg:flex lg:min-w-0`}>
|
|
1466
|
+
{/* Keep global search mounted for now because list bootstrap/filter hydration still flows through this element. */}
|
|
1467
|
+
<SolidGlobalSearchElement
|
|
1468
|
+
key={params.modelName}
|
|
1469
|
+
viewType="list"
|
|
1470
|
+
showSaveFilterPopup={showSaveFilterPopup}
|
|
1471
|
+
setShowSaveFilterPopup={setShowSaveFilterPopup}
|
|
1472
|
+
ref={solidGlobalSearchElementRef}
|
|
1473
|
+
viewData={solidListViewMetaData}
|
|
1474
|
+
handleApplyCustomFilter={handleApplyCustomFilter}
|
|
1475
|
+
filterPredicates={filterPredicates}
|
|
1476
|
+
definedFilters={definedFilters}
|
|
1477
|
+
onRemoveDefinedFilter={removeDefinedFilter}
|
|
1478
|
+
onApplyDefinedFilter={applyDefinedFilter}
|
|
1479
|
+
>
|
|
1480
|
+
</SolidGlobalSearchElement>
|
|
1481
|
+
</div>
|
|
1521
1482
|
)}
|
|
1522
1483
|
|
|
1523
1484
|
</div>
|
|
1524
1485
|
<div className="flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions lg:ml-auto">
|
|
1525
1486
|
<SolidHeaderRequestStatus label={headerRequestStatusLabel} />
|
|
1526
1487
|
{params.embeded === false && (
|
|
1527
|
-
<div className="
|
|
1488
|
+
<div className="flex lg:hidden">
|
|
1528
1489
|
<SolidButton
|
|
1529
1490
|
type="button"
|
|
1530
1491
|
size="small"
|
|
@@ -1755,30 +1716,30 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1755
1716
|
const presentation = resolveButtonPresentation(button?.attrs);
|
|
1756
1717
|
if (!presentation.showIcon && !presentation.showLabel) return null;
|
|
1757
1718
|
return (
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1719
|
+
<SolidButton
|
|
1720
|
+
type="button"
|
|
1721
|
+
icon={presentation.icon}
|
|
1722
|
+
iconPos={presentation.iconPos}
|
|
1723
|
+
label={presentation.label}
|
|
1724
|
+
tooltip={presentation.tooltip}
|
|
1725
|
+
aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
|
|
1726
|
+
className={[
|
|
1727
|
+
"solid-inline-row-button w-full text-left gap-2",
|
|
1728
|
+
presentation.isIconOnly ? "solid-icon-button" : "",
|
|
1729
|
+
presentation.buttonClassName ? presentation.buttonClassName : ""
|
|
1730
|
+
].filter(Boolean).join(" ")}
|
|
1731
|
+
size="small"
|
|
1732
|
+
variant="ghost"
|
|
1733
|
+
onClick={() => {
|
|
1734
|
+
const event = {
|
|
1735
|
+
params,
|
|
1736
|
+
rowData: rowData,
|
|
1737
|
+
solidListViewMetaData:
|
|
1738
|
+
solidListViewMetaData?.data,
|
|
1739
|
+
};
|
|
1740
|
+
handleCustomButtonClick(button.attrs, event);
|
|
1741
|
+
}}
|
|
1742
|
+
/>
|
|
1782
1743
|
);
|
|
1783
1744
|
})()
|
|
1784
1745
|
);
|
|
@@ -158,7 +158,7 @@ export var SolidListViewConfigure = function (_a) {
|
|
|
158
158
|
true) && _jsx(SolidDropdownMenuSeparator, {}), isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes("".concat(permissionExpression('userViewMetadata', 'create'))) && (_jsxs(SolidDropdownMenuSub, { children: [_jsxs(SolidDropdownMenuSubTrigger, { className: "solid-header-dropdown-item", children: [_jsx(SlidersHorizontal, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Layout" })] }), _jsxs(SolidDropdownMenuSubContent, { className: "customize-layout-panel", children: [showSwitchType && (_jsxs(_Fragment, { children: [_jsx(SolidDropdownMenuLabel, { children: "Switch Type" }), _jsx(SolidDropdownMenuRadioGroup, { value: view, onValueChange: handleViewTypeChange, children: visibleViewModes.map(function (option) { return (_jsx(SolidDropdownMenuRadioItem, { value: option.type, children: capitalize(option.type) }, option.type)); }) }), _jsx(SolidDropdownMenuSeparator, {})] })), _jsx(SolidDropdownMenuLabel, { children: "Row Spacing" }), _jsx(SolidDropdownMenuRadioGroup, { value: size, onValueChange: function (value) { return setSize(value); }, children: sizeOptions.map(function (option) { return (_jsx(SolidDropdownMenuRadioItem, { value: option.value, children: option.label }, option.value)); }) }), _jsx(SolidDropdownMenuSeparator, {}), _jsxs(SolidDropdownMenuItem, { onSelect: function () {
|
|
159
159
|
setShowColumnSelectorDialog(true);
|
|
160
160
|
setIsCogMenuOpen(false);
|
|
161
|
-
}, children: [_jsx(Table, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "
|
|
161
|
+
}, children: [_jsx(Table, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Column Selector" })] })] })] })), isHeaderActionEnabled('savedFilters') && actionsAllowed.includes("".concat(permissionExpression('savedFilters', 'create'))) && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
|
|
162
162
|
setShowSaveFilterPopup(true);
|
|
163
163
|
setIsCogMenuOpen(false);
|
|
164
164
|
}, children: [_jsx(Save, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Save Custom Filter" })] })), _jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListViewConfigure.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { canExportRecords, canImportRecords, permissionExpression } from \"../../../helpers/permissions\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidListColumnSelector } from \"./SolidColumnSelector/SolidListColumnSelector\";\nimport { SolidExport } from \"../../../components/common/SolidExport\";\nimport { useHandleListCustomButtonClick } from \"../../../components/common/useHandleListCustomButtonClick\";\nimport { SolidListViewHeaderContextMenuButton } from \"./SolidListViewHeaderContextMenuButton\";\nimport { isButtonVisibleInCurrentEnv } from \"../../../helpers/buttonEnvironment\";\nimport \"../../common/solid-export.css\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SolidListViewHeaderButton } from \"./SolidListViewHeaderButton\";\nimport { capitalize } from \"lodash\";\nimport { Archive, Cog, Download, RefreshCw, Save, SlidersHorizontal, Table, Trash2, Upload } from \"lucide-react\";\nimport { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidDropdownMenu,\n SolidDropdownMenuCheckboxItem,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuLabel,\n SolidDropdownMenuRadioGroup,\n SolidDropdownMenuRadioItem,\n SolidDropdownMenuSeparator,\n SolidDropdownMenuSub,\n SolidDropdownMenuSubContent,\n SolidDropdownMenuSubTrigger,\n SolidDropdownMenuTrigger,\n} from \"../../shad-cn-ui\";\n\nexport type ViewMode = {\n actionId: string;\n actionName: string;\n menuItemId: string;\n menuItemName: string;\n type: string;\n}\n\nexport const SolidListViewConfigure = (\n { listViewMetaData,\n solidListViewLayout,\n setShowArchived,\n showArchived,\n viewData,\n sizeOptions,\n setSize,\n size,\n viewModes,\n params,\n actionsAllowed,\n selectedRecords,\n setDialogVisible,\n setShowSaveFilterPopup,\n filters,\n handleFetchUpdatedRecords,\n setRecoverDialogVisible,\n\n }:\n any) => {\n // const [visible, setVisible] = useState<boolean>(false);\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n const [openImportDialog, setOpenImportDialog] = useState<boolean>(false);\n const pathname = usePathname();\n const router = useRouter();\n const [view, setView] = useState<string>(\"\");\n const [exportView, setExportView] = useState<boolean>(false);\n const [isCogMenuOpen, setIsCogMenuOpen] = useState(false);\n const [showColumnSelectorDialog, setShowColumnSelectorDialog] = useState(false);\n\n const handleViewChange = (newView: ViewMode) => {\n if (view === newView.type) return; // Prevent unnecessary updates\n const pathSegments = pathname.split('/').filter(Boolean);\n pathSegments[pathSegments.length - 1] = newView.type; // Replace the last part with new view\n const newPath = '/' + pathSegments.join('/') + `?menuItemId=${newView.menuItemId}&menuItemName=${newView.menuItemName}&actionId=${newView.actionId}&actionName=${newView.actionName}`;\n storeCurrentModelViewContext(newPath);\n router.push(newPath);\n };\n\n useEffect(() => {\n if (typeof pathname === 'string') {\n const pathSegments = pathname.split('/').filter(Boolean);\n if (pathSegments.length > 0) {\n setView(pathSegments[pathSegments.length - 1]);\n }\n }\n }, [pathname])\n\n //Build a map of actionKey → boolean at the top level\n const headerActions = solidListViewLayout?.attrs ?? {};\n\n const normalizeAction = (value: boolean | string[]) => {\n if (value === true) return { enabled: true, roles: [] };\n if (value === false) return { enabled: false, roles: [] };\n if (Array.isArray(value)) return { enabled: true, roles: value };\n return { enabled: true, roles: [] }; // default\n };\n const normalized = {\n import: normalizeAction(headerActions.import),\n export: normalizeAction(headerActions.export),\n customizeLayout: normalizeAction(headerActions.customizeLayout),\n savedFilters: normalizeAction(headerActions.savedFilters),\n };\n\n // Role checks\n const { data: session, status } = useSession();\n const user = session?.user;\n const useRoleCheck = (roles: string[]) => hasAnyRole(user?.roles, roles);\n\n // Map of action → roleCheck\n const roleCheckMap = {\n import: useRoleCheck(normalized.import.roles),\n export: useRoleCheck(normalized.export.roles),\n customizeLayout: useRoleCheck(normalized.customizeLayout.roles),\n savedFilters: useRoleCheck(normalized.savedFilters.roles),\n };\n\n const isHeaderActionEnabled = (action: keyof typeof normalized) => {\n const { enabled, roles } = normalized[action];\n\n // 1. If explicitly disabled\n if (!enabled) return false;\n\n // 2. If roles list exists → must have at least one\n if (roles.length > 0) {\n return roleCheckMap[action] === true;\n }\n // 3. No restrictions → enabled\n return true;\n };\n const canImport = isHeaderActionEnabled(\"import\") && canImportRecords(actionsAllowed, params.modelName);\n const canExport = isHeaderActionEnabled(\"export\") && canExportRecords(actionsAllowed, params.modelName);\n\n const clearLocalstorageCache = () => {\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Remove from local storage with the URL as the key\n window.location.reload();\n };\n\n const visibleViewModes = (() => {\n if (!Array.isArray(viewModes)) return [];\n\n const uniqueByType = new Map<string, ViewMode>();\n const currentActionId = String(params?.actionId ?? \"\");\n const currentMenuItemId = String(params?.menuItemId ?? \"\");\n\n for (const mode of viewModes) {\n if (!mode || typeof mode.type !== \"string\") continue;\n\n const existing = uniqueByType.get(mode.type);\n if (!existing) {\n uniqueByType.set(mode.type, mode);\n continue;\n }\n\n const modeActionId = String(mode.actionId ?? \"\");\n const modeMenuItemId = String(mode.menuItemId ?? \"\");\n const existingActionId = String(existing.actionId ?? \"\");\n const existingMenuItemId = String(existing.menuItemId ?? \"\");\n\n const modeIsCurrent = (currentActionId && modeActionId === currentActionId) ||\n (currentMenuItemId && modeMenuItemId === currentMenuItemId);\n const existingIsCurrent = (currentActionId && existingActionId === currentActionId) ||\n (currentMenuItemId && existingMenuItemId === currentMenuItemId);\n\n if (modeIsCurrent && !existingIsCurrent) {\n uniqueByType.set(mode.type, mode);\n }\n }\n\n return Array.from(uniqueByType.values());\n })();\n const showSwitchType = visibleViewModes.length > 0;\n const visibleHeaderButtons = (solidListViewLayout?.attrs?.headerButtons ?? []).filter((rb: any) => isButtonVisibleInCurrentEnv(rb?.attrs));\n const contextMenuHeaderButtons = visibleHeaderButtons.filter((rb: any) => rb?.attrs?.actionInContextMenu === true);\n const mobileOnlyHeaderButtons = visibleHeaderButtons.filter((rb: any) => rb?.attrs?.actionInContextMenu !== true);\n\n const handleViewTypeChange = (nextType: string) => {\n const nextView = visibleViewModes.find((option: ViewMode) => option.type === nextType);\n if (nextView) {\n handleViewChange(nextView);\n }\n };\n\n return (\n <div className=\"position-relative\">\n <SolidDropdownMenu open={isCogMenuOpen} onOpenChange={setIsCogMenuOpen}>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-icon-button solid-header-cog-trigger\"\n aria-label=\"Open list options\"\n >\n <Cog size={16} />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"listview-cogwheel-panel\">\n {(\n (actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) &&\n viewData?.data?.solidView?.layout?.attrs?.delete !== false &&\n selectedRecords.length > 0) ||\n canImport ||\n canExport ||\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n contextMenuHeaderButtons.length > 0 ||\n mobileOnlyHeaderButtons.length > 0 ||\n viewData?.data?.solidView?.model?.enableSoftDelete\n ) && (\n <>\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) && viewData?.data?.solidView?.layout?.attrs?.delete !== false && selectedRecords.length > 0 && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item solid-header-dropdown-item-danger\"\n onSelect={() => {\n setDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Delete</span>\n </SolidDropdownMenuItem>\n )}\n {canImport && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setOpenImportDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Download size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Import</span>\n </SolidDropdownMenuItem>\n )}\n {canExport && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setExportView((current) => !current);\n setIsCogMenuOpen(false);\n }}\n >\n <Upload size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Export</span>\n </SolidDropdownMenuItem>\n )}\n {contextMenuHeaderButtons\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderContextMenuButton\n key={index}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n onActionComplete={() => setIsCogMenuOpen(false)}\n />\n ))}\n <div className=\"lg:hidden flex flex-col gap-1\">\n {mobileOnlyHeaderButtons\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderContextMenuButton\n key={`mobile-${index}`}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n onActionComplete={() => setIsCogMenuOpen(false)}\n />\n ))}\n </div>\n {viewData?.data?.solidView?.model?.enableSoftDelete && (\n <SolidDropdownMenuCheckboxItem\n className={showArchived ? \"solid-archive-toggle-item-active\" : undefined}\n checked={showArchived}\n icon={<Archive size={14} className=\"solid-header-action-button-icon solid-archive-toggle-icon\" />}\n onCheckedChange={() => setShowArchived(!showArchived)}\n >\n Show Archived Rows\n </SolidDropdownMenuCheckboxItem>\n )}\n {showArchived && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item lg:hidden\"\n onSelect={() => {\n setRecoverDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <RefreshCw size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Recover</span>\n </SolidDropdownMenuItem>\n )}\n\n {(\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n true\n ) && <SolidDropdownMenuSeparator />}\n\n {isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) && (\n <SolidDropdownMenuSub>\n <SolidDropdownMenuSubTrigger className=\"solid-header-dropdown-item\">\n <SlidersHorizontal size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Layout</span>\n </SolidDropdownMenuSubTrigger>\n <SolidDropdownMenuSubContent className=\"customize-layout-panel\">\n {showSwitchType && (\n <>\n <SolidDropdownMenuLabel>Switch Type</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={view} onValueChange={handleViewTypeChange}>\n {visibleViewModes.map((option: ViewMode) => (\n <SolidDropdownMenuRadioItem key={option.type} value={option.type}>\n {capitalize(option.type)}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n </>\n )}\n <SolidDropdownMenuLabel>Row Spacing</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={size} onValueChange={(value: string) => setSize(value)}>\n {sizeOptions.map((option: any) => (\n <SolidDropdownMenuRadioItem key={option.value} value={option.value}>\n {option.label}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n <SolidDropdownMenuItem\n onSelect={() => {\n setShowColumnSelectorDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Table size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Columns</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuSubContent>\n </SolidDropdownMenuSub>\n )}\n {isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setShowSaveFilterPopup(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Save size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Save Custom Filter</span>\n </SolidDropdownMenuItem>\n )}\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n clearLocalstorageCache();\n setIsCogMenuOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Reset View</span>\n </SolidDropdownMenuItem>\n </>\n )}\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n <SolidDialog\n open={exportView}\n onOpenChange={setExportView}\n className=\"solid-kanban-export-dialog solid-list-export-dialog\"\n style={{ width: \"min(980px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader className=\"solid-export-dialog-header\">\n <div>\n <SolidDialogTitle>Export</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose the file format, refine the field set, and save reusable export templates.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-export-dialog-body\">\n <SolidExport\n listViewMetaData={listViewMetaData}\n filters={filters}\n onExportComplete={() => setExportView(false)}\n />\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={showColumnSelectorDialog}\n onOpenChange={setShowColumnSelectorDialog}\n className=\"solid-column-selector-dialog\"\n style={{ width: \"min(388px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Column Selector</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose visible columns and reorder them for this list view.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <SolidListColumnSelector\n listViewMetaData={listViewMetaData}\n onClose={() => setShowColumnSelectorDialog(false)}\n />\n </SolidDialogBody>\n </SolidDialog>\n {openImportDialog &&\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={listViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n }\n </div>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidListViewConfigure.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { canExportRecords, canImportRecords, permissionExpression } from \"../../../helpers/permissions\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidListColumnSelector } from \"./SolidColumnSelector/SolidListColumnSelector\";\nimport { SolidExport } from \"../../../components/common/SolidExport\";\nimport { useHandleListCustomButtonClick } from \"../../../components/common/useHandleListCustomButtonClick\";\nimport { SolidListViewHeaderContextMenuButton } from \"./SolidListViewHeaderContextMenuButton\";\nimport { isButtonVisibleInCurrentEnv } from \"../../../helpers/buttonEnvironment\";\nimport \"../../common/solid-export.css\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SolidListViewHeaderButton } from \"./SolidListViewHeaderButton\";\nimport { capitalize } from \"lodash\";\nimport { Archive, Cog, Download, RefreshCw, Save, SlidersHorizontal, Table, Trash2, Upload } from \"lucide-react\";\nimport { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidDropdownMenu,\n SolidDropdownMenuCheckboxItem,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuLabel,\n SolidDropdownMenuRadioGroup,\n SolidDropdownMenuRadioItem,\n SolidDropdownMenuSeparator,\n SolidDropdownMenuSub,\n SolidDropdownMenuSubContent,\n SolidDropdownMenuSubTrigger,\n SolidDropdownMenuTrigger,\n} from \"../../shad-cn-ui\";\n\nexport type ViewMode = {\n actionId: string;\n actionName: string;\n menuItemId: string;\n menuItemName: string;\n type: string;\n}\n\nexport const SolidListViewConfigure = (\n { listViewMetaData,\n solidListViewLayout,\n setShowArchived,\n showArchived,\n viewData,\n sizeOptions,\n setSize,\n size,\n viewModes,\n params,\n actionsAllowed,\n selectedRecords,\n setDialogVisible,\n setShowSaveFilterPopup,\n filters,\n handleFetchUpdatedRecords,\n setRecoverDialogVisible,\n\n }:\n any) => {\n // const [visible, setVisible] = useState<boolean>(false);\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n const [openImportDialog, setOpenImportDialog] = useState<boolean>(false);\n const pathname = usePathname();\n const router = useRouter();\n const [view, setView] = useState<string>(\"\");\n const [exportView, setExportView] = useState<boolean>(false);\n const [isCogMenuOpen, setIsCogMenuOpen] = useState(false);\n const [showColumnSelectorDialog, setShowColumnSelectorDialog] = useState(false);\n\n const handleViewChange = (newView: ViewMode) => {\n if (view === newView.type) return; // Prevent unnecessary updates\n const pathSegments = pathname.split('/').filter(Boolean);\n pathSegments[pathSegments.length - 1] = newView.type; // Replace the last part with new view\n const newPath = '/' + pathSegments.join('/') + `?menuItemId=${newView.menuItemId}&menuItemName=${newView.menuItemName}&actionId=${newView.actionId}&actionName=${newView.actionName}`;\n storeCurrentModelViewContext(newPath);\n router.push(newPath);\n };\n\n useEffect(() => {\n if (typeof pathname === 'string') {\n const pathSegments = pathname.split('/').filter(Boolean);\n if (pathSegments.length > 0) {\n setView(pathSegments[pathSegments.length - 1]);\n }\n }\n }, [pathname])\n\n //Build a map of actionKey → boolean at the top level\n const headerActions = solidListViewLayout?.attrs ?? {};\n\n const normalizeAction = (value: boolean | string[]) => {\n if (value === true) return { enabled: true, roles: [] };\n if (value === false) return { enabled: false, roles: [] };\n if (Array.isArray(value)) return { enabled: true, roles: value };\n return { enabled: true, roles: [] }; // default\n };\n const normalized = {\n import: normalizeAction(headerActions.import),\n export: normalizeAction(headerActions.export),\n customizeLayout: normalizeAction(headerActions.customizeLayout),\n savedFilters: normalizeAction(headerActions.savedFilters),\n };\n\n // Role checks\n const { data: session, status } = useSession();\n const user = session?.user;\n const useRoleCheck = (roles: string[]) => hasAnyRole(user?.roles, roles);\n\n // Map of action → roleCheck\n const roleCheckMap = {\n import: useRoleCheck(normalized.import.roles),\n export: useRoleCheck(normalized.export.roles),\n customizeLayout: useRoleCheck(normalized.customizeLayout.roles),\n savedFilters: useRoleCheck(normalized.savedFilters.roles),\n };\n\n const isHeaderActionEnabled = (action: keyof typeof normalized) => {\n const { enabled, roles } = normalized[action];\n\n // 1. If explicitly disabled\n if (!enabled) return false;\n\n // 2. If roles list exists → must have at least one\n if (roles.length > 0) {\n return roleCheckMap[action] === true;\n }\n // 3. No restrictions → enabled\n return true;\n };\n const canImport = isHeaderActionEnabled(\"import\") && canImportRecords(actionsAllowed, params.modelName);\n const canExport = isHeaderActionEnabled(\"export\") && canExportRecords(actionsAllowed, params.modelName);\n\n const clearLocalstorageCache = () => {\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Remove from local storage with the URL as the key\n window.location.reload();\n };\n\n const visibleViewModes = (() => {\n if (!Array.isArray(viewModes)) return [];\n\n const uniqueByType = new Map<string, ViewMode>();\n const currentActionId = String(params?.actionId ?? \"\");\n const currentMenuItemId = String(params?.menuItemId ?? \"\");\n\n for (const mode of viewModes) {\n if (!mode || typeof mode.type !== \"string\") continue;\n\n const existing = uniqueByType.get(mode.type);\n if (!existing) {\n uniqueByType.set(mode.type, mode);\n continue;\n }\n\n const modeActionId = String(mode.actionId ?? \"\");\n const modeMenuItemId = String(mode.menuItemId ?? \"\");\n const existingActionId = String(existing.actionId ?? \"\");\n const existingMenuItemId = String(existing.menuItemId ?? \"\");\n\n const modeIsCurrent = (currentActionId && modeActionId === currentActionId) ||\n (currentMenuItemId && modeMenuItemId === currentMenuItemId);\n const existingIsCurrent = (currentActionId && existingActionId === currentActionId) ||\n (currentMenuItemId && existingMenuItemId === currentMenuItemId);\n\n if (modeIsCurrent && !existingIsCurrent) {\n uniqueByType.set(mode.type, mode);\n }\n }\n\n return Array.from(uniqueByType.values());\n })();\n const showSwitchType = visibleViewModes.length > 0;\n const visibleHeaderButtons = (solidListViewLayout?.attrs?.headerButtons ?? []).filter((rb: any) => isButtonVisibleInCurrentEnv(rb?.attrs));\n const contextMenuHeaderButtons = visibleHeaderButtons.filter((rb: any) => rb?.attrs?.actionInContextMenu === true);\n const mobileOnlyHeaderButtons = visibleHeaderButtons.filter((rb: any) => rb?.attrs?.actionInContextMenu !== true);\n\n const handleViewTypeChange = (nextType: string) => {\n const nextView = visibleViewModes.find((option: ViewMode) => option.type === nextType);\n if (nextView) {\n handleViewChange(nextView);\n }\n };\n\n return (\n <div className=\"position-relative\">\n <SolidDropdownMenu open={isCogMenuOpen} onOpenChange={setIsCogMenuOpen}>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-icon-button solid-header-cog-trigger\"\n aria-label=\"Open list options\"\n >\n <Cog size={16} />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"listview-cogwheel-panel\">\n {(\n (actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) &&\n viewData?.data?.solidView?.layout?.attrs?.delete !== false &&\n selectedRecords.length > 0) ||\n canImport ||\n canExport ||\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n contextMenuHeaderButtons.length > 0 ||\n mobileOnlyHeaderButtons.length > 0 ||\n viewData?.data?.solidView?.model?.enableSoftDelete\n ) && (\n <>\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) && viewData?.data?.solidView?.layout?.attrs?.delete !== false && selectedRecords.length > 0 && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item solid-header-dropdown-item-danger\"\n onSelect={() => {\n setDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Delete</span>\n </SolidDropdownMenuItem>\n )}\n {canImport && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setOpenImportDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Download size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Import</span>\n </SolidDropdownMenuItem>\n )}\n {canExport && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setExportView((current) => !current);\n setIsCogMenuOpen(false);\n }}\n >\n <Upload size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Export</span>\n </SolidDropdownMenuItem>\n )}\n {contextMenuHeaderButtons\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderContextMenuButton\n key={index}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n onActionComplete={() => setIsCogMenuOpen(false)}\n />\n ))}\n <div className=\"lg:hidden flex flex-col gap-1\">\n {mobileOnlyHeaderButtons\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderContextMenuButton\n key={`mobile-${index}`}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n onActionComplete={() => setIsCogMenuOpen(false)}\n />\n ))}\n </div>\n {viewData?.data?.solidView?.model?.enableSoftDelete && (\n <SolidDropdownMenuCheckboxItem\n className={showArchived ? \"solid-archive-toggle-item-active\" : undefined}\n checked={showArchived}\n icon={<Archive size={14} className=\"solid-header-action-button-icon solid-archive-toggle-icon\" />}\n onCheckedChange={() => setShowArchived(!showArchived)}\n >\n Show Archived Rows\n </SolidDropdownMenuCheckboxItem>\n )}\n {showArchived && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item lg:hidden\"\n onSelect={() => {\n setRecoverDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <RefreshCw size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Recover</span>\n </SolidDropdownMenuItem>\n )}\n\n {(\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n true\n ) && <SolidDropdownMenuSeparator />}\n\n {isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) && (\n <SolidDropdownMenuSub>\n <SolidDropdownMenuSubTrigger className=\"solid-header-dropdown-item\">\n <SlidersHorizontal size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Layout</span>\n </SolidDropdownMenuSubTrigger>\n <SolidDropdownMenuSubContent className=\"customize-layout-panel\">\n {showSwitchType && (\n <>\n <SolidDropdownMenuLabel>Switch Type</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={view} onValueChange={handleViewTypeChange}>\n {visibleViewModes.map((option: ViewMode) => (\n <SolidDropdownMenuRadioItem key={option.type} value={option.type}>\n {capitalize(option.type)}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n </>\n )}\n <SolidDropdownMenuLabel>Row Spacing</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={size} onValueChange={(value: string) => setSize(value)}>\n {sizeOptions.map((option: any) => (\n <SolidDropdownMenuRadioItem key={option.value} value={option.value}>\n {option.label}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n <SolidDropdownMenuItem\n onSelect={() => {\n setShowColumnSelectorDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Table size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Column Selector</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuSubContent>\n </SolidDropdownMenuSub>\n )}\n {isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setShowSaveFilterPopup(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Save size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Save Custom Filter</span>\n </SolidDropdownMenuItem>\n )}\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n clearLocalstorageCache();\n setIsCogMenuOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Reset View</span>\n </SolidDropdownMenuItem>\n </>\n )}\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n <SolidDialog\n open={exportView}\n onOpenChange={setExportView}\n className=\"solid-kanban-export-dialog solid-list-export-dialog\"\n style={{ width: \"min(980px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader className=\"solid-export-dialog-header\">\n <div>\n <SolidDialogTitle>Export</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose the file format, refine the field set, and save reusable export templates.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-export-dialog-body\">\n <SolidExport\n listViewMetaData={listViewMetaData}\n filters={filters}\n onExportComplete={() => setExportView(false)}\n />\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={showColumnSelectorDialog}\n onOpenChange={setShowColumnSelectorDialog}\n className=\"solid-column-selector-dialog\"\n style={{ width: \"min(388px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Column Selector</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose visible columns and reorder them for this list view.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <SolidListColumnSelector\n listViewMetaData={listViewMetaData}\n onClose={() => setShowColumnSelectorDialog(false)}\n />\n </SolidDialogBody>\n </SolidDialog>\n {openImportDialog &&\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={listViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n }\n </div>\n )\n}\n"]}
|
|
@@ -345,7 +345,7 @@ export const SolidListViewConfigure = (
|
|
|
345
345
|
}}
|
|
346
346
|
>
|
|
347
347
|
<Table size={14} className="solid-header-action-button-icon" />
|
|
348
|
-
<span className="solid-header-action-button-label">
|
|
348
|
+
<span className="solid-header-action-button-label">Column Selector</span>
|
|
349
349
|
</SolidDropdownMenuItem>
|
|
350
350
|
</SolidDropdownMenuSubContent>
|
|
351
351
|
</SolidDropdownMenuSub>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateModel.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"AAcA,OAAO,mBAAmB,CAAC;AAW3B,QAAA,MAAM,WAAW,qBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"CreateModel.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"AAcA,OAAO,mBAAmB,CAAC;AAW3B,QAAA,MAAM,WAAW,qBAAsB,GAAG,4CA4UzC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -301,9 +301,8 @@ var CreateModel = function (_a) {
|
|
|
301
301
|
explorerModuleName.toLowerCase() === "solid-core");
|
|
302
302
|
var shouldShowTabSave = !isCreateMode ? activeTab === "fields" && fieldDeleted : activeTab !== "explorer" && isDirty;
|
|
303
303
|
var shouldShowTopFieldSave = activeTab === "fields" && shouldShowTabSave;
|
|
304
|
-
var shouldHideFieldAdd = !isCreateMode && activeTab === "fields" && fieldDeleted;
|
|
305
304
|
var modelTabContent = (_jsx("div", { className: "solid-model-form-content is-tabbed", children: _jsx(ModelMetaData, { modelMetaData: modelMetaData, setModelMetaData: setModelMetaData, allModelsNames: allModelsNames, deleteModelFunction: deleteModelFunction, formikModelMetadataRef: formikModelMetadataRef, params: params, formErrors: formErrors, setIsDirty: setIsDirty }) }));
|
|
306
|
-
var fieldsTabContent = (_jsx("div", { className: "solid-model-form-content is-tabbed", children: _jsx(FieldMetaData, { modelMetaData: modelMetaData, fieldMetaData: fieldMetaData, setFieldMetaData: setFieldMetaData, deleteModelFunction: deleteModelFunction, nextTab: nextTab, formikFieldsMetadataRef: formikFieldsMetadataRef, params: params, setIsDirty: setIsDirty, setFieldDeleted: setFieldDeleted, showSaveButton: shouldShowTopFieldSave,
|
|
305
|
+
var fieldsTabContent = (_jsx("div", { className: "solid-model-form-content is-tabbed", children: _jsx(FieldMetaData, { modelMetaData: modelMetaData, fieldMetaData: fieldMetaData, setFieldMetaData: setFieldMetaData, deleteModelFunction: deleteModelFunction, nextTab: nextTab, formikFieldsMetadataRef: formikFieldsMetadataRef, params: params, setIsDirty: setIsDirty, setFieldDeleted: setFieldDeleted, showSaveButton: shouldShowTopFieldSave, onSave: handleSubmit }) }));
|
|
307
306
|
return (_jsx("div", { className: "solid-form-wrapper", children: _jsxs("div", { className: "solid-form-section", style: { borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }, children: [_jsx("div", { className: "solid-model-form-workspace", children: _jsx(SolidTabGroup, { className: "solid-model-form-tabs", listClassName: "solid-model-form-tablist", panelClassName: "solid-model-form-tabpanel", tabs: __spreadArray([
|
|
308
307
|
{
|
|
309
308
|
value: "model",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateModel.js","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useCreatemodelMutation, useLazyGetModelsQuery, useUpdatemodelMutation } from \"../../../redux/api/modelApi\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaData from \"./FieldMetaData\";\nimport ModelMetaData from \"./ModelMetaData\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { SolidButton, SolidTabGroup } from \"../../shad-cn-ui\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\nimport { ModuleMetadataExplorer } from \"../module/ModuleMetadataExplorer\";\nimport \"./CreateModel.css\";\n\nconst TABS = [\"model\", \"fields\", \"explorer\"] as const;\ntype TabValue = typeof TABS[number];\n\nconst getTabErrorState = (tab?: TabValue): Record<TabValue, boolean> => ({\n model: tab === \"model\",\n fields: tab === \"fields\",\n explorer: false,\n});\n\nconst CreateModel = ({ data, params }: any) => {\n\n const dispatch = useDispatch();\n const router = useRouter();\n const isCreateMode = params.id === \"new\";\n const formikModelMetadataRef = useRef<any>();\n const formikFieldsMetadataRef = useRef();\n\n const [modelMetaData, setModelMetaData] = useState<any>();\n const [fieldMetaData, setFieldMetaData] = useState<any>([]);\n\n useGetFieldDefaultMetaDataQuery(null);\n const [allModelsNames, setAllModelsNames] = useState([]);\n\n const [triggerGetModels, { data: allmodels }] =\n useLazyGetModelsQuery();\n\n\n const [\n createModel,\n { isSuccess: isCreateModelSuccess, isError: isCreateModelError, error: createModelError },\n ] = useCreatemodelMutation();\n\n const [\n updateModel,\n { isSuccess: isUpdatedModelSuceess, isError: isUpdateModelError, error: updateModelError },\n ] = useUpdatemodelMutation();\n const [activeTab, setActiveTab] = useState<TabValue>(\"model\");\n const [tabErrors, setTabErrors] = useState<Record<TabValue, boolean>>(getTabErrorState());\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n const deleteModelFunction = async () => {};\n const availableTabs: readonly TabValue[] = isCreateMode ? [\"model\", \"fields\"] : TABS;\n\n const nextTab = () => {\n const currentIndex = availableTabs.indexOf(activeTab as (typeof availableTabs)[number]);\n const nextValue = availableTabs[Math.min(Math.max(currentIndex, 0) + 1, availableTabs.length - 1)];\n setActiveTab(nextValue);\n };\n\n const handleTabChange = (nextValue: TabValue) => {\n if (nextValue === activeTab) {\n return;\n }\n if (activeTab === \"model\") {\n formikModelMetadataRef.current?.handleSubmit();\n }\n setActiveTab(nextValue);\n };\n\n useEffect(() => {\n if (data) {\n const isLegacyTable = data.legacyTableType !== 'none'\n const hasExistingId = data.legacyTableType === 'existing_id'\n const modelData = {\n ...data, moduleId: data?.module?.id, parentModelId: data?.parentModel, isLegacyTable, hasExistingId\n }\n\n setModelMetaData(modelData);\n const fieldData = data.fields.map((f: any) => {\n const fieldCopy = { ...f }; // Create a shallow copy of the field object\n fieldCopy.identifier = f.id; // Add the identifier property\n if (fieldCopy.type == \"mediaSingle\" || fieldCopy.type == \"mediaMultiple\") {\n fieldCopy.mediaMaxSizeKb = f.mediaMaxSizeKb / 1024; // Add the identifier property\n\n }\n return fieldCopy;\n })\n setFieldMetaData(fieldData.sort((a: any, b: any) => b.id - a.id))\n }\n }, [data])\n\n\n useEffect(() => {\n const queryData = {\n offset: 0,\n limit: 1000,\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n triggerGetModels(queryString);\n }, []);\n\n useEffect(() => {\n if (allmodels) {\n if (data) {\n setAllModelsNames(allmodels?.records.filter((i: any) => i.id !== data.id).map((e: any) => e.singularName));\n\n } else {\n\n setAllModelsNames(allmodels?.records.map((e: any) => e.singularName));\n }\n }\n }, [allmodels, data]);\n\n\n const handleSubmit = async () => {\n\n if (formikModelMetadataRef.current) {\n await formikModelMetadataRef.current.submitForm(); // Call the handleSubmit function from the formik instance\n\n // @ts-ignore\n // formikModelMetadataRef.current.validateForm().then(() => {\n // if (Object.keys(formikModelMetadataRef?.current?.errors).length === 0) {\n\n // if (fieldMetaData.length > 0) {\n // handleFormSubmit();\n // } else {\n // if (activeIndex === 0) {\n // nextTab();\n // // showError({ error: \"Please add Atleast one field\" });\n // handleError([\"Please add Atleast one field\"])\n // } else {\n // handleError([\"Please add Atleast one field\"])\n // // showError({ error: \"Please add Atleast one field\" });\n // }\n // }\n // }\n // });\n\n formikModelMetadataRef.current.validateForm().then((errors: any) => {\n let firstErrorTab: TabValue | undefined;\n if (Object.keys(errors).length > 0) {\n setFormErrors(errors);\n const errorMessages = Object.values(errors);\n errorMessages.forEach((error) => {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: Array.isArray(error) ? error.join(', ') : String(error) }));\n });\n\n firstErrorTab = \"model\"; // Model Metadata tab has errors\n } else {\n setFormErrors({});\n }\n\n if (fieldMetaData.length === 0) {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: ERROR_MESSAGES.ADD_ATLEAST_ONE_FIELD }));\n firstErrorTab = firstErrorTab ?? \"fields\"; // If no prior error, set to Field tab\n }\n\n if (firstErrorTab !== undefined) {\n setTabErrors(getTabErrorState(firstErrorTab)); // Set error only on the first tab with an issue\n setActiveTab(firstErrorTab); // Switch to the tab with an error\n } else {\n setTabErrors(getTabErrorState());\n handleFormSubmit();\n }\n });\n }\n };\n\n\n const handleFormSubmit = async () => {\n\n let legacyTableConfig = {};\n\n let legacyTableType = 'none';\n if (modelMetaData?.isLegacyTable && modelMetaData?.hasExistingId) {\n legacyTableType = 'existing_id';\n } else if (modelMetaData?.isLegacyTable) {\n legacyTableType = 'generated_id';\n }\n legacyTableConfig = { legacyTableType };\n\n if (modelMetaData?.isLegacyTable) {\n const hasPrimaryKey = fieldMetaData.some(\n (field: any) => field.isPrimaryKey === true\n );\n\n if (!hasPrimaryKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Primary Key Required\", detail: \"Legacy tables set at least one field marked as Primary Key. Please mark a field as Primary Key before proceeding.\", life: 5000 }));\n return;\n }\n }\n\n if (data) {\n const fieldData = fieldMetaData.map(({ createdAt, updatedAt, deletedAt, mediaStorageProvider, identifier, ...rest }: any) => {\n if (rest.mediaMaxSizeKb) {\n rest.mediaMaxSizeKb = rest.mediaMaxSizeKb ? rest.mediaMaxSizeKb * 1024 : 0\n }\n return rest\n });\n const { module, parentModel, createdAt, updatedAt, id, deletedAt, ...modelData } = modelMetaData;\n const updateData = { ...modelData, displayName: modelData.displayName.trim(), fields: fieldData, ...legacyTableConfig };\n updateModel({ id: data.id, data: updateData });\n }\n else {\n if (modelMetaData) {\n const fieldData = fieldMetaData.map(({ mediaStorageProvider, identifier, ...rest }: any) => {\n if (rest.mediaMaxSizeKb) {\n rest.mediaMaxSizeKb = rest.mediaMaxSizeKb ? rest.mediaMaxSizeKb * 1024 : 0\n }\n return rest\n });\n const { module, parentModel, ...modelData } = modelMetaData;\n const data = { ...modelData, displayName: modelData.displayName.trim(), fields: fieldData, ...legacyTableConfig };\n createModel(data);\n if (isCreateModelSuccess) {\n\n }\n }\n }\n };\n\n useEffect(() => {\n if (isCreateModelSuccess == true || isUpdatedModelSuceess == true) {\n // router.push(`/admin/app-builder/model/all`);\n router.back();\n }\n }, [isCreateModelSuccess, isUpdatedModelSuceess])\n\n useEffect(() => {\n const errors = [\n { isError: isCreateModelError, error: createModelError },\n { isError: isUpdateModelError, error: updateModelError },\n ];\n if (errors.length > 0) {\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 }\n\n }, [isCreateModelError, isUpdateModelError])\n\n const [isDirty, setIsDirty] = useState(false);\n const [fieldDeleted, setFieldDeleted] = useState(false);\n const explorerModuleName = data?.module?.name ?? modelMetaData?.module?.name ?? \"\";\n const explorerModelSingularName = data?.singularName ?? modelMetaData?.singularName ?? \"\";\n const isReadOnlyModelExplorer = Boolean(\n modelMetaData?.isSystem ||\n data?.isSystem ||\n explorerModuleName.toLowerCase() === \"solid-core\"\n );\n const shouldShowTabSave = !isCreateMode ? activeTab === \"fields\" && fieldDeleted : activeTab !== \"explorer\" && isDirty;\n const shouldShowTopFieldSave = activeTab === \"fields\" && shouldShowTabSave;\n const shouldHideFieldAdd = !isCreateMode && activeTab === \"fields\" && fieldDeleted;\n\n const modelTabContent = (\n <div className=\"solid-model-form-content is-tabbed\">\n <ModelMetaData\n modelMetaData={modelMetaData}\n setModelMetaData={setModelMetaData}\n allModelsNames={allModelsNames}\n deleteModelFunction={deleteModelFunction}\n formikModelMetadataRef={formikModelMetadataRef}\n params={params}\n formErrors={formErrors}\n setIsDirty={setIsDirty}\n />\n </div>\n );\n\n const fieldsTabContent = (\n <div className=\"solid-model-form-content is-tabbed\">\n <FieldMetaData\n modelMetaData={modelMetaData}\n fieldMetaData={fieldMetaData}\n setFieldMetaData={setFieldMetaData}\n deleteModelFunction={deleteModelFunction}\n nextTab={nextTab}\n formikFieldsMetadataRef={formikFieldsMetadataRef}\n params={params}\n setIsDirty={setIsDirty}\n setFieldDeleted={setFieldDeleted}\n showSaveButton={shouldShowTopFieldSave}\n hideAddButton={shouldHideFieldAdd}\n onSave={handleSubmit}\n />\n </div>\n );\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 <div className=\"solid-model-form-workspace\">\n <SolidTabGroup\n className=\"solid-model-form-tabs\"\n listClassName=\"solid-model-form-tablist\"\n panelClassName=\"solid-model-form-tabpanel\"\n tabs={[\n {\n value: \"model\",\n label: <span className={`solid-model-form-tab-label ${tabErrors.model ? \"tab-error-heading\" : \"\"}`}>Model</span>,\n content: modelTabContent,\n },\n {\n value: \"fields\",\n label: <span className={`solid-model-form-tab-label ${tabErrors.fields ? \"tab-error-heading\" : \"\"}`}>Fields</span>,\n content: fieldsTabContent,\n },\n ...(!isCreateMode\n ? [\n {\n value: \"explorer\",\n label: <span className=\"solid-model-form-tab-label\">Explorer</span>,\n content: (\n <ModuleMetadataExplorer\n moduleName={explorerModuleName}\n modelSingularName={explorerModelSingularName}\n readOnly={isReadOnlyModelExplorer}\n allowSeed={false}\n />\n ),\n },\n ]\n : []),\n ]}\n value={activeTab}\n onValueChange={(value) => {\n const next = availableTabs.find((tab) => tab === value);\n if (next) {\n handleTabChange(next);\n }\n }}\n />\n </div>\n {shouldShowTabSave && activeTab !== \"fields\" && (\n <div className=\"solid-model-form-actions\">\n <SolidButton type=\"button\" onClick={handleSubmit}>\n Save\n </SolidButton>\n </div>\n )}\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n </div>\n );\n};\n\nexport default CreateModel;\n"]}
|
|
1
|
+
{"version":3,"file":"CreateModel.js","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useCreatemodelMutation, useLazyGetModelsQuery, useUpdatemodelMutation } from \"../../../redux/api/modelApi\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaData from \"./FieldMetaData\";\nimport ModelMetaData from \"./ModelMetaData\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { SolidButton, SolidTabGroup } from \"../../shad-cn-ui\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\nimport { ModuleMetadataExplorer } from \"../module/ModuleMetadataExplorer\";\nimport \"./CreateModel.css\";\n\nconst TABS = [\"model\", \"fields\", \"explorer\"] as const;\ntype TabValue = typeof TABS[number];\n\nconst getTabErrorState = (tab?: TabValue): Record<TabValue, boolean> => ({\n model: tab === \"model\",\n fields: tab === \"fields\",\n explorer: false,\n});\n\nconst CreateModel = ({ data, params }: any) => {\n\n const dispatch = useDispatch();\n const router = useRouter();\n const isCreateMode = params.id === \"new\";\n const formikModelMetadataRef = useRef<any>();\n const formikFieldsMetadataRef = useRef();\n\n const [modelMetaData, setModelMetaData] = useState<any>();\n const [fieldMetaData, setFieldMetaData] = useState<any>([]);\n\n useGetFieldDefaultMetaDataQuery(null);\n const [allModelsNames, setAllModelsNames] = useState([]);\n\n const [triggerGetModels, { data: allmodels }] =\n useLazyGetModelsQuery();\n\n\n const [\n createModel,\n { isSuccess: isCreateModelSuccess, isError: isCreateModelError, error: createModelError },\n ] = useCreatemodelMutation();\n\n const [\n updateModel,\n { isSuccess: isUpdatedModelSuceess, isError: isUpdateModelError, error: updateModelError },\n ] = useUpdatemodelMutation();\n const [activeTab, setActiveTab] = useState<TabValue>(\"model\");\n const [tabErrors, setTabErrors] = useState<Record<TabValue, boolean>>(getTabErrorState());\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n const deleteModelFunction = async () => {};\n const availableTabs: readonly TabValue[] = isCreateMode ? [\"model\", \"fields\"] : TABS;\n\n const nextTab = () => {\n const currentIndex = availableTabs.indexOf(activeTab as (typeof availableTabs)[number]);\n const nextValue = availableTabs[Math.min(Math.max(currentIndex, 0) + 1, availableTabs.length - 1)];\n setActiveTab(nextValue);\n };\n\n const handleTabChange = (nextValue: TabValue) => {\n if (nextValue === activeTab) {\n return;\n }\n if (activeTab === \"model\") {\n formikModelMetadataRef.current?.handleSubmit();\n }\n setActiveTab(nextValue);\n };\n\n useEffect(() => {\n if (data) {\n const isLegacyTable = data.legacyTableType !== 'none'\n const hasExistingId = data.legacyTableType === 'existing_id'\n const modelData = {\n ...data, moduleId: data?.module?.id, parentModelId: data?.parentModel, isLegacyTable, hasExistingId\n }\n\n setModelMetaData(modelData);\n const fieldData = data.fields.map((f: any) => {\n const fieldCopy = { ...f }; // Create a shallow copy of the field object\n fieldCopy.identifier = f.id; // Add the identifier property\n if (fieldCopy.type == \"mediaSingle\" || fieldCopy.type == \"mediaMultiple\") {\n fieldCopy.mediaMaxSizeKb = f.mediaMaxSizeKb / 1024; // Add the identifier property\n\n }\n return fieldCopy;\n })\n setFieldMetaData(fieldData.sort((a: any, b: any) => b.id - a.id))\n }\n }, [data])\n\n\n useEffect(() => {\n const queryData = {\n offset: 0,\n limit: 1000,\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n triggerGetModels(queryString);\n }, []);\n\n useEffect(() => {\n if (allmodels) {\n if (data) {\n setAllModelsNames(allmodels?.records.filter((i: any) => i.id !== data.id).map((e: any) => e.singularName));\n\n } else {\n\n setAllModelsNames(allmodels?.records.map((e: any) => e.singularName));\n }\n }\n }, [allmodels, data]);\n\n\n const handleSubmit = async () => {\n\n if (formikModelMetadataRef.current) {\n await formikModelMetadataRef.current.submitForm(); // Call the handleSubmit function from the formik instance\n\n // @ts-ignore\n // formikModelMetadataRef.current.validateForm().then(() => {\n // if (Object.keys(formikModelMetadataRef?.current?.errors).length === 0) {\n\n // if (fieldMetaData.length > 0) {\n // handleFormSubmit();\n // } else {\n // if (activeIndex === 0) {\n // nextTab();\n // // showError({ error: \"Please add Atleast one field\" });\n // handleError([\"Please add Atleast one field\"])\n // } else {\n // handleError([\"Please add Atleast one field\"])\n // // showError({ error: \"Please add Atleast one field\" });\n // }\n // }\n // }\n // });\n\n formikModelMetadataRef.current.validateForm().then((errors: any) => {\n let firstErrorTab: TabValue | undefined;\n if (Object.keys(errors).length > 0) {\n setFormErrors(errors);\n const errorMessages = Object.values(errors);\n errorMessages.forEach((error) => {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: Array.isArray(error) ? error.join(', ') : String(error) }));\n });\n\n firstErrorTab = \"model\"; // Model Metadata tab has errors\n } else {\n setFormErrors({});\n }\n\n if (fieldMetaData.length === 0) {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: ERROR_MESSAGES.ADD_ATLEAST_ONE_FIELD }));\n firstErrorTab = firstErrorTab ?? \"fields\"; // If no prior error, set to Field tab\n }\n\n if (firstErrorTab !== undefined) {\n setTabErrors(getTabErrorState(firstErrorTab)); // Set error only on the first tab with an issue\n setActiveTab(firstErrorTab); // Switch to the tab with an error\n } else {\n setTabErrors(getTabErrorState());\n handleFormSubmit();\n }\n });\n }\n };\n\n\n const handleFormSubmit = async () => {\n\n let legacyTableConfig = {};\n\n let legacyTableType = 'none';\n if (modelMetaData?.isLegacyTable && modelMetaData?.hasExistingId) {\n legacyTableType = 'existing_id';\n } else if (modelMetaData?.isLegacyTable) {\n legacyTableType = 'generated_id';\n }\n legacyTableConfig = { legacyTableType };\n\n if (modelMetaData?.isLegacyTable) {\n const hasPrimaryKey = fieldMetaData.some(\n (field: any) => field.isPrimaryKey === true\n );\n\n if (!hasPrimaryKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Primary Key Required\", detail: \"Legacy tables set at least one field marked as Primary Key. Please mark a field as Primary Key before proceeding.\", life: 5000 }));\n return;\n }\n }\n\n if (data) {\n const fieldData = fieldMetaData.map(({ createdAt, updatedAt, deletedAt, mediaStorageProvider, identifier, ...rest }: any) => {\n if (rest.mediaMaxSizeKb) {\n rest.mediaMaxSizeKb = rest.mediaMaxSizeKb ? rest.mediaMaxSizeKb * 1024 : 0\n }\n return rest\n });\n const { module, parentModel, createdAt, updatedAt, id, deletedAt, ...modelData } = modelMetaData;\n const updateData = { ...modelData, displayName: modelData.displayName.trim(), fields: fieldData, ...legacyTableConfig };\n updateModel({ id: data.id, data: updateData });\n }\n else {\n if (modelMetaData) {\n const fieldData = fieldMetaData.map(({ mediaStorageProvider, identifier, ...rest }: any) => {\n if (rest.mediaMaxSizeKb) {\n rest.mediaMaxSizeKb = rest.mediaMaxSizeKb ? rest.mediaMaxSizeKb * 1024 : 0\n }\n return rest\n });\n const { module, parentModel, ...modelData } = modelMetaData;\n const data = { ...modelData, displayName: modelData.displayName.trim(), fields: fieldData, ...legacyTableConfig };\n createModel(data);\n if (isCreateModelSuccess) {\n\n }\n }\n }\n };\n\n useEffect(() => {\n if (isCreateModelSuccess == true || isUpdatedModelSuceess == true) {\n // router.push(`/admin/app-builder/model/all`);\n router.back();\n }\n }, [isCreateModelSuccess, isUpdatedModelSuceess])\n\n useEffect(() => {\n const errors = [\n { isError: isCreateModelError, error: createModelError },\n { isError: isUpdateModelError, error: updateModelError },\n ];\n if (errors.length > 0) {\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 }\n\n }, [isCreateModelError, isUpdateModelError])\n\n const [isDirty, setIsDirty] = useState(false);\n const [fieldDeleted, setFieldDeleted] = useState(false);\n const explorerModuleName = data?.module?.name ?? modelMetaData?.module?.name ?? \"\";\n const explorerModelSingularName = data?.singularName ?? modelMetaData?.singularName ?? \"\";\n const isReadOnlyModelExplorer = Boolean(\n modelMetaData?.isSystem ||\n data?.isSystem ||\n explorerModuleName.toLowerCase() === \"solid-core\"\n );\n const shouldShowTabSave = !isCreateMode ? activeTab === \"fields\" && fieldDeleted : activeTab !== \"explorer\" && isDirty;\n const shouldShowTopFieldSave = activeTab === \"fields\" && shouldShowTabSave;\n\n const modelTabContent = (\n <div className=\"solid-model-form-content is-tabbed\">\n <ModelMetaData\n modelMetaData={modelMetaData}\n setModelMetaData={setModelMetaData}\n allModelsNames={allModelsNames}\n deleteModelFunction={deleteModelFunction}\n formikModelMetadataRef={formikModelMetadataRef}\n params={params}\n formErrors={formErrors}\n setIsDirty={setIsDirty}\n />\n </div>\n );\n\n const fieldsTabContent = (\n <div className=\"solid-model-form-content is-tabbed\">\n <FieldMetaData\n modelMetaData={modelMetaData}\n fieldMetaData={fieldMetaData}\n setFieldMetaData={setFieldMetaData}\n deleteModelFunction={deleteModelFunction}\n nextTab={nextTab}\n formikFieldsMetadataRef={formikFieldsMetadataRef}\n params={params}\n setIsDirty={setIsDirty}\n setFieldDeleted={setFieldDeleted}\n showSaveButton={shouldShowTopFieldSave}\n onSave={handleSubmit}\n />\n </div>\n );\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 <div className=\"solid-model-form-workspace\">\n <SolidTabGroup\n className=\"solid-model-form-tabs\"\n listClassName=\"solid-model-form-tablist\"\n panelClassName=\"solid-model-form-tabpanel\"\n tabs={[\n {\n value: \"model\",\n label: <span className={`solid-model-form-tab-label ${tabErrors.model ? \"tab-error-heading\" : \"\"}`}>Model</span>,\n content: modelTabContent,\n },\n {\n value: \"fields\",\n label: <span className={`solid-model-form-tab-label ${tabErrors.fields ? \"tab-error-heading\" : \"\"}`}>Fields</span>,\n content: fieldsTabContent,\n },\n ...(!isCreateMode\n ? [\n {\n value: \"explorer\",\n label: <span className=\"solid-model-form-tab-label\">Explorer</span>,\n content: (\n <ModuleMetadataExplorer\n moduleName={explorerModuleName}\n modelSingularName={explorerModelSingularName}\n readOnly={isReadOnlyModelExplorer}\n allowSeed={false}\n />\n ),\n },\n ]\n : []),\n ]}\n value={activeTab}\n onValueChange={(value) => {\n const next = availableTabs.find((tab) => tab === value);\n if (next) {\n handleTabChange(next);\n }\n }}\n />\n </div>\n {shouldShowTabSave && activeTab !== \"fields\" && (\n <div className=\"solid-model-form-actions\">\n <SolidButton type=\"button\" onClick={handleSubmit}>\n Save\n </SolidButton>\n </div>\n )}\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n </div>\n );\n};\n\nexport default CreateModel;\n"]}
|
|
@@ -264,7 +264,6 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
264
264
|
);
|
|
265
265
|
const shouldShowTabSave = !isCreateMode ? activeTab === "fields" && fieldDeleted : activeTab !== "explorer" && isDirty;
|
|
266
266
|
const shouldShowTopFieldSave = activeTab === "fields" && shouldShowTabSave;
|
|
267
|
-
const shouldHideFieldAdd = !isCreateMode && activeTab === "fields" && fieldDeleted;
|
|
268
267
|
|
|
269
268
|
const modelTabContent = (
|
|
270
269
|
<div className="solid-model-form-content is-tabbed">
|
|
@@ -294,7 +293,6 @@ const CreateModel = ({ data, params }: any) => {
|
|
|
294
293
|
setIsDirty={setIsDirty}
|
|
295
294
|
setFieldDeleted={setFieldDeleted}
|
|
296
295
|
showSaveButton={shouldShowTopFieldSave}
|
|
297
|
-
hideAddButton={shouldHideFieldAdd}
|
|
298
296
|
onSave={handleSubmit}
|
|
299
297
|
/>
|
|
300
298
|
</div>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const FieldMetaData: ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params, showSaveButton,
|
|
1
|
+
declare const FieldMetaData: ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params, showSaveButton, onSave }: any) => import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
export default FieldMetaData;
|
|
3
3
|
//# sourceMappingURL=FieldMetaData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldMetaData.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"AAoBA,QAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"FieldMetaData.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"AAoBA,QAAA,MAAM,aAAa,2KAAoL,GAAG,4CA8RzM,CAAC;AACF,eAAe,aAAa,CAAC"}
|