@solidxai/core-ui 0.1.4-beta.0 → 0.1.4-beta.2
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/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +8 -0
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +8 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts +2 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts.map +1 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js +34 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js.map +1 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx +83 -0
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +6 -8
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +21 -21
- package/dist/components/core/dashboard/SolidDashboard.d.ts +1 -1
- package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -1
- package/dist/components/core/dashboard/SolidDashboard.js.map +1 -1
- package/dist/components/core/dashboard/SolidDashboard.tsx +1 -1
- package/dist/components/core/dashboard/SolidDashboardVariable.js +1 -1
- package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -1
- package/dist/components/core/dashboard/SolidDashboardVariable.tsx +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +15 -30
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +46 -36
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +40 -0
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +315 -160
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +459 -249
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +46 -95
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +57 -113
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +15 -5
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +203 -67
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +147 -67
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +8 -7
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +3 -2
- package/dist/components/core/list/SolidListView.d.ts +8 -5
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +95 -84
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +55 -62
- package/dist/components/core/list/SolidListViewConfigure.d.ts +7 -0
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +6 -5
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +21 -12
- package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.js +1 -24
- package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -35
- package/dist/components/core/list/columns/SolidDateColumn.d.ts +0 -5
- package/dist/components/core/list/columns/SolidDateColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidDateColumn.js +1 -31
- package/dist/components/core/list/columns/SolidDateColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidDateColumn.tsx +2 -49
- package/dist/components/core/list/columns/SolidDatetimeColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidDatetimeColumn.js +1 -20
- package/dist/components/core/list/columns/SolidDatetimeColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +2 -37
- package/dist/components/core/list/columns/SolidExternalIdColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidExternalIdColumn.js +1 -21
- package/dist/components/core/list/columns/SolidExternalIdColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidExternalIdColumn.tsx +1 -38
- package/dist/components/core/list/columns/SolidIdColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidIdColumn.js +1 -21
- package/dist/components/core/list/columns/SolidIdColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidIdColumn.tsx +1 -36
- package/dist/components/core/list/columns/SolidIntColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidIntColumn.js +1 -30
- package/dist/components/core/list/columns/SolidIntColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidIntColumn.tsx +2 -46
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -5
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +0 -7
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +0 -1
- package/dist/components/core/list/columns/SolidSelectionDynamicColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js +1 -21
- package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionDynamicColumn.tsx +1 -37
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.js +1 -21
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.tsx +1 -38
- package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js +2 -66
- package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.tsx +3 -86
- package/dist/components/core/list/columns/SolidTimeColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidTimeColumn.js +1 -20
- package/dist/components/core/list/columns/SolidTimeColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidTimeColumn.tsx +2 -37
- package/dist/components/core/list/columns/SolidUuidColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidUuidColumn.js +1 -21
- package/dist/components/core/list/columns/SolidUuidColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidUuidColumn.tsx +1 -37
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +1 -17
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +2 -35
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +10 -20
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +15 -36
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +1 -15
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +1 -31
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +23 -14
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +50 -16
- package/dist/helpers/registry.js +3 -1
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +4 -1
- 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 +5 -2
- package/dist/redux/api/fetchBaseQuery.js +4 -5
- package/dist/redux/api/fetchBaseQuery.js.map +1 -1
- package/dist/redux/api/fetchBaseQuery.tsx +4 -4
- package/dist/redux/api/solidSettingsApi.d.ts +2 -1
- package/dist/redux/api/solidSettingsApi.d.ts.map +1 -1
- package/dist/redux/api/solidSettingsApi.js +4 -1
- package/dist/redux/api/solidSettingsApi.js.map +1 -1
- package/dist/redux/api/solidSettingsApi.tsx +6 -1
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/resources/globals.css +14 -0
- package/dist/routes/pages/admin/core/DashboardPage.d.ts +2 -0
- package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/DashboardPage.js +14 -0
- package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -0
- package/dist/routes/pages/admin/core/DashboardPage.tsx +17 -0
- package/dist/routes/pages/admin/core/ListPage.js +1 -1
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
- package/dist/routes/pages/admin/core/ModuleHomePage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ModuleHomePage.js +4 -15
- package/dist/routes/pages/admin/core/ModuleHomePage.js.map +1 -1
- package/dist/routes/pages/admin/core/ModuleHomePage.tsx +4 -3
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +2 -0
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +1 -0
- package/dist/types/solid-core.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidRelationManyToManyField.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { Message } from \"primereact/message\";\nimport { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"../ISolidField\";\nimport { getExtensionComponent } from \"../../../../../helpers/registry\";\nimport { AutoComplete, AutoCompleteCompleteEvent } from \"primereact/autocomplete\";\nimport { Button } from \"primereact/button\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { useRelationEntityHandler } from \"./widgets/helpers/useRelationEntityHandler\";\nimport { InlineRelationEntityDialog } from \"./widgets/helpers/InlineRelationEntityDialog\";\nimport { capitalize } from \"lodash\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Panel } from \"primereact/panel\";\nimport { SolidFieldTooltip } from \"../../../../../components/common/SolidFieldTooltip\";\nimport qs from 'qs';\n// import Handlebars from \"handlebars/dist/handlebars\";\nimport * as Handlebars from \"handlebars\";\nimport { ERROR_MESSAGES } from \"../../../../../constants/error-messages\";\n\n\n\n\n\nexport class SolidRelationManyToManyField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n initialValue(): any {\n\n // const manyToManyFieldData = this.fieldContext.data[this.fieldContext.field.attrs.name];\n // const fieldMetadata = this.fieldContext.fieldMetadata;\n // const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;\n // if (manyToManyFieldData) {\n // return manyToManyFieldData.map((e: any) => {\n // const manyToManyColVal = e[userKeyField] || '';\n // return {\n // label: manyToManyColVal,\n // value: e?.id || '',\n // original: e\n // };\n // });\n // }\n return [];\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n //if empty then clear the field\n if (value && value.length === 0) {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"clear\");\n }\n if (value && value.length > 0) {\n const shouldUseOriginal = value.every((item: any) => item.original && item.original.id);\n\n value.forEach((item: any, index: number) => {\n if (shouldUseOriginal) {\n formData.append(\n `${fieldLayoutInfo.attrs.name}Ids[${index}]`,\n item.value\n );\n } else {\n formData.append(\n `${fieldLayoutInfo.attrs.name}[${index}]`,\n JSON.stringify(item.original)\n );\n }\n });\n if (shouldUseOriginal) {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"set\")\n } else {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"update\")\n\n }\n\n }\n }\n\n validationSchema(): Yup.Schema {\n let schema = Yup.array();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n if (fieldMetadata.required) {\n schema = schema\n .min(1, ERROR_MESSAGES.SELECT_ATLEAST_ONE(fieldLabel))\n .required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultRelationManyToManyAutoCompleteFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultRelationOneToManyFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\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\n\n\nexport const DefaultRelationManyToManyAutoCompleteFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n const readOnly = fieldLayoutInfo.attrs?.readOnly;\n const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n const { autoCompleteItems, fetchRelationEntities, populateFormikWithRelatedEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n // const onChange = (e: any) => {\n // formik.setFieldValue(fieldContext.field.attrs.name, e.value);\n // };\n\n useEffect(() => {\n populateFormikWithRelatedEntities();\n }, [formik.values?.id]);\n\n\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n const queryData: any = {\n offset: 0,\n limit: 1000,\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\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 let parsedFilter: any;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\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(parsedFilter);\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 = {};\n }\n\n }\n\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n // if (whereClause) {\n // autocompleteQs = `${autocompleteQs}&${whereClause}`;\n // }\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);\n\n } else {\n // const autocompleteQs = qs.stringify(queryData, {\n // encodeValuesOnly: true,\n // });\n fetchRelationEntities(autocompleteQs);\n }\n };\n\n return (\n\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label\">\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 <AutoComplete\n readOnly={readOnly || readOnlyPermission}\n disabled={disabled || readOnlyPermission}\n multiple\n {...formik.getFieldProps(fieldLayoutInfo.attrs.name)}\n id={fieldLayoutInfo.attrs.name}\n field=\"label\"\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n dropdown={!readOnlyPermission}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={(e) => fieldContext.onChange(e, 'onFieldChange')}\n className=\"solid-standard-autocomplete w-full\"\n />\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <div>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n />\n </div>\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\n\n\nexport const DefaultRelationManyToManyCheckBoxFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n const readOnlyPermission = fieldContext.readOnly;\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n const { autoCompleteItems, fetchRelationEntities, populateFormikWithRelatedEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });\n\n useEffect(() => {\n populateFormikWithRelatedEntities();\n }, [formik.values?.id]);\n\n\n useEffect(() => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const queryData: any = {\n offset: 0,\n limit: 1000,\n filters: {\n $and: []\n }\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\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 let parsedFilter: any;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\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(parsedFilter);\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 = {};\n }\n\n }\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);\n\n } else {\n const autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n fetchRelationEntities(autocompleteQs);\n }\n\n }, [fieldContext, formik.values]);\n\n const handleCheckboxChange = (e: any) => {\n if (formik.values[fieldLayoutInfo.attrs.name].some((item: any) => item.value === e.value)) {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, formik.values[fieldLayoutInfo.attrs.name].filter((s: any) => s.value !== e.value));\n } else {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, [...formik.values[fieldLayoutInfo.attrs.name], e]);\n }\n };\n\n const headerTemplate = (options: any) => {\n const className = `${options.className} justify-content-space-between`;\n\n return (\n <div className={className}>\n <div className=\"flex align-items-center gap-3\">\n {showFieldLabel != false &&\n <label className=\"form-field-label\">\n {capitalize(fieldLayoutInfo.attrs.name)}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n />\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n {/* <div className=\"many-to-many-add\" >\n <Button icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n onClick={() => autoCompleteSearch()}\n />\n </div> */}\n </div>\n <div>\n {options.togglerElement}\n </div>\n </div>\n );\n };\n return (\n <div>\n <Panel toggleable headerTemplate={headerTemplate}>\n <div className=\"formgrid grid\">\n {autoCompleteItems && autoCompleteItems.map((a: any, i: number) => {\n return (\n <div key={a.label} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n readOnly={readOnlyPermission}\n inputId={a.label}\n checked={formik.values[fieldLayoutInfo.attrs.name].some((item: any) => item.label === a.label)}\n onChange={() => handleCheckboxChange(a)}\n />\n <label htmlFor={a.label} className=\"form-field-label m-0\"> {a.label}</label>\n </div>\n )\n })}\n </div>\n </Panel>\n </div>\n )\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidRelationManyToManyField.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Message } from \"primereact/message\";\nimport { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"../ISolidField\";\nimport { getExtensionComponent } from \"../../../../../helpers/registry\";\nimport { AutoComplete, AutoCompleteCompleteEvent } from \"primereact/autocomplete\";\nimport { Button } from \"primereact/button\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { useRelationEntityHandler } from \"./widgets/helpers/useRelationEntityHandler\";\nimport { InlineRelationEntityDialog } from \"./widgets/helpers/InlineRelationEntityDialog\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Panel } from \"primereact/panel\";\nimport { SolidFieldTooltip } from \"../../../../../components/common/SolidFieldTooltip\";\nimport qs from 'qs';\nimport * as Handlebars from \"handlebars\";\nimport { ERROR_MESSAGES } from \"../../../../../constants/error-messages\";\nimport { useRouter } from \"../../../../../hooks/useRouter\";\nimport { usePathname } from \"../../../../../hooks/usePathname\";\nimport { camelCase, capitalize } from \"lodash\";\nimport { SolidListView } from \"../../../../core/list/SolidListView\";\nimport { RenderSolidFormEmbededView } from \"./SolidRelationManyToOneField\";\nimport { Dialog } from \"primereact/dialog\";\n\nexport type FormViewParams = {\n moduleName: any;\n id: any;\n embeded: any;\n isCustomCreate: any;\n customLayout: any;\n modelName: any;\n parentFieldName?: any;\n parentData: any;\n onEmbeddedFormSave: any;\n inlineCreateAutoSave: any;\n customCreateHandler?: any;\n handlePopupClose?: any;\n};\n\n\n\nexport class SolidRelationManyToManyField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n initialValue(): any {\n return [];\n }\n\n updateFormData(value: any, formData: FormData): any {\n // Link/unlink is handled per-interaction in each widget.\n // No bulk update needed on form submit for many-to-many.\n }\n\n validationSchema(): Yup.Schema {\n let schema = Yup.array();\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n if (fieldMetadata.required) {\n schema = schema\n .min(1, ERROR_MESSAGES.SELECT_ATLEAST_ONE(fieldLabel))\n .required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) editWidget = 'DefaultRelationManyToManyAutoCompleteFormEditWidget';\n if (!viewWidget) viewWidget = 'DefaultRelationManyToManyListFormEditWidget';\n\n const viewMode: string = this.fieldContext.viewMode;\n return (\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 renderExtensionRenderMode(widget: string, formik: FormikObject) {\n const DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = { formik, fieldContext: this.fieldContext };\n return <>{DynamicWidget && <DynamicWidget {...widgetProps} />}</>;\n }\n}\n\n\n\n/**\n * AUTOCOMPLETE WIDGET\n *\n * State:\n * currentValues — chips shown in the input (currently linked items)\n * suggestions — dropdown options populated on each keystroke\n *\n * Flow:\n * mount → fetchCurrentValues()\n * user types → fetchSuggestions() via completeMethod\n * user selects → linkItem() → on success, adds to currentValues\n * user removes chip→ unlinkItem() → on success, removes from currentValues\n */\nexport const DefaultRelationManyToManyAutoCompleteFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\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 readOnlyPermission = fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n const readOnly = fieldLayoutInfo.attrs?.readOnly;\n\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n\n const {\n currentValues,\n suggestions,\n fetchCurrentValues,\n fetchSuggestions,\n linkItem,\n unlinkItem,\n addNewRelation,\n } = useRelationEntityHandler({ fieldContext });\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n // On mount: load already-linked items into currentValues\n useEffect(() => {\n fetchCurrentValues();\n }, [fieldContext.data?.id]);\n\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n const queryData: any = {\n offset: 0,\n limit: 1000,\n filters: {\n $and: [\n {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']: event.query,\n },\n },\n ],\n },\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const rawFilter = fieldLayoutInfo?.attrs?.whereClause ?? fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const rendered = Handlebars.compile(rawFilter)(formik.values);\n\n try {\n const parsed = JSON.parse(rendered);\n const hasValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') return Object.values(val).some(hasValue);\n return true;\n };\n if (hasValue(parsed)) {\n queryData.filters.$and.push(parsed);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsed);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, rendered);\n }\n }\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);\n } else {\n fetchSuggestions(qs.stringify(queryData, { encodeValuesOnly: true }));\n }\n };\n\n return (\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label\">\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 <AutoComplete\n readOnly={readOnly || readOnlyPermission}\n disabled={disabled || readOnlyPermission}\n multiple\n id={fieldLayoutInfo.attrs.name}\n field=\"label\"\n value={currentValues}\n dropdown={!readOnlyPermission}\n suggestions={suggestions}\n completeMethod={autoCompleteSearch}\n onChange={() => {\n // Intentionally empty — currentValues is managed via onSelect/onUnselect\n }}\n onSelect={(e) => linkItem(e.value)}\n onUnselect={(e) => unlinkItem(e.value)}\n className=\"solid-standard-autocomplete w-full\"\n />\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <div>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n />\n </div>\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n};\n\n\n\n/**\n * CHECKBOX WIDGET\n *\n * State:\n * allOptions — every possible item to render as a checkbox row\n * currentValues — the subset that is currently linked (drives checked state)\n *\n * Flow:\n * mount → fetchCurrentValues() + fetchAllOptions()\n * user checks → linkItem() → on success, adds to currentValues\n * user unchecks → unlinkItem() → on success, removes from currentValues\n */\nexport const DefaultRelationManyToManyCheckBoxFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n\n const {\n currentValues,\n allOptions,\n fetchCurrentValues,\n fetchAllOptions,\n linkItem,\n unlinkItem,\n addNewRelation,\n } = useRelationEntityHandler({ fieldContext });\n\n // On mount: load already-linked items + all possible options\n useEffect(() => {\n fetchCurrentValues();\n }, [fieldContext.data?.id]);\n\n useEffect(() => {\n const queryData: any = {\n offset: 0,\n limit: 1000,\n filters: { $and: [] },\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const rawFilter = fieldLayoutInfo?.attrs?.whereClause ?? fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const rendered = Handlebars.compile(rawFilter)(formik.values);\n\n try {\n const parsed = JSON.parse(rendered);\n const hasValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') return Object.values(val).some(hasValue);\n return true;\n };\n if (hasValue(parsed)) {\n queryData.filters.$and.push(parsed);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsed);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, rendered);\n }\n }\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);\n } else {\n fetchAllOptions(qs.stringify(queryData, { encodeValuesOnly: true }));\n }\n }, [fieldContext, formik.values]);\n\n const handleCheckboxChange = (item: any) => {\n const isCurrentlyLinked = currentValues.some((s) => s.value === item.value);\n if (isCurrentlyLinked) {\n unlinkItem(item);\n } else {\n linkItem(item);\n }\n };\n\n const headerTemplate = (options: any) => (\n <div className={`${options.className} justify-content-space-between`}>\n <div className=\"flex align-items-center gap-3\">\n {showFieldLabel !== false && (\n <label className=\"form-field-label\">\n {capitalize(fieldLayoutInfo.attrs.name)}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n />\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\n <div>{options.togglerElement}</div>\n </div>\n );\n\n return (\n <div>\n <Panel toggleable headerTemplate={headerTemplate}>\n <div className=\"formgrid grid\">\n {allOptions.map((item: any, i: number) => (\n <div key={item.value} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n readOnly={readOnlyPermission}\n inputId={item.label}\n checked={currentValues.some((s) => s.value === item.value)}\n onChange={() => handleCheckboxChange(item)}\n />\n <label htmlFor={item.label} className=\"form-field-label m-0\">\n {item.label}\n </label>\n </div>\n ))}\n </div>\n </Panel>\n </div>\n );\n};\n\n\n\nconst buildRelationCustomFilter = ({\n fieldContext,\n fieldLayoutInfo,\n}: {\n fieldContext: any;\n fieldLayoutInfo?: any;\n}) => {\n if (!fieldContext) return { id: { $eq: -1 } };\n\n const relationFieldName =\n fieldContext.fieldMetadata?.relationCoModelFieldName ?? fieldContext.modelName;\n const parentId = fieldContext.data?.id ?? -1;\n const baseFilter = { [relationFieldName]: { id: { $eq: parentId } } };\n const whereClause = fieldLayoutInfo?.attrs?.whereClause;\n\n if (!whereClause) return { $and: [baseFilter] };\n\n try {\n return { $and: [baseFilter, JSON.parse(whereClause)] };\n } catch (error) {\n console.error(\"Failed to parse whereClause:\", error);\n return { $and: [baseFilter] };\n }\n};\n\nexport const DefaultRelationManyToManyListFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const router = useRouter();\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const [visibleCreateRelationEntity, setvisibleCreateRelationEntity] = useState(false);\n const [listViewParams, setListViewParams] = useState<any>();\n const [formViewParams, setformViewParams] = useState<FormViewParams>();\n const [refreshList, setRefreshList] = useState(false);\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n const pathname = usePathname();\n const lastPathSegment = pathname.split('/').pop();\n const userKeyField: any = Object.entries(\n fieldContext.solidFormViewMetaData.data.solidFieldsMetadata\n ).find(([_, value]: any) => value.isUserKey)?.[0];\n const [showSaveParentEntityConfirmationPopup, setShowSaveParentEntityConfirmationPopup] = useState(false);\n\n\n\n const [visibleLinkDialog, setVisibleLinkDialog] = useState(false);\n const [linkSearchResults, setLinkSearchResults] = useState<any[]>([]);\n const [selectedLinkItem, setSelectedLinkItem] = useState<any>(null);\n const [isLinking, setIsLinking] = useState(false);\n\n const { fetchSuggestions, linkItem, unlinkItem, suggestions } = useRelationEntityHandler({ fieldContext });\n\n const handleAddClickForEmbeddedView = () => {\n if (lastPathSegment === \"new\") {\n setShowSaveParentEntityConfirmationPopup(true);\n } else {\n setSelectedLinkItem(null);\n setLinkSearchResults([]);\n setVisibleLinkDialog(true);\n }\n };\n\n const handleLinkSearch = async (event: AutoCompleteCompleteEvent) => {\n const queryData: any = {\n offset: 0,\n limit: 1000,\n filters: {\n $and: [\n {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']: event.query,\n },\n },\n ],\n },\n };\n await fetchSuggestions(qs.stringify(queryData, { encodeValuesOnly: true }));\n };\n\n const handleLinkConfirm = async () => {\n if (!selectedLinkItem) return;\n setIsLinking(true);\n try {\n await linkItem(selectedLinkItem);\n setVisibleLinkDialog(false);\n setSelectedLinkItem(null);\n setRefreshList((prev) => !prev);\n } finally {\n setIsLinking(false);\n }\n };\n\n const handleDeleteClick = async (id: any) => {\n await unlinkItem({ value: id, label: '' });\n setRefreshList((prev) => !prev);\n };\n\n const handleEditClickForEmbeddedView = (id: any) => {\n if (id === \"new\") {\n setShowSaveParentEntityConfirmationPopup(true);\n } else {\n setformViewParams({\n moduleName: fieldContext.fieldMetadata.relationModelModuleName,\n id,\n embeded: true,\n isCustomCreate: false,\n customLayout: fieldLayoutInfo?.attrs?.inlineCreateLayout,\n modelName: camelCase(fieldContext.fieldMetadata.relationCoModelSingularName),\n parentFieldName: fieldContext.fieldMetadata.relationCoModelFieldName,\n parentData: userKeyField\n ? { [userKeyField]: { solidManyToOneLabel: fieldContext.data[userKeyField], solidManyToOneValue: fieldContext.data['id'] } }\n : {},\n onEmbeddedFormSave: fieldContext.onEmbeddedFormSave,\n inlineCreateAutoSave: fieldLayoutInfo?.attrs?.inlineCreateAutoSave,\n });\n setvisibleCreateRelationEntity(true);\n }\n };\n\n const handlePopupClose = () => {\n setvisibleCreateRelationEntity(false);\n const currentUrl = new URL(window.location.href);\n currentUrl.searchParams.delete('childEntity');\n router.push(currentUrl.toString());\n setRefreshList((prev) => !prev);\n setListViewParams({\n moduleName: fieldContext.fieldMetadata.relationModelModuleName,\n modelName: camelCase(fieldContext.fieldMetadata.relationCoModelSingularName),\n inlineCreate: readOnlyPermission === false,\n customLayout: fieldLayoutInfo?.attrs?.inlineListLayout,\n embeded: true,\n id: fieldContext.data?.id ?? 'new',\n customFilter: buildRelationCustomFilter({ fieldContext, fieldLayoutInfo }),\n });\n };\n\n useEffect(() => {\n setListViewParams({\n moduleName: fieldContext.fieldMetadata.relationModelModuleName,\n modelName: camelCase(fieldContext.fieldMetadata.relationCoModelSingularName),\n inlineCreate: readOnlyPermission === false,\n customLayout: fieldLayoutInfo?.attrs?.inlineListLayout,\n embeded: true,\n id: fieldContext.data?.id ?? 'new',\n customFilter: buildRelationCustomFilter({ fieldContext, fieldLayoutInfo }),\n });\n\n setformViewParams({\n moduleName: fieldContext.fieldMetadata.relationModelModuleName,\n modelName: camelCase(fieldContext.fieldMetadata.relationCoModelSingularName),\n parentFieldName: fieldContext.fieldMetadata.relationCoModelFieldName,\n id: \"new\",\n embeded: true,\n isCustomCreate: false,\n customLayout: fieldLayoutInfo?.attrs?.inlineCreateLayout,\n parentData: userKeyField\n ? { [userKeyField]: { solidManyToOneLabel: fieldContext.data[userKeyField], solidManyToOneValue: fieldContext.data['id'] } }\n : {},\n onEmbeddedFormSave: fieldContext.onEmbeddedFormSave,\n inlineCreateAutoSave: fieldLayoutInfo?.attrs?.inlineCreateAutoSave,\n });\n }, [readOnlyPermission]);\n\n const saveParentEntity = async () => {\n const currentUrl = new URL(window.location.href);\n currentUrl.searchParams.set('childEntity', fieldLayoutInfo.attrs.name);\n currentUrl.searchParams.set('viewMode', 'edit');\n try {\n router.push(currentUrl.toString());\n await formik.handleSubmit();\n } catch { }\n setShowSaveParentEntityConfirmationPopup(false);\n };\n\n return (\n <div>\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n {listViewParams && (\n <SolidListView key={refreshList.toString()} {...listViewParams} embededFieldRelationType=\"many-to-many\" handleAddClickForEmbeddedView={handleAddClickForEmbeddedView} handleEditClickForEmbeddedView={handleEditClickForEmbeddedView} handleDeleteClick={handleDeleteClick} />\n )}\n {readOnlyPermission !== true && formViewParams && (\n <RenderSolidFormEmbededView\n formik={formik}\n fieldContext={fieldContext}\n visibleCreateRelationEntity={visibleCreateRelationEntity}\n setvisibleCreateRelationEntity={setvisibleCreateRelationEntity}\n formViewParams={formViewParams}\n handlePopupClose={handlePopupClose}\n />\n )}\n\n <Dialog\n header={`Link existing ${fieldLabel}`}\n visible={visibleLinkDialog}\n style={{ width: '30vw', minWidth: 320 }}\n onHide={() => setVisibleLinkDialog(false)}\n footer={\n <div className=\"flex gap-2 justify-content-end\">\n <Button\n label=\"Link\"\n size=\"small\"\n disabled={!selectedLinkItem || isLinking}\n loading={isLinking}\n onClick={handleLinkConfirm}\n />\n <Button\n label=\"Cancel\"\n size=\"small\"\n outlined\n className=\"bg-primary-reverse\"\n onClick={() => setVisibleLinkDialog(false)}\n />\n </div>\n }\n >\n <div className=\"flex flex-column gap-2 pt-2\">\n <label className=\"form-field-label\">\n Search {fieldLabel}\n </label>\n <AutoComplete\n field=\"label\"\n value={selectedLinkItem}\n suggestions={suggestions}\n completeMethod={handleLinkSearch}\n onChange={(e) => setSelectedLinkItem(e.value)}\n onSelect={(e) => setSelectedLinkItem(e.value)}\n placeholder={`Type to search...`}\n className=\"w-full\"\n dropdown\n />\n </div>\n </Dialog>\n\n\n <Dialog\n showHeader={false}\n headerClassName=\"py-2\"\n contentClassName=\"px-0 pb-0\"\n className=\"solid-confirm-dialog\"\n contentStyle={{ borderRadius: 6 }}\n visible={showSaveParentEntityConfirmationPopup}\n style={{ width: '20vw' }}\n onHide={() => {\n if (!showSaveParentEntityConfirmationPopup) return;\n setShowSaveParentEntityConfirmationPopup(false);\n }}\n >\n <div className=\"p-4\">\n <p className=\"m-0 solid-primary-title\" style={{ fontSize: 16 }}>\n Before Creating {fieldLabel} you need to save{' '}\n {solidFormViewMetaData?.data?.solidView?.model?.displayName\n ? solidFormViewMetaData?.data?.solidView?.model?.displayName\n : capitalize(fieldContext.modelName)}\n . Please click save if you wish to proceed?\n </p>\n <div className=\"flex align-items-center justify-content-start gap-2 mt-3\">\n <Button label=\"Save\" size=\"small\" onClick={saveParentEntity} />\n <Button\n label=\"Cancel\"\n size=\"small\"\n onClick={() => setShowSaveParentEntityConfirmationPopup(false)}\n outlined\n className=\"bg-primary-reverse\"\n />\n </div>\n </div>\n </Dialog>\n </div>\n );\n};"]}
|