@solidxai/core-ui 0.1.3 → 0.1.4-beta.0
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/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +0 -5
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +0 -5
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +7 -5
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +10 -8
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +48 -47
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +41 -10
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/FilterComponent.tsx +1 -1
- package/dist/components/core/common/GroupingComponent.d.ts +54 -0
- package/dist/components/core/common/GroupingComponent.d.ts.map +1 -0
- package/dist/components/core/common/GroupingComponent.js +196 -0
- package/dist/components/core/common/GroupingComponent.js.map +1 -0
- package/dist/components/core/common/GroupingComponent.tsx +452 -0
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts +18 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +146 -47
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +191 -18
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +7 -3
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +45 -40
- package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
- package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
- package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
- package/dist/components/core/form/SolidFormFooter.js +4 -4
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +4 -4
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +26 -21
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +27 -17
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +1 -0
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +51 -0
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +51 -0
- package/dist/components/core/kanban/SolidKanbanView.js +5 -5
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +5 -5
- package/dist/components/core/list/SolidListView.d.ts +12 -7
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +138 -150
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +84 -91
- package/dist/components/core/list/listViewRegistry.js.map +1 -1
- package/dist/components/core/list/listViewRegistry.ts +1 -2
- package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
- package/dist/components/core/tree/SolidTreeView.js +1170 -0
- package/dist/components/core/tree/SolidTreeView.js.map +1 -0
- package/dist/components/core/tree/SolidTreeView.tsx +1603 -0
- package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
- package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
- package/dist/components/core/tree/treeViewRegistry.js +17 -0
- package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
- package/dist/components/core/tree/treeViewRegistry.ts +23 -0
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +19 -6
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +39 -0
- package/dist/helpers/helpers.d.ts +2 -0
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/helpers/helpers.js +3 -1
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/helpers.ts +4 -1
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +2 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +6 -1
- package/dist/resources/globals.css +18 -4
- package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.js +1 -1
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +2 -1
- package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
- package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/TreePage.js +37 -0
- package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
- package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +3 -1
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +1 -0
- package/dist/types/index.d.ts +8 -2
- package/dist/types/solid-core.d.ts +40 -0
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import { SolidFilterFieldsParams, getNumberOfInputs } from '../../../../../components/core/filter/SolidFilterFields';
|
|
4
|
+
import { SolidVarInputsFilterElement, InputTypes } from '../../../../../components/core/filter/SolidVarInputsFilterElement';
|
|
5
|
+
import { Dropdown } from 'primereact/dropdown';
|
|
6
|
+
|
|
7
|
+
const SolidRelationOneToManyField = ({
|
|
8
|
+
fieldMetadata,
|
|
9
|
+
onChange,
|
|
10
|
+
index,
|
|
11
|
+
rule,
|
|
12
|
+
}: SolidFilterFieldsParams) => {
|
|
13
|
+
|
|
14
|
+
const filterMatchModeOptions = [
|
|
15
|
+
{ label: 'In', value: '$in' },
|
|
16
|
+
{ label: 'Not In', value: '$notIn' }
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
const noInputOperators = ['$null', '$notNull'];
|
|
20
|
+
const needsInput = !noInputOperators.includes(rule.matchMode);
|
|
21
|
+
const numberOfInputs = needsInput ? getNumberOfInputs(rule.matchMode) : 0;
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<div className="flex flex-column md:flex-row align-items-start gap-2 md:gap-0">
|
|
25
|
+
{/* Operator */}
|
|
26
|
+
<div className="col-12 md:col-6 px-0 md:pr-2 md:pl-0">
|
|
27
|
+
<Dropdown
|
|
28
|
+
value={rule.matchMode}
|
|
29
|
+
onChange={(e) => {
|
|
30
|
+
onChange(rule.id, 'matchMode', e.value);
|
|
31
|
+
// Clear value if switching to no-input operator
|
|
32
|
+
if (noInputOperators.includes(e.value)) {
|
|
33
|
+
onChange(rule.id, 'value', []);
|
|
34
|
+
}
|
|
35
|
+
}}
|
|
36
|
+
options={filterMatchModeOptions}
|
|
37
|
+
optionLabel="label"
|
|
38
|
+
optionValue="value"
|
|
39
|
+
placeholder="Select Operator"
|
|
40
|
+
className="p-inputtext-sm w-full"
|
|
41
|
+
/>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
{/* MultiSelect input */}
|
|
45
|
+
<div className="flex flex-column gap-2 col-12 md:col-6 px-0 md:pl-2 md:pr-0">
|
|
46
|
+
<SolidVarInputsFilterElement
|
|
47
|
+
values={rule.value}
|
|
48
|
+
onChange={(value: any) => {
|
|
49
|
+
onChange(index, 'value', value);
|
|
50
|
+
}}
|
|
51
|
+
numberOfInputs={numberOfInputs}
|
|
52
|
+
inputType={InputTypes.RelationOneToMany}
|
|
53
|
+
fieldMetadata={fieldMetadata}
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default SolidRelationOneToManyField;
|
|
@@ -49,7 +49,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
49
49
|
import { useLazyNavigationQuery } from "../../../redux/api/modelApi";
|
|
50
50
|
import { useEffect, useState } from "react";
|
|
51
51
|
import qs from "qs";
|
|
52
|
-
import {
|
|
52
|
+
import { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from "../list/SolidListView";
|
|
53
53
|
import { usePathname } from "../../../hooks/usePathname";
|
|
54
54
|
import { useSearchParams } from "../../../hooks/useSearchParams";
|
|
55
55
|
import { useRouter } from "../../../hooks/useRouter";
|
|
@@ -68,9 +68,9 @@ export var SolidFormFooter = function (_a) {
|
|
|
68
68
|
// -----------------------------
|
|
69
69
|
var updatePaginationInLocalStorage = function (offset, limit) {
|
|
70
70
|
var listPath = window.location.pathname.replace(/\/form\/[^/]+/, "/list");
|
|
71
|
-
var queryObject =
|
|
71
|
+
var queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
|
|
72
72
|
var updatedQueryObj = __assign(__assign({}, queryObject), { offset: offset, limit: limit });
|
|
73
|
-
|
|
73
|
+
setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj);
|
|
74
74
|
};
|
|
75
75
|
var getNewUrl = function (recordId) {
|
|
76
76
|
// Replace the id after /form/
|
|
@@ -111,7 +111,7 @@ export var SolidFormFooter = function (_a) {
|
|
|
111
111
|
switch (_g.label) {
|
|
112
112
|
case 0:
|
|
113
113
|
listPath = window.location.pathname.replace(/\/form\/[^/]+/, "/list");
|
|
114
|
-
queryObject =
|
|
114
|
+
queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
|
|
115
115
|
queryData = {
|
|
116
116
|
offset: queryObject.offset || 0,
|
|
117
117
|
limit: queryObject.limit || 25,
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAY3C,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,CAAC;QAEnE,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,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;4BAE7D,SAAS,GAAG;gCACd,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC;gCAC/B,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;gCAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;gCAC5B,MAAM,EAAE,CAAC,IAAI,CAAC;gCACd,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,QAAQ,EAAE,MAAM,CAAC,EAAE;gCACnB,IAAI,EAAE,WAAW,CAAC,IAAI;6BACzB,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,CAAC,CAAC,CAAC;IAEhB,gCAAgC;IAChC,KAAK;IACL,gCAAgC;IAChC,OAAO,CACH,eACI,SAAS,EAAC,uDAAuD,EACjE,KAAK,EAAE,EAAE,SAAS,EAAE,iCAAiC,EAAE,aACzD,IAAI;gBACF,yBAAO,UAAG,IAAI,CAAC,kBAAkB,iBAAO,IAAI,CAAC,YAAY,CAAE,GAAQ,EAElE,OAAO,IAAI,CACR,KAAC,MAAM,IACH,IAAI,EAAC,kBAAkB,EACvB,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,EAC3B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAC,UAAU,EAClB,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GACrC,CACL,EAEA,OAAO,IAAI,CACR,KAAC,MAAM,IACH,IAAI,EAAC,mBAAmB,EACxB,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,EAC3B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAC,MAAM,EACd,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GACrC,CACL,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 { Button } from \"primereact/button\";\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.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\n const queryData = {\n offset: queryObject.offset || 0,\n limit: queryObject.limit || 25,\n filters: queryObject.filters,\n fields: [\"id\"],\n modelName: params.modelName,\n recordId: params.id,\n sort: queryObject.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]);\n\n // -----------------------------\n // UI\n // -----------------------------\n return (\n <div\n className=\"flex justify-content-end align-items-center gap-2 p-1\"\n style={{ borderTop: \"1px solid var(--surface-border)\" }}\n >{meta &&\n <span>{`${meta.currentIndexGlobal} of ${meta.totalRecords}`}</span>\n }\n {prevNav && (\n <Button\n icon=\"pi pi-angle-left\"\n className=\"p-button-sm p-button-text\"\n onClick={() => handlePrev()}\n disabled={isLoading}\n tooltip=\"Previous\"\n tooltipOptions={{ position: \"top\" }}\n />\n )}\n\n {nextNav && (\n <Button\n icon=\"pi pi-angle-right\"\n className=\"p-button-sm p-button-text\"\n onClick={() => handleNext()}\n disabled={isLoading}\n tooltip=\"Next\"\n tooltipOptions={{ position: \"top\" }}\n />\n )}\n </div>\n );\n};\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useLazyNavigationQuery } from "../../../redux/api/modelApi";
|
|
4
4
|
import { useEffect, useState } from "react";
|
|
5
5
|
import qs from "qs";
|
|
6
|
-
import {
|
|
6
|
+
import { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from "../list/SolidListView";
|
|
7
7
|
import { SolidFormViewProps } from "./SolidFormView";
|
|
8
8
|
import { usePathname } from "../../../hooks/usePathname";
|
|
9
9
|
import { useSearchParams } from "../../../hooks/useSearchParams";
|
|
@@ -40,14 +40,14 @@ export const SolidFormFooter = ({ params }: SolidFormFooterProps) => {
|
|
|
40
40
|
/\/form\/[^/]+/,
|
|
41
41
|
"/list",
|
|
42
42
|
);
|
|
43
|
-
const queryObject =
|
|
43
|
+
const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
|
|
44
44
|
|
|
45
45
|
const updatedQueryObj = {
|
|
46
46
|
...queryObject,
|
|
47
47
|
offset,
|
|
48
48
|
limit,
|
|
49
49
|
};
|
|
50
|
-
|
|
50
|
+
setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj)
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
const getNewUrl = (recordId: number): string => {
|
|
@@ -100,7 +100,7 @@ export const SolidFormFooter = ({ params }: SolidFormFooterProps) => {
|
|
|
100
100
|
"/list",
|
|
101
101
|
);
|
|
102
102
|
|
|
103
|
-
const queryObject =
|
|
103
|
+
const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
|
|
104
104
|
|
|
105
105
|
const queryData = {
|
|
106
106
|
offset: queryObject.offset || 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidBooleanField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidBooleanField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAKzE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAY3E,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAKnD,YAAY,IAAI,GAAG;IAoBnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IA8B9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAyC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAID,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAuF/F,CAAA;AAED,eAAO,MAAM,uCAAuC,6BAA8B,yBAAyB,
|
|
1
|
+
{"version":3,"file":"SolidBooleanField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidBooleanField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAKzE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAY3E,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAKnD,YAAY,IAAI,GAAG;IAoBnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IA8B9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAyC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAID,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAuF/F,CAAA;AAED,eAAO,MAAM,uCAAuC,6BAA8B,yBAAyB,4CAwF1G,CAAA;AAED,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CA2FxG,CAAA;AAED,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CA0C/F,CAAA"}
|
|
@@ -103,7 +103,7 @@ var SolidBooleanField = /** @class */ (function () {
|
|
|
103
103
|
var fieldLayoutInfo = this.fieldContext.field;
|
|
104
104
|
var fieldLabel = (_a = fieldLayoutInfo.attrs.label) !== null && _a !== void 0 ? _a : fieldMetadata.displayName;
|
|
105
105
|
var className = ((_b = fieldLayoutInfo.attrs) === null || _b === void 0 ? void 0 : _b.className) || 'field col-12';
|
|
106
|
-
useEffect(
|
|
106
|
+
//useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false") }, [])
|
|
107
107
|
var isFormFieldValid = function (formik, fieldName) { return formik.touched[fieldName] && formik.errors[fieldName]; };
|
|
108
108
|
var viewWidget = fieldLayoutInfo.attrs.viewWidget;
|
|
109
109
|
var editWidget = fieldLayoutInfo.attrs.editWidget;
|
|
@@ -196,12 +196,12 @@ export var SolidBooleanCheckboxStyleFormEditWidget = function (_a) {
|
|
|
196
196
|
var checkboxLabel = (_e = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _e === void 0 ? void 0 : _e.checkboxLabel;
|
|
197
197
|
var readOnlyPermission = fieldContext.readOnly;
|
|
198
198
|
// Set default value to false on mount
|
|
199
|
-
useEffect(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}, []);
|
|
199
|
+
// useEffect(() => {
|
|
200
|
+
// if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {
|
|
201
|
+
// console.log("Setting default value:", false);
|
|
202
|
+
// //formik.setFieldValue(fieldLayoutInfo.attrs.name, false);
|
|
203
|
+
// }
|
|
204
|
+
// }, []);
|
|
205
205
|
var handleChange = function (e) {
|
|
206
206
|
var _a;
|
|
207
207
|
var newValue = e.checked; // This returns `true` or `false`
|
|
@@ -222,7 +222,10 @@ export var SolidBooleanCheckboxStyleFormEditWidget = function (_a) {
|
|
|
222
222
|
var formReadonly = (_o = (_m = (_l = solidFormViewMetaData.data.solidView) === null || _l === void 0 ? void 0 : _l.layout) === null || _m === void 0 ? void 0 : _m.attrs) === null || _o === void 0 ? void 0 : _o.readonly;
|
|
223
223
|
return (_jsx("div", { className: className, children: _jsxs("div", { className: "relative", children: [_jsxs("div", { className: "flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4", children: [showFieldLabel !== false && (_jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "form-field-label font-medium", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] })), _jsxs("div", { className: "flex align-items-center", children: [_jsx(Checkbox, { id: fieldLayoutInfo.attrs.name, checked: formik.values[fieldLayoutInfo.attrs.name] === true,
|
|
224
224
|
// onChange={handleChange}
|
|
225
|
-
onChange: function (e) {
|
|
225
|
+
onChange: function (e) {
|
|
226
|
+
var normalizedEvent = __assign(__assign({}, e), { target: __assign(__assign({}, e.target), { name: fieldLayoutInfo.attrs.name, value: e.checked, checked: e.checked, type: 'checkbox' }) });
|
|
227
|
+
fieldContext.onChange(normalizedEvent, 'onFieldChange');
|
|
228
|
+
}, disabled: formDisabled || fieldDisabled, readOnly: formReadonly || fieldReadonly || readOnlyPermission, className: classNames("", {
|
|
226
229
|
"p-invalid": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),
|
|
227
230
|
}) }), checkboxLabel &&
|
|
228
231
|
_jsx("span", { className: "ml-2", children: checkboxLabel || "Yes" })] })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(Message, { severity: "error", text: (_p = formik.errors[fieldLayoutInfo.attrs.name]) === null || _p === void 0 ? void 0 : _p.toString() }) }))] }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidBooleanField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidBooleanField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { Message } from \"primereact/message\";\nimport { SelectButton } from \"primereact/selectbutton\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { Checkbox, CheckboxChangeEvent } from \"primereact/checkbox\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { InputSwitch } from \"primereact/inputswitch\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\n\ntype BooleanOption = {\n label: string;\n value: string;\n};\n\n\nexport class SolidBooleanField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n formData.append(fieldLayoutInfo.attrs.name, value === \"true\" || value === true ? \"true\" : \"\");\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n\n const existingValue = this.fieldContext.data[fieldName];\n\n // return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';\n\n // Ensure the value is always a string \"true\" or \"false\"\n // const result = existingValue\n // ? (existingValue === true || existingValue === \"true\" ? \"true\" : \"false\")\n // : (fieldDefaultValue === true || fieldDefaultValue === \"true\" ? \"true\" : \"false\");\n // return result;\n\n if (existingValue !== undefined && existingValue !== null) {\n return existingValue === true || existingValue === \"true\";\n }\n return fieldDefaultValue === true || fieldDefaultValue === \"true\";\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.BooleanSchema<boolean | null | undefined> = Yup.boolean();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n if (fieldMetadata.required) {\n schema = schema.required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // // 2. length (min/max)\n // if (fieldMetadata.min && fieldMetadata.min > 0) {\n // schema = schema.min(fieldMetadata.min, `${fieldLabel} should be at-least ${fieldMetadata.min} characters long.`);\n // }\n // if (fieldMetadata.max && fieldMetadata.max > 0) {\n // schema = schema.max(fieldMetadata.max, `${fieldLabel} should not be more than ${fieldMetadata.max} characters long.`);\n // }\n // 3. regular expression\n //*********Regex doesnt make sense in boolean right? */\n // if (fieldMetadata.regexPattern) {\n // const regexPatternNotMatchingErrorMsg = fieldMetadata.regexPatternNotMatchingErrorMsg ?? `${fieldLabel} has invalid data.`\n // schema = schema.matches(fieldMetadata.regexPattern, regexPatternNotMatchingErrorMsg);\n // }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'booleanCheckbox';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultBooleanFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" &&\n (\n <>\n {\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n\n\n}\n\n\n\nexport const DefaultBooleanFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const trueLabel = fieldLayoutInfo?.attrs?.trueLabel;\n const falseLabel = fieldLayoutInfo?.attrs?.falseLabel;\n const readOnlyPermission = fieldContext.readOnly;\n // const [booleanOptions, setBooleanOptions] = useState<string[]>([\"false\", \"true\"]);\n const [booleanOptions, setBooleanOptions] = useState<BooleanOption[]>([\n { label: \"False\", value: \"false\" },\n { label: \"True\", value: \"true\" },\n ]);\n\n // let booleanOptions = [\"false\", \"true\"];\n useEffect(() => {\n if (trueLabel || falseLabel) {\n setBooleanOptions([\n {\n label: falseLabel ?? \"False\",\n value: \"false\",\n },\n {\n label: trueLabel ?? \"True\",\n value: \"true\",\n },\n ]);\n }\n }, [trueLabel, falseLabel]);\n\n // useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n useEffect(() => {\n const name = fieldLayoutInfo.attrs.name;\n if (formik.values[name] === undefined || formik.values[name] === null) {\n formik.setFieldValue(name, \"false\");\n }\n }, []);\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n {/* {fieldDescription && <span className=\"form_field_help\">({fieldDescription}) </span>} */}\n </label>\n }\n {/* <InputText\n id={fieldLayoutInfo.attrs.name}\n className=\"small-input\"\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={formik.handleChange}\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n /> */}\n <SelectButton\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n optionLabel=\"label\"\n optionValue=\"value\"\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e) => { formik.setFieldValue(fieldLayoutInfo.attrs.name, e.value); console.log(\"value is\", e.value) }} // Custom handling for boolean input\n value={formik.values[fieldLayoutInfo.attrs.name] ? formik.values[fieldLayoutInfo.attrs.name].toString() : \"false\"}\n options={booleanOptions}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\nexport const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || \"field col-12\";\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const checkboxLabel = fieldLayoutInfo?.attrs?.checkboxLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n // Set default value to false on mount\n useEffect(() => {\n if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {\n console.log(\"Setting default value:\", false);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, false);\n }\n }, []);\n\n const handleChange = (e: CheckboxChangeEvent) => {\n const newValue = e.checked; // This returns `true` or `false`\n console.log(`${fieldLayoutInfo.attrs.name}, new value:`, newValue);\n\n formik.setFieldValue(fieldLayoutInfo.attrs.name, newValue === true ? 'true' : 'false');\n formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }); // Ensure Formik registers the change\n // ✅ Check if Formik updated the value correctly\n setTimeout(() => {\n console.log(\"Formik values after update:\", formik.values);\n }, 0);\n };\n\n const isFormFieldValid = (formik: any, fieldName: any) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className={className}>\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"flex align-items-center\">\n <Checkbox\n id={fieldLayoutInfo.attrs.name}\n checked={formik.values[fieldLayoutInfo.attrs.name] === true}\n // onChange={handleChange}\n onChange={(e) => fieldContext.onChange(e, 'onFieldChange')}\n disabled={formDisabled || fieldDisabled}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),\n })}\n />\n {checkboxLabel &&\n <span className=\"ml-2\">{checkboxLabel || \"Yes\"}</span>\n }\n </div>\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const SolidBooleanSwitchStyleFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || \"field col-12\";\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n // Set default value to false on mount\n useEffect(() => {\n if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {\n console.log(\"Setting default value:\", false);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, false);\n }\n }, []);\n\n const handleChange = (e: any) => {\n const newValue = e.value;\n console.log(`${fieldLayoutInfo.attrs.name} switch clicked, new value:`, newValue);\n\n // formik.setFieldValue(fieldLayoutInfo.attrs.name, newValue === true ? true : false);\n // formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }); // Ensure Formik registers the change\n // // ✅ Check if Formik updated the value correctly\n // setTimeout(() => {\n // console.log(\"Formik values after update:\", formik.values);\n // }, 0);\n\n // 1: BYPASS Formik's validation by directly mutating the values object\n // This is necessary because the validation schema was rejecting boolean values\n // Direct assignment skips all validation logic that was causing the issue\n formik.values[fieldLayoutInfo.attrs.name] = newValue;\n\n // 2: Force Formik to recognize the change and trigger re-renders\n // setValues() with the second parameter as 'false' means:\n // - false = skip validation (avoid the schema conflict)\n // - This triggers Formik's internal change detection and component re-renders\n formik.setValues({ ...formik.values }, false);\n\n // 3: Mark the field as \"touched\" to indicate user interaction\n // This is important for validation state and form submission logic\n // The 'false' parameter means don't validate immediately\n formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }, false);\n fieldContext.onChange(e, 'onFieldChange');\n };\n\n const isFormFieldValid = (formik: any, fieldName: any) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className={className}>\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"flex align-items-center\">\n <InputSwitch\n id={fieldLayoutInfo.attrs.name}\n name={fieldLayoutInfo.attrs.name}\n checked={formik.values[fieldLayoutInfo.attrs.name] === true || formik.values[fieldLayoutInfo.attrs.name] === \"true\"}\n onChange={handleChange}\n // onChange={(e) => {fieldContext.onChange(e, 'onFieldChange')}\n disabled={formDisabled || fieldDisabled}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),\n })}\n />\n <span className=\"ml-2\">{fieldLabel || \"Yes\"}</span>\n </div>\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const DefaultBooleanFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n // const trueLabel = fieldLayoutInfo?.attrs?.trueLabel;\n // const falseLabel = fieldLayoutInfo?.attrs?.falseLabel;\n\n const [trueLabel, setTrueLabel] = useState<string>(\"true\");\n const [falseLabel, setFalseLabel] = useState<string>(\"false\");\n\n useEffect(() => {\n if (fieldLayoutInfo?.attrs?.trueLabel) {\n setTrueLabel(fieldLayoutInfo?.attrs?.trueLabel)\n }\n if (fieldLayoutInfo?.attrs?.falseLabel) {\n setFalseLabel(fieldLayoutInfo?.attrs?.falseLabel)\n }\n }, [fieldLayoutInfo?.attrs?.falseLabel, fieldLayoutInfo?.attrs?.trueLabel])\n\n\n return (\n <div className=\"mt-2 flex-column gap-2\">\n {showFieldLabel !== false && (\n <p className=\"m-0 form-field-label font-medium\">{fieldLabel}</p>\n )}\n <p className=\"m-0\">\n {(() => {\n const value = formik.values[fieldLayoutInfo.attrs.name];\n if (value === true) {\n return trueLabel;\n }\n if (value === false) {\n return falseLabel;\n }\n return '';\n })()}\n </p>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidBooleanField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidBooleanField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { Message } from \"primereact/message\";\nimport { SelectButton } from \"primereact/selectbutton\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { Checkbox, CheckboxChangeEvent } from \"primereact/checkbox\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { InputSwitch } from \"primereact/inputswitch\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\n\ntype BooleanOption = {\n label: string;\n value: string;\n};\n\n\nexport class SolidBooleanField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n formData.append(fieldLayoutInfo.attrs.name, value === \"true\" || value === true ? \"true\" : \"\");\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n\n const existingValue = this.fieldContext.data[fieldName];\n\n // return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';\n\n // Ensure the value is always a string \"true\" or \"false\"\n // const result = existingValue\n // ? (existingValue === true || existingValue === \"true\" ? \"true\" : \"false\")\n // : (fieldDefaultValue === true || fieldDefaultValue === \"true\" ? \"true\" : \"false\");\n // return result;\n\n if (existingValue !== undefined && existingValue !== null) {\n return existingValue === true || existingValue === \"true\";\n }\n return fieldDefaultValue === true || fieldDefaultValue === \"true\";\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.BooleanSchema<boolean | null | undefined> = Yup.boolean();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n if (fieldMetadata.required) {\n schema = schema.required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // // 2. length (min/max)\n // if (fieldMetadata.min && fieldMetadata.min > 0) {\n // schema = schema.min(fieldMetadata.min, `${fieldLabel} should be at-least ${fieldMetadata.min} characters long.`);\n // }\n // if (fieldMetadata.max && fieldMetadata.max > 0) {\n // schema = schema.max(fieldMetadata.max, `${fieldLabel} should not be more than ${fieldMetadata.max} characters long.`);\n // }\n // 3. regular expression\n //*********Regex doesnt make sense in boolean right? */\n // if (fieldMetadata.regexPattern) {\n // const regexPatternNotMatchingErrorMsg = fieldMetadata.regexPatternNotMatchingErrorMsg ?? `${fieldLabel} has invalid data.`\n // schema = schema.matches(fieldMetadata.regexPattern, regexPatternNotMatchingErrorMsg);\n // }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n //useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'booleanCheckbox';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultBooleanFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" &&\n (\n <>\n {\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n\n\n}\n\n\n\nexport const DefaultBooleanFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const trueLabel = fieldLayoutInfo?.attrs?.trueLabel;\n const falseLabel = fieldLayoutInfo?.attrs?.falseLabel;\n const readOnlyPermission = fieldContext.readOnly;\n // const [booleanOptions, setBooleanOptions] = useState<string[]>([\"false\", \"true\"]);\n const [booleanOptions, setBooleanOptions] = useState<BooleanOption[]>([\n { label: \"False\", value: \"false\" },\n { label: \"True\", value: \"true\" },\n ]);\n\n // let booleanOptions = [\"false\", \"true\"];\n useEffect(() => {\n if (trueLabel || falseLabel) {\n setBooleanOptions([\n {\n label: falseLabel ?? \"False\",\n value: \"false\",\n },\n {\n label: trueLabel ?? \"True\",\n value: \"true\",\n },\n ]);\n }\n }, [trueLabel, falseLabel]);\n\n // useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n useEffect(() => {\n const name = fieldLayoutInfo.attrs.name;\n if (formik.values[name] === undefined || formik.values[name] === null) {\n formik.setFieldValue(name, \"false\");\n }\n }, []);\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n {/* {fieldDescription && <span className=\"form_field_help\">({fieldDescription}) </span>} */}\n </label>\n }\n {/* <InputText\n id={fieldLayoutInfo.attrs.name}\n className=\"small-input\"\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={formik.handleChange}\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n /> */}\n <SelectButton\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n optionLabel=\"label\"\n optionValue=\"value\"\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e) => { formik.setFieldValue(fieldLayoutInfo.attrs.name, e.value); console.log(\"value is\", e.value) }} // Custom handling for boolean input\n value={formik.values[fieldLayoutInfo.attrs.name] ? formik.values[fieldLayoutInfo.attrs.name].toString() : \"false\"}\n options={booleanOptions}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\nexport const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || \"field col-12\";\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const checkboxLabel = fieldLayoutInfo?.attrs?.checkboxLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n // Set default value to false on mount\n // useEffect(() => {\n // if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {\n // console.log(\"Setting default value:\", false);\n // //formik.setFieldValue(fieldLayoutInfo.attrs.name, false);\n // }\n // }, []);\n\n const handleChange = (e: CheckboxChangeEvent) => {\n const newValue = e.checked; // This returns `true` or `false`\n console.log(`${fieldLayoutInfo.attrs.name}, new value:`, newValue);\n\n formik.setFieldValue(fieldLayoutInfo.attrs.name, newValue === true ? 'true' : 'false');\n formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }); // Ensure Formik registers the change\n // ✅ Check if Formik updated the value correctly\n setTimeout(() => {\n console.log(\"Formik values after update:\", formik.values);\n }, 0);\n };\n\n const isFormFieldValid = (formik: any, fieldName: any) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className={className}>\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"flex align-items-center\">\n <Checkbox\n id={fieldLayoutInfo.attrs.name}\n checked={formik.values[fieldLayoutInfo.attrs.name] === true}\n // onChange={handleChange}\n onChange={(e) => {\n const normalizedEvent = {\n ...e,\n target: {\n ...e.target,\n name: fieldLayoutInfo.attrs.name,\n value: e.checked,\n checked: e.checked,\n type: 'checkbox'\n }\n };\n fieldContext.onChange(normalizedEvent, 'onFieldChange')\n }}\n disabled={formDisabled || fieldDisabled}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),\n })}\n />\n {checkboxLabel &&\n <span className=\"ml-2\">{checkboxLabel || \"Yes\"}</span>\n }\n </div>\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const SolidBooleanSwitchStyleFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || \"field col-12\";\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n // Set default value to false on mount\n useEffect(() => {\n if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {\n console.log(\"Setting default value:\", false);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, false);\n }\n }, []);\n\n const handleChange = (e: any) => {\n const newValue = e.value;\n console.log(`${fieldLayoutInfo.attrs.name} switch clicked, new value:`, newValue);\n\n // formik.setFieldValue(fieldLayoutInfo.attrs.name, newValue === true ? true : false);\n // formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }); // Ensure Formik registers the change\n // // ✅ Check if Formik updated the value correctly\n // setTimeout(() => {\n // console.log(\"Formik values after update:\", formik.values);\n // }, 0);\n\n // 1: BYPASS Formik's validation by directly mutating the values object\n // This is necessary because the validation schema was rejecting boolean values\n // Direct assignment skips all validation logic that was causing the issue\n formik.values[fieldLayoutInfo.attrs.name] = newValue;\n\n // 2: Force Formik to recognize the change and trigger re-renders\n // setValues() with the second parameter as 'false' means:\n // - false = skip validation (avoid the schema conflict)\n // - This triggers Formik's internal change detection and component re-renders\n formik.setValues({ ...formik.values }, false);\n\n // 3: Mark the field as \"touched\" to indicate user interaction\n // This is important for validation state and form submission logic\n // The 'false' parameter means don't validate immediately\n formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }, false);\n fieldContext.onChange(e, 'onFieldChange');\n };\n\n const isFormFieldValid = (formik: any, fieldName: any) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className={className}>\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"flex align-items-center\">\n <InputSwitch\n id={fieldLayoutInfo.attrs.name}\n name={fieldLayoutInfo.attrs.name}\n checked={formik.values[fieldLayoutInfo.attrs.name] === true || formik.values[fieldLayoutInfo.attrs.name] === \"true\"}\n onChange={handleChange}\n // onChange={(e) => {fieldContext.onChange(e, 'onFieldChange')}\n disabled={formDisabled || fieldDisabled}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),\n })}\n />\n <span className=\"ml-2\">{fieldLabel || \"Yes\"}</span>\n </div>\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const DefaultBooleanFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n // const trueLabel = fieldLayoutInfo?.attrs?.trueLabel;\n // const falseLabel = fieldLayoutInfo?.attrs?.falseLabel;\n\n const [trueLabel, setTrueLabel] = useState<string>(\"true\");\n const [falseLabel, setFalseLabel] = useState<string>(\"false\");\n\n useEffect(() => {\n if (fieldLayoutInfo?.attrs?.trueLabel) {\n setTrueLabel(fieldLayoutInfo?.attrs?.trueLabel)\n }\n if (fieldLayoutInfo?.attrs?.falseLabel) {\n setFalseLabel(fieldLayoutInfo?.attrs?.falseLabel)\n }\n }, [fieldLayoutInfo?.attrs?.falseLabel, fieldLayoutInfo?.attrs?.trueLabel])\n\n\n return (\n <div className=\"mt-2 flex-column gap-2\">\n {showFieldLabel !== false && (\n <p className=\"m-0 form-field-label font-medium\">{fieldLabel}</p>\n )}\n <p className=\"m-0\">\n {(() => {\n const value = formik.values[fieldLayoutInfo.attrs.name];\n if (value === true) {\n return trueLabel;\n }\n if (value === false) {\n return falseLabel;\n }\n return '';\n })()}\n </p>\n </div>\n );\n}\n"]}
|
|
@@ -87,7 +87,7 @@ export class SolidBooleanField implements ISolidField {
|
|
|
87
87
|
const fieldLayoutInfo = this.fieldContext.field;
|
|
88
88
|
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
89
89
|
const className = fieldLayoutInfo.attrs?.className || 'field col-12';
|
|
90
|
-
useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false") }, [])
|
|
90
|
+
//useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false") }, [])
|
|
91
91
|
|
|
92
92
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
93
93
|
|
|
@@ -240,12 +240,12 @@ export const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext }
|
|
|
240
240
|
const readOnlyPermission = fieldContext.readOnly;
|
|
241
241
|
|
|
242
242
|
// Set default value to false on mount
|
|
243
|
-
useEffect(() => {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
}, []);
|
|
243
|
+
// useEffect(() => {
|
|
244
|
+
// if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {
|
|
245
|
+
// console.log("Setting default value:", false);
|
|
246
|
+
// //formik.setFieldValue(fieldLayoutInfo.attrs.name, false);
|
|
247
|
+
// }
|
|
248
|
+
// }, []);
|
|
249
249
|
|
|
250
250
|
const handleChange = (e: CheckboxChangeEvent) => {
|
|
251
251
|
const newValue = e.checked; // This returns `true` or `false`
|
|
@@ -284,7 +284,19 @@ export const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext }
|
|
|
284
284
|
id={fieldLayoutInfo.attrs.name}
|
|
285
285
|
checked={formik.values[fieldLayoutInfo.attrs.name] === true}
|
|
286
286
|
// onChange={handleChange}
|
|
287
|
-
onChange={(e) =>
|
|
287
|
+
onChange={(e) => {
|
|
288
|
+
const normalizedEvent = {
|
|
289
|
+
...e,
|
|
290
|
+
target: {
|
|
291
|
+
...e.target,
|
|
292
|
+
name: fieldLayoutInfo.attrs.name,
|
|
293
|
+
value: e.checked,
|
|
294
|
+
checked: e.checked,
|
|
295
|
+
type: 'checkbox'
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
fieldContext.onChange(normalizedEvent, 'onFieldChange')
|
|
299
|
+
}}
|
|
288
300
|
disabled={formDisabled || fieldDisabled}
|
|
289
301
|
readOnly={formReadonly || fieldReadonly || readOnlyPermission}
|
|
290
302
|
className={classNames("", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidRelationManyToManyField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAgB5E,qBAAa,4BAA6B,YAAW,WAAW;IAE5D,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,YAAY,IAAI,GAAG;IAkBnB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAgCnD,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAiB9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAID,eAAO,MAAM,mDAAmD,6BAA8B,yBAAyB,
|
|
1
|
+
{"version":3,"file":"SolidRelationManyToManyField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAgB5E,qBAAa,4BAA6B,YAAW,WAAW;IAE5D,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,YAAY,IAAI,GAAG;IAkBnB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAgCnD,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAiB9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAID,eAAO,MAAM,mDAAmD,6BAA8B,yBAAyB,4CAwJtH,CAAA;AAID,eAAO,MAAM,+CAA+C,6BAA8B,yBAAyB,4CA2JlH,CAAA"}
|
|
@@ -86,20 +86,19 @@ var SolidRelationManyToManyField = /** @class */ (function () {
|
|
|
86
86
|
configurable: true,
|
|
87
87
|
writable: true,
|
|
88
88
|
value: function () {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
89
|
+
// const manyToManyFieldData = this.fieldContext.data[this.fieldContext.field.attrs.name];
|
|
90
|
+
// const fieldMetadata = this.fieldContext.fieldMetadata;
|
|
91
|
+
// const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;
|
|
92
|
+
// if (manyToManyFieldData) {
|
|
93
|
+
// return manyToManyFieldData.map((e: any) => {
|
|
94
|
+
// const manyToManyColVal = e[userKeyField] || '';
|
|
95
|
+
// return {
|
|
96
|
+
// label: manyToManyColVal,
|
|
97
|
+
// value: e?.id || '',
|
|
98
|
+
// original: e
|
|
99
|
+
// };
|
|
100
|
+
// });
|
|
101
|
+
// }
|
|
103
102
|
return [];
|
|
104
103
|
}
|
|
105
104
|
});
|
|
@@ -193,7 +192,7 @@ var SolidRelationManyToManyField = /** @class */ (function () {
|
|
|
193
192
|
}());
|
|
194
193
|
export { SolidRelationManyToManyField };
|
|
195
194
|
export var DefaultRelationManyToManyAutoCompleteFormEditWidget = function (_a) {
|
|
196
|
-
var _b, _c, _d, _e, _f, _g;
|
|
195
|
+
var _b, _c, _d, _e, _f, _g, _h;
|
|
197
196
|
var formik = _a.formik, fieldContext = _a.fieldContext;
|
|
198
197
|
var fieldMetadata = fieldContext.fieldMetadata;
|
|
199
198
|
var fieldLayoutInfo = fieldContext.field;
|
|
@@ -204,12 +203,15 @@ export var DefaultRelationManyToManyAutoCompleteFormEditWidget = function (_a) {
|
|
|
204
203
|
var disabled = (_e = fieldLayoutInfo.attrs) === null || _e === void 0 ? void 0 : _e.disabled;
|
|
205
204
|
var readOnly = (_f = fieldLayoutInfo.attrs) === null || _f === void 0 ? void 0 : _f.readOnly;
|
|
206
205
|
var whereClause = fieldLayoutInfo.attrs.whereClause;
|
|
207
|
-
var
|
|
208
|
-
var
|
|
206
|
+
var _j = useState(false), visibleCreateDialog = _j[0], setVisibleCreateDialog = _j[1];
|
|
207
|
+
var _k = useRelationEntityHandler({ fieldContext: fieldContext, formik: formik }), autoCompleteItems = _k.autoCompleteItems, fetchRelationEntities = _k.fetchRelationEntities, populateFormikWithRelatedEntities = _k.populateFormikWithRelatedEntities, addNewRelation = _k.addNewRelation;
|
|
209
208
|
var isFormFieldValid = function (formik, fieldName) { return formik.touched[fieldName] && formik.errors[fieldName]; };
|
|
210
209
|
// const onChange = (e: any) => {
|
|
211
210
|
// formik.setFieldValue(fieldContext.field.attrs.name, e.value);
|
|
212
211
|
// };
|
|
212
|
+
useEffect(function () {
|
|
213
|
+
populateFormikWithRelatedEntities();
|
|
214
|
+
}, [(_g = formik.values) === null || _g === void 0 ? void 0 : _g.id]);
|
|
213
215
|
var autoCompleteSearch = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
214
216
|
var queryData, fixedFilterToBeApplied, fixedFilterParsed, convertedFixedFilter, fixedFilterTemplate, renderedFilter, parsedFilter_1, isValid, autocompleteQs;
|
|
215
217
|
var _a, _b;
|
|
@@ -282,17 +284,20 @@ export var DefaultRelationManyToManyAutoCompleteFormEditWidget = function (_a) {
|
|
|
282
284
|
});
|
|
283
285
|
}); };
|
|
284
286
|
return (_jsxs("div", { className: "relative", children: [_jsxs("div", { className: "flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4", children: [showFieldLabel != false &&
|
|
285
|
-
_jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "form-field-label", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(AutoComplete, __assign({ readOnly: readOnly || readOnlyPermission, disabled: disabled || readOnlyPermission, multiple: true }, formik.getFieldProps(fieldLayoutInfo.attrs.name), { id: fieldLayoutInfo.attrs.name, field: "label", value: formik.values[fieldLayoutInfo.attrs.name] || '', dropdown: !readOnlyPermission, suggestions: autoCompleteItems, completeMethod: autoCompleteSearch, onChange: function (e) { return fieldContext.onChange(e, 'onFieldChange'); }, className: "solid-standard-autocomplete w-full" })), fieldContext.field.attrs.inlineCreate && (_jsxs(_Fragment, { children: [_jsx("div", { children: _jsx(Button, { icon: "pi pi-plus", rounded: true, outlined: true, "aria-label": "Filter", type: "button", size: "small", onClick: function () { return setVisibleCreateDialog(true); }, className: "custom-add-button" }) }), _jsx(InlineRelationEntityDialog, { visible: visibleCreateDialog, setVisible: setVisibleCreateDialog, fieldContext: fieldContext, onCreate: addNewRelation })] }))] })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(Message, { severity: "error", text: (
|
|
287
|
+
_jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "form-field-label", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(AutoComplete, __assign({ readOnly: readOnly || readOnlyPermission, disabled: disabled || readOnlyPermission, multiple: true }, formik.getFieldProps(fieldLayoutInfo.attrs.name), { id: fieldLayoutInfo.attrs.name, field: "label", value: formik.values[fieldLayoutInfo.attrs.name] || '', dropdown: !readOnlyPermission, suggestions: autoCompleteItems, completeMethod: autoCompleteSearch, onChange: function (e) { return fieldContext.onChange(e, 'onFieldChange'); }, className: "solid-standard-autocomplete w-full" })), fieldContext.field.attrs.inlineCreate && (_jsxs(_Fragment, { children: [_jsx("div", { children: _jsx(Button, { icon: "pi pi-plus", rounded: true, outlined: true, "aria-label": "Filter", type: "button", size: "small", onClick: function () { return setVisibleCreateDialog(true); }, className: "custom-add-button" }) }), _jsx(InlineRelationEntityDialog, { visible: visibleCreateDialog, setVisible: setVisibleCreateDialog, fieldContext: fieldContext, onCreate: addNewRelation })] }))] })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(Message, { severity: "error", text: (_h = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _h === void 0 ? void 0 : _h.toString() }) }))] }));
|
|
286
288
|
};
|
|
287
289
|
export var DefaultRelationManyToManyCheckBoxFormEditWidget = function (_a) {
|
|
288
|
-
var _b;
|
|
290
|
+
var _b, _c;
|
|
289
291
|
var formik = _a.formik, fieldContext = _a.fieldContext;
|
|
290
292
|
var fieldMetadata = fieldContext.fieldMetadata;
|
|
291
293
|
var fieldLayoutInfo = fieldContext.field;
|
|
292
294
|
var showFieldLabel = (_b = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _b === void 0 ? void 0 : _b.showLabel;
|
|
293
295
|
var readOnlyPermission = fieldContext.readOnly;
|
|
294
|
-
var
|
|
295
|
-
var
|
|
296
|
+
var _d = useState(false), visibleCreateDialog = _d[0], setVisibleCreateDialog = _d[1];
|
|
297
|
+
var _e = useRelationEntityHandler({ fieldContext: fieldContext, formik: formik }), autoCompleteItems = _e.autoCompleteItems, fetchRelationEntities = _e.fetchRelationEntities, populateFormikWithRelatedEntities = _e.populateFormikWithRelatedEntities, addNewRelation = _e.addNewRelation;
|
|
298
|
+
useEffect(function () {
|
|
299
|
+
populateFormikWithRelatedEntities();
|
|
300
|
+
}, [(_c = formik.values) === null || _c === void 0 ? void 0 : _c.id]);
|
|
296
301
|
useEffect(function () {
|
|
297
302
|
var _a, _b, _c;
|
|
298
303
|
var fieldMetadata = fieldContext.fieldMetadata;
|