@solidxai/core-ui 0.1.7-beta.4 → 0.1.7-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +1 -1
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +5 -3
- package/dist/components/auth/SolidLogin.js +3 -3
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +2 -2
- package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
- package/dist/components/common/DropzonePlaceholder.js +1 -1
- package/dist/components/common/DropzonePlaceholder.js.map +1 -1
- package/dist/components/common/DropzonePlaceholder.tsx +8 -6
- package/dist/components/core/chatter/SolidChatter.d.ts +2 -1
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +2 -4
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +3 -4
- package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
- package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
- package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -3
- package/dist/components/core/chatter/chatter.module.css +42 -32
- package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidGenericImport.tsx +2 -2
- package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +153 -30
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +7 -7
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +9 -10
- package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js +1 -1
- package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.tsx +6 -4
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.tsx +3 -1
- package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.js +13 -13
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +21 -24
- package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormFooter.js +1 -1
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +0 -1
- package/dist/components/core/form/SolidFormUserViewLayout.js +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.tsx +1 -1
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +22 -33
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +38 -59
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +12 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +1 -0
- package/dist/components/core/form/fields/SolidLongTextField.js +4 -4
- package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.tsx +4 -4
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +14 -14
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +35 -21
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +2 -2
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +48 -34
- package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.js +2 -2
- package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.tsx +46 -42
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +23 -27
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +64 -66
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -6
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +4 -7
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -15
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +30 -16
- package/dist/components/core/form/fields/solidFields.module.css +86 -15
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +18 -28
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +52 -48
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
- package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +5 -4
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +11 -5
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +8 -0
- package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +4 -4
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +5 -4
- package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +3 -3
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +4 -3
- package/dist/components/core/list/SolidDataTable.d.ts +1 -0
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +19 -2
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +30 -2
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +1 -1
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +1 -0
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
- package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
- package/dist/components/core/locales/SolidChatterLocaleTabView.js +7 -4
- package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
- package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +28 -11
- package/dist/components/core/locales/SolidLocale.js +4 -4
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +18 -18
- package/dist/components/core/locales/solid-locale.css +105 -7
- package/dist/components/core/model/CreateModel.js +2 -2
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +2 -2
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +3 -3
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +45 -22
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts +7 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +138 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +246 -0
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +8 -0
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -0
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +156 -0
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -0
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +184 -0
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts +9 -0
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts.map +1 -0
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js +37 -0
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js.map +1 -0
- package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.tsx +111 -0
- package/dist/components/core/users/ApiKeysTab/index.d.ts +4 -0
- package/dist/components/core/users/ApiKeysTab/index.d.ts.map +1 -0
- package/dist/components/core/users/ApiKeysTab/index.js +4 -0
- package/dist/components/core/users/ApiKeysTab/index.js.map +1 -0
- package/dist/components/core/users/ApiKeysTab/index.ts +3 -0
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +75 -7
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +84 -7
- package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js +13 -7
- package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +22 -12
- package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
- package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.tsx +6 -3
- package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.js +2 -2
- package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.tsx +3 -0
- package/dist/components/shad-cn-ui/SolidTextarea.d.ts +1 -1
- package/dist/components/shad-cn-ui/SolidTextarea.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidTextarea.js +3 -2
- package/dist/components/shad-cn-ui/SolidTextarea.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidTextarea.tsx +17 -2
- package/dist/helpers/# no such endpoints exist, need to calle +3 -0
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +10 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +16 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/index.ts +71 -2
- package/dist/redux/api/apiKeyApi.d.ts +40 -0
- package/dist/redux/api/apiKeyApi.d.ts.map +1 -0
- package/dist/redux/api/apiKeyApi.js +36 -0
- package/dist/redux/api/apiKeyApi.js.map +1 -0
- package/dist/redux/api/apiKeyApi.ts +60 -0
- package/dist/resources/globals.css +628 -67
- package/dist/resources/shadcn-base.css +333 -7
- package/dist/resources/solid-responsive.css +6 -6
- package/dist/resources/themes/solid-dark-purple/theme.css +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import { getExtensionComponent } from "../../../../../helpers/registry";
|
|
|
5
5
|
import { SolidAutocomplete } from "../../../../shad-cn-ui/SolidAutocomplete";
|
|
6
6
|
import { SolidButton } from "../../../../shad-cn-ui/SolidButton";
|
|
7
7
|
import { SolidCheckbox } from "../../../../shad-cn-ui/SolidCheckbox";
|
|
8
|
-
import { SolidDialog } from "../../../../shad-cn-ui/SolidDialog";
|
|
8
|
+
import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogHeader, SolidDialogTitle } from "../../../../shad-cn-ui/SolidDialog";
|
|
9
9
|
import { SolidMessage } from "../../../../shad-cn-ui/SolidMessage";
|
|
10
10
|
import { SolidPanel } from "../../../../shad-cn-ui/SolidPanel";
|
|
11
11
|
import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
|
|
@@ -236,7 +236,7 @@ export const DefaultRelationManyToManyAutoCompleteFormEditWidget = ({ formik, fi
|
|
|
236
236
|
variant="outline"
|
|
237
237
|
aria-label="Filter"
|
|
238
238
|
type="button"
|
|
239
|
-
size="
|
|
239
|
+
size="sm"
|
|
240
240
|
onClick={() => setVisibleCreateDialog(true)}
|
|
241
241
|
className="custom-add-button"
|
|
242
242
|
disabled={isUnsaved}
|
|
@@ -374,7 +374,7 @@ export const DefaultRelationManyToManyCheckBoxFormEditWidget = ({ formik, fieldC
|
|
|
374
374
|
variant="outline"
|
|
375
375
|
aria-label="Filter"
|
|
376
376
|
type="button"
|
|
377
|
-
size="
|
|
377
|
+
size="sm"
|
|
378
378
|
onClick={() => setVisibleCreateDialog(true)}
|
|
379
379
|
className="custom-add-button"
|
|
380
380
|
disabled={isUnsaved}
|
|
@@ -628,81 +628,79 @@ export const DefaultRelationManyToManyListFormEditWidget = ({ formik, fieldConte
|
|
|
628
628
|
/>
|
|
629
629
|
)}
|
|
630
630
|
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
<
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
631
|
+
<SolidDialog
|
|
632
|
+
open={visibleLinkDialog}
|
|
633
|
+
onOpenChange={setVisibleLinkDialog}
|
|
634
|
+
style={{ width: '30vw', minWidth: 320 }}
|
|
635
|
+
>
|
|
636
|
+
<SolidDialogHeader>
|
|
637
|
+
<SolidDialogTitle>{`Link existing ${fieldLabel}`}</SolidDialogTitle>
|
|
638
|
+
<SolidDialogClose />
|
|
639
|
+
</SolidDialogHeader>
|
|
640
|
+
<SolidDialogBody>
|
|
641
|
+
<div className="flex flex-column gap-2 pt-2">
|
|
642
|
+
<label className="form-field-label">
|
|
643
|
+
Search {fieldLabel}
|
|
644
|
+
</label>
|
|
645
|
+
<SolidAutocomplete
|
|
646
|
+
field="label"
|
|
647
|
+
value={selectedLinkItem}
|
|
648
|
+
suggestions={suggestions}
|
|
649
|
+
completeMethod={handleLinkSearch}
|
|
650
|
+
onChange={({ value }: { value: any }) => setSelectedLinkItem(value)}
|
|
651
|
+
onSelect={({ value }: { value: any }) => setSelectedLinkItem(value)}
|
|
652
|
+
placeholder={`Type to search...`}
|
|
653
|
+
className="w-full"
|
|
654
|
+
dropdown
|
|
652
655
|
/>
|
|
653
656
|
</div>
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
dropdown
|
|
657
|
+
</SolidDialogBody>
|
|
658
|
+
<div className="solid-radix-dialog-footer flex gap-2 justify-content-end">
|
|
659
|
+
<SolidButton
|
|
660
|
+
label="Link"
|
|
661
|
+
size="sm"
|
|
662
|
+
disabled={!selectedLinkItem || isLinking}
|
|
663
|
+
loading={isLinking}
|
|
664
|
+
onClick={handleLinkConfirm}
|
|
665
|
+
/>
|
|
666
|
+
<SolidButton
|
|
667
|
+
label="Cancel"
|
|
668
|
+
size="sm"
|
|
669
|
+
variant="outline"
|
|
670
|
+
className="bg-primary-reverse"
|
|
671
|
+
onClick={() => setVisibleLinkDialog(false)}
|
|
670
672
|
/>
|
|
671
673
|
</div>
|
|
672
674
|
</SolidDialog>
|
|
673
675
|
|
|
674
676
|
|
|
675
677
|
<SolidDialog
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
contentStyle={{ borderRadius: 6 }}
|
|
681
|
-
visible={showSaveParentEntityConfirmationPopup}
|
|
682
|
-
style={{ width: '20vw' }}
|
|
683
|
-
onHide={() => {
|
|
684
|
-
if (!showSaveParentEntityConfirmationPopup) return;
|
|
685
|
-
setShowSaveParentEntityConfirmationPopup(false);
|
|
686
|
-
}}
|
|
678
|
+
open={showSaveParentEntityConfirmationPopup}
|
|
679
|
+
onOpenChange={setShowSaveParentEntityConfirmationPopup}
|
|
680
|
+
className="solid-confirm-dialog solid-field-confirm-dialog"
|
|
681
|
+
style={{ width: "min(420px, calc(100vw - 2rem))" }}
|
|
687
682
|
>
|
|
688
|
-
<
|
|
689
|
-
<
|
|
690
|
-
|
|
683
|
+
<SolidDialogHeader className="solid-field-confirm-header">
|
|
684
|
+
<SolidDialogTitle>Save Required</SolidDialogTitle>
|
|
685
|
+
<SolidDialogClose />
|
|
686
|
+
</SolidDialogHeader>
|
|
687
|
+
<SolidDialogBody className="solid-field-confirm-dialog-body">
|
|
688
|
+
<p className="solid-field-confirm-message">
|
|
689
|
+
Before creating {fieldLabel}, you need to save{" "}
|
|
691
690
|
{solidFormViewMetaData?.data?.solidView?.model?.displayName
|
|
692
|
-
? solidFormViewMetaData
|
|
691
|
+
? solidFormViewMetaData.data.solidView.model.displayName
|
|
693
692
|
: capitalize(fieldContext.modelName)}
|
|
694
|
-
. Please
|
|
693
|
+
. Please save first if you want to continue.
|
|
695
694
|
</p>
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
</div>
|
|
695
|
+
</SolidDialogBody>
|
|
696
|
+
<div className="solid-radix-dialog-footer solid-field-confirm-actions">
|
|
697
|
+
<SolidButton label="Save" size="sm" onClick={saveParentEntity} autoFocus />
|
|
698
|
+
<SolidButton
|
|
699
|
+
label="Cancel"
|
|
700
|
+
size="sm"
|
|
701
|
+
onClick={() => setShowSaveParentEntityConfirmationPopup(false)}
|
|
702
|
+
variant="outline"
|
|
703
|
+
/>
|
|
706
704
|
</div>
|
|
707
705
|
</SolidDialog>
|
|
708
706
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidRelationManyToOneField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAc5E,MAAM,MAAM,cAAc,GAAG;IACzB,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,EAAE,EAAE,GAAG,CAAC;IACR,OAAO,EAAE,GAAG,CAAC;IACb,oBAAoB,EAAE,GAAG,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;CACf,CAAA;AAED,qBAAa,2BAA4B,YAAW,WAAW;IAE3D,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,YAAY,IAAI,GAAG;IAqBnB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,gBAAgB,IAAI,GAAG,CAAC,MAAM;IA2D9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAED,eAAO,MAAM,sCAAsC,6BAA8B,yBAAyB,4CA6SzG,CAAA;AAED,eAAO,MAAM,0BAA0B,+HAAgI,GAAG,
|
|
1
|
+
{"version":3,"file":"SolidRelationManyToOneField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAc5E,MAAM,MAAM,cAAc,GAAG;IACzB,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,EAAE,EAAE,GAAG,CAAC;IACR,OAAO,EAAE,GAAG,CAAC;IACb,oBAAoB,EAAE,GAAG,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;CACf,CAAA;AAED,qBAAa,2BAA4B,YAAW,WAAW;IAE3D,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,YAAY,IAAI,GAAG;IAqBnB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,gBAAgB,IAAI,GAAG,CAAC,MAAM;IA2D9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAED,eAAO,MAAM,sCAAsC,6BAA8B,yBAAyB,4CA6SzG,CAAA;AAED,eAAO,MAAM,0BAA0B,+HAAgI,GAAG,4CAwDzK,CAAA;AAGD,eAAO,MAAM,sCAAsC,6BAA8B,yBAAyB,4CAiBzG,CAAA;AAMD,eAAO,MAAM,iCAAiC,6BAA8B,yBAAyB,4CAucpG,CAAA"}
|
|
@@ -496,14 +496,10 @@ export var RenderSolidFormEmbededView = function (_a) {
|
|
|
496
496
|
setvisibleCreateRelationEntity(false);
|
|
497
497
|
}),
|
|
498
498
|
};
|
|
499
|
-
return (_jsxs("div", { children: [_jsx("div", { children: _jsx(SolidButton, { icon: "si si-plus", rounded: true, variant: "outline", "aria-label": "Filter", type: "button", size: "
|
|
499
|
+
return (_jsxs("div", { children: [_jsx("div", { children: _jsx(SolidButton, { icon: "si si-plus", rounded: true, variant: "outline", "aria-label": "Filter", type: "button", size: "sm", onClick: function () { return setvisibleCreateRelationEntity(true); }, className: "custom-add-button" }) }), _jsx(SolidDialog, { open: visibleCreateRelationEntity, onOpenChange: setvisibleCreateRelationEntity, style: {
|
|
500
500
|
width: (_l = (_k = (_j = (_h = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _h === void 0 ? void 0 : _h.inlineCreateLayout) === null || _j === void 0 ? void 0 : _j.attrs) === null || _k === void 0 ? void 0 : _k.width) !== null && _l !== void 0 ? _l : "60vw",
|
|
501
501
|
height: (_q = (_p = (_o = (_m = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _m === void 0 ? void 0 : _m.inlineCreateLayout) === null || _o === void 0 ? void 0 : _o.attrs) === null || _p === void 0 ? void 0 : _p.height) !== null && _q !== void 0 ? _q : "auto"
|
|
502
|
-
},
|
|
503
|
-
if (!visibleCreateRelationEntity)
|
|
504
|
-
return;
|
|
505
|
-
setvisibleCreateRelationEntity(false);
|
|
506
|
-
}, className: "solid-dialog", breakpoints: { '1199px': '35rem', "767px": '85vw', "550px": '90vw' }, children: _jsx(SolidFormView, __assign({}, params)) })] }));
|
|
502
|
+
}, showHeader: false, className: "solid-dialog", breakpoints: { '1199px': '35rem', "767px": '85vw', "550px": '90vw' }, children: _jsx(SolidFormView, __assign({}, params)) })] }));
|
|
507
503
|
};
|
|
508
504
|
export var DefaultRelationManyToOneFormViewWidget = function (_a) {
|
|
509
505
|
var _b, _c, _d, _e, _f, _g;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidRelationManyToOneField.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { createSolidEntityApi } from \"../../../../../redux/api/solidEntityApi\";\nimport { SolidAutocomplete } from \"../../../../shad-cn-ui/SolidAutocomplete\";\nimport { SolidButton } from \"../../../../shad-cn-ui/SolidButton\";\nimport { SolidDialog } from \"../../../../shad-cn-ui/SolidDialog\";\nimport { SolidMessage } from \"../../../../shad-cn-ui/SolidMessage\";\nimport qs from \"qs\";\nimport React, { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"../ISolidField\";\nimport { camelCase } from \"lodash\";\nimport SolidFormView from '../../../../../components/core/form/SolidFormView';\nimport { getExtensionComponent } from \"../../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../../../../redux/features/toastSlice';\n// import Handlebars from \"handlebars/dist/handlebars\";\nimport * as Handlebars from \"handlebars\";\nimport { SolidFieldTooltip } from \"../../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../../constants/error-messages\";\nimport { getVirtualScrollerOptions } from \"../../../../../helpers/autoCompleteVirtualScroll\";\nimport { buildSyntheticChangeEvent } from \"../fieldEventUtils\";\nimport styles from \"../solidFields.module.css\";\n\ntype AutoCompleteCompleteEvent = { query: string };\n\n\nexport type FormViewParams = {\n moduleName: any;\n modelName: any;\n id: any;\n embeded: any;\n inlineCreateAutoSave: any;\n layout: any;\n}\n\nexport class SolidRelationManyToOneField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n initialValue(): any {\n\n const manyToOneFieldData = this.fieldContext?.data[this.fieldContext?.field?.attrs?.name];\n const fieldMetadata = this.fieldContext?.fieldMetadata;\n const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;\n const manyToOneColVal = manyToOneFieldData ? manyToOneFieldData[userKeyField] : '';\n if (manyToOneColVal) {\n return { solidManyToOneLabel: manyToOneColVal || '', solidManyToOneValue: manyToOneFieldData?.id || '', ...manyToOneFieldData };\n }\n if (this.fieldContext.parentData) {\n const parentDataForKey = this.fieldContext.parentData[userKeyField];\n if (parentDataForKey && typeof parentDataForKey === 'object') {\n const [key, value]: any = Object.entries(this.fieldContext.parentData)[0] || [];\n if (key && value !== undefined) {\n return { solidManyToOneLabel: value.solidManyToOneLabel, solidManyToOneValue: value.solidManyToOneValue };\n }\n }\n }\n return {}\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n if (value?.solidManyToOneValue) {\n formData.append(`${fieldLayoutInfo.attrs.name}Id`, value.solidManyToOneValue);\n }\n }\n\n validationSchema(): Yup.Schema {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n let schema = Yup.mixed();\n // Custom validation for relation field\n if (fieldMetadata.required) {\n schema = schema.test(\n ERROR_MESSAGES.REQUIRED_REALTION,\n ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel),\n function (value: any) {\n // Handle empty values\n if (!value) return false;\n\n // If it's an object with solidManyToOneValue, check if it's valid\n if (typeof value === 'object' && value !== null && (value as any).solidManyToOneValue) {\n return true;\n }\n\n // If it's a string (user typed but didn't select), it's invalid for required field\n if (typeof value === 'string') {\n return false;\n }\n\n return false;\n }\n );\n }\n\n // Add validation to ensure valid selection\n schema = schema.test(\n ERROR_MESSAGES.VALIDATE_SELECTION,\n ERROR_MESSAGES.SELECT_VALID_FROM_DROPDOWN(fieldLabel),\n function (value: any) {\n // If not required and empty, it's valid\n if (!fieldMetadata.required && (!value || value === '')) {\n return true;\n }\n\n // If it's an object with solidManyToOneValue, it's a valid selection\n if (typeof value === 'object' && value !== null && (value as any).solidManyToOneValue) {\n return true;\n }\n\n // If it's a string (user typed but didn't select), it's invalid\n if (typeof value === 'string' && value.trim() !== '') {\n return false;\n }\n\n // Empty value for non-required field\n return !fieldMetadata.required;\n }\n );\n\n return schema;\n }\n\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n\n let isVisible = fieldLayoutInfo.attrs?.visible || true;\n if (this.fieldContext.parentData && this.fieldContext.parentFieldName === fieldLayoutInfo.attrs.name) {\n isVisible = false;\n }\n\n // const isVisible = this.fieldContext.parentData ? fieldLayoutInfo.attrs?.visible === true : fieldLayoutInfo.attrs?.visible !== false;\n\n if (!isVisible) {\n return null;\n }\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultRelationManyToOneFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" && this.renderExtensionRenderMode(viewWidget, formik)}\n {viewMode === \"edit\" && (<>{editWidget && this.renderExtensionRenderMode(editWidget, formik)}</>)}\n </div>\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\nexport const DefaultRelationManyToOneFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const dispatch = useDispatch();\n\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 const [visibleCreateRelationEntity, setvisibleCreateRelationEntity] = useState(false);\n const [formViewParams, setformViewParams] = useState<FormViewParams>()\n // auto complete specific code. \n const entityApi = createSolidEntityApi(fieldMetadata.relationCoModelSingularName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\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 const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const [autoCompleteItems, setAutoCompleteItems] = useState<any[]>([]);\n const [offset, setOffset] = useState(0);\n const [hasMore, setHasMore] = useState(true);\n const [currentQuery, setCurrentQuery] = useState(\"\");\n const LIMIT = 50;\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const formviewparams: FormViewParams = {\n moduleName: fieldContext.fieldMetadata.relationModelModuleName,\n modelName: camelCase(fieldContext.fieldMetadata.relationCoModelSingularName),\n id: \"new\",\n embeded: true,\n inlineCreateAutoSave: fieldLayoutInfo?.attrs?.inlineCreateAutoSave,\n layout: fieldLayoutInfo?.attrs?.inlineCreateLayout\n }\n setformViewParams(formviewparams);\n }, [])\n\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n setOffset(0);\n setCurrentQuery(event.query || \"\");\n setHasMore(true);\n // Get the list view layout & metadata first. \n const queryData = {\n offset: 0,\n limit: LIMIT,\n filters: {\n $and: [\n {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']: event.query\n }\n }\n ]\n }\n };\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n if (solidFormViewMetaData?.data?.solidView?.model?.singularName === \"listOfValues\" && fieldContext.fieldMetadata.relationCoModelSingularName !== \"moduleMetadata\") {\n fixedFilterToBeApplied = true;\n }\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n // Parse the result into a JS object\n let parsedFilter;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n // Recursively check all nested values\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(obj);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {}; // fallback or throw error as needed\n }\n\n }\n\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n // if (whereClause) {\n // autocompleteQs = `${autocompleteQs}&${whereClause}`;\n // }\n\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SELECT_RELEVANT_FIELD, detail: ERROR_MESSAGES.FIELD_NOT_SELECT }));\n\n } else {\n try {\n setLoading(true);\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n\n if (autocompleteData) {\n const autoCompleteItems = autocompleteData.records.map((item: any) => {\n return {\n solidManyToOneLabel: item[fieldMetadata?.relationModel?.userKeyField?.name],\n solidManyToOneValue: item['id'],\n ...item,\n }\n });\n setAutoCompleteItems(autoCompleteItems);\n setOffset(autocompleteData.records.length);\n setHasMore(autocompleteData.records.length === LIMIT);\n }\n }\n finally {\n setLoading(false);\n }\n }\n\n\n }\n\n const onLazyLoad = async (event: { first: number; last: number }) => {\n if (!hasMore || loading) return;\n if (event.last < autoCompleteItems.length - 1) return; // Only load if user reaches bottom\n\n const queryData = {\n offset: offset,\n limit: LIMIT,\n filters: {\n $and: [\n {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']: currentQuery\n }\n }\n ]\n }\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n if (solidFormViewMetaData?.data?.solidView?.model?.singularName === \"listOfValues\" && fieldContext.fieldMetadata.relationCoModelSingularName !== \"moduleMetadata\") {\n fixedFilterToBeApplied = true;\n }\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n // Parse the result into a JS object\n let parsedFilter;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n // Recursively check all nested values\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(obj);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {}; // fallback or throw error as needed\n }\n\n }\n\n const autocompleteQs = qs.stringify(queryData, { encodeValuesOnly: true });\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SELECT_RELEVANT_FIELD, detail: ERROR_MESSAGES.FIELD_NOT_SELECT }));\n\n } else {\n try {\n setLoading(true);\n const response = await triggerGetSolidEntities(autocompleteQs);\n const records = response.data?.records || [];\n if (records.length < LIMIT) setHasMore(false);\n setAutoCompleteItems(prev => [...prev, ...records.map((item: any) => ({\n solidManyToOneLabel: item[fieldMetadata?.relationModel?.userKeyField?.name],\n solidManyToOneValue: item.id,\n ...item\n }))]);\n setOffset(prev => prev + records.length);\n } finally {\n setLoading(false);\n }\n }\n };\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const customCreateHandler = (values: any) => {\n const currentRelationData = formik.values[fieldLayoutInfo.attrs.name] || [];\n const jsonValues = Object.fromEntries(values.entries());\n const updatedRelationData = [\n ...currentRelationData,\n {\n solidManyToOneLabel: jsonValues[fieldMetadata?.relationModel?.userKeyField?.name],\n solidManyToOneValue: \"new\",\n original: jsonValues,\n },\n ];\n\n formik.setFieldValue(fieldLayoutInfo.attrs.name, updatedRelationData);\n\n }\n return (\n <div className=\"relative\">\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <div className=\"flex align-items-center gap-3\">\n <SolidAutocomplete\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled || readOnlyPermission}\n id={fieldLayoutInfo.attrs.name}\n field=\"solidManyToOneLabel\"\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n dropdown={!readOnlyPermission}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={({ value }: { value: any }) =>\n fieldContext.onChange(\n buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\"),\n 'onFieldChange'\n )\n }\n onSelect={({ value }: { value: any }) =>\n fieldContext.onChange(\n buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\"),\n 'onFieldChange'\n )\n }\n className=\"w-full solid-standard-autocomplete\"\n // virtualScrollerOptions={{\n // itemSize: 38,\n // lazy: true,\n // onLazyLoad\n // }}\n virtualScrollerOptions={getVirtualScrollerOptions({\n itemsLength: autoCompleteItems.length,\n lazy: true,\n onLazyLoad,\n })}\n />\n {fieldLayoutInfo.attrs.inlineCreate === \"true\" && readOnlyPermission === false && formViewParams &&\n <RenderSolidFormEmbededView formik={formik} fieldContext={fieldContext} customCreateHandler={customCreateHandler} visibleCreateRelationEntity={visibleCreateRelationEntity} setvisibleCreateRelationEntity={setvisibleCreateRelationEntity} formViewParams={formViewParams}></RenderSolidFormEmbededView>\n }\n </div>\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\nexport const RenderSolidFormEmbededView = ({ formik, fieldContext, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity, formViewParams }: any) => {\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-6';\n const parentModelName = fieldLayoutInfo?.attrs?.parentModelName;\n const childModelName = fieldLayoutInfo?.attrs?.childModelName;\n const parentFieldName = fieldLayoutInfo?.attrs?.parentFieldName;\n const childFieldName = fieldLayoutInfo?.attrs?.childFieldName;\n const parentModuleName = fieldLayoutInfo?.attrs?.parentModuleName;\n\n\n const params = {\n moduleName: formViewParams.moduleName,\n modelName: camelCase(formViewParams.modelName),\n id: formViewParams.id,\n embeded: formViewParams.embeded,\n inlineCreateAutoSave: formViewParams.inlineCreateAutoSave,\n layout: formViewParams.layout,\n customCreateHandler: ((values: any) => {\n setvisibleCreateRelationEntity(false);\n customCreateHandler(values)\n }),\n handlePopupClose: (() => {\n setvisibleCreateRelationEntity(false);\n }),\n }\n return (\n <div>\n <div>\n <SolidButton\n icon=\"si si-plus\"\n rounded\n variant=\"outline\"\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setvisibleCreateRelationEntity(true)}\n className=\"custom-add-button\"\n />\n </div>\n <SolidDialog\n visible={visibleCreateRelationEntity}\n showHeader={false}\n style={{\n width: fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.width ?? \"60vw\",\n height: fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.height ?? \"auto\"\n }}\n onHide={() => {\n if (!visibleCreateRelationEntity) return;\n setvisibleCreateRelationEntity(false);\n }}\n className=\"solid-dialog\"\n breakpoints={{ '1199px': '35rem', \"767px\": '85vw', \"550px\": '90vw' }}\n\n >\n <SolidFormView {...params} />\n\n </SolidDialog>\n </div>\n )\n}\n\n\nexport const DefaultRelationManyToOneFormViewWidget = ({ 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 const value = formik.values[fieldLayoutInfo.attrs.name];\n const userKeyField = fieldLayoutInfo?.attrs?.coModelFieldToDisplay ? fieldLayoutInfo?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n const displayValue = value?.[userKeyField];\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>{fieldLabel}</p>\n )}\n <p className={styles.fieldViewValue}>{displayValue || ''}</p>\n </div>\n );\n}\n\n\n\n\n\nexport const PseudoRelationManyToOneFormWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const dispatch = useDispatch();\n\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 ? fieldContext.readOnly : false;\n\n const parentModelName = fieldLayoutInfo?.attrs?.parentModelName;\n const childModelName = fieldLayoutInfo?.attrs?.childModelName;\n const parentFieldName = fieldLayoutInfo?.attrs?.parentFieldName;\n const childFieldName = fieldLayoutInfo?.attrs?.childFieldName;\n const parentModuleName = fieldLayoutInfo?.attrs?.parentModuleName;\n const parentFieldLabels = fieldLayoutInfo?.attrs?.parentFieldLabels;\n const parentSearchFields = fieldLayoutInfo?.attrs?.parentSearchFields;\n\n const [formViewParams, setformViewParams] = useState<FormViewParams>()\n\n const viewMode: string = fieldContext.viewMode;\n\n useEffect(() => {\n const formviewparams: FormViewParams = {\n moduleName: parentModuleName,\n modelName: camelCase(parentModelName),\n id: \"new\",\n embeded: true,\n inlineCreateAutoSave: fieldLayoutInfo?.attrs?.inlineCreateAutoSave,\n layout: fieldLayoutInfo?.attrs?.inlineCreateLayout\n }\n setformViewParams(formviewparams);\n }, [])\n\n\n const [visibleCreateRelationEntity, setvisibleCreateRelationEntity] = useState(false);\n // auto complete specific code. \n const entityApi = createSolidEntityApi(parentModelName || \"userViewMetadata\");\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\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 const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const [autoCompleteItems, setAutoCompleteItems] = useState<any[]>([]);\n const [offset, setOffset] = useState(0);\n const [hasMore, setHasMore] = useState(true);\n const [currentQuery, setCurrentQuery] = useState(\"\");\n const LIMIT = 50;\n const [loading, setLoading] = useState(false);\n const [viewDisplayValue, setViewDisplayValue] = useState<any>(null);\n\n\n useEffect(() => {\n const fn = async () => {\n if (fieldContext.data[fieldLayoutInfo.attrs.name]) {\n const queryData = {\n offset: 0,\n limit: LIMIT,\n filters: {\n $and: [\n {\n [parentFieldName]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$eqi']: fieldContext.data[fieldLayoutInfo.attrs.name] ?? formik.values[fieldLayoutInfo.attrs.name]\n }\n }\n ]\n }\n };\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n if (autocompleteData) {\n const formattedRecords = autocompleteData.records.map((item: any) => {\n const label = parentFieldLabels && parentFieldLabels.length > 0 ? parentFieldLabels.map((label: any) => item[label]).join(\" - \") : item[parentFieldName];\n return {\n solidManyToOneLabel: label,\n solidManyToOneValue: item[parentFieldName],\n ...item,\n }\n });\n if (formattedRecords.length > 0) {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, formattedRecords[0]);\n }\n }\n }\n }\n fn()\n }, [])\n\n // Add this NEW useEffect - only for view mode refresh\n useEffect(() => {\n const fn = async () => {\n if (viewMode !== \"view\") {\n setViewDisplayValue(null);\n return;\n }\n\n const rawValue =\n fieldContext.data[fieldLayoutInfo.attrs.name] ??\n formik.values[fieldLayoutInfo.attrs.name];\n\n if (!rawValue) return;\n\n const searchValue =\n typeof rawValue === \"object\"\n ? rawValue[parentFieldName]\n : rawValue;\n\n const queryData = {\n offset: 0,\n limit: 1,\n filters: {\n $and: [\n {\n [parentFieldName]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || \"$eqi\"]:\n searchValue,\n },\n },\n ],\n },\n };\n\n const qsStr = qs.stringify(queryData, { encodeValuesOnly: true });\n const res = await triggerGetSolidEntities(qsStr);\n const record = res.data?.records?.[0];\n if (!record) return;\n\n const label =\n parentFieldLabels?.length > 0\n ? parentFieldLabels.map((l: string) => record[l]).join(\" - \")\n : record[parentFieldName];\n console.log(\"Final View Label\", label, record[parentFieldName])\n setViewDisplayValue({\n solidManyToOneLabel: label,\n solidManyToOneValue: record[parentFieldName],\n ...record,\n });\n };\n\n fn();\n }, [viewMode, formik.values[fieldLayoutInfo.attrs.name]]);\n\n\n const resolvedValue = viewMode === \"view\" ? viewDisplayValue : formik.values[fieldLayoutInfo.attrs.name];\n\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n setOffset(0);\n setCurrentQuery(event.query || \"\");\n setHasMore(true);\n // Get the list view layout & metadata first. \n const queryData = {\n offset: 0,\n limit: LIMIT,\n filters: {\n $and: [\n ...(parentSearchFields?.length > 0\n ? [\n {\n $or: parentSearchFields.map((field: any) => ({\n [field]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']:\n event.query\n }\n }))\n }\n ]\n : [\n {\n [parentFieldName]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']:\n event.query\n }\n }\n ])\n\n ]\n }\n };\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n if (solidFormViewMetaData?.data?.solidView?.model?.singularName === \"listOfValues\" && fieldContext.fieldMetadata.relationCoModelSingularName !== \"moduleMetadata\") {\n fixedFilterToBeApplied = true;\n }\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n // Parse the result into a JS object\n let parsedFilter;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n // Recursively check all nested values\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(obj);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {}; // fallback or throw error as needed\n }\n\n }\n\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n // if (whereClause) {\n // autocompleteQs = `${autocompleteQs}&${whereClause}`;\n // }\n\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SELECT_RELEVANT_FIELD, detail: ERROR_MESSAGES.FIELD_NOT_SELECT }));\n\n } else {\n try {\n setLoading(true);\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n\n if (autocompleteData) {\n const autoCompleteItems = autocompleteData.records.map((item: any) => {\n const label = parentFieldLabels && parentFieldLabels.length > 0 ? parentFieldLabels.map((label: any) => item[label]).join(\" - \") : item[parentFieldName];\n return {\n solidManyToOneLabel: label,\n solidManyToOneValue: item[parentFieldName],\n ...item,\n }\n });\n // const autoCompleteItems = autocompleteData.records.map((item: any) => {label: item[parentFieldName],value});\n\n setAutoCompleteItems(autoCompleteItems);\n setOffset(autocompleteData.records.length);\n setHasMore(autocompleteData.records.length === LIMIT);\n }\n }\n finally {\n setLoading(false);\n }\n }\n }\n\n const onLazyLoad = async (event: { first: number; last: number }) => {\n if (!hasMore || loading) return;\n if (event.last < autoCompleteItems.length - 1) return; // Only load if user reaches bottom\n\n const queryData = {\n offset: offset,\n limit: LIMIT,\n filters: {\n $and: [\n ...(parentSearchFields?.length > 0\n ? [\n {\n $or: parentSearchFields.map((field: any) => ({\n [field]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']:\n currentQuery\n }\n }))\n }\n ]\n : [\n {\n [parentFieldName]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']:\n currentQuery\n }\n }\n ])\n\n ]\n }\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n if (solidFormViewMetaData?.data?.solidView?.model?.singularName === \"listOfValues\" && fieldContext.fieldMetadata.relationCoModelSingularName !== \"moduleMetadata\") {\n fixedFilterToBeApplied = true;\n }\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n // Parse the result into a JS object\n let parsedFilter;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n // Recursively check all nested values\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(obj);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {}; // fallback or throw error as needed\n }\n\n }\n\n const autocompleteQs = qs.stringify(queryData, { encodeValuesOnly: true });\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SELECT_RELEVANT_FIELD, detail: ERROR_MESSAGES.FIELD_NOT_SELECT }));\n\n } else {\n try {\n setLoading(true);\n const response = await triggerGetSolidEntities(autocompleteQs);\n const records = response.data?.records || [];\n if (records.length < LIMIT) setHasMore(false);\n setAutoCompleteItems((prev: any) => [...prev, ...records.map((item: any) => {\n const label = parentFieldLabels && parentFieldLabels.length > 0 ? parentFieldLabels.map((label: any) => item[label]).join(\" - \") : item[parentFieldName];\n return {\n solidManyToOneLabel: label,\n solidManyToOneValue: item[parentFieldName],\n ...item\n }\n }\n )]);\n setOffset((prev: any) => prev + records.length);\n } finally {\n setLoading(false);\n }\n }\n };\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const customCreateHandler = (values: any) => {\n const currentRelationData = formik.values[fieldLayoutInfo.attrs.name] || [];\n const jsonValues = Object.fromEntries(values.entries());\n console.log(\"jsonValues\", jsonValues);\n const label = parentFieldLabels && parentFieldLabels.length > 0 ? parentFieldLabels.map((label: any) => jsonValues[label]).join(\" - \") : jsonValues[parentFieldName];\n\n const updatedRelationData = [\n ...currentRelationData,\n // jsonValues[parentFieldName]\n {\n solidManyToOneLabel: label,\n solidManyToOneValue: \"new\",\n original: jsonValues,\n },\n ];\n\n formik.setFieldValue(fieldLayoutInfo.attrs.name, updatedRelationData);\n\n }\n return (\n <div className=\"relative\" >\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <div className=\"flex align-items-center gap-3\" >\n <SolidAutocomplete\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled || readOnlyPermission || viewMode === \"view\"}\n field=\"solidManyToOneLabel\"\n id={fieldLayoutInfo.attrs.name}\n value={resolvedValue || null}\n dropdown={!readOnlyPermission}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={({ value }: { value: any }) =>\n fieldContext.onChange(\n buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\"),\n 'onFieldChange'\n )\n }\n onSelect={({ value }: { value: any }) =>\n fieldContext.onChange(\n buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\"),\n 'onFieldChange'\n )\n }\n className=\"w-full solid-standard-autocomplete\"\n // virtualScrollerOptions={{\n // itemSize: 38,\n // lazy: true,\n // onLazyLoad\n // }}\n virtualScrollerOptions={getVirtualScrollerOptions({\n itemsLength: autoCompleteItems.length,\n lazy: true,\n onLazyLoad,\n })}\n />\n {\n fieldLayoutInfo.attrs.inlineCreate === \"true\" && readOnlyPermission === false && formViewParams && viewMode !== \"view\" &&\n <RenderSolidFormEmbededView formik={formik} fieldContext={fieldContext} customCreateHandler={customCreateHandler} visibleCreateRelationEntity={visibleCreateRelationEntity} setvisibleCreateRelationEntity={setvisibleCreateRelationEntity} formViewParams={formViewParams} > </RenderSolidFormEmbededView>\n }\n </div>\n </div>\n {\n isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\" >\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )\n }\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidRelationManyToOneField.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { createSolidEntityApi } from \"../../../../../redux/api/solidEntityApi\";\nimport { SolidAutocomplete } from \"../../../../shad-cn-ui/SolidAutocomplete\";\nimport { SolidButton } from \"../../../../shad-cn-ui/SolidButton\";\nimport { SolidDialog } from \"../../../../shad-cn-ui/SolidDialog\";\nimport { SolidMessage } from \"../../../../shad-cn-ui/SolidMessage\";\nimport qs from \"qs\";\nimport React, { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"../ISolidField\";\nimport { camelCase } from \"lodash\";\nimport SolidFormView from '../../../../../components/core/form/SolidFormView';\nimport { getExtensionComponent } from \"../../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../../../../redux/features/toastSlice';\n// import Handlebars from \"handlebars/dist/handlebars\";\nimport * as Handlebars from \"handlebars\";\nimport { SolidFieldTooltip } from \"../../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../../constants/error-messages\";\nimport { getVirtualScrollerOptions } from \"../../../../../helpers/autoCompleteVirtualScroll\";\nimport { buildSyntheticChangeEvent } from \"../fieldEventUtils\";\nimport styles from \"../solidFields.module.css\";\n\ntype AutoCompleteCompleteEvent = { query: string };\n\n\nexport type FormViewParams = {\n moduleName: any;\n modelName: any;\n id: any;\n embeded: any;\n inlineCreateAutoSave: any;\n layout: any;\n}\n\nexport class SolidRelationManyToOneField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n initialValue(): any {\n\n const manyToOneFieldData = this.fieldContext?.data[this.fieldContext?.field?.attrs?.name];\n const fieldMetadata = this.fieldContext?.fieldMetadata;\n const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;\n const manyToOneColVal = manyToOneFieldData ? manyToOneFieldData[userKeyField] : '';\n if (manyToOneColVal) {\n return { solidManyToOneLabel: manyToOneColVal || '', solidManyToOneValue: manyToOneFieldData?.id || '', ...manyToOneFieldData };\n }\n if (this.fieldContext.parentData) {\n const parentDataForKey = this.fieldContext.parentData[userKeyField];\n if (parentDataForKey && typeof parentDataForKey === 'object') {\n const [key, value]: any = Object.entries(this.fieldContext.parentData)[0] || [];\n if (key && value !== undefined) {\n return { solidManyToOneLabel: value.solidManyToOneLabel, solidManyToOneValue: value.solidManyToOneValue };\n }\n }\n }\n return {}\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n if (value?.solidManyToOneValue) {\n formData.append(`${fieldLayoutInfo.attrs.name}Id`, value.solidManyToOneValue);\n }\n }\n\n validationSchema(): Yup.Schema {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n let schema = Yup.mixed();\n // Custom validation for relation field\n if (fieldMetadata.required) {\n schema = schema.test(\n ERROR_MESSAGES.REQUIRED_REALTION,\n ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel),\n function (value: any) {\n // Handle empty values\n if (!value) return false;\n\n // If it's an object with solidManyToOneValue, check if it's valid\n if (typeof value === 'object' && value !== null && (value as any).solidManyToOneValue) {\n return true;\n }\n\n // If it's a string (user typed but didn't select), it's invalid for required field\n if (typeof value === 'string') {\n return false;\n }\n\n return false;\n }\n );\n }\n\n // Add validation to ensure valid selection\n schema = schema.test(\n ERROR_MESSAGES.VALIDATE_SELECTION,\n ERROR_MESSAGES.SELECT_VALID_FROM_DROPDOWN(fieldLabel),\n function (value: any) {\n // If not required and empty, it's valid\n if (!fieldMetadata.required && (!value || value === '')) {\n return true;\n }\n\n // If it's an object with solidManyToOneValue, it's a valid selection\n if (typeof value === 'object' && value !== null && (value as any).solidManyToOneValue) {\n return true;\n }\n\n // If it's a string (user typed but didn't select), it's invalid\n if (typeof value === 'string' && value.trim() !== '') {\n return false;\n }\n\n // Empty value for non-required field\n return !fieldMetadata.required;\n }\n );\n\n return schema;\n }\n\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n\n let isVisible = fieldLayoutInfo.attrs?.visible || true;\n if (this.fieldContext.parentData && this.fieldContext.parentFieldName === fieldLayoutInfo.attrs.name) {\n isVisible = false;\n }\n\n // const isVisible = this.fieldContext.parentData ? fieldLayoutInfo.attrs?.visible === true : fieldLayoutInfo.attrs?.visible !== false;\n\n if (!isVisible) {\n return null;\n }\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultRelationManyToOneFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" && this.renderExtensionRenderMode(viewWidget, formik)}\n {viewMode === \"edit\" && (<>{editWidget && this.renderExtensionRenderMode(editWidget, formik)}</>)}\n </div>\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\nexport const DefaultRelationManyToOneFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const dispatch = useDispatch();\n\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 const [visibleCreateRelationEntity, setvisibleCreateRelationEntity] = useState(false);\n const [formViewParams, setformViewParams] = useState<FormViewParams>()\n // auto complete specific code. \n const entityApi = createSolidEntityApi(fieldMetadata.relationCoModelSingularName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\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 const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const [autoCompleteItems, setAutoCompleteItems] = useState<any[]>([]);\n const [offset, setOffset] = useState(0);\n const [hasMore, setHasMore] = useState(true);\n const [currentQuery, setCurrentQuery] = useState(\"\");\n const LIMIT = 50;\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const formviewparams: FormViewParams = {\n moduleName: fieldContext.fieldMetadata.relationModelModuleName,\n modelName: camelCase(fieldContext.fieldMetadata.relationCoModelSingularName),\n id: \"new\",\n embeded: true,\n inlineCreateAutoSave: fieldLayoutInfo?.attrs?.inlineCreateAutoSave,\n layout: fieldLayoutInfo?.attrs?.inlineCreateLayout\n }\n setformViewParams(formviewparams);\n }, [])\n\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n setOffset(0);\n setCurrentQuery(event.query || \"\");\n setHasMore(true);\n // Get the list view layout & metadata first. \n const queryData = {\n offset: 0,\n limit: LIMIT,\n filters: {\n $and: [\n {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']: event.query\n }\n }\n ]\n }\n };\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n if (solidFormViewMetaData?.data?.solidView?.model?.singularName === \"listOfValues\" && fieldContext.fieldMetadata.relationCoModelSingularName !== \"moduleMetadata\") {\n fixedFilterToBeApplied = true;\n }\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n // Parse the result into a JS object\n let parsedFilter;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n // Recursively check all nested values\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(obj);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {}; // fallback or throw error as needed\n }\n\n }\n\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n // if (whereClause) {\n // autocompleteQs = `${autocompleteQs}&${whereClause}`;\n // }\n\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SELECT_RELEVANT_FIELD, detail: ERROR_MESSAGES.FIELD_NOT_SELECT }));\n\n } else {\n try {\n setLoading(true);\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n\n if (autocompleteData) {\n const autoCompleteItems = autocompleteData.records.map((item: any) => {\n return {\n solidManyToOneLabel: item[fieldMetadata?.relationModel?.userKeyField?.name],\n solidManyToOneValue: item['id'],\n ...item,\n }\n });\n setAutoCompleteItems(autoCompleteItems);\n setOffset(autocompleteData.records.length);\n setHasMore(autocompleteData.records.length === LIMIT);\n }\n }\n finally {\n setLoading(false);\n }\n }\n\n\n }\n\n const onLazyLoad = async (event: { first: number; last: number }) => {\n if (!hasMore || loading) return;\n if (event.last < autoCompleteItems.length - 1) return; // Only load if user reaches bottom\n\n const queryData = {\n offset: offset,\n limit: LIMIT,\n filters: {\n $and: [\n {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']: currentQuery\n }\n }\n ]\n }\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n if (solidFormViewMetaData?.data?.solidView?.model?.singularName === \"listOfValues\" && fieldContext.fieldMetadata.relationCoModelSingularName !== \"moduleMetadata\") {\n fixedFilterToBeApplied = true;\n }\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n // Parse the result into a JS object\n let parsedFilter;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n // Recursively check all nested values\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(obj);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {}; // fallback or throw error as needed\n }\n\n }\n\n const autocompleteQs = qs.stringify(queryData, { encodeValuesOnly: true });\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SELECT_RELEVANT_FIELD, detail: ERROR_MESSAGES.FIELD_NOT_SELECT }));\n\n } else {\n try {\n setLoading(true);\n const response = await triggerGetSolidEntities(autocompleteQs);\n const records = response.data?.records || [];\n if (records.length < LIMIT) setHasMore(false);\n setAutoCompleteItems(prev => [...prev, ...records.map((item: any) => ({\n solidManyToOneLabel: item[fieldMetadata?.relationModel?.userKeyField?.name],\n solidManyToOneValue: item.id,\n ...item\n }))]);\n setOffset(prev => prev + records.length);\n } finally {\n setLoading(false);\n }\n }\n };\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const customCreateHandler = (values: any) => {\n const currentRelationData = formik.values[fieldLayoutInfo.attrs.name] || [];\n const jsonValues = Object.fromEntries(values.entries());\n const updatedRelationData = [\n ...currentRelationData,\n {\n solidManyToOneLabel: jsonValues[fieldMetadata?.relationModel?.userKeyField?.name],\n solidManyToOneValue: \"new\",\n original: jsonValues,\n },\n ];\n\n formik.setFieldValue(fieldLayoutInfo.attrs.name, updatedRelationData);\n\n }\n return (\n <div className=\"relative\">\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <div className=\"flex align-items-center gap-3\">\n <SolidAutocomplete\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled || readOnlyPermission}\n id={fieldLayoutInfo.attrs.name}\n field=\"solidManyToOneLabel\"\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n dropdown={!readOnlyPermission}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={({ value }: { value: any }) =>\n fieldContext.onChange(\n buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\"),\n 'onFieldChange'\n )\n }\n onSelect={({ value }: { value: any }) =>\n fieldContext.onChange(\n buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\"),\n 'onFieldChange'\n )\n }\n className=\"w-full solid-standard-autocomplete\"\n // virtualScrollerOptions={{\n // itemSize: 38,\n // lazy: true,\n // onLazyLoad\n // }}\n virtualScrollerOptions={getVirtualScrollerOptions({\n itemsLength: autoCompleteItems.length,\n lazy: true,\n onLazyLoad,\n })}\n />\n {fieldLayoutInfo.attrs.inlineCreate === \"true\" && readOnlyPermission === false && formViewParams &&\n <RenderSolidFormEmbededView formik={formik} fieldContext={fieldContext} customCreateHandler={customCreateHandler} visibleCreateRelationEntity={visibleCreateRelationEntity} setvisibleCreateRelationEntity={setvisibleCreateRelationEntity} formViewParams={formViewParams}></RenderSolidFormEmbededView>\n }\n </div>\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\nexport const RenderSolidFormEmbededView = ({ formik, fieldContext, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity, formViewParams }: any) => {\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-6';\n const parentModelName = fieldLayoutInfo?.attrs?.parentModelName;\n const childModelName = fieldLayoutInfo?.attrs?.childModelName;\n const parentFieldName = fieldLayoutInfo?.attrs?.parentFieldName;\n const childFieldName = fieldLayoutInfo?.attrs?.childFieldName;\n const parentModuleName = fieldLayoutInfo?.attrs?.parentModuleName;\n\n\n const params = {\n moduleName: formViewParams.moduleName,\n modelName: camelCase(formViewParams.modelName),\n id: formViewParams.id,\n embeded: formViewParams.embeded,\n inlineCreateAutoSave: formViewParams.inlineCreateAutoSave,\n layout: formViewParams.layout,\n customCreateHandler: ((values: any) => {\n setvisibleCreateRelationEntity(false);\n customCreateHandler(values)\n }),\n handlePopupClose: (() => {\n setvisibleCreateRelationEntity(false);\n }),\n }\n return (\n <div>\n <div>\n <SolidButton\n icon=\"si si-plus\"\n rounded\n variant=\"outline\"\n aria-label=\"Filter\"\n type=\"button\"\n size=\"sm\"\n onClick={() => setvisibleCreateRelationEntity(true)}\n className=\"custom-add-button\"\n />\n </div>\n <SolidDialog\n open={visibleCreateRelationEntity}\n onOpenChange={setvisibleCreateRelationEntity}\n style={{\n width: fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.width ?? \"60vw\",\n height: fieldLayoutInfo?.attrs?.inlineCreateLayout?.attrs?.height ?? \"auto\"\n }}\n showHeader={false}\n className=\"solid-dialog\"\n breakpoints={{ '1199px': '35rem', \"767px\": '85vw', \"550px\": '90vw' }}\n\n >\n <SolidFormView {...params} />\n\n </SolidDialog>\n </div>\n )\n}\n\n\nexport const DefaultRelationManyToOneFormViewWidget = ({ 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 const value = formik.values[fieldLayoutInfo.attrs.name];\n const userKeyField = fieldLayoutInfo?.attrs?.coModelFieldToDisplay ? fieldLayoutInfo?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n const displayValue = value?.[userKeyField];\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>{fieldLabel}</p>\n )}\n <p className={styles.fieldViewValue}>{displayValue || ''}</p>\n </div>\n );\n}\n\n\n\n\n\nexport const PseudoRelationManyToOneFormWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const dispatch = useDispatch();\n\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 ? fieldContext.readOnly : false;\n\n const parentModelName = fieldLayoutInfo?.attrs?.parentModelName;\n const childModelName = fieldLayoutInfo?.attrs?.childModelName;\n const parentFieldName = fieldLayoutInfo?.attrs?.parentFieldName;\n const childFieldName = fieldLayoutInfo?.attrs?.childFieldName;\n const parentModuleName = fieldLayoutInfo?.attrs?.parentModuleName;\n const parentFieldLabels = fieldLayoutInfo?.attrs?.parentFieldLabels;\n const parentSearchFields = fieldLayoutInfo?.attrs?.parentSearchFields;\n\n const [formViewParams, setformViewParams] = useState<FormViewParams>()\n\n const viewMode: string = fieldContext.viewMode;\n\n useEffect(() => {\n const formviewparams: FormViewParams = {\n moduleName: parentModuleName,\n modelName: camelCase(parentModelName),\n id: \"new\",\n embeded: true,\n inlineCreateAutoSave: fieldLayoutInfo?.attrs?.inlineCreateAutoSave,\n layout: fieldLayoutInfo?.attrs?.inlineCreateLayout\n }\n setformViewParams(formviewparams);\n }, [])\n\n\n const [visibleCreateRelationEntity, setvisibleCreateRelationEntity] = useState(false);\n // auto complete specific code. \n const entityApi = createSolidEntityApi(parentModelName || \"userViewMetadata\");\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\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 const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const [autoCompleteItems, setAutoCompleteItems] = useState<any[]>([]);\n const [offset, setOffset] = useState(0);\n const [hasMore, setHasMore] = useState(true);\n const [currentQuery, setCurrentQuery] = useState(\"\");\n const LIMIT = 50;\n const [loading, setLoading] = useState(false);\n const [viewDisplayValue, setViewDisplayValue] = useState<any>(null);\n\n\n useEffect(() => {\n const fn = async () => {\n if (fieldContext.data[fieldLayoutInfo.attrs.name]) {\n const queryData = {\n offset: 0,\n limit: LIMIT,\n filters: {\n $and: [\n {\n [parentFieldName]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$eqi']: fieldContext.data[fieldLayoutInfo.attrs.name] ?? formik.values[fieldLayoutInfo.attrs.name]\n }\n }\n ]\n }\n };\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n if (autocompleteData) {\n const formattedRecords = autocompleteData.records.map((item: any) => {\n const label = parentFieldLabels && parentFieldLabels.length > 0 ? parentFieldLabels.map((label: any) => item[label]).join(\" - \") : item[parentFieldName];\n return {\n solidManyToOneLabel: label,\n solidManyToOneValue: item[parentFieldName],\n ...item,\n }\n });\n if (formattedRecords.length > 0) {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, formattedRecords[0]);\n }\n }\n }\n }\n fn()\n }, [])\n\n // Add this NEW useEffect - only for view mode refresh\n useEffect(() => {\n const fn = async () => {\n if (viewMode !== \"view\") {\n setViewDisplayValue(null);\n return;\n }\n\n const rawValue =\n fieldContext.data[fieldLayoutInfo.attrs.name] ??\n formik.values[fieldLayoutInfo.attrs.name];\n\n if (!rawValue) return;\n\n const searchValue =\n typeof rawValue === \"object\"\n ? rawValue[parentFieldName]\n : rawValue;\n\n const queryData = {\n offset: 0,\n limit: 1,\n filters: {\n $and: [\n {\n [parentFieldName]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || \"$eqi\"]:\n searchValue,\n },\n },\n ],\n },\n };\n\n const qsStr = qs.stringify(queryData, { encodeValuesOnly: true });\n const res = await triggerGetSolidEntities(qsStr);\n const record = res.data?.records?.[0];\n if (!record) return;\n\n const label =\n parentFieldLabels?.length > 0\n ? parentFieldLabels.map((l: string) => record[l]).join(\" - \")\n : record[parentFieldName];\n console.log(\"Final View Label\", label, record[parentFieldName])\n setViewDisplayValue({\n solidManyToOneLabel: label,\n solidManyToOneValue: record[parentFieldName],\n ...record,\n });\n };\n\n fn();\n }, [viewMode, formik.values[fieldLayoutInfo.attrs.name]]);\n\n\n const resolvedValue = viewMode === \"view\" ? viewDisplayValue : formik.values[fieldLayoutInfo.attrs.name];\n\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n setOffset(0);\n setCurrentQuery(event.query || \"\");\n setHasMore(true);\n // Get the list view layout & metadata first. \n const queryData = {\n offset: 0,\n limit: LIMIT,\n filters: {\n $and: [\n ...(parentSearchFields?.length > 0\n ? [\n {\n $or: parentSearchFields.map((field: any) => ({\n [field]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']:\n event.query\n }\n }))\n }\n ]\n : [\n {\n [parentFieldName]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']:\n event.query\n }\n }\n ])\n\n ]\n }\n };\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n if (solidFormViewMetaData?.data?.solidView?.model?.singularName === \"listOfValues\" && fieldContext.fieldMetadata.relationCoModelSingularName !== \"moduleMetadata\") {\n fixedFilterToBeApplied = true;\n }\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n // Parse the result into a JS object\n let parsedFilter;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n // Recursively check all nested values\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(obj);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {}; // fallback or throw error as needed\n }\n\n }\n\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n // if (whereClause) {\n // autocompleteQs = `${autocompleteQs}&${whereClause}`;\n // }\n\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SELECT_RELEVANT_FIELD, detail: ERROR_MESSAGES.FIELD_NOT_SELECT }));\n\n } else {\n try {\n setLoading(true);\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n\n if (autocompleteData) {\n const autoCompleteItems = autocompleteData.records.map((item: any) => {\n const label = parentFieldLabels && parentFieldLabels.length > 0 ? parentFieldLabels.map((label: any) => item[label]).join(\" - \") : item[parentFieldName];\n return {\n solidManyToOneLabel: label,\n solidManyToOneValue: item[parentFieldName],\n ...item,\n }\n });\n // const autoCompleteItems = autocompleteData.records.map((item: any) => {label: item[parentFieldName],value});\n\n setAutoCompleteItems(autoCompleteItems);\n setOffset(autocompleteData.records.length);\n setHasMore(autocompleteData.records.length === LIMIT);\n }\n }\n finally {\n setLoading(false);\n }\n }\n }\n\n const onLazyLoad = async (event: { first: number; last: number }) => {\n if (!hasMore || loading) return;\n if (event.last < autoCompleteItems.length - 1) return; // Only load if user reaches bottom\n\n const queryData = {\n offset: offset,\n limit: LIMIT,\n filters: {\n $and: [\n ...(parentSearchFields?.length > 0\n ? [\n {\n $or: parentSearchFields.map((field: any) => ({\n [field]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']:\n currentQuery\n }\n }))\n }\n ]\n : [\n {\n [parentFieldName]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']:\n currentQuery\n }\n }\n ])\n\n ]\n }\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n if (solidFormViewMetaData?.data?.solidView?.model?.singularName === \"listOfValues\" && fieldContext.fieldMetadata.relationCoModelSingularName !== \"moduleMetadata\") {\n fixedFilterToBeApplied = true;\n }\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n // Parse the result into a JS object\n let parsedFilter;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n // Recursively check all nested values\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(obj);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {}; // fallback or throw error as needed\n }\n\n }\n\n const autocompleteQs = qs.stringify(queryData, { encodeValuesOnly: true });\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SELECT_RELEVANT_FIELD, detail: ERROR_MESSAGES.FIELD_NOT_SELECT }));\n\n } else {\n try {\n setLoading(true);\n const response = await triggerGetSolidEntities(autocompleteQs);\n const records = response.data?.records || [];\n if (records.length < LIMIT) setHasMore(false);\n setAutoCompleteItems((prev: any) => [...prev, ...records.map((item: any) => {\n const label = parentFieldLabels && parentFieldLabels.length > 0 ? parentFieldLabels.map((label: any) => item[label]).join(\" - \") : item[parentFieldName];\n return {\n solidManyToOneLabel: label,\n solidManyToOneValue: item[parentFieldName],\n ...item\n }\n }\n )]);\n setOffset((prev: any) => prev + records.length);\n } finally {\n setLoading(false);\n }\n }\n };\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const customCreateHandler = (values: any) => {\n const currentRelationData = formik.values[fieldLayoutInfo.attrs.name] || [];\n const jsonValues = Object.fromEntries(values.entries());\n console.log(\"jsonValues\", jsonValues);\n const label = parentFieldLabels && parentFieldLabels.length > 0 ? parentFieldLabels.map((label: any) => jsonValues[label]).join(\" - \") : jsonValues[parentFieldName];\n\n const updatedRelationData = [\n ...currentRelationData,\n // jsonValues[parentFieldName]\n {\n solidManyToOneLabel: label,\n solidManyToOneValue: \"new\",\n original: jsonValues,\n },\n ];\n\n formik.setFieldValue(fieldLayoutInfo.attrs.name, updatedRelationData);\n\n }\n return (\n <div className=\"relative\" >\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <div className=\"flex align-items-center gap-3\" >\n <SolidAutocomplete\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled || readOnlyPermission || viewMode === \"view\"}\n field=\"solidManyToOneLabel\"\n id={fieldLayoutInfo.attrs.name}\n value={resolvedValue || null}\n dropdown={!readOnlyPermission}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={({ value }: { value: any }) =>\n fieldContext.onChange(\n buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\"),\n 'onFieldChange'\n )\n }\n onSelect={({ value }: { value: any }) =>\n fieldContext.onChange(\n buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\"),\n 'onFieldChange'\n )\n }\n className=\"w-full solid-standard-autocomplete\"\n // virtualScrollerOptions={{\n // itemSize: 38,\n // lazy: true,\n // onLazyLoad\n // }}\n virtualScrollerOptions={getVirtualScrollerOptions({\n itemsLength: autoCompleteItems.length,\n lazy: true,\n onLazyLoad,\n })}\n />\n {\n fieldLayoutInfo.attrs.inlineCreate === \"true\" && readOnlyPermission === false && formViewParams && viewMode !== \"view\" &&\n <RenderSolidFormEmbededView formik={formik} fieldContext={fieldContext} customCreateHandler={customCreateHandler} visibleCreateRelationEntity={visibleCreateRelationEntity} setvisibleCreateRelationEntity={setvisibleCreateRelationEntity} formViewParams={formViewParams} > </RenderSolidFormEmbededView>\n }\n </div>\n </div>\n {\n isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\" >\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )\n }\n </div>\n );\n}\n"]}
|