@solidxai/core-ui 0.1.9-beta.16 → 0.1.9-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/auth/SolidLogin.js +2 -2
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +2 -2
- package/dist/components/auth/SolidRegister.js +1 -1
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +1 -1
- package/dist/components/common/SettingsComponent.d.ts.map +1 -1
- package/dist/components/common/SettingsComponent.js +3 -0
- package/dist/components/common/SettingsComponent.js.map +1 -1
- package/dist/components/common/SettingsComponent.tsx +3 -0
- package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
- package/dist/components/common/SocialMediaLogin.js +1 -1
- package/dist/components/common/SocialMediaLogin.js.map +1 -1
- package/dist/components/common/SocialMediaLogin.tsx +4 -0
- package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
- package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
- package/dist/components/common/SolidFaviconProvider.js +102 -0
- package/dist/components/common/SolidFaviconProvider.js.map +1 -0
- package/dist/components/common/SolidFaviconProvider.tsx +55 -0
- package/dist/components/core/card/SolidCardView.js +1 -1
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.js +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.js +2 -1
- package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.tsx +2 -0
- package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
- package/dist/components/core/common/FilterComponent.js +4 -2
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/FilterComponent.tsx +5 -2
- package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +2 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -0
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +77 -42
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +43 -5
- package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
- package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
- package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
- package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
- package/dist/components/core/form/SolidFormView.js +1 -1
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +12 -3
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +21 -16
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +15 -5
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +21 -9
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +28 -19
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +25 -15
- package/dist/components/core/list/SolidListViewColumn.d.ts +1 -0
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +27 -0
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +13 -0
- 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/list/SolidListViewHeaderButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.js +6 -3
- package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.tsx +10 -7
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +16 -7
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +17 -6
- package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
- package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +11 -24
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +10 -22
- 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/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +6 -18
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +8 -21
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +1 -1
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +2 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.js +15 -0
- package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +13 -0
- package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidButton.js +10 -2
- package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
- package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
- package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
- package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
- package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
- package/dist/helpers/buttonPresentation.d.ts +24 -0
- package/dist/helpers/buttonPresentation.d.ts.map +1 -0
- package/dist/helpers/buttonPresentation.js +28 -0
- package/dist/helpers/buttonPresentation.js.map +1 -0
- package/dist/helpers/buttonPresentation.ts +53 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +1 -0
- package/dist/resources/globals.css +9 -7
- package/dist/resources/shadcn-base.css +24 -4
- package/package.json +1 -1
|
@@ -884,7 +884,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
884
884
|
const baseFormPath = normalizeSolidFormActionPath(pathname, "form");
|
|
885
885
|
const queryParams = new URLSearchParams(searchParams.toString());
|
|
886
886
|
queryParams.set("viewMode", "view");
|
|
887
|
-
router.
|
|
887
|
+
router.replace(`${baseFormPath}/${result?.data?.id}?${queryParams.toString()}`);
|
|
888
888
|
setViewMode("view")
|
|
889
889
|
}
|
|
890
890
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidFormViewContextMenuHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewContextMenuHeaderButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolidFormViewContextMenuHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewContextMenuHeaderButton.tsx"],"names":[],"mappings":"AAKA,UAAU,yCAAyC;IAC/C,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,wBAAgB,oCAAoC,CAAC,EACjD,MAAM,EACN,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,OAAmB,EACtB,EAAE,yCAAyC,kDA6D3C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { hasAnyRole } from "../../../helpers/rolesHelper";
|
|
3
|
+
import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
|
|
3
4
|
import { useSession } from "../../../hooks/useSession";
|
|
4
5
|
import { SolidButton, SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui";
|
|
5
6
|
export function SolidFormViewContextMenuHeaderButton(_a) {
|
|
@@ -8,11 +9,19 @@ export function SolidFormViewContextMenuHeaderButton(_a) {
|
|
|
8
9
|
var _o = useSession(), session = _o.data, status = _o.status;
|
|
9
10
|
var user = session === null || session === void 0 ? void 0 : session.user;
|
|
10
11
|
var hasRole = !((_b = 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);
|
|
12
|
+
var presentation = resolveButtonPresentation(button === null || button === void 0 ? void 0 : button.attrs);
|
|
11
13
|
if (!hasRole)
|
|
12
14
|
return null;
|
|
13
15
|
if (((_e = button.attrs) === null || _e === void 0 ? void 0 : _e.visible) == false)
|
|
14
16
|
return null;
|
|
15
|
-
|
|
17
|
+
if (!presentation.showIcon && !presentation.showLabel)
|
|
18
|
+
return null;
|
|
19
|
+
var iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;
|
|
20
|
+
var iconNode = presentation.showIcon
|
|
21
|
+
? (iconMeta
|
|
22
|
+
? _jsx(SolidIcon, { name: iconMeta.name, spin: iconMeta.spin, className: "solid-row-action-button-icon", "aria-hidden": true })
|
|
23
|
+
: _jsx("i", { className: "".concat(presentation.icon, " solid-row-action-button-icon"), "aria-hidden": true }))
|
|
24
|
+
: null;
|
|
16
25
|
var handleClick = function () {
|
|
17
26
|
var event = {
|
|
18
27
|
action: button.attrs.action,
|
|
@@ -25,8 +34,8 @@ export function SolidFormViewContextMenuHeaderButton(_a) {
|
|
|
25
34
|
onActionComplete === null || onActionComplete === void 0 ? void 0 : onActionComplete();
|
|
26
35
|
};
|
|
27
36
|
if (variant === "menu") {
|
|
28
|
-
return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(
|
|
37
|
+
return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(presentation.buttonClassName ? presentation.buttonClassName : ''), onClick: handleClick, title: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_h = (_f = presentation.tooltip) !== null && _f !== void 0 ? _f : (_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.action) !== null && _h !== void 0 ? _h : "Action") : undefined, children: [presentation.iconPos === "left" ? iconNode : null, presentation.showLabel ? _jsx("span", { className: "solid-row-action-button-label", children: presentation.label }) : null, presentation.iconPos === "right" ? iconNode : null] }));
|
|
29
38
|
}
|
|
30
|
-
return (_jsx("div", { children: _jsx(SolidButton, { text: true, type: "button", className: "w-full text-left gap-2 ".concat(
|
|
39
|
+
return (_jsx("div", { children: _jsx(SolidButton, { text: true, type: "button", className: "w-full text-left gap-2 ".concat(presentation.buttonClassName ? presentation.buttonClassName : ''), label: presentation.label, size: "sm", icon: presentation.icon, iconPos: presentation.iconPos, tooltip: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_l = (_j = presentation.tooltip) !== null && _j !== void 0 ? _j : (_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.action) !== null && _l !== void 0 ? _l : "Action") : undefined, onClick: handleClick }) }));
|
|
31
40
|
}
|
|
32
41
|
//# sourceMappingURL=SolidFormViewContextMenuHeaderButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidFormViewContextMenuHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewContextMenuHeaderButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAa9E,MAAM,UAAU,oCAAoC,CAAC,EAST;;QARxC,MAAM,YAAA,EACN,MAAM,YAAA,EACN,MAAM,YAAA,EACN,qBAAqB,2BAAA,EACrB,uBAAuB,6BAAA,EACvB,QAAQ,cAAA,EACR,gBAAgB,sBAAA,EAChB,eAAmB,EAAnB,OAAO,mBAAG,SAAS,KAAA;IAGb,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,CAAC,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;
|
|
1
|
+
{"version":3,"file":"SolidFormViewContextMenuHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewContextMenuHeaderButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { resolveButtonPresentation } from \"../../../helpers/buttonPresentation\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidButton, SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui\";\n\ninterface SolidFormViewContextMenuHeaderButtonProps {\n button: any;\n params: any;\n formik: any;\n solidFormViewMetaData: any;\n handleCustomButtonClick: (attrs: any, event: any) => void;\n formData: any;\n onActionComplete?: () => void;\n variant?: \"default\" | \"menu\";\n}\n\nexport function SolidFormViewContextMenuHeaderButton({\n button,\n params,\n formik,\n solidFormViewMetaData,\n handleCustomButtonClick,\n formData,\n onActionComplete,\n variant = \"default\"\n}: SolidFormViewContextMenuHeaderButtonProps) {\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 const presentation = resolveButtonPresentation(button?.attrs);\n\n if (!hasRole) return null;\n if (button.attrs?.visible == false) return null\n if (!presentation.showIcon && !presentation.showLabel) return null;\n const iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;\n const iconNode = presentation.showIcon\n ? (iconMeta\n ? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} className=\"solid-row-action-button-icon\" aria-hidden />\n : <i className={`${presentation.icon} solid-row-action-button-icon`} aria-hidden />)\n : null;\n const handleClick = () => {\n const event = {\n action: button.attrs.action,\n params,\n formik,\n solidFormViewMetaData: solidFormViewMetaData.data,\n formData\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n };\n\n if (variant === \"menu\") {\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n onClick={handleClick}\n title={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n >\n {presentation.iconPos === \"left\" ? iconNode : null}\n {presentation.showLabel ? <span className=\"solid-row-action-button-label\">{presentation.label}</span> : null}\n {presentation.iconPos === \"right\" ? iconNode : null}\n </button>\n );\n }\n\n return (\n <div>\n <SolidButton\n text\n type=\"button\"\n className={`w-full text-left gap-2 ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n label={presentation.label}\n size=\"sm\"\n icon={presentation.icon}\n iconPos={presentation.iconPos}\n tooltip={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n onClick={handleClick}\n />\n </div>\n );\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { hasAnyRole } from "../../../helpers/rolesHelper";
|
|
2
|
+
import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
|
|
2
3
|
import { useSession } from "../../../hooks/useSession";
|
|
3
4
|
import { SolidButton, SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui";
|
|
4
5
|
|
|
@@ -28,10 +29,17 @@ export function SolidFormViewContextMenuHeaderButton({
|
|
|
28
29
|
const user = session?.user;
|
|
29
30
|
|
|
30
31
|
const hasRole = !button.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);
|
|
32
|
+
const presentation = resolveButtonPresentation(button?.attrs);
|
|
31
33
|
|
|
32
34
|
if (!hasRole) return null;
|
|
33
35
|
if (button.attrs?.visible == false) return null
|
|
34
|
-
|
|
36
|
+
if (!presentation.showIcon && !presentation.showLabel) return null;
|
|
37
|
+
const iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;
|
|
38
|
+
const iconNode = presentation.showIcon
|
|
39
|
+
? (iconMeta
|
|
40
|
+
? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} className="solid-row-action-button-icon" aria-hidden />
|
|
41
|
+
: <i className={`${presentation.icon} solid-row-action-button-icon`} aria-hidden />)
|
|
42
|
+
: null;
|
|
35
43
|
const handleClick = () => {
|
|
36
44
|
const event = {
|
|
37
45
|
action: button.attrs.action,
|
|
@@ -48,18 +56,14 @@ export function SolidFormViewContextMenuHeaderButton({
|
|
|
48
56
|
return (
|
|
49
57
|
<button
|
|
50
58
|
type="button"
|
|
51
|
-
className={`solid-row-action-button ${
|
|
59
|
+
className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
|
|
52
60
|
onClick={handleClick}
|
|
61
|
+
title={presentation.tooltip}
|
|
62
|
+
aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
|
|
53
63
|
>
|
|
54
|
-
{
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
spin={iconMeta.spin}
|
|
58
|
-
className="solid-row-action-button-icon"
|
|
59
|
-
aria-hidden
|
|
60
|
-
/>
|
|
61
|
-
) : null}
|
|
62
|
-
<span className="solid-row-action-button-label">{button.attrs.label}</span>
|
|
64
|
+
{presentation.iconPos === "left" ? iconNode : null}
|
|
65
|
+
{presentation.showLabel ? <span className="solid-row-action-button-label">{presentation.label}</span> : null}
|
|
66
|
+
{presentation.iconPos === "right" ? iconNode : null}
|
|
63
67
|
</button>
|
|
64
68
|
);
|
|
65
69
|
}
|
|
@@ -69,12 +73,13 @@ export function SolidFormViewContextMenuHeaderButton({
|
|
|
69
73
|
<SolidButton
|
|
70
74
|
text
|
|
71
75
|
type="button"
|
|
72
|
-
className={`w-full text-left gap-2 ${
|
|
73
|
-
label={
|
|
76
|
+
className={`w-full text-left gap-2 ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
|
|
77
|
+
label={presentation.label}
|
|
74
78
|
size="sm"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
79
|
+
icon={presentation.icon}
|
|
80
|
+
iconPos={presentation.iconPos}
|
|
81
|
+
tooltip={presentation.tooltip}
|
|
82
|
+
aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
|
|
78
83
|
onClick={handleClick}
|
|
79
84
|
/>
|
|
80
85
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidFormViewNormalHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolidFormViewNormalHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"AAMA,UAAU,oCAAoC;IAC1C,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,wBAAgB,+BAA+B,CAAC,EAC5C,MAAM,EACN,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,OAAmB,EACtB,EAAE,oCAAoC,kDA6DtC"}
|
|
@@ -12,18 +12,22 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { hasAnyRole } from '../../../helpers/rolesHelper';
|
|
14
14
|
import { useSession } from "../../../hooks/useSession";
|
|
15
|
+
import { resolveButtonPresentation } from '../../../helpers/buttonPresentation';
|
|
15
16
|
import { SolidButton } from '../../shad-cn-ui';
|
|
16
17
|
import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
|
|
17
18
|
export function SolidFormViewNormalHeaderButton(_a) {
|
|
18
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l
|
|
19
|
-
var button = _a.button, params = _a.params, formik = _a.formik, solidFormViewMetaData = _a.solidFormViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick, formData = _a.formData, onActionComplete = _a.onActionComplete,
|
|
20
|
-
var
|
|
19
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
20
|
+
var button = _a.button, params = _a.params, formik = _a.formik, solidFormViewMetaData = _a.solidFormViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick, formData = _a.formData, onActionComplete = _a.onActionComplete, _m = _a.variant, variant = _m === void 0 ? "default" : _m;
|
|
21
|
+
var _o = useSession(), session = _o.data, status = _o.status;
|
|
21
22
|
var user = session === null || session === void 0 ? void 0 : session.user;
|
|
22
23
|
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);
|
|
24
|
+
var presentation = resolveButtonPresentation(button === null || button === void 0 ? void 0 : button.attrs);
|
|
23
25
|
if (!hasRole)
|
|
24
26
|
return null;
|
|
25
27
|
if (((_e = button === null || button === void 0 ? void 0 : button.attrs) === null || _e === void 0 ? void 0 : _e.visible) == false)
|
|
26
28
|
return null;
|
|
29
|
+
if (!presentation.showIcon && !presentation.showLabel)
|
|
30
|
+
return null;
|
|
27
31
|
var handleClick = function () {
|
|
28
32
|
var event = {
|
|
29
33
|
action: button.attrs.action,
|
|
@@ -36,8 +40,14 @@ export function SolidFormViewNormalHeaderButton(_a) {
|
|
|
36
40
|
onActionComplete === null || onActionComplete === void 0 ? void 0 : onActionComplete();
|
|
37
41
|
};
|
|
38
42
|
if (variant === "menu") {
|
|
39
|
-
|
|
43
|
+
var iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;
|
|
44
|
+
var iconNode = presentation.showIcon
|
|
45
|
+
? (iconMeta
|
|
46
|
+
? _jsx(SolidIcon, { name: iconMeta.name, spin: iconMeta.spin, className: "solid-row-action-button-icon" })
|
|
47
|
+
: _jsx("i", { className: "".concat(presentation.icon, " solid-row-action-button-icon") }))
|
|
48
|
+
: null;
|
|
49
|
+
return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(presentation.buttonClassName ? presentation.buttonClassName : ''), onClick: handleClick, title: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_h = (_f = presentation.tooltip) !== null && _f !== void 0 ? _f : (_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.action) !== null && _h !== void 0 ? _h : "Action") : undefined, children: [presentation.iconPos === "left" ? iconNode : null, presentation.showLabel ? _jsx("span", { className: "solid-row-action-button-label", children: presentation.label }) : null, presentation.iconPos === "right" ? iconNode : null] }));
|
|
40
50
|
}
|
|
41
|
-
return (_jsx("div", { children: _jsx(SolidButton, __assign({ type: "button", className: "w-full text-left gap-2 solid-icon-button ".concat(
|
|
51
|
+
return (_jsx("div", { children: _jsx(SolidButton, __assign({ type: "button", className: "w-full text-left gap-2 solid-icon-button ".concat(presentation.buttonClassName ? presentation.buttonClassName : '') }, button.attrs, { label: presentation.label, size: "sm", iconPos: presentation.iconPos, icon: presentation.icon, tooltip: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_l = (_j = presentation.tooltip) !== null && _j !== void 0 ? _j : (_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.action) !== null && _l !== void 0 ? _l : "Action") : undefined, onClick: handleClick })) }));
|
|
42
52
|
}
|
|
43
53
|
//# sourceMappingURL=SolidFormViewNormalHeaderButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidFormViewNormalHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAa3E,MAAM,UAAU,+BAA+B,CAAC,EAST;;QARnC,MAAM,YAAA,EACN,MAAM,YAAA,EACN,MAAM,YAAA,EACN,qBAAqB,2BAAA,EACrB,uBAAuB,6BAAA,EACvB,QAAQ,cAAA,EACR,gBAAgB,sBAAA,EAChB,eAAmB,EAAnB,OAAO,mBAAG,SAAS,KAAA;IAGb,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;
|
|
1
|
+
{"version":3,"file":"SolidFormViewNormalHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from '../../../helpers/rolesHelper';\nimport { useSession } from \"../../../hooks/useSession\";\nimport { resolveButtonPresentation } from '../../../helpers/buttonPresentation';\nimport { SolidButton } from '../../shad-cn-ui';\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\ninterface SolidFormViewNormalHeaderButtonProps {\n button: any;\n params: any;\n formik: any;\n solidFormViewMetaData: any;\n handleCustomButtonClick: (attrs: any, event: any) => void;\n formData: any;\n onActionComplete?: () => void;\n variant?: \"default\" | \"menu\";\n}\n\nexport function SolidFormViewNormalHeaderButton({\n button,\n params,\n formik,\n solidFormViewMetaData,\n handleCustomButtonClick,\n formData,\n onActionComplete,\n variant = \"default\"\n}: SolidFormViewNormalHeaderButtonProps) {\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 const presentation = resolveButtonPresentation(button?.attrs);\n\n if (!hasRole) return null;\n if (button?.attrs?.visible == false) return null\n if (!presentation.showIcon && !presentation.showLabel) return null;\n const handleClick = () => {\n const event = {\n action: button.attrs.action,\n params,\n formik,\n solidFormViewMetaData: solidFormViewMetaData.data,\n formData\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n };\n\n if (variant === \"menu\") {\n const iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;\n const iconNode = presentation.showIcon\n ? (iconMeta\n ? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} className=\"solid-row-action-button-icon\" />\n : <i className={`${presentation.icon} solid-row-action-button-icon`} />)\n : null;\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n onClick={handleClick}\n title={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n >\n {presentation.iconPos === \"left\" ? iconNode : null}\n {presentation.showLabel ? <span className=\"solid-row-action-button-label\">{presentation.label}</span> : null}\n {presentation.iconPos === \"right\" ? iconNode : null}\n </button>\n );\n }\n\n return (\n <div>\n <SolidButton\n type=\"button\"\n className={`w-full text-left gap-2 solid-icon-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n {...button.attrs}\n label={presentation.label}\n size=\"sm\"\n iconPos={presentation.iconPos}\n icon={presentation.icon}\n tooltip={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n onClick={handleClick}\n />\n </div>\n );\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { hasAnyRole } from '../../../helpers/rolesHelper';
|
|
2
2
|
import { useSession } from "../../../hooks/useSession";
|
|
3
|
+
import { resolveButtonPresentation } from '../../../helpers/buttonPresentation';
|
|
3
4
|
import { SolidButton } from '../../shad-cn-ui';
|
|
4
5
|
import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
|
|
5
6
|
|
|
@@ -29,9 +30,11 @@ export function SolidFormViewNormalHeaderButton({
|
|
|
29
30
|
const user = session?.user;
|
|
30
31
|
|
|
31
32
|
const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);
|
|
33
|
+
const presentation = resolveButtonPresentation(button?.attrs);
|
|
32
34
|
|
|
33
35
|
if (!hasRole) return null;
|
|
34
36
|
if (button?.attrs?.visible == false) return null
|
|
37
|
+
if (!presentation.showIcon && !presentation.showLabel) return null;
|
|
35
38
|
const handleClick = () => {
|
|
36
39
|
const event = {
|
|
37
40
|
action: button.attrs.action,
|
|
@@ -45,16 +48,23 @@ export function SolidFormViewNormalHeaderButton({
|
|
|
45
48
|
};
|
|
46
49
|
|
|
47
50
|
if (variant === "menu") {
|
|
51
|
+
const iconMeta = presentation.icon ? parseSolidIconMeta(presentation.icon) : undefined;
|
|
52
|
+
const iconNode = presentation.showIcon
|
|
53
|
+
? (iconMeta
|
|
54
|
+
? <SolidIcon name={iconMeta.name} spin={iconMeta.spin} className="solid-row-action-button-icon" />
|
|
55
|
+
: <i className={`${presentation.icon} solid-row-action-button-icon`} />)
|
|
56
|
+
: null;
|
|
48
57
|
return (
|
|
49
58
|
<button
|
|
50
59
|
type="button"
|
|
51
|
-
className={`solid-row-action-button ${
|
|
60
|
+
className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
|
|
52
61
|
onClick={handleClick}
|
|
62
|
+
title={presentation.tooltip}
|
|
63
|
+
aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
|
|
53
64
|
>
|
|
54
|
-
{
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
<span className="solid-row-action-button-label">{button.attrs.label}</span>
|
|
65
|
+
{presentation.iconPos === "left" ? iconNode : null}
|
|
66
|
+
{presentation.showLabel ? <span className="solid-row-action-button-label">{presentation.label}</span> : null}
|
|
67
|
+
{presentation.iconPos === "right" ? iconNode : null}
|
|
58
68
|
</button>
|
|
59
69
|
);
|
|
60
70
|
}
|
|
@@ -63,12 +73,14 @@ export function SolidFormViewNormalHeaderButton({
|
|
|
63
73
|
<div>
|
|
64
74
|
<SolidButton
|
|
65
75
|
type="button"
|
|
66
|
-
className={`w-full text-left gap-2 solid-icon-button ${
|
|
76
|
+
className={`w-full text-left gap-2 solid-icon-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
|
|
67
77
|
{...button.attrs}
|
|
68
|
-
label={
|
|
78
|
+
label={presentation.label}
|
|
69
79
|
size="sm"
|
|
70
|
-
iconPos=
|
|
71
|
-
icon={
|
|
80
|
+
iconPos={presentation.iconPos}
|
|
81
|
+
icon={presentation.icon}
|
|
82
|
+
tooltip={presentation.tooltip}
|
|
83
|
+
aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
|
|
72
84
|
onClick={handleClick}
|
|
73
85
|
/>
|
|
74
86
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListView.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SolidListView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListView.tsx"],"names":[],"mappings":";AAyDA,eAAO,MAAM,+BAA+B,WAgB3C,CAAC;AAGF,eAAO,MAAM,oCAAoC,QAAS,MAAM,QAgB/D,CAAC;AAEF,eAAO,MAAM,6BAA6B,gBAAiB,GAAG,kBAU7D,CAAC;AAGF,eAAO,MAAM,kCAAkC,QAAS,MAAM,eAAe,GAAG,kBAU/E,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6BAA6B,CAAC,EAAE,GAAG,CAAC;IACpC,8BAA8B,CAAC,EAAE,GAAG,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,sBAAsB,CAAC,EAAE,GAAG,CAAC;QAC7B,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC,KAAK,IAAI,CAAC;IACX;;;;OAIG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACpE;;;OAGG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,QAAQ,EAAE,MAAM;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC;QACb,gBAAgB,EAAE,GAAG,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,aAAa,qHAqpDxB,CAAC"}
|
|
@@ -60,7 +60,7 @@ import { SolidDataTable as DataTable, Column } from "./SolidDataTable";
|
|
|
60
60
|
import qs from "qs";
|
|
61
61
|
import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
|
|
62
62
|
import { useGetSolidViewLayoutQuery } from "../../../redux/api/solidViewApi";
|
|
63
|
-
import { SolidListViewColumn } from "./SolidListViewColumn";
|
|
63
|
+
import { SolidListViewColumn, isFieldSortable } from "./SolidListViewColumn";
|
|
64
64
|
import { SolidCreateButton } from "../common/SolidCreateButton";
|
|
65
65
|
import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
|
|
66
66
|
import { useLazyCheckIfPermissionExistsQuery } from "../../../redux/api/userApi";
|
|
@@ -79,6 +79,7 @@ import { SolidEmptyListViewPlaceholder } from "./SolidEmptyListViewPlaceholder";
|
|
|
79
79
|
import { useHandleListCustomButtonClick } from "../../../components/common/useHandleListCustomButtonClick";
|
|
80
80
|
import { hasAnyRole } from "../../../helpers/rolesHelper";
|
|
81
81
|
import { SolidListViewHeaderButton } from "./SolidListViewHeaderButton";
|
|
82
|
+
import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
|
|
82
83
|
import { useDispatch, useSelector } from "react-redux";
|
|
83
84
|
import styles from "./SolidListViewWrapper.module.css";
|
|
84
85
|
import { getExtensionFunction } from "../../../helpers/registry";
|
|
@@ -92,7 +93,7 @@ import { SolidListViewRowActionsMenu } from "./SolidListViewRowActionsMenu";
|
|
|
92
93
|
import { SolidHeaderRequestStatus } from "../../common/SolidHeaderRequestStatus";
|
|
93
94
|
import { SolidButton, SolidConfirmDialog, SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, } from "../../shad-cn-ui";
|
|
94
95
|
import { FilterMatchMode } from "../filter/filterMatchMode";
|
|
95
|
-
import { LayoutGrid, Pencil, Plus, RefreshCw, RotateCcw, Search,
|
|
96
|
+
import { LayoutGrid, Pencil, Plus, RefreshCw, RotateCcw, Search, Trash2 } from "lucide-react";
|
|
96
97
|
// import { ERROR_MESSAGES } from "../../../constants/error-messages";
|
|
97
98
|
var getRandomInt = function (min, max) {
|
|
98
99
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
@@ -621,11 +622,16 @@ export var SolidListView = forwardRef(function (params, ref) {
|
|
|
621
622
|
currentSortOrder = latestSortOrderRef.current;
|
|
622
623
|
if (currentSortField && (currentSortOrder === 1 || currentSortOrder === -1)) {
|
|
623
624
|
meta = solidFieldsMetadata === null || solidFieldsMetadata === void 0 ? void 0 : solidFieldsMetadata[currentSortField];
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
625
|
+
if (!isFieldSortable(meta)) {
|
|
626
|
+
queryData.sort = ["id:desc"];
|
|
627
|
+
}
|
|
628
|
+
else {
|
|
629
|
+
resolvedField = currentSortField;
|
|
630
|
+
if ((meta === null || meta === void 0 ? void 0 : meta.type) === "relation" && (meta === null || meta === void 0 ? void 0 : meta.relationType) === "many-to-one") {
|
|
631
|
+
resolvedField = "".concat(currentSortField, ".").concat((_d = (_c = meta === null || meta === void 0 ? void 0 : meta.relationModel) === null || _c === void 0 ? void 0 : _c.userKeyField) === null || _d === void 0 ? void 0 : _d.name);
|
|
632
|
+
}
|
|
633
|
+
queryData.sort = ["".concat(resolvedField, ":").concat(currentSortOrder === 1 ? "asc" : "desc")];
|
|
627
634
|
}
|
|
628
|
-
queryData.sort = ["".concat(resolvedField, ":").concat(currentSortOrder === 1 ? "asc" : "desc")];
|
|
629
635
|
}
|
|
630
636
|
else {
|
|
631
637
|
queryData.sort = ["id:desc"];
|
|
@@ -1197,19 +1203,22 @@ export var SolidListView = forwardRef(function (params, ref) {
|
|
|
1197
1203
|
return !isInContextMenu && isAllowed && isVisible;
|
|
1198
1204
|
}).map(function (button, index) {
|
|
1199
1205
|
return (_jsx(Column, { header: button.attrs.label, body: function (rowData) {
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1206
|
+
return ((function () {
|
|
1207
|
+
var _a, _b, _c;
|
|
1208
|
+
var presentation = resolveButtonPresentation(button === null || button === void 0 ? void 0 : button.attrs);
|
|
1209
|
+
if (!presentation.showIcon && !presentation.showLabel)
|
|
1210
|
+
return null;
|
|
1211
|
+
return (_jsx(SolidButton, { type: "button", icon: presentation.icon, iconPos: presentation.iconPos, label: presentation.label, tooltip: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_c = (_a = presentation.tooltip) !== null && _a !== void 0 ? _a : (_b = button === null || button === void 0 ? void 0 : button.attrs) === null || _b === void 0 ? void 0 : _b.action) !== null && _c !== void 0 ? _c : "Action") : undefined, className: "solid-inline-row-button w-full text-left gap-2 ".concat(presentation.buttonClassName
|
|
1212
|
+
? presentation.buttonClassName
|
|
1213
|
+
: ""), size: "small", variant: "ghost", onClick: function () {
|
|
1214
|
+
var event = {
|
|
1215
|
+
params: params,
|
|
1216
|
+
rowData: rowData,
|
|
1217
|
+
solidListViewMetaData: solidListViewMetaData === null || solidListViewMetaData === void 0 ? void 0 : solidListViewMetaData.data,
|
|
1218
|
+
};
|
|
1219
|
+
handleCustomButtonClick(button.attrs, event);
|
|
1220
|
+
} }));
|
|
1221
|
+
})());
|
|
1213
1222
|
} }, index));
|
|
1214
1223
|
})), actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'update'))) &&
|
|
1215
1224
|
((_18 = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _18 === void 0 ? void 0 : _18.edit) !== false &&
|