@solidxai/core-ui 0.1.9-beta.11 → 0.1.9-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
  2. package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
  3. package/dist/components/auth/SolidOTPVerify.js +67 -0
  4. package/dist/components/auth/SolidOTPVerify.js.map +1 -0
  5. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  6. package/dist/components/common/AuthBanner.js.map +1 -1
  7. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
  8. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
  9. package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
  10. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
  11. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  12. package/dist/components/core/form/SolidFormFooter.js +1 -1
  13. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  14. package/dist/components/core/form/SolidFormFooter.tsx +1 -1
  15. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  16. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  17. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +2 -1
  18. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  19. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  20. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  21. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +10 -21
  22. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  23. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  24. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  25. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +10 -18
  26. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  27. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +6 -3
  28. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  29. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +24 -30
  30. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  31. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  32. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  33. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  34. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +7 -6
  35. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  36. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +10 -9
  37. package/dist/nextAuth/authProviders.d.ts +4 -0
  38. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  39. package/dist/nextAuth/authProviders.js +198 -0
  40. package/dist/nextAuth/authProviders.js.map +1 -0
  41. package/dist/nextAuth/authProviders.tsx +232 -0
  42. package/dist/nextAuth/handleLogout.d.ts +2 -0
  43. package/dist/nextAuth/handleLogout.d.ts.map +1 -0
  44. package/dist/nextAuth/handleLogout.js +36 -0
  45. package/dist/nextAuth/handleLogout.js.map +1 -0
  46. package/dist/nextAuth/handleLogout.tsx +39 -0
  47. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  48. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  49. package/dist/nextAuth/refreshAccessToken.js +24 -0
  50. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  51. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  52. package/dist/redux/features/settingsSlice.d.ts +20 -0
  53. package/dist/redux/features/settingsSlice.d.ts.map +1 -0
  54. package/dist/redux/features/settingsSlice.js +39 -0
  55. package/dist/redux/features/settingsSlice.js.map +1 -0
  56. package/dist/redux/features/settingsSlice.ts +60 -0
  57. package/package.json +1 -1
  58. package/dist/components/core/list/SolidDataTablePagination.d.ts +0 -15
  59. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +0 -1
  60. package/dist/components/core/list/SolidDataTablePagination.js +0 -22
  61. package/dist/components/core/list/SolidDataTablePagination.js.map +0 -1
  62. package/dist/components/core/list/SolidDataTablePagination.tsx +0 -71
  63. package/dist/components/solid-ui/SolidButton.d.ts +0 -14
  64. package/dist/components/solid-ui/SolidButton.d.ts.map +0 -1
  65. package/dist/components/solid-ui/SolidButton.js +0 -36
  66. package/dist/components/solid-ui/SolidButton.js.map +0 -1
  67. package/dist/components/solid-ui/SolidButton.tsx +0 -54
  68. package/dist/components/solid-ui/SolidTabs.d.ts +0 -18
  69. package/dist/components/solid-ui/SolidTabs.d.ts.map +0 -1
  70. package/dist/components/solid-ui/SolidTabs.js +0 -22
  71. package/dist/components/solid-ui/SolidTabs.js.map +0 -1
  72. package/dist/components/solid-ui/SolidTabs.tsx +0 -73
  73. package/dist/components/solid-ui/index.d.ts +0 -3
  74. package/dist/components/solid-ui/index.d.ts.map +0 -1
  75. package/dist/components/solid-ui/index.js +0 -3
  76. package/dist/components/solid-ui/index.js.map +0 -1
  77. package/dist/components/solid-ui/index.ts +0 -2
@@ -0,0 +1,3 @@
1
+ declare const SolidOTPVerify: () => import("react/jsx-runtime").JSX.Element;
2
+ export default SolidOTPVerify;
3
+ //# sourceMappingURL=SolidOTPVerify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidOTPVerify.d.ts","sourceRoot":"./","sources":["components/auth/SolidOTPVerify.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,cAAc,+CAmHnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Form, Formik } from "formik";
4
+ import { signIn } from "next-auth/react";
5
+ import Link from "next/link";
6
+ import { useRouter } from "next/navigation";
7
+ import { Button } from "primereact/button";
8
+ import { InputOtp } from "primereact/inputotp";
9
+ import { Message } from "primereact/message";
10
+ import { Toast } from "primereact/toast";
11
+ import { useRef, useState } from "react";
12
+ import * as Yup from "yup";
13
+ import { useSelector } from "react-redux";
14
+ import Image from "next/image";
15
+ import SolidLogo from '../../resources/images/SolidXLogo.svg';
16
+ import { ERROR_MESSAGES } from "../../constants/error-messages";
17
+ const SolidOTPVerify = () => {
18
+ // const [trigger, { data: solidSettingsData }] = useLazyGetAuthSettingsQuery();
19
+ // useEffect(() => {
20
+ // trigger("") // Fetch settings on mount
21
+ // }, [trigger])
22
+ const solidSettingsData = useSelector((state) => state.settingsState?.solidSettings);
23
+ const [otp, setOTP] = useState();
24
+ const toast = useRef(null);
25
+ const router = useRouter();
26
+ const [password, setPassword] = useState('');
27
+ const [checked, setChecked] = useState(false);
28
+ const validationSchema = Yup.object({
29
+ email: Yup.string()
30
+ .email(ERROR_MESSAGES.FIELD_INVALID(' email address'))
31
+ .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),
32
+ });
33
+ const showToast = (severity, summary, detail) => {
34
+ toast.current?.show({
35
+ severity,
36
+ summary,
37
+ detail,
38
+ ...(severity === "error"
39
+ ? { sticky: true } // stays until user closes
40
+ : { life: 3000 }),
41
+ });
42
+ };
43
+ const isFormFieldValid = (formik, fieldName) => formik.touched[fieldName] && formik.errors[fieldName];
44
+ return (_jsxs(_Fragment, { children: [_jsx(Toast, { ref: toast }), _jsxs("div", { className: `auth-container ${solidSettingsData?.authPagesLayout === 'center' ? 'center' : 'side'}`, style: { minWidth: 480 }, children: [solidSettingsData?.authPagesLayout === 'center' &&
45
+ _jsx("div", { className: "flex justify-content-center", children: _jsx("div", { className: `solid-logo flex align-items-center ${solidSettingsData?.appLogoPosition}`, children: _jsx(Image, { alt: "solid logo", src: solidSettingsData?.appLogo || SolidLogo, className: "relative", fill: true }) }) }), _jsx("h2", { className: `solid-auth-title ${solidSettingsData?.authPagesLayout === 'center' ? 'text-center' : 'text-left'}`, children: "OTP Verification" }), _jsx("p", { className: "solid-auth-subtitle text-sm", children: "Please enter the OTP sent to your email to complete verification" }), _jsx(_Fragment, { children: _jsx(Formik, { initialValues: {
46
+ email: "",
47
+ password: "",
48
+ }, validationSchema: validationSchema, onSubmit: async (values) => {
49
+ // Handle form submission
50
+ const email = values.email;
51
+ const password = values.password;
52
+ const response = await signIn("credentials", {
53
+ redirect: false,
54
+ email,
55
+ password,
56
+ });
57
+ if (response?.error) {
58
+ showToast("error", ERROR_MESSAGES.LOGIN_ERROR, response.error);
59
+ }
60
+ else {
61
+ showToast("success", ERROR_MESSAGES.LOGIN_SUCCESS, ERROR_MESSAGES.DASHBOARD_REDIRECTING);
62
+ router.push(`${process.env.NEXT_PUBLIC_LOGIN_REDIRECT_URL}`);
63
+ }
64
+ }, children: (formik) => (_jsxs(Form, { children: [_jsxs("div", { className: "flex flex-column gap-2 px-3", children: [_jsx("label", { htmlFor: "email", className: "solid-auth-input-label", children: "Enter OTP" }), _jsx(InputOtp, { value: otp, onChange: (e) => setOTP(e.value), length: 6, style: { width: '100%' } }), isFormFieldValid(formik, "email") && _jsx(Message, { className: "text-red-500 text-sm", severity: "error", text: formik?.errors?.email?.toString() }), _jsxs("div", { className: "flex align-items-center justify-content-between", children: [_jsx(Button, { type: "button", icon: 'pi pi-refresh', iconPos: "left", link: true, label: "Resend Code", className: "px-0 text-sm font-normal" }), _jsx("p", { className: "m-0 text-sm text-color", children: "Time left: 00:28" })] })] }), _jsx("div", { className: "mt-4", children: _jsx(Button, { type: "submit", className: "w-full font-light auth-submit-button", label: "Verify", disabled: formik.isSubmitting, loading: formik.isSubmitting }) })] })) }) })] }), _jsx("div", { className: "text-center mt-5", children: _jsxs("div", { className: "text-sm text-400 secondary-dark-color", children: ['<', " Back to ", _jsx(Link, { className: "font-bold", href: "/auth/login", children: "Sign In" })] }) })] }));
65
+ };
66
+ export default SolidOTPVerify;
67
+ //# sourceMappingURL=SolidOTPVerify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidOTPVerify.js","sourceRoot":"./","sources":["components/auth/SolidOTPVerify.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport { Form, Formik } from \"formik\";\nimport { signIn } from \"next-auth/react\";\nimport Link from \"next/link\";\nimport { useRouter } from \"next/navigation\";\nimport { Button } from \"primereact/button\";\nimport { InputOtp } from \"primereact/inputotp\";\nimport { Message } from \"primereact/message\";\nimport { Toast } from \"primereact/toast\";\nimport { useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\nimport { useSelector } from \"react-redux\";\nimport Image from \"next/image\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\n\nconst SolidOTPVerify = () => {\n\n // const [trigger, { data: solidSettingsData }] = useLazyGetAuthSettingsQuery();\n // useEffect(() => {\n // trigger(\"\") // Fetch settings on mount\n // }, [trigger])\n\n const solidSettingsData = useSelector((state: any) => state.settingsState?.solidSettings);\n\n const [otp, setOTP] = useState<number | any>();\n\n const toast = useRef<Toast>(null);\n const router = useRouter();\n\n const [password, setPassword] = useState('');\n const [checked, setChecked] = useState<boolean>(false);\n\n const validationSchema = Yup.object({\n email: Yup.string()\n .email(ERROR_MESSAGES.FIELD_INVALID(' email address'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),\n });\n\n const showToast = (severity: \"success\" | \"error\", summary: string, detail: string) => {\n toast.current?.show({\n severity,\n summary,\n detail,\n ...(severity === \"error\"\n ? { sticky: true } // stays until user closes\n : { life: 3000 }),\n });\n };\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n return (\n <>\n <Toast ref={toast} />\n <div className={`auth-container ${solidSettingsData?.authPagesLayout === 'center' ? 'center' : 'side'}`} style={{ minWidth: 480 }}>\n {solidSettingsData?.authPagesLayout === 'center' &&\n <div className=\"flex justify-content-center\">\n <div className={`solid-logo flex align-items-center ${solidSettingsData?.appLogoPosition}`}>\n <Image\n alt=\"solid logo\"\n src={solidSettingsData?.appLogo || SolidLogo}\n className=\"relative\"\n fill\n />\n </div>\n </div>\n }\n <h2 className={`solid-auth-title ${solidSettingsData?.authPagesLayout === 'center' ? 'text-center' : 'text-left'}`}>OTP Verification</h2>\n <p className=\"solid-auth-subtitle text-sm\">\n Please enter the OTP sent to your email to complete verification\n </p>\n <>\n <Formik\n initialValues={{\n email: \"\",\n password: \"\",\n }}\n validationSchema={validationSchema}\n onSubmit={async (values) => {\n // Handle form submission\n const email = values.email;\n const password = values.password;\n\n const response = await signIn(\"credentials\", {\n redirect: false,\n email,\n password,\n });\n if (response?.error) {\n showToast(\"error\", ERROR_MESSAGES.LOGIN_ERROR, response.error);\n } else {\n showToast(\"success\", ERROR_MESSAGES.LOGIN_SUCCESS, ERROR_MESSAGES.DASHBOARD_REDIRECTING);\n router.push(`${process.env.NEXT_PUBLIC_LOGIN_REDIRECT_URL}`);\n }\n\n }}\n >\n {(formik) => (\n <Form>\n <div className=\"flex flex-column gap-2 px-3\">\n <label htmlFor=\"email\" className=\"solid-auth-input-label\">Enter OTP</label>\n <InputOtp value={otp} onChange={(e) => setOTP(e.value)} length={6} style={{ width: '100%' }} />\n {isFormFieldValid(formik, \"email\") && <Message\n className=\"text-red-500 text-sm\"\n severity=\"error\"\n text={formik?.errors?.email?.toString()}\n />}\n <div className=\"flex align-items-center justify-content-between\">\n <Button type=\"button\" icon='pi pi-refresh' iconPos=\"left\" link label=\"Resend Code\" className=\"px-0 text-sm font-normal\" />\n <p className=\"m-0 text-sm text-color\">\n Time left: 00:28\n </p>\n </div>\n </div>\n <div className=\"mt-4\">\n <Button type=\"submit\" className=\"w-full font-light auth-submit-button\" label=\"Verify\" disabled={formik.isSubmitting} loading={formik.isSubmitting} />\n </div>\n </Form>\n )}\n </Formik>\n </>\n </div>\n <div className=\"text-center mt-5\">\n <div className=\"text-sm text-400 secondary-dark-color\">\n {'<'} Back to <Link className=\"font-bold\" href=\"/auth/login\">Sign In</Link>\n </div>\n </div>\n </>\n );\n};\n\nexport default SolidOTPVerify;"]}
@@ -0,0 +1,133 @@
1
+ "use client";
2
+
3
+ import { Form, Formik } from "formik";
4
+ import { signIn } from "next-auth/react";
5
+ import Link from "next/link";
6
+ import { useRouter } from "next/navigation";
7
+ import { Button } from "primereact/button";
8
+ import { InputOtp } from "primereact/inputotp";
9
+ import { Message } from "primereact/message";
10
+ import { Toast } from "primereact/toast";
11
+ import { useEffect, useRef, useState } from "react";
12
+ import * as Yup from "yup";
13
+ import Image from "next/image";
14
+ import SolidLogo from '../../resources/images/SolidXLogo.svg'
15
+ import { ERROR_MESSAGES } from "../../constants/error-messages";
16
+ import { useLazyGetAuthSettingsQuery } from "../../redux/api/solidSettingsApi";
17
+
18
+ const SolidOTPVerify = () => {
19
+
20
+ const [trigger, { data: solidSettingsData }] = useLazyGetAuthSettingsQuery();
21
+ useEffect(() => {
22
+ trigger("") // Fetch settings on mount
23
+ }, [trigger])
24
+
25
+ const [otp, setOTP] = useState<number | any>();
26
+
27
+ const toast = useRef<Toast>(null);
28
+ const router = useRouter();
29
+
30
+ const [password, setPassword] = useState('');
31
+ const [checked, setChecked] = useState<boolean>(false);
32
+
33
+ const validationSchema = Yup.object({
34
+ email: Yup.string()
35
+ .email(ERROR_MESSAGES.FIELD_INVALID(' email address'))
36
+ .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),
37
+ });
38
+
39
+ const showToast = (severity: "success" | "error", summary: string, detail: string) => {
40
+ toast.current?.show({
41
+ severity,
42
+ summary,
43
+ detail,
44
+ ...(severity === "error"
45
+ ? { sticky: true } // stays until user closes
46
+ : { life: 3000 }),
47
+ });
48
+ };
49
+
50
+ const isFormFieldValid = (formik: any, fieldName: string) =>
51
+ formik.touched[fieldName] && formik.errors[fieldName];
52
+
53
+ return (
54
+ <>
55
+ <Toast ref={toast} />
56
+ <div className={`auth-container ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'center' : 'side'}`} style={{ minWidth: 480 }}>
57
+ {solidSettingsData?.data?.authPagesLayout === 'center' &&
58
+ <div className="flex justify-content-center">
59
+ <div className={`solid-logo flex align-items-center ${solidSettingsData?.data?.appLogoPosition}`}>
60
+ <Image
61
+ alt="solid logo"
62
+ src={solidSettingsData?.data?.appLogo || SolidLogo}
63
+ className="relative"
64
+ fill
65
+ />
66
+ </div>
67
+ </div>
68
+ }
69
+ <h2 className={`solid-auth-title ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'text-center' : 'text-left'}`}>OTP Verification</h2>
70
+ <p className="solid-auth-subtitle text-sm">
71
+ Please enter the OTP sent to your email to complete verification
72
+ </p>
73
+ <>
74
+ <Formik
75
+ initialValues={{
76
+ email: "",
77
+ password: "",
78
+ }}
79
+ validationSchema={validationSchema}
80
+ onSubmit={async (values) => {
81
+ // Handle form submission
82
+ const email = values.email;
83
+ const password = values.password;
84
+
85
+ const response = await signIn("credentials", {
86
+ redirect: false,
87
+ email,
88
+ password,
89
+ });
90
+ if (response?.error) {
91
+ showToast("error", ERROR_MESSAGES.LOGIN_ERROR, response.error);
92
+ } else {
93
+ showToast("success", ERROR_MESSAGES.LOGIN_SUCCESS, ERROR_MESSAGES.DASHBOARD_REDIRECTING);
94
+ router.push(`${process.env.NEXT_PUBLIC_LOGIN_REDIRECT_URL}`);
95
+ }
96
+
97
+ }}
98
+ >
99
+ {(formik) => (
100
+ <Form>
101
+ <div className="flex flex-column gap-2 px-3">
102
+ <label htmlFor="email" className="solid-auth-input-label">Enter OTP</label>
103
+ <InputOtp value={otp} onChange={(e) => setOTP(e.value)} length={6} style={{ width: '100%' }} />
104
+ {isFormFieldValid(formik, "email") && <Message
105
+ className="text-red-500 text-sm"
106
+ severity="error"
107
+ text={formik?.errors?.email?.toString()}
108
+ />}
109
+ <div className="flex align-items-center justify-content-between">
110
+ <Button type="button" icon='pi pi-refresh' iconPos="left" link label="Resend Code" className="px-0 text-sm font-normal" />
111
+ <p className="m-0 text-sm text-color">
112
+ Time left: 00:28
113
+ </p>
114
+ </div>
115
+ </div>
116
+ <div className="mt-4">
117
+ <Button type="submit" className="w-full font-light auth-submit-button" label="Verify" disabled={formik.isSubmitting} loading={formik.isSubmitting} />
118
+ </div>
119
+ </Form>
120
+ )}
121
+ </Formik>
122
+ </>
123
+ </div>
124
+ <div className="text-center mt-5">
125
+ <div className="text-sm text-400 secondary-dark-color">
126
+ {'<'} Back to <Link className="font-bold" href="/auth/login">Sign In</Link>
127
+ </div>
128
+ </div>
129
+ </>
130
+ );
131
+ };
132
+
133
+ export default SolidOTPVerify;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthBanner.js","sourceRoot":"","sources":["../../../src/components/common/AuthBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,IAAM,UAAU,GAAG;IACjB,OAAO,CACL,cACE,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,aAAa;YACrB,UAAU,EAAE,4BAA4B;YACxC,8CAA8C;YAC9C,cAAc,EAAE,OAAO;YACvB,SAAS,EAAE,GAAG,CAAC,6BAA6B,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClE,EACD,SAAS,EAAC,yBAAyB,YAEnC,cAAK,SAAS,EAAC,UAAU,YACvB,eAAK,SAAS,EAAC,eAAe,aAC5B,cAAK,SAAS,EAAC,iDAAiD,YAC7D,GAAG,CAAC,iBAAiB,CAAC,GACnB,EACN,cAAK,SAAS,EAAC,kCAAkC,YAC9C,GAAG,CAAC,mCAAmC,CAAC,GACrC,EACN,cAAK,SAAS,EAAC,MAAM,GASf,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { env } from \"../../adapters/env\";\n\nconst AuthBanner = () => {\n return (\n <div\n style={{\n position: \"relative\",\n width: \"100%\",\n height: \"calc(100vh)\",\n background: 'url(/images/loginhero.png)',\n // background: 'url(/images/LoginBanner.png)',\n backgroundSize: 'cover',\n marginTop: env(\"ENABLE_CUSTOM_HEADER_FOOTER\") === \"true\" ? 70 : 0\n }}\n className=\"flex align-items-center\"\n >\n <div className=\"grid m-0\">\n <div className=\"col-8 mx-auto\">\n <div className=\"text-5xl text-white font-semibold line-height-3\">\n {env(\"SOLID_APP_TITLE\")}\n </div>\n <div className=\"text-sm text-white line-height-3\">\n {env(\"NEXT_PUBLIC_SOLID_APP_DESCRIPTION\")}\n </div>\n <div className=\"mt-5\">\n {/* <AvatarGroup>\n <Avatar image=\"/images/AvatarDemo.png\" size=\"large\" shape=\"circle\" />\n <Avatar image=\"/images/AvatarDemo.png\" size=\"large\" shape=\"circle\" />\n <Avatar image=\"/images/AvatarDemo.png\" size=\"large\" shape=\"circle\" />\n <Avatar image=\"/images/AvatarDemo.png\" size=\"large\" shape=\"circle\" />\n <Avatar image=\"/images/AvatarDemo.png\" size=\"large\" shape=\"circle\" />\n <Avatar label=\"60k+\" shape=\"circle\" size=\"large\" className=\"text-sm text-bold\" style={{ color: '#191866', backgroundColor: '#fff' }} />\n </AvatarGroup> */}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default AuthBanner;\n"]}
1
+ {"version":3,"file":"AuthBanner.js","sourceRoot":"","sources":["../../../src/components/common/AuthBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,IAAM,UAAU,GAAG;IACjB,OAAO,CACL,cACE,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,aAAa;YACrB,UAAU,EAAE,4BAA4B;YACxC,8CAA8C;YAC9C,cAAc,EAAE,OAAO;YACvB,SAAS,EAAE,GAAG,CAAC,6BAA6B,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClE,EACD,SAAS,EAAC,yBAAyB,YAEnC,cAAK,SAAS,EAAC,UAAU,YACvB,eAAK,SAAS,EAAC,eAAe,aAC5B,cAAK,SAAS,EAAC,iDAAiD,YAC7D,GAAG,CAAC,iBAAiB,CAAC,GACnB,EACN,cAAK,SAAS,EAAC,kCAAkC,YAC9C,GAAG,CAAC,mCAAmC,CAAC,GACrC,EACN,cAAK,SAAS,EAAC,MAAM,GASf,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const LoadDynamicJsxComponent: ({ context }: any) => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=LoadDynamicJsxComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadDynamicJsxComponent.d.ts","sourceRoot":"./","sources":["components/core/common/LoadDynamicJsxComponent.tsx"],"names":[],"mappings":"AAeA,eAAO,MAAM,uBAAuB,gBAAiB,GAAG,4CAoDvD,CAAA"}
@@ -0,0 +1,50 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ERROR_MESSAGES } from "../../../constants/error-messages";
4
+ import dynamic from "next/dynamic";
5
+ import { useState, useEffect } from "react";
6
+ // Fallback component for missing components
7
+ const FallbackComponent = ({ componentName }) => (_jsxs("div", { style: { color: "red" }, children: ["Could not load ", _jsx("strong", { children: componentName })] }));
8
+ export const LoadDynamicJsxComponent = ({ context }) => {
9
+ // const Component = dynamic<Props>(
10
+ // async () => {
11
+ // try {
12
+ // const componentName = context?.rowAction?.action?.customComponent.split('/').pop();
13
+ // const mod = await import();
14
+ // // Return the default export or a named export matching the componentName
15
+ // return mod.default || mod[componentName];
16
+ // } catch (error) {
17
+ // console.error(`Failed to load component "${context?.rowAction?.action?.customComponent}":`, error);
18
+ // // Return a fallback component if the import fails
19
+ // return () => <GenerateModelCodeRowAction context={context} />;
20
+ // }
21
+ // },
22
+ // { ssr: false } // Disable server-side rendering
23
+ // );
24
+ const [Component, setComponent] = useState(null);
25
+ const componentPath = context?.rowAction?.action?.customComponent;
26
+ const componentKey = componentPath?.split("/")?.pop();
27
+ const componentMap = {
28
+ "GenerateModelCodeRowAction": dynamic(() => import("../extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction"), { ssr: false }),
29
+ "GenerateModuleCodeRowAction": dynamic(() => import("../extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction"), { ssr: false }),
30
+ };
31
+ useEffect(() => {
32
+ if (!componentKey)
33
+ return;
34
+ if (componentMap[componentKey]) {
35
+ setComponent(() => () => setComponent(() => componentMap[componentKey]));
36
+ }
37
+ else {
38
+ import(componentPath)
39
+ .then((mod) => setComponent(() => mod.default || mod))
40
+ .catch((err) => {
41
+ console.error(` ${ERROR_MESSAGES.LOADING_COMPONENT} ${componentPath}:`, err);
42
+ setComponent(() => () => _jsx(FallbackComponent, { componentName: componentKey }));
43
+ });
44
+ }
45
+ }, [componentKey]);
46
+ if (!Component)
47
+ return _jsx("p", { children: "Loading..." });
48
+ return _jsx(Component, { context: context });
49
+ };
50
+ //# sourceMappingURL=LoadDynamicJsxComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadDynamicJsxComponent.js","sourceRoot":"./","sources":["components/core/common/LoadDynamicJsxComponent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,4CAA4C;AAC5C,MAAM,iBAAiB,GAAG,CAAC,EAAE,aAAa,EAAO,EAAE,EAAE,CAAC,CAClD,eAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCACT,2BAAS,aAAa,GAAU,IAC7C,CACT,CAAC;AAMF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,OAAO,EAAO,EAAE,EAAE;IAGxD,oCAAoC;IACpC,oBAAoB;IACpB,gBAAgB;IAEhB,kGAAkG;IAClG,0CAA0C;IAC1C,wFAAwF;IACxF,wDAAwD;IACxD,4BAA4B;IAC5B,kHAAkH;IAClH,iEAAiE;IACjE,6EAA6E;IAC7E,YAAY;IACZ,SAAS;IACT,sDAAsD;IACtD,KAAK;IACL,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAM,IAAI,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC;IAClE,MAAM,YAAY,GAAG,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAEtD,MAAM,YAAY,GAAwB;QACtC,4BAA4B,EAAE,OAAO,CACnC,GAAG,EAAE,CAAC,MAAM,CAAC,uEAAuE,CAAC,EACrF,EAAE,GAAG,EAAE,KAAK,EAAE,CACf;QACD,6BAA6B,EAAE,OAAO,CAClC,GAAG,EAAE,CAAC,MAAM,CAAC,yEAAyE,CAAC,EACvF,EAAE,GAAG,EAAE,KAAK,EAAE,CACjB;KACJ,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE;YAC5B,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC5E;aAAM;YACP,MAAM,CAAC,aAAa,CAAC;iBAChB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;iBACrD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,iBAAiB,IAAI,aAAa,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC7E,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAC,iBAAiB,IAAC,aAAa,EAAE,YAAY,GAAI,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;SACN;IACL,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,IAAI,CAAC,SAAS;QAAE,OAAO,qCAAiB,CAAC;IAEzC,OAAO,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC;AAC3C,CAAC,CAAA","sourcesContent":["'use client';\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport dynamic from \"next/dynamic\";\nimport { useState, useEffect } from \"react\";\n// Fallback component for missing components\nconst FallbackComponent = ({ componentName }: any) => (\n <div style={{ color: \"red\" }}>\n Could not load <strong>{componentName}</strong>\n </div>\n);\n\ntype Props = {\n context: any;\n};\n\nexport const LoadDynamicJsxComponent = ({ context }: any) => {\n\n \n // const Component = dynamic<Props>(\n // async () => {\n // try {\n \n // const componentName = context?.rowAction?.action?.customComponent.split('/').pop();\n // const mod = await import();\n // // Return the default export or a named export matching the componentName\n // return mod.default || mod[componentName];\n // } catch (error) {\n // console.error(`Failed to load component \"${context?.rowAction?.action?.customComponent}\":`, error);\n // // Return a fallback component if the import fails\n // return () => <GenerateModelCodeRowAction context={context} />;\n // }\n // },\n // { ssr: false } // Disable server-side rendering\n // );\n const [Component, setComponent] = useState<any>(null);\n const componentPath = context?.rowAction?.action?.customComponent;\n const componentKey = componentPath?.split(\"/\")?.pop();\n\n const componentMap: Record<string, any> = {\n \"GenerateModelCodeRowAction\": dynamic(\n () => import(\"../extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction\"),\n { ssr: false }\n ),\n \"GenerateModuleCodeRowAction\": dynamic(\n () => import(\"../extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction\"),\n { ssr: false }\n ),\n };\n\n useEffect(() => {\n if (!componentKey) return;\n\n if (componentMap[componentKey]) {\n setComponent(() => () => setComponent(() => componentMap[componentKey]));\n } else {\n import(componentPath)\n .then((mod) => setComponent(() => mod.default || mod))\n .catch((err) => {\n console.error(` ${ERROR_MESSAGES.LOADING_COMPONENT} ${componentPath}:`, err);\n setComponent(() => () => <FallbackComponent componentName={componentKey} />);\n });\n }\n }, [componentKey]);\n\n if (!Component) return <p>Loading...</p>;\n\n return <Component context={context} />;\n}\n\n\n"]}
@@ -0,0 +1,70 @@
1
+ 'use client';
2
+ import { ERROR_MESSAGES } from "../../../constants/error-messages";
3
+ import dynamic from "next/dynamic";
4
+ import { useState, useEffect } from "react";
5
+ // Fallback component for missing components
6
+ const FallbackComponent = ({ componentName }: any) => (
7
+ <div style={{ color: "red" }}>
8
+ Could not load <strong>{componentName}</strong>
9
+ </div>
10
+ );
11
+
12
+ type Props = {
13
+ context: any;
14
+ };
15
+
16
+ export const LoadDynamicJsxComponent = ({ context }: any) => {
17
+
18
+
19
+ // const Component = dynamic<Props>(
20
+ // async () => {
21
+ // try {
22
+
23
+ // const componentName = context?.rowAction?.action?.customComponent.split('/').pop();
24
+ // const mod = await import();
25
+ // // Return the default export or a named export matching the componentName
26
+ // return mod.default || mod[componentName];
27
+ // } catch (error) {
28
+ // console.error(`Failed to load component "${context?.rowAction?.action?.customComponent}":`, error);
29
+ // // Return a fallback component if the import fails
30
+ // return () => <GenerateModelCodeRowAction context={context} />;
31
+ // }
32
+ // },
33
+ // { ssr: false } // Disable server-side rendering
34
+ // );
35
+ const [Component, setComponent] = useState<any>(null);
36
+ const componentPath = context?.rowAction?.action?.customComponent;
37
+ const componentKey = componentPath?.split("/")?.pop();
38
+
39
+ const componentMap: Record<string, any> = {
40
+ "GenerateModelCodeRowAction": dynamic(
41
+ () => import("../extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction"),
42
+ { ssr: false }
43
+ ),
44
+ "GenerateModuleCodeRowAction": dynamic(
45
+ () => import("../extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction"),
46
+ { ssr: false }
47
+ ),
48
+ };
49
+
50
+ useEffect(() => {
51
+ if (!componentKey) return;
52
+
53
+ if (componentMap[componentKey]) {
54
+ setComponent(() => () => setComponent(() => componentMap[componentKey]));
55
+ } else {
56
+ import(componentPath)
57
+ .then((mod) => setComponent(() => mod.default || mod))
58
+ .catch((err) => {
59
+ console.error(` ${ERROR_MESSAGES.LOADING_COMPONENT} ${componentPath}:`, err);
60
+ setComponent(() => () => <FallbackComponent componentName={componentKey} />);
61
+ });
62
+ }
63
+ }, [componentKey]);
64
+
65
+ if (!Component) return <p>Loading...</p>;
66
+
67
+ return <Component context={context} />;
68
+ }
69
+
70
+
@@ -123,7 +123,7 @@ export var SolidFormFooter = function (_a) {
123
123
  offset: defaultQueryObject.offset || 0,
124
124
  limit: defaultQueryObject.limit || 25,
125
125
  filters: defaultQueryObject.finalFullFilter || null,
126
- fields: ["id"],
126
+ // fields: ["id"],
127
127
  modelName: params.modelName,
128
128
  recordId: params.id,
129
129
  sort: defaultQueryObject.sort
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormFooter.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormFooter.tsx"],"names":[],"mappings":"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","sourcesContent":["\n\nimport { useLazyNavigationQuery } from \"../../../redux/api/modelApi\";\nimport { useEffect, useState } from \"react\";\nimport qs from \"qs\";\nimport { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from \"../list/SolidListView\";\nimport { SolidFormViewProps } from \"./SolidFormView\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { SolidButton, SolidTooltip, SolidTooltipContent, SolidTooltipTrigger } from \"../../shad-cn-ui\";\n\nexport type SolidFormFooterProps = {\n params: SolidFormViewProps;\n};\n\ntype NavItem = {\n recordId: number;\n offset: number;\n limit: number;\n};\n\nexport const SolidFormFooter = ({ params }: SolidFormFooterProps) => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const router = useRouter();\n\n const [prevNav, setPrevNav] = useState<NavItem | null>(null);\n const [nextNav, setNextNav] = useState<NavItem | null>(null);\n const [meta, setMeta] = useState<any>(null);\n\n const [triggerGetNavigation, { isLoading }] =\n useLazyNavigationQuery();\n\n // -----------------------------\n // Helper: update local storage\n // -----------------------------\n const updatePaginationInLocalStorage = (offset: number, limit: number) => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath) || {};\n\n const updatedQueryObj = {\n ...queryObject,\n offset,\n limit,\n };\n setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj)\n };\n\n const getNewUrl = (recordId: number): string => {\n // Replace the id after /form/\n const newPathname = pathname.replace(\n /\\/form\\/[^/]+/,\n `/form/${recordId}`,\n );\n\n // Clone search params (immutable in Next.js)\n const params = new URLSearchParams(searchParams.toString());\n\n // Remove only userKeyField\n params.delete(\"userKeyField\");\n\n const query = params.toString();\n return query ? `${newPathname}?${query}` : newPathname;\n }\n\n\n // -----------------------------\n // Click handlers\n // -----------------------------\n const handlePrev = () => {\n\n if (!prevNav) return;\n\n updatePaginationInLocalStorage(prevNav.offset, prevNav.limit);\n const newUrl = getNewUrl(prevNav.recordId)\n router.push(newUrl);\n };\n\n const handleNext = () => {\n if (!nextNav) return;\n\n updatePaginationInLocalStorage(nextNav.offset, nextNav.limit);\n const newUrl = getNewUrl(nextNav.recordId)\n router.push(newUrl);\n };\n\n // -----------------------------\n // Fetch navigation data\n // -----------------------------\n useEffect(() => {\n if (params.embeded === true) {\n setPrevNav(null);\n setNextNav(null);\n setMeta(null);\n return;\n }\n\n if (params.id !== \"new\") {\n\n const fetchNavigation = async () => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);\n const defaultQueryObject = queryObject || {};\n\n const queryData = {\n offset: defaultQueryObject.offset || 0,\n limit: defaultQueryObject.limit || 25,\n filters: defaultQueryObject.finalFullFilter || null,\n fields: [\"id\"],\n modelName: params.modelName,\n recordId: params.id,\n sort: defaultQueryObject.sort\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const response: any = await triggerGetNavigation(queryString).unwrap();\n console.log(\"response nav\", response);\n if (response.statusCode == 200) {\n setPrevNav(response?.data?.prev ?? null);\n setNextNav(response?.data?.next ?? null);\n setMeta(response?.data?.meta ?? null);\n }\n };\n fetchNavigation();\n }\n }, [params.id, params.embeded]);\n\n // -----------------------------\n // UI\n // -----------------------------\n return (\n <div\n className=\"flex justify-content-end align-items-center gap-2 p-1\"\n >{meta &&\n <span className=\"solid-form-footer-pagination-meta\">{`${meta.currentIndexGlobal} of ${meta.totalRecords}`}</span>\n }\n {prevNav && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidButton\n icon=\"si si-angle-left\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handlePrev()}\n disabled={isLoading}\n />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"top\">Previous</SolidTooltipContent>\n </SolidTooltip>\n )}\n\n {nextNav && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidButton\n icon=\"si si-angle-right\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handleNext()}\n disabled={isLoading}\n />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"top\">Next</SolidTooltipContent>\n </SolidTooltip>\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidFormFooter.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormFooter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,kCAAkC,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAC;AAEjH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAYvG,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,EAAgC;QAA9B,MAAM,YAAA;IACpC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAErB,IAAA,KAAwB,QAAQ,CAAiB,IAAI,CAAC,EAArD,OAAO,QAAA,EAAE,UAAU,QAAkC,CAAC;IACvD,IAAA,KAAwB,QAAQ,CAAiB,IAAI,CAAC,EAArD,OAAO,QAAA,EAAE,UAAU,QAAkC,CAAC;IACvD,IAAA,KAAkB,QAAQ,CAAM,IAAI,CAAC,EAApC,IAAI,QAAA,EAAE,OAAO,QAAuB,CAAC;IAEtC,IAAA,KACF,sBAAsB,EAAE,EADrB,oBAAoB,QAAA,EAAI,SAAS,kBACZ,CAAC;IAE7B,gCAAgC;IAChC,+BAA+B;IAC/B,gCAAgC;IAChC,IAAM,8BAA8B,GAAG,UAAC,MAAc,EAAE,KAAa;QACjE,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAC7C,eAAe,EACf,OAAO,CACV,CAAC;QACF,IAAM,WAAW,GAAG,oCAAoC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEzE,IAAM,eAAe,yBACd,WAAW,KACd,MAAM,QAAA,EACN,KAAK,OAAA,GACR,CAAC;QACF,kCAAkC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IACjE,CAAC,CAAC;IAEF,IAAM,SAAS,GAAG,UAAC,QAAgB;QAC/B,8BAA8B;QAC9B,IAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAChC,eAAe,EACf,gBAAS,QAAQ,CAAE,CACtB,CAAC;QAEF,6CAA6C;QAC7C,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5D,2BAA2B;QAC3B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE9B,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,CAAC,CAAC,UAAG,WAAW,cAAI,KAAK,CAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3D,CAAC,CAAA;IAGD,gCAAgC;IAChC,iBAAiB;IACjB,gCAAgC;IAChC,IAAM,UAAU,GAAG;QAEf,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,8BAA8B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG;QACf,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,8BAA8B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,gCAAgC;IAChC,wBAAwB;IACxB,gCAAgC;IAChC,SAAS,CAAC;QACN,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE;YACzB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;SACV;QAED,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE;YAErB,IAAM,eAAe,GAAG;;;;;;4BACd,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAC7C,eAAe,EACf,OAAO,CACV,CAAC;4BAEI,WAAW,GAAG,oCAAoC,CAAC,QAAQ,CAAC,CAAC;4BAC7D,kBAAkB,GAAG,WAAW,IAAI,EAAE,CAAC;4BAEvC,SAAS,GAAG;gCACd,MAAM,EAAE,kBAAkB,CAAC,MAAM,IAAI,CAAC;gCACtC,KAAK,EAAE,kBAAkB,CAAC,KAAK,IAAI,EAAE;gCACrC,OAAO,EAAE,kBAAkB,CAAC,eAAe,IAAI,IAAI;gCACnD,kBAAkB;gCAClB,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,QAAQ,EAAE,MAAM,CAAC,EAAE;gCACnB,IAAI,EAAE,kBAAkB,CAAC,IAAI;6BAChC,CAAC;4BAEI,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;gCACxC,gBAAgB,EAAE,IAAI;6BACzB,CAAC,CAAC;4BAEmB,qBAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAA;;4BAAhE,QAAQ,GAAQ,SAAgD;4BACtE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;4BACtC,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;gCAC5B,UAAU,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;gCACzC,UAAU,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;gCACzC,OAAO,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;6BACzC;;;;iBACJ,CAAC;YACF,eAAe,EAAE,CAAC;SACrB;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhC,gCAAgC;IAChC,KAAK;IACL,gCAAgC;IAChC,OAAO,CACH,eACI,SAAS,EAAC,uDAAuD,aACnE,IAAI;gBACF,eAAM,SAAS,EAAC,mCAAmC,YAAE,UAAG,IAAI,CAAC,kBAAkB,iBAAO,IAAI,CAAC,YAAY,CAAE,GAAQ,EAEhH,OAAO,IAAI,CACR,MAAC,YAAY,eACT,KAAC,mBAAmB,IAAC,OAAO,kBACxB,KAAC,WAAW,IACR,IAAI,EAAC,kBAAkB,EACvB,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,EAC3B,QAAQ,EAAE,SAAS,GACrB,GACgB,EACtB,KAAC,mBAAmB,IAAC,IAAI,EAAC,KAAK,yBAA+B,IACnD,CAClB,EAEA,OAAO,IAAI,CACR,MAAC,YAAY,eACT,KAAC,mBAAmB,IAAC,OAAO,kBACxB,KAAC,WAAW,IACR,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,EAC3B,QAAQ,EAAE,SAAS,GACrB,GACgB,EACtB,KAAC,mBAAmB,IAAC,IAAI,EAAC,KAAK,qBAA2B,IAC/C,CAClB,IACC,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["\n\nimport { useLazyNavigationQuery } from \"../../../redux/api/modelApi\";\nimport { useEffect, useState } from \"react\";\nimport qs from \"qs\";\nimport { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from \"../list/SolidListView\";\nimport { SolidFormViewProps } from \"./SolidFormView\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { SolidButton, SolidTooltip, SolidTooltipContent, SolidTooltipTrigger } from \"../../shad-cn-ui\";\n\nexport type SolidFormFooterProps = {\n params: SolidFormViewProps;\n};\n\ntype NavItem = {\n recordId: number;\n offset: number;\n limit: number;\n};\n\nexport const SolidFormFooter = ({ params }: SolidFormFooterProps) => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const router = useRouter();\n\n const [prevNav, setPrevNav] = useState<NavItem | null>(null);\n const [nextNav, setNextNav] = useState<NavItem | null>(null);\n const [meta, setMeta] = useState<any>(null);\n\n const [triggerGetNavigation, { isLoading }] =\n useLazyNavigationQuery();\n\n // -----------------------------\n // Helper: update local storage\n // -----------------------------\n const updatePaginationInLocalStorage = (offset: number, limit: number) => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath) || {};\n\n const updatedQueryObj = {\n ...queryObject,\n offset,\n limit,\n };\n setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj)\n };\n\n const getNewUrl = (recordId: number): string => {\n // Replace the id after /form/\n const newPathname = pathname.replace(\n /\\/form\\/[^/]+/,\n `/form/${recordId}`,\n );\n\n // Clone search params (immutable in Next.js)\n const params = new URLSearchParams(searchParams.toString());\n\n // Remove only userKeyField\n params.delete(\"userKeyField\");\n\n const query = params.toString();\n return query ? `${newPathname}?${query}` : newPathname;\n }\n\n\n // -----------------------------\n // Click handlers\n // -----------------------------\n const handlePrev = () => {\n\n if (!prevNav) return;\n\n updatePaginationInLocalStorage(prevNav.offset, prevNav.limit);\n const newUrl = getNewUrl(prevNav.recordId)\n router.push(newUrl);\n };\n\n const handleNext = () => {\n if (!nextNav) return;\n\n updatePaginationInLocalStorage(nextNav.offset, nextNav.limit);\n const newUrl = getNewUrl(nextNav.recordId)\n router.push(newUrl);\n };\n\n // -----------------------------\n // Fetch navigation data\n // -----------------------------\n useEffect(() => {\n if (params.embeded === true) {\n setPrevNav(null);\n setNextNav(null);\n setMeta(null);\n return;\n }\n\n if (params.id !== \"new\") {\n\n const fetchNavigation = async () => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);\n const defaultQueryObject = queryObject || {};\n\n const queryData = {\n offset: defaultQueryObject.offset || 0,\n limit: defaultQueryObject.limit || 25,\n filters: defaultQueryObject.finalFullFilter || null,\n // fields: [\"id\"],\n modelName: params.modelName,\n recordId: params.id,\n sort: defaultQueryObject.sort\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const response: any = await triggerGetNavigation(queryString).unwrap();\n console.log(\"response nav\", response);\n if (response.statusCode == 200) {\n setPrevNav(response?.data?.prev ?? null);\n setNextNav(response?.data?.next ?? null);\n setMeta(response?.data?.meta ?? null);\n }\n };\n fetchNavigation();\n }\n }, [params.id, params.embeded]);\n\n // -----------------------------\n // UI\n // -----------------------------\n return (\n <div\n className=\"flex justify-content-end align-items-center gap-2 p-1\"\n >{meta &&\n <span className=\"solid-form-footer-pagination-meta\">{`${meta.currentIndexGlobal} of ${meta.totalRecords}`}</span>\n }\n {prevNav && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidButton\n icon=\"si si-angle-left\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handlePrev()}\n disabled={isLoading}\n />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"top\">Previous</SolidTooltipContent>\n </SolidTooltip>\n )}\n\n {nextNav && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidButton\n icon=\"si si-angle-right\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handleNext()}\n disabled={isLoading}\n />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"top\">Next</SolidTooltipContent>\n </SolidTooltip>\n )}\n </div>\n );\n};\n"]}
@@ -114,7 +114,7 @@ export const SolidFormFooter = ({ params }: SolidFormFooterProps) => {
114
114
  offset: defaultQueryObject.offset || 0,
115
115
  limit: defaultQueryObject.limit || 25,
116
116
  filters: defaultQueryObject.finalFullFilter || null,
117
- fields: ["id"],
117
+ // fields: ["id"],
118
118
  modelName: params.modelName,
119
119
  recordId: params.id,
120
120
  sort: defaultQueryObject.sort
@@ -1 +1 @@
1
- {"version":3,"file":"SolidManyToOneFilterElement.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidManyToOneFilterElement.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,2BAA2B,kDAAmD,GAAG,4CAmD7F,CAAA"}
1
+ {"version":3,"file":"SolidManyToOneFilterElement.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidManyToOneFilterElement.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,2BAA2B,kDAAmD,GAAG,4CAmD7F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidManyToOneFilterElement.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidManyToOneFilterElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,YAAY,EAA6B,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,EAAkD;QAAhD,KAAK,WAAA,EAAE,YAAY,kBAAA,EAAE,KAAK,WAAA,EAAE,aAAa,mBAAA;IAEnF,IAAM,SAAS,GAAG,oBAAoB,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC1E,IAAA,4BAA4B,GAAK,SAAS,6BAAd,CAAe;IAC5C,IAAA,uBAAuB,GAAI,4BAA4B,EAAE,GAAlC,CAAmC;IAE3D,IAAA,KAA4C,QAAQ,CAAC,EAAE,CAAC,EAAvD,iBAAiB,QAAA,EAAE,oBAAoB,QAAgB,CAAC;IAC/D,IAAM,kBAAkB,GAAG,UAAO,KAAgC;;;;;;;oBAGxD,SAAS,GAAG;wBACd,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,EAAE;wBACT,OAAO;4BACH,GAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,IAAG;gCAChD,UAAU,EAAE,KAAK,CAAC,KAAK;6BAC1B;+BACJ;qBACJ,CAAC;oBAEI,cAAc,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;wBAC3C,gBAAgB,EAAE,IAAI;qBACzB,CAAC,CAAC;oBAG0B,qBAAM,uBAAuB,CAAC,cAAc,CAAC,EAAA;;oBAApE,oBAAoB,GAAG,SAA6C;oBAGpE,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC;oBAEnD,IAAI,gBAAgB,EAAE;wBACZ,sBAAoB,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,IAAS;;4BAC7D,OAAO;gCACH,KAAK,EAAE,IAAI,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,CAAC;gCAC7D,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;6BACpB,CAAA;wBACL,CAAC,CAAC,CAAC;wBACH,oBAAoB,CAAC,mBAAiB,CAAC,CAAC;qBAC3C;;;;SACJ,CAAA;IAED,OAAO,CACH,KAAC,YAAY,IACT,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,kBAAkB,EAClC,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAA5B,CAA4B,EAC7C,SAAS,EAAC,6BAA6B,GACzC,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { AutoComplete, AutoCompleteCompleteEvent } from \"primereact/autocomplete\";\nimport { useState } from \"react\";\nimport qs from \"qs\";\n\n\nexport const SolidManyToOneFilterElement = ({ value, updateInputs, index, fieldMetadata }: any) => {\n\n const entityApi = createSolidEntityApi(fieldMetadata.relationCoModelSingularName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n\n const [autoCompleteItems, setAutoCompleteItems] = useState([]);\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n\n // Get the list view layout & metadata first. \n const queryData = {\n offset: 0,\n limit: 10,\n filters: {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n $containsi: event.query\n }\n }\n };\n\n const autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n\n if (autocompleteData) {\n const autoCompleteItems = autocompleteData.records.map((item: any) => {\n return {\n label: item[fieldMetadata?.relationModel?.userKeyField?.name],\n value: item['id']\n }\n });\n setAutoCompleteItems(autoCompleteItems);\n }\n }\n\n return (\n <AutoComplete\n field=\"label\"\n value={value}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={(e) => updateInputs(index, e.value)}\n className=\"solid-standard-autocomplete\"\n />\n )\n}\n"]}
1
+ {"version":3,"file":"SolidManyToOneFilterElement.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidManyToOneFilterElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,YAAY,EAA6B,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,EAAkD;QAAhD,KAAK,WAAA,EAAE,YAAY,kBAAA,EAAE,KAAK,WAAA,EAAE,aAAa,mBAAA;IAEnF,IAAM,SAAS,GAAG,oBAAoB,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC1E,IAAA,4BAA4B,GAAK,SAAS,6BAAd,CAAe;IAC5C,IAAA,uBAAuB,GAAI,4BAA4B,EAAE,GAAlC,CAAmC;IAE3D,IAAA,KAA4C,QAAQ,CAAC,EAAE,CAAC,EAAvD,iBAAiB,QAAA,EAAE,oBAAoB,QAAgB,CAAC;IAC/D,IAAM,kBAAkB,GAAG,UAAO,KAAgC;;;;;;;oBAGxD,SAAS,GAAG;wBACd,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,EAAE;wBACT,OAAO;4BACH,GAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,IAAG;gCAChD,UAAU,EAAE,KAAK,CAAC,KAAK;6BAC1B;+BACJ;qBACJ,CAAC;oBAEI,cAAc,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;wBAC3C,gBAAgB,EAAE,IAAI;qBACzB,CAAC,CAAC;oBAG0B,qBAAM,uBAAuB,CAAC,cAAc,CAAC,EAAA;;oBAApE,oBAAoB,GAAG,SAA6C;oBAGpE,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC;oBAEnD,IAAI,gBAAgB,EAAE;wBACZ,sBAAoB,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,IAAS;;4BAC7D,OAAO;gCACH,KAAK,EAAE,IAAI,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,CAAC;gCAC7D,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;6BACpB,CAAA;wBACL,CAAC,CAAC,CAAC;wBACH,oBAAoB,CAAC,mBAAiB,CAAC,CAAC;qBAC3C;;;;SACJ,CAAA;IAED,OAAO,CACH,KAAC,YAAY,IACT,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,kBAAkB,EAClC,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAA5B,CAA4B,EAC7C,SAAS,EAAC,6BAA6B,GACzC,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { InputTypes } from \"./SolidVarInputsFilterElement\"\nimport { AutoComplete, AutoCompleteCompleteEvent } from \"primereact/autocomplete\";\nimport { useState } from \"react\";\nimport qs from \"qs\";\n\n\nexport const SolidManyToOneFilterElement = ({ value, updateInputs, index, fieldMetadata }: any) => {\n\n const entityApi = createSolidEntityApi(fieldMetadata.relationCoModelSingularName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n\n const [autoCompleteItems, setAutoCompleteItems] = useState([]);\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n\n // Get the list view layout & metadata first. \n const queryData = {\n offset: 0,\n limit: 10,\n filters: {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n $containsi: event.query\n }\n }\n };\n\n const autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n\n if (autocompleteData) {\n const autoCompleteItems = autocompleteData.records.map((item: any) => {\n return {\n label: item[fieldMetadata?.relationModel?.userKeyField?.name],\n value: item['id']\n }\n });\n setAutoCompleteItems(autoCompleteItems);\n }\n }\n\n return (\n <AutoComplete\n field=\"label\"\n value={value}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={(e) => updateInputs(index, e.value)}\n className=\"solid-standard-autocomplete\"\n />\n )\n}"]}
@@ -1,4 +1,5 @@
1
1
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
2
+ import { InputTypes } from "./SolidVarInputsFilterElement"
2
3
  import { AutoComplete, AutoCompleteCompleteEvent } from "primereact/autocomplete";
3
4
  import { useState } from "react";
4
5
  import qs from "qs";
@@ -55,4 +56,4 @@ export const SolidManyToOneFilterElement = ({ value, updateInputs, index, fieldM
55
56
  className="solid-standard-autocomplete"
56
57
  />
57
58
  )
58
- }
59
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaMultipleKanbanField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAavE,QAAA,MAAM,6BAA6B,oGAAqG,2BAA2B,4CAqIlK,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
1
+ {"version":3,"file":"SolidMediaMultipleKanbanField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAOvE,QAAA,MAAM,6BAA6B,oGAAqG,2BAA2B,4CA+HlK,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
+ import { Dialog } from 'primereact/dialog';
3
4
  import { Document, Page, pdfjs } from "react-pdf";
4
- import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogHeader, SolidDialogTitle, } from "../../../shad-cn-ui";
5
5
  pdfjs.GlobalWorkerOptions.workerSrc = "//unpkg.com/pdfjs-dist@".concat(pdfjs.version, "/build/pdf.worker.min.mjs");
6
6
  var SolidMediaMultipleKanbanField = function (_a) {
7
7
  var _b, _c, _d, _e, _f;
@@ -50,7 +50,7 @@ var SolidMediaMultipleKanbanField = function (_a) {
50
50
  }
51
51
  // **Render Other Files**
52
52
  return (_jsxs("div", { className: 'flex align-items-end gap-2 my-2', children: [_jsx("a", { href: url, download: true, target: "_blank", rel: "noopener noreferrer", children: _jsxs("svg", { width: "36px", height: "36px", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "#722ED1", stroke: "#722ED1", strokeWidth: "0.00024000000000000003", children: [_jsx("g", { id: "SVGRepo_bgCarrier", strokeWidth: "0" }), _jsx("g", { id: "SVGRepo_tracerCarrier", strokeLinecap: "round", strokeLinejoin: "round" }), _jsxs("g", { id: "SVGRepo_iconCarrier", children: [_jsx("path", { d: "M3 23h18V6.709L15.29 1H3zM15 2h.2L20 6.8V7h-5zM4 2h10v6h6v14H4z" }), _jsx("path", { fill: "none", d: "M0 0h24v24H0z" })] })] }) }), _jsxs("a", { href: url, download: true, target: "_blank", rel: "noopener noreferrer", className: 'text-color flex align-items-start gap-2', style: { textDecoration: 'none' }, children: [_jsx("p", { className: "text-sm mb-1", style: { wordWrap: 'break-word', overflowWrap: 'break-word' }, children: fileName }), _jsx("span", { className: 'pi pi-cloud-download' })] })] }, index));
53
- }), _jsxs(SolidDialog, { open: visible, onOpenChange: setVisible, className: "solid-kanban-preview-dialog", children: [_jsxs(SolidDialogHeader, { className: "solid-kanban-preview-dialog-header", children: [_jsx(SolidDialogTitle, { children: "PDF Preview" }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogBody, { className: "solid-kanban-preview-dialog-body", children: selectedPdf && (_jsx(Document, { file: selectedPdf, children: _jsx(Page, { pageNumber: 1 }) })) })] })] }));
53
+ }), _jsx(Dialog, { header: "PDF Preview", visible: visible, style: { width: "" }, onHide: function () { return setVisible(false); }, modal: true, children: selectedPdf && (_jsx(Document, { file: selectedPdf, children: _jsx(Page, { pageNumber: 1 }) })) })] }));
54
54
  };
55
55
  export default SolidMediaMultipleKanbanField;
56
56
  //# sourceMappingURL=SolidMediaMultipleKanbanField.js.map