@solidxai/core-ui 0.1.8-beta.17 → 0.1.8-beta.18
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/AuthBanner.js.map +1 -1
- package/dist/components/core/form/SolidFormLayouts.js +1 -1
- package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
- package/dist/components/core/form/SolidFormLayouts.tsx +1 -1
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +70 -20
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +53 -2
- package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +1 -4
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +6 -4
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +0 -4
- package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +4 -4
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +6 -5
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +6 -5
- package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
- package/dist/components/core/list/SolidDataTablePagination.js +22 -0
- package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
- package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -3
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +1 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +2 -2
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +1 -2
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +1 -1
- package/dist/components/solid-ui/SolidButton.d.ts +14 -0
- package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
- package/dist/components/solid-ui/SolidButton.js +36 -0
- package/dist/components/solid-ui/SolidButton.js.map +1 -0
- package/dist/components/solid-ui/SolidButton.tsx +54 -0
- package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
- package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
- package/dist/components/solid-ui/SolidTabs.js +22 -0
- package/dist/components/solid-ui/SolidTabs.js.map +1 -0
- package/dist/components/solid-ui/SolidTabs.tsx +73 -0
- package/dist/components/solid-ui/index.d.ts +3 -0
- package/dist/components/solid-ui/index.d.ts.map +1 -0
- package/dist/components/solid-ui/index.js +3 -0
- package/dist/components/solid-ui/index.js.map +1 -0
- package/dist/components/solid-ui/index.ts +2 -0
- package/dist/helpers/hydrateRelationRules.js +1 -1
- package/dist/helpers/hydrateRelationRules.js.map +1 -1
- package/dist/helpers/hydrateRelationRules.ts +1 -1
- package/dist/helpers/permissions.js +2 -2
- package/dist/helpers/permissions.js.map +1 -1
- package/dist/helpers/permissions.ts +2 -2
- package/dist/redux/api/solidEntityApi.js +1 -1
- package/dist/redux/api/solidEntityApi.js.map +1 -1
- package/dist/redux/api/solidEntityApi.tsx +1 -1
- package/dist/resources/globals.css +5 -5
- package/dist/resources/shadcn-base.css +6 -6
- package/dist/routes/pages/admin/core/CardPage.js +1 -1
- package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/CardPage.tsx +1 -1
- package/dist/routes/pages/admin/core/FormPage.js +1 -1
- package/dist/routes/pages/admin/core/FormPage.js.map +1 -1
- package/dist/routes/pages/admin/core/FormPage.tsx +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.js +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.tsx +1 -1
- package/dist/routes/pages/admin/core/ListPage.js +1 -1
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
- package/dist/routes/pages/admin/core/TreePage.js +1 -1
- package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
- package/dist/routes/pages/admin/core/TreePage.tsx +1 -1
- package/package.json +1 -2
- package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
- package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
- package/dist/components/auth/SolidOTPVerify.js +0 -67
- package/dist/components/auth/SolidOTPVerify.js.map +0 -1
- package/dist/components/auth/SolidOTPVerify.tsx +0 -133
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
- package/dist/nextAuth/authProviders.d.ts +0 -4
- package/dist/nextAuth/authProviders.d.ts.map +0 -1
- package/dist/nextAuth/authProviders.js +0 -198
- package/dist/nextAuth/authProviders.js.map +0 -1
- package/dist/nextAuth/authProviders.tsx +0 -232
- package/dist/nextAuth/handleLogout.d.ts +0 -2
- package/dist/nextAuth/handleLogout.d.ts.map +0 -1
- package/dist/nextAuth/handleLogout.js +0 -36
- package/dist/nextAuth/handleLogout.js.map +0 -1
- package/dist/nextAuth/handleLogout.tsx +0 -39
- package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
- package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
- package/dist/nextAuth/refreshAccessToken.js +0 -24
- package/dist/nextAuth/refreshAccessToken.js.map +0 -1
- package/dist/nextAuth/refreshAccessToken.tsx +0 -28
- package/dist/redux/features/settingsSlice.d.ts +0 -20
- package/dist/redux/features/settingsSlice.d.ts.map +0 -1
- package/dist/redux/features/settingsSlice.js +0 -39
- package/dist/redux/features/settingsSlice.js.map +0 -1
- package/dist/redux/features/settingsSlice.ts +0 -60
|
@@ -1359,7 +1359,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1359
1359
|
type="button"
|
|
1360
1360
|
size="small"
|
|
1361
1361
|
variant="secondary"
|
|
1362
|
-
className="hidden lg:flex
|
|
1362
|
+
className="hidden lg:flex"
|
|
1363
1363
|
onClick={() => setRecoverDialogVisible(true)}
|
|
1364
1364
|
leftIcon={<RotateCcw size={14} />}
|
|
1365
1365
|
>
|
|
@@ -1652,7 +1652,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1652
1652
|
<Column
|
|
1653
1653
|
frozen
|
|
1654
1654
|
alignFrozen="right"
|
|
1655
|
-
frozenBackground="transparent"
|
|
1656
1655
|
body={(rowData) =>
|
|
1657
1656
|
rowData?.deletedAt ? (
|
|
1658
1657
|
<a
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SolidListViewRowButtonContextMenu: ({ button, params,
|
|
1
|
+
export declare const SolidListViewRowButtonContextMenu: ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => import("react/jsx-runtime").JSX.Element | null;
|
|
2
2
|
//# sourceMappingURL=SolidListViewRowButtonContextMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListViewRowButtonContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowButtonContextMenu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolidListViewRowButtonContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowButtonContextMenu.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,iCAAiC,kGAAmG,GAAG,mDAmCnJ,CAAC"}
|
|
@@ -9,23 +9,21 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { useSession } from "../../../hooks/useSession";
|
|
14
14
|
import { hasAnyRole } from "../../../helpers/rolesHelper";
|
|
15
|
-
import { Button } from "primereact/button";
|
|
16
15
|
export var SolidListViewRowButtonContextMenu = function (_a) {
|
|
17
16
|
var _b, _c, _d, _e, _f, _g, _h;
|
|
18
|
-
var button = _a.button, params = _a.params,
|
|
19
|
-
var selectedSolidViewData = getSelectedSolidViewData === null || getSelectedSolidViewData === void 0 ? void 0 : getSelectedSolidViewData();
|
|
17
|
+
var button = _a.button, params = _a.params, rowData = _a.rowData, solidListViewMetaData = _a.solidListViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick, onActionComplete = _a.onActionComplete;
|
|
20
18
|
var _j = useSession(), session = _j.data, status = _j.status;
|
|
21
19
|
var user = session === null || session === void 0 ? void 0 : session.user;
|
|
22
20
|
var hasRole = !((_b = button === null || button === void 0 ? void 0 : button.attrs) === null || _b === void 0 ? void 0 : _b.roles) || ((_c = button === null || button === void 0 ? void 0 : button.attrs) === null || _c === void 0 ? void 0 : _c.roles.length) === 0 ? true : hasAnyRole(user === null || user === void 0 ? void 0 : user.roles, (_d = button === null || button === void 0 ? void 0 : button.attrs) === null || _d === void 0 ? void 0 : _d.roles);
|
|
23
21
|
if (!hasRole)
|
|
24
22
|
return null;
|
|
25
|
-
return (
|
|
23
|
+
return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(((_e = button === null || button === void 0 ? void 0 : button.attrs) === null || _e === void 0 ? void 0 : _e.className) ? (_f = button === null || button === void 0 ? void 0 : button.attrs) === null || _f === void 0 ? void 0 : _f.className : ''), onClick: function () {
|
|
26
24
|
var event = {
|
|
27
25
|
params: params,
|
|
28
|
-
rowData:
|
|
26
|
+
rowData: rowData,
|
|
29
27
|
solidListViewMetaData: solidListViewMetaData.data,
|
|
30
28
|
};
|
|
31
29
|
var modifiedButtonAttrs = __assign({}, button.attrs); // Create a copy
|
|
@@ -34,6 +32,7 @@ export var SolidListViewRowButtonContextMenu = function (_a) {
|
|
|
34
32
|
modifiedButtonAttrs.popupWidth = '30vw';
|
|
35
33
|
}
|
|
36
34
|
handleCustomButtonClick(modifiedButtonAttrs, event);
|
|
37
|
-
|
|
35
|
+
onActionComplete === null || onActionComplete === void 0 ? void 0 : onActionComplete();
|
|
36
|
+
}, children: [_jsx("i", { className: "".concat(((_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.icon) ? (_h = button === null || button === void 0 ? void 0 : button.attrs) === null || _h === void 0 ? void 0 : _h.icon : "pi pi-pencil", " solid-row-action-button-icon") }), _jsx("span", { className: "solid-row-action-button-label", children: button.attrs.label })] }));
|
|
38
37
|
};
|
|
39
38
|
//# sourceMappingURL=SolidListViewRowButtonContextMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListViewRowButtonContextMenu.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowButtonContextMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"SolidListViewRowButtonContextMenu.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowButtonContextMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,CAAC,IAAM,iCAAiC,GAAG,UAAC,EAAkG;;QAAhG,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA,EAAE,gBAAgB,sBAAA;IAEnI,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,IAAM,OAAO,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC;IAElI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,CACH,kBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,kCAA2B,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,EAChG,OAAO,EAAE;YACL,IAAM,KAAK,GAAG;gBACV,MAAM,QAAA;gBACN,OAAO,EAAE,OAAO;gBAChB,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;aACpD,CAAC;YAEF,IAAM,mBAAmB,gBAAQ,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC,gBAAgB;YAEjE,oDAAoD;YACpD,IAAI,mBAAmB,CAAC,MAAM,KAAK,4BAA4B,IAAI,mBAAmB,CAAC,MAAM,KAAK,6BAA6B,EAAE;gBAC7H,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;aAC3C;YAED,uBAAuB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACpD,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QACzB,CAAC,aAED,YAAG,SAAS,EAAE,UAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAC,CAAC,CAAC,cAAc,kCAA+B,GAAI,EAC9G,eAAM,SAAS,EAAC,+BAA+B,YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAQ,IACtE,CACZ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\n\nexport const SolidListViewRowButtonContextMenu = ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n\n if (!hasRole) return null;\n\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n onClick={() => {\n const event = {\n params,\n rowData: rowData,\n solidListViewMetaData: solidListViewMetaData.data,\n };\n\n const modifiedButtonAttrs = { ...button.attrs }; // Create a copy\n\n // Conditionally add popupWidth for specific actions\n if (modifiedButtonAttrs.action === 'GenerateModelCodeRowAction' || modifiedButtonAttrs.action === 'GenerateModuleCodeRowAction') {\n modifiedButtonAttrs.popupWidth = '30vw';\n }\n\n handleCustomButtonClick(modifiedButtonAttrs, event);\n onActionComplete?.();\n }}\n >\n <i className={`${button?.attrs?.icon ? button?.attrs?.icon : \"pi pi-pencil\"} solid-row-action-button-icon`} />\n <span className=\"solid-row-action-button-label\">{button.attrs.label}</span>\n </button>\n );\n};\n"]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { useSession } from "../../../hooks/useSession";
|
|
2
2
|
import { hasAnyRole } from "../../../helpers/rolesHelper";
|
|
3
|
-
import { Button } from "primereact/button";
|
|
4
3
|
|
|
5
|
-
export const SolidListViewRowButtonContextMenu = ({ button, params,
|
|
6
|
-
const selectedSolidViewData = getSelectedSolidViewData?.();
|
|
4
|
+
export const SolidListViewRowButtonContextMenu = ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {
|
|
7
5
|
|
|
8
6
|
const { data: session, status } = useSession();
|
|
9
7
|
const user = session?.user;
|
|
@@ -13,16 +11,13 @@ export const SolidListViewRowButtonContextMenu = ({ button, params, getSelectedS
|
|
|
13
11
|
if (!hasRole) return null;
|
|
14
12
|
|
|
15
13
|
return (
|
|
16
|
-
<
|
|
14
|
+
<button
|
|
17
15
|
type="button"
|
|
18
|
-
|
|
19
|
-
className={`w-full text-left gap-2 ${button?.attrs?.className ? button?.attrs?.className : ''}`}
|
|
20
|
-
label={button.attrs.label}
|
|
21
|
-
size="small"
|
|
16
|
+
className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}
|
|
22
17
|
onClick={() => {
|
|
23
18
|
const event = {
|
|
24
19
|
params,
|
|
25
|
-
rowData:
|
|
20
|
+
rowData: rowData,
|
|
26
21
|
solidListViewMetaData: solidListViewMetaData.data,
|
|
27
22
|
};
|
|
28
23
|
|
|
@@ -34,7 +29,11 @@ export const SolidListViewRowButtonContextMenu = ({ button, params, getSelectedS
|
|
|
34
29
|
}
|
|
35
30
|
|
|
36
31
|
handleCustomButtonClick(modifiedButtonAttrs, event);
|
|
32
|
+
onActionComplete?.();
|
|
37
33
|
}}
|
|
38
|
-
|
|
34
|
+
>
|
|
35
|
+
<i className={`${button?.attrs?.icon ? button?.attrs?.icon : "pi pi-pencil"} solid-row-action-button-icon`} />
|
|
36
|
+
<span className="solid-row-action-button-label">{button.attrs.label}</span>
|
|
37
|
+
</button>
|
|
39
38
|
);
|
|
40
39
|
};
|
|
@@ -12,7 +12,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { Column } from "../../SolidDataTable";
|
|
14
14
|
import { getExtensionComponent } from '../../../../../helpers/registry';
|
|
15
|
-
import { kebabCase } from '
|
|
15
|
+
import { kebabCase } from 'lodash';
|
|
16
16
|
import { ExternalLink } from "lucide-react";
|
|
17
17
|
var SolidRelationManyToOneColumn = function (_a) {
|
|
18
18
|
var _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidRelationManyToOneColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SolidRelationManyToOneColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { Column } from \"../../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { kebabCase } from 'lodash';\nimport { ExternalLink } from \"lucide-react\";\n\nconst SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n\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 // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToOneColumn;\n\n\nexport const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const manyToOneFieldData = rowData[column.attrs.name];\n\n // This is the userkey that will be present within the rowData.\n if (manyToOneFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n\n const manyToOneColVal = manyToOneFieldData[userKeyField];\n\n return (\n <button\n type=\"button\"\n className=\"solid-list-external-link\"\n onClick={() => {\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n\n const listIndex = pathSegments.lastIndexOf('list');\n\n if (listIndex > 0) {\n pathSegments[listIndex - 1] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[listIndex] = `form/${manyToOneFieldData?.id}`;\n }\n else if (pathSegments[pathSegments.length - 2] === \"form\") {\n pathSegments[pathSegments.length - 3] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[pathSegments.length - 2] = \"form\";\n pathSegments[pathSegments.length - 1] = manyToOneFieldData?.id;\n }\n\n const newPath = `/${pathSegments.join('/')}?viewMode=view`;\n\n // open in new tab\n window.open(newPath, \"_blank\");\n\n }}\n >\n <span className=\"solid-list-external-link-text\">{manyToOneColVal}</span>\n <ExternalLink size={13} strokeWidth={2} className=\"solid-list-external-link-icon\" />\n </button>\n );\n }\n else {\n return <span></span>\n }\n};\n"]}
|
|
@@ -3,7 +3,7 @@ import { Column } from "../../SolidDataTable";
|
|
|
3
3
|
import { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';
|
|
4
4
|
import { getExtensionComponent } from '../../../../../helpers/registry';
|
|
5
5
|
import { SolidListFieldWidgetProps } from '../../../../../types/solid-core';
|
|
6
|
-
import { kebabCase } from '
|
|
6
|
+
import { kebabCase } from 'lodash';
|
|
7
7
|
import { ExternalLink } from "lucide-react";
|
|
8
8
|
|
|
9
9
|
const SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type SolidButtonVariant = "primary" | "secondary" | "ghost" | "outline" | "destructive";
|
|
3
|
+
type SolidButtonSize = "sm" | "md" | "lg";
|
|
4
|
+
type SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
5
|
+
variant?: SolidButtonVariant;
|
|
6
|
+
size?: SolidButtonSize;
|
|
7
|
+
fullWidth?: boolean;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
leftIcon?: React.ReactNode;
|
|
10
|
+
rightIcon?: React.ReactNode;
|
|
11
|
+
};
|
|
12
|
+
export declare function SolidButton({ variant, size, fullWidth, loading, leftIcon, rightIcon, className, disabled, children, type, ...props }: SolidButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=SolidButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidButton.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AACxF,KAAK,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,KAAK,gBAAgB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACtE,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,CAAC;AAMF,wBAAgB,WAAW,CAAC,EAC1B,OAAmB,EACnB,IAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAe,EACf,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAuBlB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
+
function cx() {
|
|
25
|
+
var parts = [];
|
|
26
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
27
|
+
parts[_i] = arguments[_i];
|
|
28
|
+
}
|
|
29
|
+
return parts.filter(Boolean).join(" ");
|
|
30
|
+
}
|
|
31
|
+
export function SolidButton(_a) {
|
|
32
|
+
var _b = _a.variant, variant = _b === void 0 ? "primary" : _b, _c = _a.size, size = _c === void 0 ? "md" : _c, fullWidth = _a.fullWidth, loading = _a.loading, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, className = _a.className, disabled = _a.disabled, children = _a.children, _d = _a.type, type = _d === void 0 ? "button" : _d, props = __rest(_a, ["variant", "size", "fullWidth", "loading", "leftIcon", "rightIcon", "className", "disabled", "children", "type"]);
|
|
33
|
+
var isDisabled = disabled || loading;
|
|
34
|
+
return (_jsxs("button", __assign({ type: type, className: cx("solid-btn", "solid-btn--".concat(variant), "solid-btn--".concat(size), fullWidth && "solid-btn--full", loading && "is-loading", className), disabled: isDisabled }, props, { children: [loading && _jsx("span", { className: "solid-btn-spinner", "aria-hidden": "true" }), !loading && leftIcon ? _jsx("span", { className: "solid-btn-icon", children: leftIcon }) : null, _jsx("span", { className: "solid-btn-label", children: children }), !loading && rightIcon ? _jsx("span", { className: "solid-btn-icon", children: rightIcon }) : null] })));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=SolidButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidButton.js","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAcA,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAYT;IAXjB,IAAA,eAAmB,EAAnB,OAAO,mBAAG,SAAS,KAAA,EACnB,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EACX,SAAS,eAAA,EACT,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,YAAe,EAAf,IAAI,mBAAG,QAAQ,KAAA,EACZ,KAAK,cAXkB,iHAY3B,CADS;IAER,IAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC;IAEvC,OAAO,CACL,2BACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,WAAW,EACX,qBAAc,OAAO,CAAE,EACvB,qBAAc,IAAI,CAAE,EACpB,SAAS,IAAI,iBAAiB,EAC9B,OAAO,IAAI,YAAY,EACvB,SAAS,CACV,EACD,QAAQ,EAAE,UAAU,IAChB,KAAK,eAER,OAAO,IAAI,eAAM,SAAS,EAAC,mBAAmB,iBAAa,MAAM,GAAG,EACpE,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gBAAgB,YAAE,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,EACjF,eAAM,SAAS,EAAC,iBAAiB,YAAE,QAAQ,GAAQ,EAClD,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gBAAgB,YAAE,SAAS,GAAQ,CAAC,CAAC,CAAC,IAAI,KAC5E,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"outline\" | \"destructive\";\ntype SolidButtonSize = \"sm\" | \"md\" | \"lg\";\n\ntype SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: SolidButtonVariant;\n size?: SolidButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidButton({\n variant = \"primary\",\n size = \"md\",\n fullWidth,\n loading,\n leftIcon,\n rightIcon,\n className,\n disabled,\n children,\n type = \"button\",\n ...props\n}: SolidButtonProps) {\n const isDisabled = disabled || loading;\n\n return (\n <button\n type={type}\n className={cx(\n \"solid-btn\",\n `solid-btn--${variant}`,\n `solid-btn--${size}`,\n fullWidth && \"solid-btn--full\",\n loading && \"is-loading\",\n className\n )}\n disabled={isDisabled}\n {...props}\n >\n {loading && <span className=\"solid-btn-spinner\" aria-hidden=\"true\" />}\n {!loading && leftIcon ? <span className=\"solid-btn-icon\">{leftIcon}</span> : null}\n <span className=\"solid-btn-label\">{children}</span>\n {!loading && rightIcon ? <span className=\"solid-btn-icon\">{rightIcon}</span> : null}\n </button>\n );\n}\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
type SolidButtonVariant = "primary" | "secondary" | "ghost" | "outline" | "destructive";
|
|
4
|
+
type SolidButtonSize = "sm" | "md" | "lg";
|
|
5
|
+
|
|
6
|
+
type SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
7
|
+
variant?: SolidButtonVariant;
|
|
8
|
+
size?: SolidButtonSize;
|
|
9
|
+
fullWidth?: boolean;
|
|
10
|
+
loading?: boolean;
|
|
11
|
+
leftIcon?: React.ReactNode;
|
|
12
|
+
rightIcon?: React.ReactNode;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
function cx(...parts: Array<string | false | undefined>) {
|
|
16
|
+
return parts.filter(Boolean).join(" ");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function SolidButton({
|
|
20
|
+
variant = "primary",
|
|
21
|
+
size = "md",
|
|
22
|
+
fullWidth,
|
|
23
|
+
loading,
|
|
24
|
+
leftIcon,
|
|
25
|
+
rightIcon,
|
|
26
|
+
className,
|
|
27
|
+
disabled,
|
|
28
|
+
children,
|
|
29
|
+
type = "button",
|
|
30
|
+
...props
|
|
31
|
+
}: SolidButtonProps) {
|
|
32
|
+
const isDisabled = disabled || loading;
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<button
|
|
36
|
+
type={type}
|
|
37
|
+
className={cx(
|
|
38
|
+
"solid-btn",
|
|
39
|
+
`solid-btn--${variant}`,
|
|
40
|
+
`solid-btn--${size}`,
|
|
41
|
+
fullWidth && "solid-btn--full",
|
|
42
|
+
loading && "is-loading",
|
|
43
|
+
className
|
|
44
|
+
)}
|
|
45
|
+
disabled={isDisabled}
|
|
46
|
+
{...props}
|
|
47
|
+
>
|
|
48
|
+
{loading && <span className="solid-btn-spinner" aria-hidden="true" />}
|
|
49
|
+
{!loading && leftIcon ? <span className="solid-btn-icon">{leftIcon}</span> : null}
|
|
50
|
+
<span className="solid-btn-label">{children}</span>
|
|
51
|
+
{!loading && rightIcon ? <span className="solid-btn-icon">{rightIcon}</span> : null}
|
|
52
|
+
</button>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type SolidTabProps = {
|
|
3
|
+
value: string;
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
content: React.ReactNode;
|
|
6
|
+
};
|
|
7
|
+
type SolidTabGroupProps = {
|
|
8
|
+
tabs: SolidTabProps[];
|
|
9
|
+
value: string;
|
|
10
|
+
onValueChange: (value: string) => void;
|
|
11
|
+
className?: string;
|
|
12
|
+
listClassName?: string;
|
|
13
|
+
panelClassName?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function SolidTab(_props: SolidTabProps): null;
|
|
16
|
+
export declare function SolidTabGroup({ tabs, value, onValueChange, className, listClassName, panelClassName, }: SolidTabGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=SolidTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,GACf,EAAE,kBAAkB,2CAwCpB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
function cx() {
|
|
3
|
+
var parts = [];
|
|
4
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
5
|
+
parts[_i] = arguments[_i];
|
|
6
|
+
}
|
|
7
|
+
return parts.filter(Boolean).join(" ");
|
|
8
|
+
}
|
|
9
|
+
export function SolidTab(_props) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
export function SolidTabGroup(_a) {
|
|
13
|
+
var tabs = _a.tabs, value = _a.value, onValueChange = _a.onValueChange, className = _a.className, listClassName = _a.listClassName, panelClassName = _a.panelClassName;
|
|
14
|
+
return (_jsxs("div", { className: cx("solid-tabs", className), children: [_jsx("div", { className: cx("solid-tabs-list", listClassName), role: "tablist", children: tabs.map(function (tab) {
|
|
15
|
+
var isActive = tab.value === value;
|
|
16
|
+
return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, "aria-controls": "solid-tab-panel-".concat(tab.value), id: "solid-tab-".concat(tab.value), className: cx("solid-tabs-trigger", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
|
|
17
|
+
}) }), tabs.map(function (tab) {
|
|
18
|
+
var isActive = tab.value === value;
|
|
19
|
+
return (_jsx("div", { role: "tabpanel", id: "solid-tab-panel-".concat(tab.value), "aria-labelledby": "solid-tab-".concat(tab.value), hidden: !isActive, className: cx("solid-tabs-panel", panelClassName), children: isActive ? tab.content : null }, tab.value));
|
|
20
|
+
})] }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=SolidTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidTabs.tsx"],"names":[],"mappings":";AAiBA,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAqB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAOT;QANnB,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,cAAc,oBAAA;IAEd,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,aACzC,cAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,IAAI,EAAC,SAAS,YACjE,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;oBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;oBACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,IAAI,WAAW,CAAC,EAC5D,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IATL,GAAG,CAAC,KAAK,CAUP,CACV,CAAC;gBACJ,CAAC,CAAC,GACE,EAEL,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;gBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBACrC,OAAO,CACL,cAEE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,0BAAmB,GAAG,CAAC,KAAK,CAAE,qBACjB,oBAAa,GAAG,CAAC,KAAK,CAAE,EACzC,MAAM,EAAE,CAAC,QAAQ,EACjB,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,cAAc,CAAC,YAEhD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAPzB,GAAG,CAAC,KAAK,CAQV,CACP,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n}: SolidTabGroupProps) {\n return (\n <div className={cx(\"solid-tabs\", className)}>\n <div className={cx(\"solid-tabs-list\", listClassName)} role=\"tablist\">\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\"solid-tabs-trigger\", isActive && \"is-active\")}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
type SolidTabProps = {
|
|
4
|
+
value: string;
|
|
5
|
+
label: React.ReactNode;
|
|
6
|
+
content: React.ReactNode;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
type SolidTabGroupProps = {
|
|
10
|
+
tabs: SolidTabProps[];
|
|
11
|
+
value: string;
|
|
12
|
+
onValueChange: (value: string) => void;
|
|
13
|
+
className?: string;
|
|
14
|
+
listClassName?: string;
|
|
15
|
+
panelClassName?: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
function cx(...parts: Array<string | false | undefined>) {
|
|
19
|
+
return parts.filter(Boolean).join(" ");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function SolidTab(_props: SolidTabProps) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function SolidTabGroup({
|
|
27
|
+
tabs,
|
|
28
|
+
value,
|
|
29
|
+
onValueChange,
|
|
30
|
+
className,
|
|
31
|
+
listClassName,
|
|
32
|
+
panelClassName,
|
|
33
|
+
}: SolidTabGroupProps) {
|
|
34
|
+
return (
|
|
35
|
+
<div className={cx("solid-tabs", className)}>
|
|
36
|
+
<div className={cx("solid-tabs-list", listClassName)} role="tablist">
|
|
37
|
+
{tabs.map((tab) => {
|
|
38
|
+
const isActive = tab.value === value;
|
|
39
|
+
return (
|
|
40
|
+
<button
|
|
41
|
+
key={tab.value}
|
|
42
|
+
type="button"
|
|
43
|
+
role="tab"
|
|
44
|
+
aria-selected={isActive}
|
|
45
|
+
aria-controls={`solid-tab-panel-${tab.value}`}
|
|
46
|
+
id={`solid-tab-${tab.value}`}
|
|
47
|
+
className={cx("solid-tabs-trigger", isActive && "is-active")}
|
|
48
|
+
onClick={() => onValueChange(tab.value)}
|
|
49
|
+
>
|
|
50
|
+
{tab.label}
|
|
51
|
+
</button>
|
|
52
|
+
);
|
|
53
|
+
})}
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
{tabs.map((tab) => {
|
|
57
|
+
const isActive = tab.value === value;
|
|
58
|
+
return (
|
|
59
|
+
<div
|
|
60
|
+
key={tab.value}
|
|
61
|
+
role="tabpanel"
|
|
62
|
+
id={`solid-tab-panel-${tab.value}`}
|
|
63
|
+
aria-labelledby={`solid-tab-${tab.value}`}
|
|
64
|
+
hidden={!isActive}
|
|
65
|
+
className={cx("solid-tabs-panel", panelClassName)}
|
|
66
|
+
>
|
|
67
|
+
{isActive ? tab.content : null}
|
|
68
|
+
</div>
|
|
69
|
+
);
|
|
70
|
+
})}
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/solid-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { SolidButton } from \"./SolidButton\";\nexport { SolidTab, SolidTabGroup } from \"./SolidTabs\";\n"]}
|
|
@@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
import { FilterRuleType } from "../components/core/common/FilterComponent";
|
|
38
|
-
import { kebabCase } from "
|
|
38
|
+
import { kebabCase } from "lodash";
|
|
39
39
|
import { getSession } from "../adapters/auth/index";
|
|
40
40
|
import { env } from "../adapters/env";
|
|
41
41
|
import { solidGet } from "../http/solidHttp";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrateRelationRules.js","sourceRoot":"","sources":["../../src/helpers/hydrateRelationRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAc,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAEvF,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"hydrateRelationRules.js","sourceRoot":"","sources":["../../src/helpers/hydrateRelationRules.ts"],"names":[],"mappings":"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","sourcesContent":["import { FilterRule, FilterRuleType } from \"../components/core/common/FilterComponent\";\nimport { createSolidEntityApi } from \"../redux/api/solidEntityApi\";\nimport { kebabCase } from \"lodash\";\nimport { getSession } from \"../adapters/auth/index\";\nimport { env } from \"../adapters/env\";\nimport { solidGet } from \"../http/solidHttp\";\n\n\ninterface RelationHydrationBucket {\n meta: any;\n rules: FilterRule[];\n ids: Set<number>;\n}\n\nconst API_URL = env(\"NEXT_PUBLIC_BACKEND_API_URL\");\n\nexport async function hydrateRelationRules(\n rootRules: FilterRule[],\n viewData: any\n): Promise<FilterRule[]> {\n const relationMap = new Map<string, RelationHydrationBucket>();\n\n // 1️⃣ Collect all relation rules\n const walk = (rule: FilterRule): void => {\n if (rule.type === FilterRuleType.RULE && rule.fieldName) {\n const meta =\n viewData?.data?.solidFieldsMetadata?.[rule.fieldName];\n\n if (\n meta?.type === \"relation\" &&\n (meta.relationType === \"many-to-many\" || meta.relationType === \"many-to-one\") &&\n Array.isArray(rule.value) &&\n typeof rule.value[0] === \"number\"\n ) {\n if (!relationMap.has(rule.fieldName)) {\n relationMap.set(rule.fieldName, {\n meta,\n rules: [],\n ids: new Set<number>()\n });\n }\n\n const bucket = relationMap.get(rule.fieldName)!;\n (rule.value as number[]).forEach(id => bucket.ids.add(id));\n bucket.rules.push(rule);\n }\n }\n\n if (Array.isArray(rule.children)) {\n rule.children.forEach(walk);\n }\n };\n\n rootRules.forEach(walk);\n\n // 2️⃣ Fetch & hydrate per relation field (ARRAY SAFE)\n const buckets = Array.from(relationMap.values());\n\n const session: any = await getSession();\n const token = session?.user?.accessToken;\n\n if (!token) {\n console.error(\"hydrateRelationRules: Not authenticated\");\n return rootRules;\n }\n\n\n for (const bucket of buckets) {\n const { meta, rules, ids } = bucket;\n\n if (\n !meta.relationCoModelSingularName ||\n !meta.relationModel?.userKeyField?.name\n ) {\n continue;\n }\n\n // const { useLazyGetSolidEntitiesQuery } = entityApi;\n // const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n\n // const response = await triggerGetSolidEntities({\n // filters: { id: { $in: Array.from(ids) } },\n // limit: 100\n // });\n const kebabEntityName = kebabCase(meta.relationCoModelSingularName);\n\n const resp = await solidGet(`${API_URL}/api/${kebabEntityName}`,\n {\n params: {\n offset: 0,\n limit: 100,\n filters: {\n id: { $in: Array.from(ids) },\n },\n },\n headers: {\n Authorization: `Bearer ${token}`,\n },\n }\n );\n const records = resp?.data?.data?.records ?? [];\n\n const labelField = meta.relationModel.userKeyField.name;\n\n const idToLabel = new Map<number, string>(\n records.map((item: any) => [\n item.id,\n item[labelField]\n ])\n );\n\n // 3️⃣ Replace numeric IDs with { label, value }\n rules.forEach((rule: FilterRule) => {\n rule.value = (rule.value as number[]).map(id => ({\n label: idToLabel.get(id) ?? String(id),\n value: id\n }));\n });\n }\n\n return rootRules;\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FilterRule, FilterRuleType } from "../components/core/common/FilterComponent";
|
|
2
2
|
import { createSolidEntityApi } from "../redux/api/solidEntityApi";
|
|
3
|
-
import { kebabCase } from "
|
|
3
|
+
import { kebabCase } from "lodash";
|
|
4
4
|
import { getSession } from "../adapters/auth/index";
|
|
5
5
|
import { env } from "../adapters/env";
|
|
6
6
|
import { solidGet } from "../http/solidHttp";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { camelCase, upperFirst } from "lodash";
|
|
2
2
|
//Dynamic permission expression
|
|
3
3
|
export var permissionExpression = function (modelName, permissionName) {
|
|
4
|
-
return "".concat(
|
|
4
|
+
return "".concat(upperFirst(camelCase(modelName)), "Controller.").concat(permissionName);
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/helpers/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/helpers/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE/C,+BAA+B;AAC/B,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,SAAiB,EAAE,cAAuB;IAC3E,OAAO,UAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,wBAAc,cAAc,CAAE,CAAA;AAC5E,CAAC,CAAC","sourcesContent":["\nimport { camelCase, upperFirst } from \"lodash\";\n\n//Dynamic permission expression\nexport const permissionExpression = (modelName: string, permissionName : string) => {\n return `${upperFirst(camelCase(modelName))}Controller.${permissionName}`\n};"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { camelCase, upperFirst } from "lodash";
|
|
3
3
|
|
|
4
4
|
//Dynamic permission expression
|
|
5
5
|
export const permissionExpression = (modelName: string, permissionName : string) => {
|
|
6
|
-
return `${
|
|
6
|
+
return `${upperFirst(camelCase(modelName))}Controller.${permissionName}`
|
|
7
7
|
};
|
|
@@ -9,7 +9,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
9
9
|
};
|
|
10
10
|
import { createApi } from '@reduxjs/toolkit/query/react';
|
|
11
11
|
import { baseQueryWithAuth } from './fetchBaseQuery';
|
|
12
|
-
import { kebabCase } from '
|
|
12
|
+
import { kebabCase } from 'lodash';
|
|
13
13
|
export var createSolidEntityApi = function (entityName) {
|
|
14
14
|
var kebabEntityName = kebabCase(entityName);
|
|
15
15
|
return createApi({
|