@solidxai/core-ui 0.1.3 → 0.1.4-beta.1

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 (150) hide show
  1. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  2. package/dist/components/auth/SolidInitialLoginOtp.js +0 -5
  3. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  4. package/dist/components/auth/SolidInitialLoginOtp.tsx +0 -5
  5. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  6. package/dist/components/auth/SolidLogin.js +7 -5
  7. package/dist/components/auth/SolidLogin.js.map +1 -1
  8. package/dist/components/auth/SolidLogin.tsx +10 -8
  9. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  10. package/dist/components/common/GeneralSettings.js +48 -47
  11. package/dist/components/common/GeneralSettings.js.map +1 -1
  12. package/dist/components/common/GeneralSettings.tsx +41 -10
  13. package/dist/components/core/common/FilterComponent.js.map +1 -1
  14. package/dist/components/core/common/FilterComponent.tsx +1 -1
  15. package/dist/components/core/common/GroupingComponent.d.ts +54 -0
  16. package/dist/components/core/common/GroupingComponent.d.ts.map +1 -0
  17. package/dist/components/core/common/GroupingComponent.js +196 -0
  18. package/dist/components/core/common/GroupingComponent.js.map +1 -0
  19. package/dist/components/core/common/GroupingComponent.tsx +452 -0
  20. package/dist/components/core/common/SolidGlobalSearchElement.d.ts +18 -1
  21. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  22. package/dist/components/core/common/SolidGlobalSearchElement.js +152 -52
  23. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  24. package/dist/components/core/common/SolidGlobalSearchElement.tsx +212 -35
  25. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
  26. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
  27. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
  28. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
  29. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
  30. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  31. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +17 -28
  32. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  33. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +71 -56
  34. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
  35. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
  36. package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
  37. package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
  38. package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
  39. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
  40. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
  41. package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
  42. package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
  43. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
  44. package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
  45. package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
  46. package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
  47. package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
  48. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
  49. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
  50. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
  51. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
  52. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
  53. package/dist/components/core/form/SolidFormFooter.js +4 -4
  54. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  55. package/dist/components/core/form/SolidFormFooter.tsx +4 -4
  56. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  57. package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
  58. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  59. package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
  60. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +40 -0
  61. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +317 -157
  63. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  64. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +463 -243
  65. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +46 -95
  67. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  68. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +57 -113
  69. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +15 -4
  70. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +220 -33
  72. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
  73. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +167 -36
  74. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  75. package/dist/components/core/kanban/SolidKanbanView.js +13 -12
  76. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  77. package/dist/components/core/kanban/SolidKanbanView.tsx +8 -7
  78. package/dist/components/core/list/SolidListView.d.ts +18 -10
  79. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  80. package/dist/components/core/list/SolidListView.js +176 -177
  81. package/dist/components/core/list/SolidListView.js.map +1 -1
  82. package/dist/components/core/list/SolidListView.tsx +130 -143
  83. package/dist/components/core/list/SolidListViewConfigure.d.ts +7 -0
  84. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  85. package/dist/components/core/list/SolidListViewConfigure.js +6 -5
  86. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  87. package/dist/components/core/list/SolidListViewConfigure.tsx +21 -12
  88. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  89. package/dist/components/core/list/columns/SolidShortTextColumn.js +1 -37
  90. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  91. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +0 -41
  92. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  93. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +9 -5
  94. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  95. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +14 -3
  96. package/dist/components/core/list/listViewRegistry.js.map +1 -1
  97. package/dist/components/core/list/listViewRegistry.ts +1 -2
  98. package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
  99. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
  100. package/dist/components/core/tree/SolidTreeView.js +1179 -0
  101. package/dist/components/core/tree/SolidTreeView.js.map +1 -0
  102. package/dist/components/core/tree/SolidTreeView.tsx +1637 -0
  103. package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
  104. package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
  105. package/dist/components/core/tree/treeViewRegistry.js +17 -0
  106. package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
  107. package/dist/components/core/tree/treeViewRegistry.ts +23 -0
  108. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  109. package/dist/components/core/users/CreateUser.js +19 -6
  110. package/dist/components/core/users/CreateUser.js.map +1 -1
  111. package/dist/components/core/users/CreateUser.tsx +39 -0
  112. package/dist/helpers/helpers.d.ts +2 -0
  113. package/dist/helpers/helpers.d.ts.map +1 -1
  114. package/dist/helpers/helpers.js +3 -1
  115. package/dist/helpers/helpers.js.map +1 -1
  116. package/dist/helpers/helpers.ts +4 -1
  117. package/dist/helpers/registry.d.ts.map +1 -1
  118. package/dist/helpers/registry.js +5 -1
  119. package/dist/helpers/registry.js.map +1 -1
  120. package/dist/helpers/registry.ts +7 -2
  121. package/dist/index.d.ts +3 -1
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +2 -0
  124. package/dist/index.js.map +1 -1
  125. package/dist/index.ts +6 -1
  126. package/dist/resources/globals.css +32 -4
  127. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  128. package/dist/routes/pages/admin/core/ListPage.js +2 -2
  129. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  130. package/dist/routes/pages/admin/core/ListPage.tsx +3 -2
  131. package/dist/routes/pages/admin/core/ModuleHomePage.d.ts.map +1 -1
  132. package/dist/routes/pages/admin/core/ModuleHomePage.js +4 -15
  133. package/dist/routes/pages/admin/core/ModuleHomePage.js.map +1 -1
  134. package/dist/routes/pages/admin/core/ModuleHomePage.tsx +4 -3
  135. package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
  136. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
  137. package/dist/routes/pages/admin/core/TreePage.js +37 -0
  138. package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
  139. package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
  140. package/dist/routes/solidRoutes.d.ts.map +1 -1
  141. package/dist/routes/solidRoutes.js +2 -0
  142. package/dist/routes/solidRoutes.js.map +1 -1
  143. package/dist/routes/solidRoutes.tsx +3 -1
  144. package/dist/routes/types.d.ts +1 -1
  145. package/dist/routes/types.d.ts.map +1 -1
  146. package/dist/routes/types.js.map +1 -1
  147. package/dist/routes/types.ts +1 -0
  148. package/dist/types/index.d.ts +8 -2
  149. package/dist/types/solid-core.d.ts +40 -0
  150. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import SolidRelationManyToManyField from './relations/SolidRelationManyToManyField';
2
2
  import SolidRelationManyToOneField from './relations/SolidRelationManyToOneField';
3
+ import SolidRelationOneToManyField from './relations/SolidRelationOneToManyField';
3
4
  var SolidRelationField = function (_a) {
4
5
  var fieldMetadata = _a.fieldMetadata, onChange = _a.onChange, index = _a.index, rule = _a.rule;
5
6
  if (fieldMetadata.relationType === 'many-to-one') {
@@ -8,8 +9,9 @@ var SolidRelationField = function (_a) {
8
9
  if (fieldMetadata.relationType === 'many-to-many') {
9
10
  return SolidRelationManyToManyField({ fieldMetadata: fieldMetadata, onChange: onChange, index: index, rule: rule });
10
11
  }
11
- // TODO: Support one-to-many
12
- // TODO: Support many-to-many
12
+ if (fieldMetadata.relationType === 'one-to-many') {
13
+ return SolidRelationOneToManyField({ fieldMetadata: fieldMetadata, onChange: onChange, index: index, rule: rule });
14
+ }
13
15
  };
14
16
  export default SolidRelationField;
15
17
  //# sourceMappingURL=SolidRelationField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationField.js","sourceRoot":"","sources":["../../../../../src/components/core/filter/fields/SolidRelationField.tsx"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,MAAM,0CAA0C,CAAC;AACpF,OAAO,2BAA2B,MAAM,yCAAyC,CAAC;AAElF,IAAM,kBAAkB,GAAG,UAAC,EAAiE;QAA/D,aAAa,mBAAA,EAAE,QAAQ,cAAA,EAAE,KAAK,WAAA,EAAE,IAAI,UAAA;IAC9D,IAAI,aAAa,CAAC,YAAY,KAAK,aAAa,EAAE;QAC9C,OAAO,2BAA2B,CAAC,EAAE,aAAa,eAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;KAChF;IACD,IAAI,aAAa,CAAC,YAAY,KAAK,cAAc,EAAE;QAC/C,OAAO,4BAA4B,CAAC,EAAE,aAAa,eAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;KACjF;IACD,4BAA4B;IAC5B,6BAA6B;AACjC,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["\nimport { SolidFilterFieldsParams } from '../SolidFilterFields';\nimport SolidRelationManyToManyField from './relations/SolidRelationManyToManyField';\nimport SolidRelationManyToOneField from './relations/SolidRelationManyToOneField';\n\nconst SolidRelationField = ({ fieldMetadata, onChange, index, rule }: SolidFilterFieldsParams) => {\n if (fieldMetadata.relationType === 'many-to-one') {\n return SolidRelationManyToOneField({ fieldMetadata, onChange, index, rule });\n }\n if (fieldMetadata.relationType === 'many-to-many') {\n return SolidRelationManyToManyField({ fieldMetadata, onChange, index, rule });\n }\n // TODO: Support one-to-many\n // TODO: Support many-to-many\n};\n\nexport default SolidRelationField;"]}
1
+ {"version":3,"file":"SolidRelationField.js","sourceRoot":"","sources":["../../../../../src/components/core/filter/fields/SolidRelationField.tsx"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,MAAM,0CAA0C,CAAC;AACpF,OAAO,2BAA2B,MAAM,yCAAyC,CAAC;AAClF,OAAO,2BAA2B,MAAM,yCAAyC,CAAC;AAElF,IAAM,kBAAkB,GAAG,UAAC,EAAiE;QAA/D,aAAa,mBAAA,EAAE,QAAQ,cAAA,EAAE,KAAK,WAAA,EAAE,IAAI,UAAA;IAC9D,IAAI,aAAa,CAAC,YAAY,KAAK,aAAa,EAAE;QAC9C,OAAO,2BAA2B,CAAC,EAAE,aAAa,eAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;KAChF;IACD,IAAI,aAAa,CAAC,YAAY,KAAK,cAAc,EAAE;QAC/C,OAAO,4BAA4B,CAAC,EAAE,aAAa,eAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;KACjF;IACD,IAAI,aAAa,CAAC,YAAY,KAAK,aAAa,EAAE;QAC9C,OAAO,2BAA2B,CAAC,EAAE,aAAa,eAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;KAChF;AACL,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["\nimport { SolidFilterFieldsParams } from '../SolidFilterFields';\nimport SolidRelationManyToManyField from './relations/SolidRelationManyToManyField';\nimport SolidRelationManyToOneField from './relations/SolidRelationManyToOneField';\nimport SolidRelationOneToManyField from './relations/SolidRelationOneToManyField';\n\nconst SolidRelationField = ({ fieldMetadata, onChange, index, rule }: SolidFilterFieldsParams) => {\n if (fieldMetadata.relationType === 'many-to-one') {\n return SolidRelationManyToOneField({ fieldMetadata, onChange, index, rule });\n }\n if (fieldMetadata.relationType === 'many-to-many') {\n return SolidRelationManyToManyField({ fieldMetadata, onChange, index, rule });\n }\n if (fieldMetadata.relationType === 'one-to-many') {\n return SolidRelationOneToManyField({ fieldMetadata, onChange, index, rule });\n }\n};\n\nexport default SolidRelationField;"]}
@@ -2,6 +2,7 @@
2
2
  import { SolidFilterFieldsParams } from '../SolidFilterFields';
3
3
  import SolidRelationManyToManyField from './relations/SolidRelationManyToManyField';
4
4
  import SolidRelationManyToOneField from './relations/SolidRelationManyToOneField';
5
+ import SolidRelationOneToManyField from './relations/SolidRelationOneToManyField';
5
6
 
6
7
  const SolidRelationField = ({ fieldMetadata, onChange, index, rule }: SolidFilterFieldsParams) => {
7
8
  if (fieldMetadata.relationType === 'many-to-one') {
@@ -10,8 +11,9 @@ const SolidRelationField = ({ fieldMetadata, onChange, index, rule }: SolidFilte
10
11
  if (fieldMetadata.relationType === 'many-to-many') {
11
12
  return SolidRelationManyToManyField({ fieldMetadata, onChange, index, rule });
12
13
  }
13
- // TODO: Support one-to-many
14
- // TODO: Support many-to-many
14
+ if (fieldMetadata.relationType === 'one-to-many') {
15
+ return SolidRelationOneToManyField({ fieldMetadata, onChange, index, rule });
16
+ }
15
17
  };
16
18
 
17
19
  export default SolidRelationField;
@@ -0,0 +1,4 @@
1
+ import { SolidFilterFieldsParams } from '../../../../../components/core/filter/SolidFilterFields';
2
+ declare const SolidRelationOneToManyField: ({ fieldMetadata, onChange, index, rule, }: SolidFilterFieldsParams) => import("react/jsx-runtime").JSX.Element;
3
+ export default SolidRelationOneToManyField;
4
+ //# sourceMappingURL=SolidRelationOneToManyField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidRelationOneToManyField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAqB,MAAM,yDAAyD,CAAC;AAIrH,QAAA,MAAM,2BAA2B,8CAK9B,uBAAuB,4CA8CzB,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { getNumberOfInputs } from '../../../../../components/core/filter/SolidFilterFields';
3
+ import { SolidVarInputsFilterElement, InputTypes } from '../../../../../components/core/filter/SolidVarInputsFilterElement';
4
+ import { Dropdown } from 'primereact/dropdown';
5
+ var SolidRelationOneToManyField = function (_a) {
6
+ var fieldMetadata = _a.fieldMetadata, onChange = _a.onChange, index = _a.index, rule = _a.rule;
7
+ var filterMatchModeOptions = [
8
+ { label: 'In', value: '$in' },
9
+ { label: 'Not In', value: '$notIn' }
10
+ ];
11
+ var noInputOperators = ['$null', '$notNull'];
12
+ var needsInput = !noInputOperators.includes(rule.matchMode);
13
+ var numberOfInputs = needsInput ? getNumberOfInputs(rule.matchMode) : 0;
14
+ return (_jsxs("div", { className: "flex flex-column md:flex-row align-items-start gap-2 md:gap-0", children: [_jsx("div", { className: "col-12 md:col-6 px-0 md:pr-2 md:pl-0", children: _jsx(Dropdown, { value: rule.matchMode, onChange: function (e) {
15
+ onChange(rule.id, 'matchMode', e.value);
16
+ // Clear value if switching to no-input operator
17
+ if (noInputOperators.includes(e.value)) {
18
+ onChange(rule.id, 'value', []);
19
+ }
20
+ }, options: filterMatchModeOptions, optionLabel: "label", optionValue: "value", placeholder: "Select Operator", className: "p-inputtext-sm w-full" }) }), _jsx("div", { className: "flex flex-column gap-2 col-12 md:col-6 px-0 md:pl-2 md:pr-0", children: _jsx(SolidVarInputsFilterElement, { values: rule.value, onChange: function (value) {
21
+ onChange(index, 'value', value);
22
+ }, numberOfInputs: numberOfInputs, inputType: InputTypes.RelationOneToMany, fieldMetadata: fieldMetadata }) })] }));
23
+ };
24
+ export default SolidRelationOneToManyField;
25
+ //# sourceMappingURL=SolidRelationOneToManyField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidRelationOneToManyField.js","sourceRoot":"","sources":["../../../../../../src/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx"],"names":[],"mappings":";AAEA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,UAAU,EAAE,MAAM,mEAAmE,CAAC;AAC5H,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,IAAM,2BAA2B,GAAG,UAAC,EAKX;QAJtB,aAAa,mBAAA,EACb,QAAQ,cAAA,EACR,KAAK,WAAA,EACL,IAAI,UAAA;IAGJ,IAAM,sBAAsB,GAAG;QAC3B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7B,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACvC,CAAC;IAEF,IAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/C,IAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,CACH,eAAK,SAAS,EAAC,+DAA+D,aAE1E,cAAK,SAAS,EAAC,sCAAsC,YACjD,KAAC,QAAQ,IACL,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,QAAQ,EAAE,UAAC,CAAC;wBACR,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;wBACxC,gDAAgD;wBAChD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;4BACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;yBAClC;oBACL,CAAC,EACD,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,iBAAiB,EAC7B,SAAS,EAAC,uBAAuB,GACnC,GACA,EAGN,cAAK,SAAS,EAAC,6DAA6D,YACxE,KAAC,2BAA2B,IACxB,MAAM,EAAE,IAAI,CAAC,KAAK,EAClB,QAAQ,EAAE,UAAC,KAAU;wBACjB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBACpC,CAAC,EACD,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,UAAU,CAAC,iBAAiB,EACvC,aAAa,EAAE,aAAa,GAC9B,GACA,IACJ,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,2BAA2B,CAAC","sourcesContent":["\n\nimport { SolidFilterFieldsParams, getNumberOfInputs } from '../../../../../components/core/filter/SolidFilterFields';\nimport { SolidVarInputsFilterElement, InputTypes } from '../../../../../components/core/filter/SolidVarInputsFilterElement';\nimport { Dropdown } from 'primereact/dropdown';\n\nconst SolidRelationOneToManyField = ({\n fieldMetadata,\n onChange,\n index,\n rule,\n}: SolidFilterFieldsParams) => {\n\n const filterMatchModeOptions = [\n { label: 'In', value: '$in' },\n { label: 'Not In', value: '$notIn' }\n ];\n\n const noInputOperators = ['$null', '$notNull'];\n const needsInput = !noInputOperators.includes(rule.matchMode);\n const numberOfInputs = needsInput ? getNumberOfInputs(rule.matchMode) : 0;\n\n return (\n <div className=\"flex flex-column md:flex-row align-items-start gap-2 md:gap-0\">\n {/* Operator */}\n <div className=\"col-12 md:col-6 px-0 md:pr-2 md:pl-0\">\n <Dropdown\n value={rule.matchMode}\n onChange={(e) => {\n onChange(rule.id, 'matchMode', e.value);\n // Clear value if switching to no-input operator\n if (noInputOperators.includes(e.value)) {\n onChange(rule.id, 'value', []);\n }\n }}\n options={filterMatchModeOptions}\n optionLabel=\"label\"\n optionValue=\"value\"\n placeholder=\"Select Operator\"\n className=\"p-inputtext-sm w-full\"\n />\n </div>\n\n {/* MultiSelect input */}\n <div className=\"flex flex-column gap-2 col-12 md:col-6 px-0 md:pl-2 md:pr-0\">\n <SolidVarInputsFilterElement\n values={rule.value}\n onChange={(value: any) => {\n onChange(index, 'value', value);\n }}\n numberOfInputs={numberOfInputs}\n inputType={InputTypes.RelationOneToMany}\n fieldMetadata={fieldMetadata}\n />\n </div>\n </div>\n );\n};\n\nexport default SolidRelationOneToManyField;"]}
@@ -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 { queryObjectToQueryStringByUrl, queryStringToQueryObjectByUrl } from "../list/SolidListView";
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 = queryStringToQueryObjectByUrl(listPath);
71
+ var queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
72
72
  var updatedQueryObj = __assign(__assign({}, queryObject), { offset: offset, limit: limit });
73
- queryObjectToQueryStringByUrl(listPath, updatedQueryObj);
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 = queryStringToQueryObjectByUrl(listPath);
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":"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","sourcesContent":["\n\nimport { useLazyNavigationQuery } from \"../../../redux/api/modelApi\";\nimport { useEffect, useState } from \"react\";\nimport qs from \"qs\";\nimport { queryObjectToQueryStringByUrl, queryStringToQueryObjectByUrl } 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 = queryStringToQueryObjectByUrl(listPath);\n\n const updatedQueryObj = {\n ...queryObject,\n offset,\n limit,\n };\n queryObjectToQueryStringByUrl(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 = queryStringToQueryObjectByUrl(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"]}
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 { 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 { queryObjectToQueryStringByUrl, queryStringToQueryObjectByUrl } from "../list/SolidListView";
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 = queryStringToQueryObjectByUrl(listPath);
43
+ const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
44
44
 
45
45
  const updatedQueryObj = {
46
46
  ...queryObject,
47
47
  offset,
48
48
  limit,
49
49
  };
50
- queryObjectToQueryStringByUrl(listPath, updatedQueryObj)
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 = queryStringToQueryObjectByUrl(listPath);
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,4CA4E1G,CAAA;AAED,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CA2FxG,CAAA;AAED,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CA0C/F,CAAA"}
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(function () { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false"); }, []);
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(function () {
200
- if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {
201
- console.log("Setting default value:", false);
202
- formik.setFieldValue(fieldLayoutInfo.attrs.name, false);
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) { return fieldContext.onChange(e, 'onFieldChange'); }, disabled: formDisabled || fieldDisabled, readOnly: formReadonly || fieldReadonly || readOnlyPermission, className: classNames("", {
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 {/* &nbsp; {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 {/* &nbsp; {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
- if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {
245
- console.log("Setting default value:", false);
246
- formik.setFieldValue(fieldLayoutInfo.attrs.name, false);
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) => fieldContext.onChange(e, 'onFieldChange')}
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,6 +1,20 @@
1
1
  import * as Yup from 'yup';
2
2
  import { FormikObject, ISolidField, SolidFieldProps } from "../ISolidField";
3
3
  import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
4
+ export type FormViewParams = {
5
+ moduleName: any;
6
+ id: any;
7
+ embeded: any;
8
+ isCustomCreate: any;
9
+ customLayout: any;
10
+ modelName: any;
11
+ parentFieldName?: any;
12
+ parentData: any;
13
+ onEmbeddedFormSave: any;
14
+ inlineCreateAutoSave: any;
15
+ customCreateHandler?: any;
16
+ handlePopupClose?: any;
17
+ };
4
18
  export declare class SolidRelationManyToManyField implements ISolidField {
5
19
  private fieldContext;
6
20
  constructor(fieldContext: SolidFieldProps);
@@ -10,6 +24,32 @@ export declare class SolidRelationManyToManyField implements ISolidField {
10
24
  render(formik: FormikObject): import("react/jsx-runtime").JSX.Element;
11
25
  renderExtensionRenderMode(widget: string, formik: FormikObject): import("react/jsx-runtime").JSX.Element;
12
26
  }
27
+ /**
28
+ * AUTOCOMPLETE WIDGET
29
+ *
30
+ * State:
31
+ * currentValues — chips shown in the input (currently linked items)
32
+ * suggestions — dropdown options populated on each keystroke
33
+ *
34
+ * Flow:
35
+ * mount → fetchCurrentValues()
36
+ * user types → fetchSuggestions() via completeMethod
37
+ * user selects → linkItem() → on success, adds to currentValues
38
+ * user removes chip→ unlinkItem() → on success, removes from currentValues
39
+ */
13
40
  export declare const DefaultRelationManyToManyAutoCompleteFormEditWidget: ({ formik, fieldContext }: SolidFormFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
41
+ /**
42
+ * CHECKBOX WIDGET
43
+ *
44
+ * State:
45
+ * allOptions — every possible item to render as a checkbox row
46
+ * currentValues — the subset that is currently linked (drives checked state)
47
+ *
48
+ * Flow:
49
+ * mount → fetchCurrentValues() + fetchAllOptions()
50
+ * user checks → linkItem() → on success, adds to currentValues
51
+ * user unchecks → unlinkItem() → on success, removes from currentValues
52
+ */
14
53
  export declare const DefaultRelationManyToManyCheckBoxFormEditWidget: ({ formik, fieldContext }: SolidFormFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
54
+ export declare const DefaultRelationManyToManyListFormEditWidget: ({ formik, fieldContext }: SolidFormFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
15
55
  //# sourceMappingURL=SolidRelationManyToManyField.d.ts.map