@solidxai/core-ui 0.1.2 → 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.
Files changed (149) 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 +197 -74
  23. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  24. package/dist/components/core/common/SolidGlobalSearchElement.tsx +276 -40
  25. package/dist/components/core/common/SolidImageViewer.d.ts +10 -0
  26. package/dist/components/core/common/SolidImageViewer.d.ts.map +1 -0
  27. package/dist/components/core/common/SolidImageViewer.js +59 -0
  28. package/dist/components/core/common/SolidImageViewer.js.map +1 -0
  29. package/dist/components/core/common/SolidImageViewer.tsx +84 -0
  30. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
  31. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
  32. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
  33. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
  34. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
  35. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  36. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +7 -3
  37. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  38. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +45 -40
  39. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
  40. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
  41. package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
  42. package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
  43. package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
  44. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
  45. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
  46. package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
  47. package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
  48. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
  49. package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
  50. package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
  51. package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
  52. package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
  53. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
  54. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
  55. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
  56. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
  57. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
  58. package/dist/components/core/form/SolidFormFooter.js +4 -4
  59. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  60. package/dist/components/core/form/SolidFormFooter.tsx +4 -4
  61. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
  63. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  64. package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
  65. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +26 -21
  67. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  68. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +27 -17
  69. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +1 -0
  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 +51 -0
  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 +51 -0
  74. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts.map +1 -1
  75. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +80 -79
  76. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  77. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +92 -85
  78. package/dist/components/core/kanban/SolidKanbanView.js +5 -5
  79. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  80. package/dist/components/core/kanban/SolidKanbanView.tsx +5 -5
  81. package/dist/components/core/list/SolidListView.d.ts +12 -7
  82. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  83. package/dist/components/core/list/SolidListView.js +143 -153
  84. package/dist/components/core/list/SolidListView.js.map +1 -1
  85. package/dist/components/core/list/SolidListView.tsx +89 -94
  86. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  87. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +16 -17
  88. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  89. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +46 -44
  90. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  91. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +6 -4
  92. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  93. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +7 -5
  94. package/dist/components/core/list/listViewRegistry.js.map +1 -1
  95. package/dist/components/core/list/listViewRegistry.ts +1 -2
  96. package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
  97. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
  98. package/dist/components/core/tree/SolidTreeView.js +1170 -0
  99. package/dist/components/core/tree/SolidTreeView.js.map +1 -0
  100. package/dist/components/core/tree/SolidTreeView.tsx +1603 -0
  101. package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
  102. package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
  103. package/dist/components/core/tree/treeViewRegistry.js +17 -0
  104. package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
  105. package/dist/components/core/tree/treeViewRegistry.ts +23 -0
  106. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  107. package/dist/components/core/users/CreateUser.js +19 -6
  108. package/dist/components/core/users/CreateUser.js.map +1 -1
  109. package/dist/components/core/users/CreateUser.tsx +39 -0
  110. package/dist/helpers/fetchS3Url.d.ts +19 -0
  111. package/dist/helpers/fetchS3Url.d.ts.map +1 -0
  112. package/dist/helpers/fetchS3Url.js +60 -0
  113. package/dist/helpers/fetchS3Url.js.map +1 -0
  114. package/dist/helpers/fetchS3Url.ts +33 -0
  115. package/dist/helpers/helpers.d.ts +2 -0
  116. package/dist/helpers/helpers.d.ts.map +1 -1
  117. package/dist/helpers/helpers.js +3 -1
  118. package/dist/helpers/helpers.js.map +1 -1
  119. package/dist/helpers/helpers.ts +4 -1
  120. package/dist/helpers/registry.d.ts.map +1 -1
  121. package/dist/helpers/registry.js +2 -0
  122. package/dist/helpers/registry.js.map +1 -1
  123. package/dist/helpers/registry.ts +3 -1
  124. package/dist/index.d.ts +9 -2
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +6 -1
  127. package/dist/index.js.map +1 -1
  128. package/dist/index.ts +14 -2
  129. package/dist/resources/globals.css +18 -4
  130. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  131. package/dist/routes/pages/admin/core/ListPage.js +8 -3
  132. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  133. package/dist/routes/pages/admin/core/ListPage.tsx +11 -3
  134. package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
  135. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
  136. package/dist/routes/pages/admin/core/TreePage.js +37 -0
  137. package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
  138. package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
  139. package/dist/routes/solidRoutes.d.ts.map +1 -1
  140. package/dist/routes/solidRoutes.js +2 -0
  141. package/dist/routes/solidRoutes.js.map +1 -1
  142. package/dist/routes/solidRoutes.tsx +3 -1
  143. package/dist/routes/types.d.ts +1 -1
  144. package/dist/routes/types.d.ts.map +1 -1
  145. package/dist/routes/types.js.map +1 -1
  146. package/dist/routes/types.ts +1 -0
  147. package/dist/types/index.d.ts +8 -2
  148. package/dist/types/solid-core.d.ts +40 -0
  149. package/package.json +1 -1
@@ -18,6 +18,7 @@ import { SolidSelectionStaticFilterElement } from "./SolidSelectionStaticFilterE
18
18
  import { Button } from "primereact/button";
19
19
  import { SolidManyToManyFilterElement } from "./SolidManyToManyFilterElement";
20
20
  import { SolidBooleanFilterElement } from "./SolidBooleanFilterElement";
21
+ import { SolidOneToManyFilterElement } from "./SolidOneToManyFilterElement";
21
22
  export var InputTypes;
22
23
  (function (InputTypes) {
23
24
  InputTypes["Date"] = "Date";
@@ -28,6 +29,7 @@ export var InputTypes;
28
29
  InputTypes["SelectionStatic"] = "SelectionStatic";
29
30
  InputTypes["RelationManyToOne"] = "RelationManyToOne";
30
31
  InputTypes["RelationManyToMany"] = "RelationManyToMany";
32
+ InputTypes["RelationOneToMany"] = "RelationOneToMany";
31
33
  InputTypes["SelectionDynamic"] = "SelectionDynamic";
32
34
  InputTypes["Boolean"] = "Boolean";
33
35
  })(InputTypes || (InputTypes = {}));
@@ -81,7 +83,8 @@ export var SolidVarInputsFilterElement = function (_a) {
81
83
  _jsx(Calendar, { value: value, onChange: function (e) { return updateInputs(index, e.target.value); }, dateFormat: "mm/dd/yy", placeholder: "mm/dd/yyyy hh:mm", mask: "99/99/9999 99:99", showTime: true, hourFormat: "24", className: "w-full", inputClassName: "w-full p-inputtext-sm" }), inputType === InputTypes.Time &&
82
84
  _jsx(Calendar, { value: value, onChange: function (e) { return updateInputs(index, e.target.value); }, placeholder: "hh:mm", mask: "99:99", timeOnly: true, hourFormat: "24", className: "w-full", inputClassName: "w-full p-inputtext-sm" }), inputType === InputTypes.RelationManyToOne &&
83
85
  _jsx(SolidManyToOneFilterElement, { value: value, index: index, updateInputs: updateInputs, fieldMetadata: fieldMetadata }), inputType === InputTypes.RelationManyToMany &&
84
- _jsx(SolidManyToManyFilterElement, { value: value, index: index, updateInputs: updateInputs, fieldMetadata: fieldMetadata }), inputType === InputTypes.SelectionDynamic &&
86
+ _jsx(SolidManyToManyFilterElement, { value: value, index: index, updateInputs: updateInputs, fieldMetadata: fieldMetadata }), inputType === InputTypes.RelationOneToMany &&
87
+ _jsx(SolidOneToManyFilterElement, { value: value, index: index, updateInputs: updateInputs, fieldMetadata: fieldMetadata }), inputType === InputTypes.SelectionDynamic &&
85
88
  _jsx(SolidSelectionDynamicFilterElement, { value: value, index: index, updateInputs: updateInputs, fieldMetadata: fieldMetadata }), inputType === InputTypes.SelectionStatic &&
86
89
  _jsx(SolidSelectionStaticFilterElement, { value: value, index: index, updateInputs: updateInputs, fieldMetadata: fieldMetadata }), inputType === InputTypes.Boolean &&
87
90
  _jsx(SolidBooleanFilterElement, { value: value, index: index, updateInputs: updateInputs, fieldMetadata: fieldMetadata }), numberOfInputs === null &&
@@ -1 +1 @@
1
- {"version":3,"file":"SolidVarInputsFilterElement.js","sourceRoot":"","sources":["../../../../src/components/core/filter/SolidVarInputsFilterElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Calendar } from \"primereact/calendar\";\nimport { InputNumber } from \"primereact/inputnumber\";\nimport { InputText } from \"primereact/inputtext\";\nimport { useEffect, useState } from \"react\";\nimport { SolidManyToOneFilterElement } from \"./SolidManyToOneFilterElement\";\nimport { SolidSelectionDynamicFilterElement } from \"./SolidSelectionDynamicFilterElement\";\nimport { SolidSelectionStaticFilterElement } from \"./SolidSelectionStaticFilterElement\";\nimport { Button } from \"primereact/button\";\nimport { SolidManyToManyFilterElement } from \"./SolidManyToManyFilterElement\";\nimport { SolidBooleanFilterElement } from \"./SolidBooleanFilterElement\";\n\nexport enum InputTypes {\n Date = 'Date',\n DateTime = 'DateTime',\n Time = 'Time',\n Numeric = 'Numeric',\n Text = 'Text',\n SelectionStatic = 'SelectionStatic',\n RelationManyToOne = 'RelationManyToOne',\n RelationManyToMany = 'RelationManyToMany',\n SelectionDynamic = 'SelectionDynamic',\n Boolean = 'Boolean',\n}\n\n\n// Based on numberOfInputs map the input filed and hide add and delete \nexport const SolidVarInputsFilterElement = ({ values, onChange, inputType = InputTypes.Text, numberOfInputs = null, fieldMetadata }: any) => {\n\n if (!values) {\n values = numberOfInputs && numberOfInputs > 0 ? Array(numberOfInputs).fill('') : [''];\n // values = [''];\n } else {\n if (values[0] == '') {\n values = numberOfInputs && numberOfInputs > 0 ? Array(numberOfInputs).fill('') : [''];\n } else {\n\n values = values\n }\n }\n\n\n\n // TODO: Ideally values will be an array, so we can spread them here instead of making a nested array.\n const [inputs, setInputs] = useState([...values]);\n useEffect(() => {\n setInputs([...values])\n }, [numberOfInputs])\n\n const updateInputs = (index: number, value: any) => {\n const updatedSpecification = inputs.map((item, i) =>\n i === index ? value : item\n );\n setInputs(updatedSpecification);\n };\n\n const addInput = () => {\n setInputs([...inputs, '']);\n };\n\n const deleteInput = (index: number) => {\n if (inputs.length > 1) {\n const updatedRows = inputs.filter((_, rowIndex) => rowIndex !== index);\n setInputs(updatedRows);\n\n } else {\n }\n };\n\n useEffect(() => {\n onChange(inputs)\n }, [inputs])\n\n\n\n return (\n <>\n {inputs && inputs.map((value: any, index: number) => (\n <div className=\"flex\">\n {numberOfInputs === 0 ?\n <></>\n :\n <>\n {inputType === InputTypes.Text &&\n <InputText\n value={value}\n onChange={(e) => updateInputs(index, e.target.value)}\n placeholder=\"\"\n className='w-full p-inputtext-sm'\n />\n }\n {inputType === InputTypes.Numeric &&\n <InputNumber\n value={value}\n onChange={(e) => updateInputs(index, e.value)}\n placeholder=\"\"\n className='w-full p-inputtext-sm'\n />\n }\n {inputType === InputTypes.Date &&\n <Calendar\n value={value}\n onChange={(e) => updateInputs(index, e.target.value)}\n dateFormat=\"mm/dd/yy\"\n placeholder=\"mm/dd/yyyy\"\n mask=\"99/99/9999\"\n className=\"w-full\"\n inputClassName=\"w-full p-inputtext-sm\"\n />\n }\n {inputType === InputTypes.DateTime &&\n <Calendar\n value={value}\n onChange={(e) => updateInputs(index, e.target.value)}\n dateFormat=\"mm/dd/yy\"\n placeholder=\"mm/dd/yyyy hh:mm\"\n mask=\"99/99/9999 99:99\"\n showTime\n hourFormat=\"24\"\n className=\"w-full\"\n inputClassName=\"w-full p-inputtext-sm\"\n />\n }\n {inputType === InputTypes.Time &&\n <Calendar\n value={value}\n onChange={(e) => updateInputs(index, e.target.value)}\n placeholder=\"hh:mm\"\n mask=\"99:99\"\n timeOnly\n hourFormat=\"24\"\n className=\"w-full\"\n inputClassName=\"w-full p-inputtext-sm\"\n />\n }\n {inputType === InputTypes.RelationManyToOne &&\n <SolidManyToOneFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidManyToOneFilterElement>\n }\n {inputType === InputTypes.RelationManyToMany &&\n <SolidManyToManyFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidManyToManyFilterElement>\n }\n {inputType === InputTypes.SelectionDynamic &&\n <SolidSelectionDynamicFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidSelectionDynamicFilterElement>\n }\n {inputType === InputTypes.SelectionStatic &&\n\n <SolidSelectionStaticFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidSelectionStaticFilterElement>\n }\n {inputType === InputTypes.Boolean &&\n\n <SolidBooleanFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidBooleanFilterElement>\n }\n\n\n {numberOfInputs === null &&\n <>\n {/* Plus Button to add a new row */}\n {/* < Button\n icon=\"pi pi-plus\"\n size=\"small\"\n className=\"small-button\"\n onClick={addInput}\n type=\"button\"\n /> */}\n\n {/* Trash Button to delete the row */}\n {/* <Button\n icon=\"pi pi-trash\"\n size=\"small\"\n className=\"small-button\"\n onClick={() => deleteInput(index)}\n severity=\"danger\"\n type=\"button\"\n /> */}\n <Button text severity='secondary' icon=\"pi pi-plus\" size='small' onClick={() => addInput()} className='solid-filter-action-btn' />\n <Button text severity='secondary' icon=\"pi pi-trash\" size='small' onClick={() => deleteInput(index)} className='solid-filter-action-btn' />\n </>\n }\n </>\n }\n </div>\n ))}\n </>\n )\n}"]}
1
+ {"version":3,"file":"SolidVarInputsFilterElement.js","sourceRoot":"","sources":["../../../../src/components/core/filter/SolidVarInputsFilterElement.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,CAAN,IAAY,UAYX;AAZD,WAAY,UAAU;IAClB,2BAAa,CAAA;IACb,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,2BAAa,CAAA;IACb,iDAAmC,CAAA;IACnC,qDAAuC,CAAA;IACvC,uDAAyC,CAAA;IACzC,qDAAuC,CAAA;IACvC,mDAAqC,CAAA;IACrC,iCAAmB,CAAA;AACvB,CAAC,EAZW,UAAU,KAAV,UAAU,QAYrB;AAGD,uEAAuE;AACvE,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,EAA4F;QAA1F,MAAM,YAAA,EAAE,QAAQ,cAAA,EAAE,iBAA2B,EAA3B,SAAS,mBAAG,UAAU,CAAC,IAAI,KAAA,EAAE,sBAAqB,EAArB,cAAc,mBAAG,IAAI,KAAA,EAAE,aAAa,mBAAA;IAE7H,IAAI,CAAC,MAAM,EAAE;QACT,MAAM,GAAG,cAAc,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,iBAAiB;KACpB;SAAM;QACH,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,GAAG,cAAc,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACzF;aAAM;YAEH,MAAM,GAAG,MAAM,CAAA;SAClB;KACJ;IAID,sGAAsG;IAChG,IAAA,KAAsB,QAAQ,mBAAK,MAAM,QAAE,EAA1C,MAAM,QAAA,EAAE,SAAS,QAAyB,CAAC;IAClD,SAAS,CAAC;QACN,SAAS,mBAAK,MAAM,QAAE,CAAA;IAC1B,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAEpB,IAAM,YAAY,GAAG,UAAC,KAAa,EAAE,KAAU;QAC3C,IAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC;YAC5C,OAAA,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAA1B,CAA0B,CAC7B,CAAC;QACF,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,IAAM,QAAQ,GAAG;QACb,SAAS,iCAAK,MAAM,UAAE,EAAE,UAAE,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,UAAC,KAAa;QAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,QAAQ,IAAK,OAAA,QAAQ,KAAK,KAAK,EAAlB,CAAkB,CAAC,CAAC;YACvE,SAAS,CAAC,WAAW,CAAC,CAAC;SAE1B;aAAM;SACN;IACL,CAAC,CAAC;IAEF,SAAS,CAAC;QACN,QAAQ,CAAC,MAAM,CAAC,CAAA;IACpB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAIZ,OAAO,CACH,4BACK,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,UAAC,KAAU,EAAE,KAAa,IAAK,OAAA,CACjD,cAAK,SAAS,EAAC,MAAM,YAChB,cAAc,KAAK,CAAC,CAAC,CAAC;gBACnB,mBAAK;gBACL,CAAC;oBACD,8BACK,SAAS,KAAK,UAAU,CAAC,IAAI;gCAC1B,KAAC,SAAS,IACN,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAnC,CAAmC,EACpD,WAAW,EAAC,EAAE,EACd,SAAS,EAAC,uBAAuB,GACnC,EAEL,SAAS,KAAK,UAAU,CAAC,OAAO;gCAC7B,KAAC,WAAW,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAA5B,CAA4B,EAC7C,WAAW,EAAC,EAAE,EACd,SAAS,EAAC,uBAAuB,GACnC,EAEL,SAAS,KAAK,UAAU,CAAC,IAAI;gCAC1B,KAAC,QAAQ,IACL,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAnC,CAAmC,EACpD,UAAU,EAAC,UAAU,EACrB,WAAW,EAAC,YAAY,EACxB,IAAI,EAAC,YAAY,EACjB,SAAS,EAAC,QAAQ,EAClB,cAAc,EAAC,uBAAuB,GACxC,EAEL,SAAS,KAAK,UAAU,CAAC,QAAQ;gCAC9B,KAAC,QAAQ,IACL,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAnC,CAAmC,EACpD,UAAU,EAAC,UAAU,EACrB,WAAW,EAAC,kBAAkB,EAC9B,IAAI,EAAC,kBAAkB,EACvB,QAAQ,QACR,UAAU,EAAC,IAAI,EACf,SAAS,EAAC,QAAQ,EAClB,cAAc,EAAC,uBAAuB,GACxC,EAEL,SAAS,KAAK,UAAU,CAAC,IAAI;gCAC1B,KAAC,QAAQ,IACL,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAnC,CAAmC,EACpD,WAAW,EAAC,OAAO,EACnB,IAAI,EAAC,OAAO,EACZ,QAAQ,QACR,UAAU,EAAC,IAAI,EACf,SAAS,EAAC,QAAQ,EAClB,cAAc,EAAC,uBAAuB,GACxC,EAEL,SAAS,KAAK,UAAU,CAAC,iBAAiB;gCACvC,KAAC,2BAA2B,IACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GACD,EAElC,SAAS,KAAK,UAAU,CAAC,kBAAkB;gCACxC,KAAC,4BAA4B,IACzB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GACA,EAEnC,SAAS,KAAK,UAAU,CAAC,iBAAiB;gCACvC,KAAC,2BAA2B,IACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GACD,EAElC,SAAS,KAAK,UAAU,CAAC,gBAAgB;gCACtC,KAAC,kCAAkC,IAC/B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GACM,EAEzC,SAAS,KAAK,UAAU,CAAC,eAAe;gCAErC,KAAC,iCAAiC,IAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GACK,EAExC,SAAS,KAAK,UAAU,CAAC,OAAO;gCAE7B,KAAC,yBAAyB,IACtB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GACH,EAIhC,cAAc,KAAK,IAAI;gCACpB,8BAmBI,KAAC,MAAM,IAAC,IAAI,QAAC,QAAQ,EAAC,WAAW,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,cAAM,OAAA,QAAQ,EAAE,EAAV,CAAU,EAAE,SAAS,EAAC,yBAAyB,GAAG,EAClI,KAAC,MAAM,IAAC,IAAI,QAAC,QAAQ,EAAC,WAAW,EAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,cAAM,OAAA,WAAW,CAAC,KAAK,CAAC,EAAlB,CAAkB,EAAE,SAAS,EAAC,yBAAyB,GAAG,IAC5I,IAER,GAEL,CACT,EAzIoD,CAyIpD,CAAC,GACH,CACN,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { Calendar } from \"primereact/calendar\";\nimport { InputNumber } from \"primereact/inputnumber\";\nimport { InputText } from \"primereact/inputtext\";\nimport { useEffect, useState } from \"react\";\nimport { SolidManyToOneFilterElement } from \"./SolidManyToOneFilterElement\";\nimport { SolidSelectionDynamicFilterElement } from \"./SolidSelectionDynamicFilterElement\";\nimport { SolidSelectionStaticFilterElement } from \"./SolidSelectionStaticFilterElement\";\nimport { Button } from \"primereact/button\";\nimport { SolidManyToManyFilterElement } from \"./SolidManyToManyFilterElement\";\nimport { SolidBooleanFilterElement } from \"./SolidBooleanFilterElement\";\nimport { SolidOneToManyFilterElement } from \"./SolidOneToManyFilterElement\";\n\nexport enum InputTypes {\n Date = 'Date',\n DateTime = 'DateTime',\n Time = 'Time',\n Numeric = 'Numeric',\n Text = 'Text',\n SelectionStatic = 'SelectionStatic',\n RelationManyToOne = 'RelationManyToOne',\n RelationManyToMany = 'RelationManyToMany',\n RelationOneToMany = 'RelationOneToMany',\n SelectionDynamic = 'SelectionDynamic',\n Boolean = 'Boolean',\n}\n\n\n// Based on numberOfInputs map the input filed and hide add and delete \nexport const SolidVarInputsFilterElement = ({ values, onChange, inputType = InputTypes.Text, numberOfInputs = null, fieldMetadata }: any) => {\n\n if (!values) {\n values = numberOfInputs && numberOfInputs > 0 ? Array(numberOfInputs).fill('') : [''];\n // values = [''];\n } else {\n if (values[0] == '') {\n values = numberOfInputs && numberOfInputs > 0 ? Array(numberOfInputs).fill('') : [''];\n } else {\n\n values = values\n }\n }\n\n\n\n // TODO: Ideally values will be an array, so we can spread them here instead of making a nested array.\n const [inputs, setInputs] = useState([...values]);\n useEffect(() => {\n setInputs([...values])\n }, [numberOfInputs])\n\n const updateInputs = (index: number, value: any) => {\n const updatedSpecification = inputs.map((item, i) =>\n i === index ? value : item\n );\n setInputs(updatedSpecification);\n };\n\n const addInput = () => {\n setInputs([...inputs, '']);\n };\n\n const deleteInput = (index: number) => {\n if (inputs.length > 1) {\n const updatedRows = inputs.filter((_, rowIndex) => rowIndex !== index);\n setInputs(updatedRows);\n\n } else {\n }\n };\n\n useEffect(() => {\n onChange(inputs)\n }, [inputs])\n\n\n\n return (\n <>\n {inputs && inputs.map((value: any, index: number) => (\n <div className=\"flex\">\n {numberOfInputs === 0 ?\n <></>\n :\n <>\n {inputType === InputTypes.Text &&\n <InputText\n value={value}\n onChange={(e) => updateInputs(index, e.target.value)}\n placeholder=\"\"\n className='w-full p-inputtext-sm'\n />\n }\n {inputType === InputTypes.Numeric &&\n <InputNumber\n value={value}\n onChange={(e) => updateInputs(index, e.value)}\n placeholder=\"\"\n className='w-full p-inputtext-sm'\n />\n }\n {inputType === InputTypes.Date &&\n <Calendar\n value={value}\n onChange={(e) => updateInputs(index, e.target.value)}\n dateFormat=\"mm/dd/yy\"\n placeholder=\"mm/dd/yyyy\"\n mask=\"99/99/9999\"\n className=\"w-full\"\n inputClassName=\"w-full p-inputtext-sm\"\n />\n }\n {inputType === InputTypes.DateTime &&\n <Calendar\n value={value}\n onChange={(e) => updateInputs(index, e.target.value)}\n dateFormat=\"mm/dd/yy\"\n placeholder=\"mm/dd/yyyy hh:mm\"\n mask=\"99/99/9999 99:99\"\n showTime\n hourFormat=\"24\"\n className=\"w-full\"\n inputClassName=\"w-full p-inputtext-sm\"\n />\n }\n {inputType === InputTypes.Time &&\n <Calendar\n value={value}\n onChange={(e) => updateInputs(index, e.target.value)}\n placeholder=\"hh:mm\"\n mask=\"99:99\"\n timeOnly\n hourFormat=\"24\"\n className=\"w-full\"\n inputClassName=\"w-full p-inputtext-sm\"\n />\n }\n {inputType === InputTypes.RelationManyToOne &&\n <SolidManyToOneFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidManyToOneFilterElement>\n }\n {inputType === InputTypes.RelationManyToMany &&\n <SolidManyToManyFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidManyToManyFilterElement>\n }\n {inputType === InputTypes.RelationOneToMany &&\n <SolidOneToManyFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidOneToManyFilterElement>\n }\n {inputType === InputTypes.SelectionDynamic &&\n <SolidSelectionDynamicFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidSelectionDynamicFilterElement>\n }\n {inputType === InputTypes.SelectionStatic &&\n\n <SolidSelectionStaticFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidSelectionStaticFilterElement>\n }\n {inputType === InputTypes.Boolean &&\n\n <SolidBooleanFilterElement\n value={value}\n index={index}\n updateInputs={updateInputs}\n fieldMetadata={fieldMetadata}\n ></SolidBooleanFilterElement>\n }\n\n\n {numberOfInputs === null &&\n <>\n {/* Plus Button to add a new row */}\n {/* < Button\n icon=\"pi pi-plus\"\n size=\"small\"\n className=\"small-button\"\n onClick={addInput}\n type=\"button\"\n /> */}\n\n {/* Trash Button to delete the row */}\n {/* <Button\n icon=\"pi pi-trash\"\n size=\"small\"\n className=\"small-button\"\n onClick={() => deleteInput(index)}\n severity=\"danger\"\n type=\"button\"\n /> */}\n <Button text severity='secondary' icon=\"pi pi-plus\" size='small' onClick={() => addInput()} className='solid-filter-action-btn' />\n <Button text severity='secondary' icon=\"pi pi-trash\" size='small' onClick={() => deleteInput(index)} className='solid-filter-action-btn' />\n </>\n }\n </>\n }\n </div>\n ))}\n </>\n )\n}"]}
@@ -8,6 +8,7 @@ import { SolidSelectionStaticFilterElement } from "./SolidSelectionStaticFilterE
8
8
  import { Button } from "primereact/button";
9
9
  import { SolidManyToManyFilterElement } from "./SolidManyToManyFilterElement";
10
10
  import { SolidBooleanFilterElement } from "./SolidBooleanFilterElement";
11
+ import { SolidOneToManyFilterElement } from "./SolidOneToManyFilterElement";
11
12
 
12
13
  export enum InputTypes {
13
14
  Date = 'Date',
@@ -18,6 +19,7 @@ export enum InputTypes {
18
19
  SelectionStatic = 'SelectionStatic',
19
20
  RelationManyToOne = 'RelationManyToOne',
20
21
  RelationManyToMany = 'RelationManyToMany',
22
+ RelationOneToMany = 'RelationOneToMany',
21
23
  SelectionDynamic = 'SelectionDynamic',
22
24
  Boolean = 'Boolean',
23
25
  }
@@ -148,6 +150,14 @@ export const SolidVarInputsFilterElement = ({ values, onChange, inputType = Inpu
148
150
  fieldMetadata={fieldMetadata}
149
151
  ></SolidManyToManyFilterElement>
150
152
  }
153
+ {inputType === InputTypes.RelationOneToMany &&
154
+ <SolidOneToManyFilterElement
155
+ value={value}
156
+ index={index}
157
+ updateInputs={updateInputs}
158
+ fieldMetadata={fieldMetadata}
159
+ ></SolidOneToManyFilterElement>
160
+ }
151
161
  {inputType === InputTypes.SelectionDynamic &&
152
162
  <SolidSelectionDynamicFilterElement
153
163
  value={value}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/filter/fields/SolidRelationField.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,QAAA,MAAM,kBAAkB,6CAA8C,uBAAuB,wDAS5F,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"SolidRelationField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/filter/fields/SolidRelationField.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,QAAA,MAAM,kBAAkB,6CAA8C,uBAAuB,wDAU5F,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -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() }) }))] }) }));