@solidxai/core-ui 0.1.9-beta.19 → 0.1.9-beta.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/components/common/GeneralSettings.js +1 -1
  2. package/dist/components/common/GeneralSettings.js.map +1 -1
  3. package/dist/components/common/GeneralSettings.tsx +1 -1
  4. package/dist/components/common/SettingsComponent.module.css +78 -2
  5. package/dist/components/common/SolidExport.d.ts.map +1 -1
  6. package/dist/components/common/SolidExport.js +1 -1
  7. package/dist/components/common/SolidExport.js.map +1 -1
  8. package/dist/components/common/SolidExport.tsx +2 -0
  9. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  10. package/dist/components/core/common/FilterComponent.js +1 -1
  11. package/dist/components/core/common/FilterComponent.js.map +1 -1
  12. package/dist/components/core/common/FilterComponent.tsx +1 -0
  13. package/dist/components/core/common/GroupingComponent.d.ts.map +1 -1
  14. package/dist/components/core/common/GroupingComponent.js +2 -2
  15. package/dist/components/core/common/GroupingComponent.js.map +1 -1
  16. package/dist/components/core/common/GroupingComponent.tsx +2 -0
  17. package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts.map +1 -1
  18. package/dist/components/core/dashboard/mappers/echartsOptionMapper.js +5 -2
  19. package/dist/components/core/dashboard/mappers/echartsOptionMapper.js.map +1 -1
  20. package/dist/components/core/dashboard/mappers/echartsOptionMapper.ts +5 -2
  21. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts.map +1 -1
  22. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js +6 -1
  23. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js.map +1 -1
  24. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.tsx +13 -1
  25. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts.map +1 -1
  26. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js +54 -10
  27. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js.map +1 -1
  28. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.tsx +56 -10
  29. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +1 -1
  30. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  31. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +1 -1
  32. package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
  33. package/dist/components/core/filter/fields/SolidBooleanField.js +1 -1
  34. package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
  35. package/dist/components/core/filter/fields/SolidBooleanField.tsx +3 -2
  36. package/dist/components/core/filter/fields/SolidDateField.d.ts.map +1 -1
  37. package/dist/components/core/filter/fields/SolidDateField.js +1 -1
  38. package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
  39. package/dist/components/core/filter/fields/SolidDateField.tsx +2 -1
  40. package/dist/components/core/filter/fields/SolidDatetimeField.d.ts.map +1 -1
  41. package/dist/components/core/filter/fields/SolidDatetimeField.js +1 -1
  42. package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
  43. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +3 -2
  44. package/dist/components/core/filter/fields/SolidExternalIdField.d.ts.map +1 -1
  45. package/dist/components/core/filter/fields/SolidExternalIdField.js +1 -1
  46. package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
  47. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +2 -1
  48. package/dist/components/core/filter/fields/SolidIdField.d.ts.map +1 -1
  49. package/dist/components/core/filter/fields/SolidIdField.js +1 -1
  50. package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
  51. package/dist/components/core/filter/fields/SolidIdField.tsx +1 -0
  52. package/dist/components/core/filter/fields/SolidIntField.d.ts.map +1 -1
  53. package/dist/components/core/filter/fields/SolidIntField.js +1 -1
  54. package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
  55. package/dist/components/core/filter/fields/SolidIntField.tsx +2 -1
  56. package/dist/components/core/filter/fields/SolidMediaMultipleField.d.ts.map +1 -1
  57. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +1 -1
  58. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  59. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +2 -1
  60. package/dist/components/core/filter/fields/SolidMediaSingleField.d.ts.map +1 -1
  61. package/dist/components/core/filter/fields/SolidMediaSingleField.js +1 -1
  62. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  63. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +2 -1
  64. package/dist/components/core/filter/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  65. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +1 -1
  66. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
  67. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +3 -2
  68. package/dist/components/core/filter/fields/SolidSelectionStaticField.d.ts.map +1 -1
  69. package/dist/components/core/filter/fields/SolidSelectionStaticField.js +1 -1
  70. package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
  71. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +3 -2
  72. package/dist/components/core/filter/fields/SolidShortTextField.d.ts.map +1 -1
  73. package/dist/components/core/filter/fields/SolidShortTextField.js +1 -1
  74. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  75. package/dist/components/core/filter/fields/SolidShortTextField.tsx +2 -1
  76. package/dist/components/core/filter/fields/SolidTimeField.d.ts.map +1 -1
  77. package/dist/components/core/filter/fields/SolidTimeField.js +1 -1
  78. package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
  79. package/dist/components/core/filter/fields/SolidTimeField.tsx +3 -2
  80. package/dist/components/core/filter/fields/SolidUuidField.d.ts.map +1 -1
  81. package/dist/components/core/filter/fields/SolidUuidField.js +1 -1
  82. package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
  83. package/dist/components/core/filter/fields/SolidUuidField.tsx +2 -1
  84. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  85. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +1 -1
  86. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  87. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +3 -2
  88. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  89. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +1 -1
  90. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  91. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +3 -2
  92. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  93. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +1 -1
  94. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  95. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +3 -2
  96. package/dist/components/core/form/SolidFormFooter.js +1 -1
  97. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  98. package/dist/components/core/form/SolidFormFooter.tsx +1 -1
  99. package/dist/components/core/form/SolidFormView.js +2 -2
  100. package/dist/components/core/form/SolidFormView.js.map +1 -1
  101. package/dist/components/core/form/SolidFormView.tsx +2 -2
  102. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +1 -1
  103. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  104. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +1 -1
  105. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +1 -1
  106. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  107. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +1 -1
  108. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +1 -1
  109. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  110. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +1 -1
  111. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +1 -1
  112. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  113. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +1 -1
  114. package/dist/components/core/kanban/SolidKanbanView.js +1 -1
  115. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  116. package/dist/components/core/kanban/SolidKanbanView.tsx +1 -1
  117. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  118. package/dist/components/core/list/SolidDataTable.js +2 -1
  119. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  120. package/dist/components/core/list/SolidDataTable.tsx +8 -9
  121. package/dist/components/core/list/SolidListView.js +13 -15
  122. package/dist/components/core/list/SolidListView.js.map +1 -1
  123. package/dist/components/core/list/SolidListView.tsx +12 -12
  124. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -1
  125. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  126. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +1 -1
  127. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  128. package/dist/components/core/model/FieldMetaData.js +1 -1
  129. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  130. package/dist/components/core/model/FieldMetaData.tsx +10 -4
  131. package/dist/components/core/tree/SolidTreeView.js +2 -2
  132. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  133. package/dist/components/core/tree/SolidTreeView.tsx +3 -3
  134. package/dist/components/core/users/CreateUser.js +1 -1
  135. package/dist/components/core/users/CreateUser.js.map +1 -1
  136. package/dist/components/core/users/CreateUser.tsx +1 -1
  137. package/dist/components/layout/AdminHeaderActions.d.ts +7 -0
  138. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -0
  139. package/dist/components/layout/AdminHeaderActions.js +77 -0
  140. package/dist/components/layout/AdminHeaderActions.js.map +1 -0
  141. package/dist/components/layout/AdminHeaderActions.tsx +155 -0
  142. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  143. package/dist/components/layout/AdminTopHeader.js +3 -16
  144. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  145. package/dist/components/layout/AdminTopHeader.tsx +4 -64
  146. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  147. package/dist/components/layout/AppSidebar.js +2 -1
  148. package/dist/components/layout/AppSidebar.js.map +1 -1
  149. package/dist/components/layout/AppSidebar.tsx +2 -0
  150. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts +1 -1
  151. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  152. package/dist/components/shad-cn-ui/SolidDatePicker.js +2 -2
  153. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  154. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +4 -0
  155. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  156. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  157. package/dist/components/shad-cn-ui/SolidSelect.js +51 -1
  158. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  159. package/dist/components/shad-cn-ui/SolidSelect.tsx +95 -0
  160. package/dist/resources/globals.css +93 -12
  161. package/dist/resources/shadcn-base.css +339 -171
  162. package/dist/resources/solid-responsive.css +235 -50
  163. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  164. package/dist/routes/pages/admin/core/DashboardPage.js +101 -21
  165. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  166. package/dist/routes/pages/admin/core/DashboardPage.module.css +33 -0
  167. package/dist/routes/pages/admin/core/DashboardPage.tsx +144 -17
  168. package/package.json +1 -1
@@ -1289,7 +1289,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
1289
1289
  });
1290
1290
 
1291
1291
  return (
1292
- <div className="solid-form-wrapper" ref={solidFormWrapperRef}>
1292
+ <div className={`solid-form-wrapper ${viewMode=="edit"?"solid-form-edit":"solid-form-view"}`} ref={solidFormWrapperRef}>
1293
1293
  <div className="solid-form-section">
1294
1294
  <div className="page-header solid-list-toolbar flex-column lg:flex-row">
1295
1295
  <div className="flex justify-content-between w-full solid-form-toolbar-row">
@@ -1769,7 +1769,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
1769
1769
  showMobileOpenChatter={isMobileViewport && !isShowChatter && params.embeded !== true}
1770
1770
  onMobileOpenChatter={() => setShowChatter(true)}
1771
1771
  />
1772
- <div className={`px-4 py-3 md:p-4 solid-form-content md:pt-1 ${createMode ? 'solid-create-mode-form-content' : ''} ${params.embeded === true ? 'h-auto' : ''}`} style={{ maxHeight: params.embeded === true ? '80vh' : '', overflowY: 'auto' }}>
1772
+ <div className={`px-3 py-3 md:p-4 solid-form-content md:pt-1 ${createMode ? 'solid-create-mode-form-content' : 'solid-edit-mode-form-content'} ${params.embeded === true ? 'h-auto' : ''}`}>
1773
1773
  {DynamicHeaderComponent && <DynamicHeaderComponent />}
1774
1774
  {params.id === 'new' && DynamicFormComponentNew ? (
1775
1775
  <DynamicFormComponentNew params={params} />
@@ -318,7 +318,7 @@ export var DefaultRelationManyToManyCheckBoxFormEditWidget = function (_a) {
318
318
  }
319
319
  };
320
320
  var panelHeader = (_jsx("div", { className: "flex align-items-center gap-3 justify-content-space-between", children: _jsxs("div", { className: "flex align-items-center gap-3", children: [showFieldLabel !== false && (_jsxs("label", { className: "".concat(styles.fieldLabel, " form-field-label"), children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] })), fieldContext.field.attrs.inlineCreate && (_jsxs(_Fragment, { children: [_jsx(SolidButton, { icon: "si si-plus", rounded: true, variant: "outline", "aria-label": "Filter", type: "button", size: "sm", onClick: function () { return setVisibleCreateDialog(true); }, className: "custom-add-button", disabled: isUnsaved }), _jsx(InlineRelationEntityDialog, { visible: visibleCreateDialog, setVisible: setVisibleCreateDialog, fieldContext: fieldContext, onCreate: addNewRelation })] }))] }) }));
321
- return (_jsxs("div", { children: [isUnsaved && (_jsx("div", { className: "mb-2", children: _jsx(SolidMessage, { severity: "warn", text: "Please save the ".concat(entityName, " first to assign ").concat(fieldLabel, "."), className: "w-full justify-content-start" }) })), panelHeader, _jsx(SolidPanel, { children: _jsx("div", { className: "formgrid grid", children: allOptions.map(function (item, i) { return (_jsxs("div", { className: "field col-6 flex gap-2 ".concat(i >= 2 ? 'mt-3' : ''), children: [_jsx(SolidCheckbox, { disabled: readOnlyPermission || isUnsaved, id: item.label, checked: currentValues.some(function (s) { return s.value === item.value; }), onChange: function () { return handleCheckboxChange(item); } }), _jsx("label", { htmlFor: item.label, className: "".concat(styles.fieldLabel, " form-field-label m-0"), children: item.label })] }, item.value)); }) }) })] }));
321
+ return (_jsxs("div", { children: [isUnsaved && (_jsx("div", { className: "mb-2", children: _jsx(SolidMessage, { severity: "warn", text: "Please save the ".concat(entityName, " first to assign ").concat(fieldLabel, "."), className: "w-full justify-content-start" }) })), panelHeader, _jsx(SolidPanel, { children: _jsx("div", { className: "formgrid grid", children: allOptions.map(function (item, i) { return (_jsxs("div", { className: "field col-12 sm:col-6 flex gap-2 ".concat(i >= 2 ? 'mt-1 md:mt-3' : 'mt-1 md:mt-0'), children: [_jsx(SolidCheckbox, { disabled: readOnlyPermission || isUnsaved, id: item.label, checked: currentValues.some(function (s) { return s.value === item.value; }), onChange: function () { return handleCheckboxChange(item); } }), _jsx("label", { htmlFor: item.label, className: "".concat(styles.fieldLabel, " form-field-label m-0"), children: item.label })] }, item.value)); }) }) })] }));
322
322
  };
323
323
  var buildRelationCustomFilter = function (_a) {
324
324
  var _b;
@@ -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":["import { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"../ISolidField\";\nimport { getExtensionComponent } from \"../../../../../helpers/registry\";\nimport { SolidAutocomplete } from \"../../../../shad-cn-ui/SolidAutocomplete\";\nimport { SolidButton } from \"../../../../shad-cn-ui/SolidButton\";\nimport { SolidCheckbox } from \"../../../../shad-cn-ui/SolidCheckbox\";\nimport { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogDescription, SolidDialogHeader, SolidDialogTitle } from \"../../../../shad-cn-ui/SolidDialog\";\nimport { SolidMessage } from \"../../../../shad-cn-ui/SolidMessage\";\nimport { SolidPanel } from \"../../../../shad-cn-ui/SolidPanel\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { useRelationEntityHandler, RelationItem } from \"./widgets/helpers/useRelationEntityHandler\";\nimport { InlineRelationEntityDialog } from \"./widgets/helpers/InlineRelationEntityDialog\";\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 styles from \"../solidFields.module.css\";\nimport { SolidListView } from \"../../../../core/list/SolidListView\";\nimport { RenderSolidFormEmbededView } from \"./SolidRelationManyToOneField\";\nimport { buildSyntheticChangeEvent } from \"../fieldEventUtils\";\n\ntype AutoCompleteCompleteEvent = { query: string };\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 const isUnsaved = fieldContext.data?.id === undefined || fieldContext.data?.id === \"new\";\n const entityName = fieldContext.solidFormViewMetaData?.data?.solidView?.model?.displayName || capitalize(fieldContext.modelName);\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 {isUnsaved && (\n <div className=\"mb-2\">\n <SolidMessage severity=\"warn\" text={`Please save the ${entityName} first to assign ${fieldLabel}.`} className=\"w-full justify-content-start\" />\n </div>\n )}\n <div className=\"flex align-items-center gap-3\">\n <SolidAutocomplete\n readOnly={readOnly || readOnlyPermission || isUnsaved}\n disabled={disabled || readOnlyPermission || isUnsaved}\n multiple\n id={fieldLayoutInfo.attrs.name}\n field=\"label\"\n value={currentValues}\n dropdown={!readOnlyPermission && !isUnsaved}\n suggestions={suggestions}\n completeMethod={autoCompleteSearch}\n onChange={() => {\n // Intentionally empty — currentValues is managed via onSelect/onUnselect\n }}\n onSelect={(e: { value: RelationItem }) => linkItem(e.value)}\n onUnselect={(e: { value: RelationItem }) => unlinkItem(e.value)}\n className=\"solid-standard-autocomplete w-full\"\n />\n {fieldContext.field.attrs.inlineCreate && (\n <>\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={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n disabled={isUnsaved}\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 <SolidMessage 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 fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\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 // Sync currentValues to Formik state for validation\n useEffect(() => {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, currentValues);\n }, [currentValues]);\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 isUnsaved = fieldContext.data?.id === undefined || fieldContext.data?.id === \"new\";\n const entityName = fieldContext.solidFormViewMetaData?.data?.solidView?.model?.displayName || capitalize(fieldContext.modelName);\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 panelHeader = (\n <div className=\"flex align-items-center gap-3 justify-content-space-between\">\n <div className=\"flex align-items-center gap-3\">\n {showFieldLabel !== false && (\n <label 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 {fieldContext.field.attrs.inlineCreate && (\n <>\n <SolidButton\n icon=\"si si-plus\"\n rounded\n variant=\"outline\"\n aria-label=\"Filter\"\n type=\"button\"\n size=\"sm\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n disabled={isUnsaved}\n />\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\n </div>\n );\n\n return (\n <div>\n {isUnsaved && (\n <div className=\"mb-2\">\n <SolidMessage severity=\"warn\" text={`Please save the ${entityName} first to assign ${fieldLabel}.`} className=\"w-full justify-content-start\" />\n </div>\n )}\n {panelHeader}\n <SolidPanel>\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 <SolidCheckbox\n disabled={readOnlyPermission || isUnsaved}\n id={item.label}\n checked={currentValues.some((s) => s.value === item.value)}\n onChange={() => handleCheckboxChange(item)}\n />\n <label htmlFor={item.label} className={`${styles.fieldLabel} form-field-label m-0`}>\n {item.label}\n </label>\n </div>\n ))}\n </div>\n </SolidPanel>\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 const isUnsaved = fieldContext.data?.id === undefined || fieldContext.data?.id === \"new\";\n const entityName = fieldContext.solidFormViewMetaData?.data?.solidView?.model?.displayName || capitalize(fieldContext.modelName);\n\n return (\n <div>\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 {isUnsaved && (\n <div className=\"mb-2\">\n <SolidMessage severity=\"warn\" text={`Please save the ${entityName} first to assign ${fieldLabel}.`} className=\"w-full justify-content-start\" />\n </div>\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 <SolidDialog\n open={visibleLinkDialog}\n onOpenChange={setVisibleLinkDialog}\n style={{ width: '30vw', minWidth: 320 }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>{`Link existing ${fieldLabel}`}</SolidDialogTitle>\n <SolidDialogDescription>\n {`Search and link an existing ${fieldLabel} record to this item.`}\n </SolidDialogDescription>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody>\n <div className=\"flex flex-column gap-2 pt-2\">\n <label className=\"form-field-label\">\n Search {fieldLabel}\n </label>\n <SolidAutocomplete\n field=\"label\"\n value={selectedLinkItem}\n suggestions={suggestions}\n completeMethod={handleLinkSearch}\n onChange={({ value }: { value: any }) => setSelectedLinkItem(value)}\n onSelect={({ value }: { value: any }) => setSelectedLinkItem(value)}\n placeholder={`Type to search...`}\n className=\"w-full\"\n dropdown\n />\n </div>\n </SolidDialogBody>\n <div className=\"solid-radix-dialog-footer flex gap-2 justify-content-end\">\n <SolidButton\n label=\"Link\"\n size=\"sm\"\n disabled={!selectedLinkItem || isLinking}\n loading={isLinking}\n onClick={handleLinkConfirm}\n />\n <SolidButton\n label=\"Cancel\"\n size=\"sm\"\n variant=\"outline\"\n className=\"bg-primary-reverse\"\n onClick={() => setVisibleLinkDialog(false)}\n />\n </div>\n </SolidDialog>\n\n\n <SolidDialog\n open={showSaveParentEntityConfirmationPopup}\n onOpenChange={setShowSaveParentEntityConfirmationPopup}\n className=\"solid-confirm-dialog solid-field-confirm-dialog\"\n style={{ width: \"min(420px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-field-confirm-header\">\n <SolidDialogTitle>Save Required</SolidDialogTitle>\n <SolidDialogDescription>\n {`Save the current ${solidFormViewMetaData?.data?.solidView?.model?.displayName\n ? solidFormViewMetaData.data.solidView.model.displayName\n : capitalize(fieldContext.modelName)} before creating ${fieldLabel}.`}\n </SolidDialogDescription>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">\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 save first if you want to continue.\n </p>\n </SolidDialogBody>\n <div className=\"solid-radix-dialog-footer solid-field-confirm-actions\">\n <SolidButton label=\"Save\" size=\"sm\" onClick={saveParentEntity} autoFocus />\n <SolidButton\n label=\"Cancel\"\n size=\"sm\"\n onClick={() => setShowSaveParentEntityConfirmationPopup(false)}\n variant=\"outline\"\n />\n </div>\n </SolidDialog>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidRelationManyToManyField.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACjK,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,wBAAwB,EAAgB,MAAM,4CAA4C,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AACvF,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAsB3E;IAII,sCAAY,YAA6B;QAFjC;;;;;WAA8B;QAGlC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;;;;;eAED;YACI,OAAO,EAAE,CAAC;QACd,CAAC;;;;;;eAED,UAAe,KAAU,EAAE,QAAkB;YACzC,yDAAyD;YACzD,yDAAyD;QAC7D,CAAC;;;;;;eAED;;YACI,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YACzB,IAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACtD,IAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAChD,IAAM,UAAU,GAAG,MAAA,eAAe,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;YAE5E,IAAI,aAAa,CAAC,QAAQ,EAAE;gBACxB,MAAM,GAAG,MAAM;qBACV,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;qBACrD,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;aAC5D;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;;;;;;eAED,UAAO,MAAoB;;YACvB,IAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAChD,IAAM,SAAS,GAAG,CAAA,MAAA,eAAe,CAAC,KAAK,0CAAE,SAAS,KAAI,cAAc,CAAC;YAErE,IAAI,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;YAClD,IAAI,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,UAAU;gBAAE,UAAU,GAAG,qDAAqD,CAAC;YACpF,IAAI,CAAC,UAAU;gBAAE,UAAU,GAAG,6CAA6C,CAAC;YAE5E,IAAM,QAAQ,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YACpD,OAAO,CACH,eAAK,SAAS,EAAE,SAAS,aACpB,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,EACzE,QAAQ,KAAK,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,IACtF,CACT,CAAC;QACN,CAAC;;;;;;eAED,UAA0B,MAAc,EAAE,MAAoB;YAC1D,IAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAM,WAAW,GAA8B,EAAE,MAAM,QAAA,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3F,OAAO,4BAAG,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GAAI,CAAC;QACtE,CAAC;;IACL,mCAAC;AAAD,CAAC,AAvDD,IAuDC;;AAID;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,IAAM,mDAAmD,GAAG,UAAC,EAAmD;;QAAjD,MAAM,YAAA,EAAE,YAAY,kBAAA;IACtF,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACjD,IAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;IAC3C,IAAM,UAAU,GAAG,MAAA,eAAe,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAC5E,IAAM,cAAc,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,SAAS,CAAC;IACzD,IAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC;IACjD,IAAM,QAAQ,GAAG,MAAA,eAAe,CAAC,KAAK,0CAAE,QAAQ,CAAC;IACjD,IAAM,QAAQ,GAAG,MAAA,eAAe,CAAC,KAAK,0CAAE,QAAQ,CAAC;IAE3C,IAAA,KAAgD,QAAQ,CAAC,KAAK,CAAC,EAA9D,mBAAmB,QAAA,EAAE,sBAAsB,QAAmB,CAAC;IAEhE,IAAA,KAQF,wBAAwB,CAAC,EAAE,YAAY,cAAA,EAAE,CAAC,EAP1C,aAAa,mBAAA,EACb,WAAW,iBAAA,EACX,kBAAkB,wBAAA,EAClB,gBAAgB,sBAAA,EAChB,QAAQ,cAAA,EACR,UAAU,gBAAA,EACV,cAAc,oBAC4B,CAAC;IAE/C,IAAM,gBAAgB,GAAG,UAAC,MAAW,EAAE,SAAiB;QACpD,OAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IAArD,CAAqD,CAAC;IAE1D,yDAAyD;IACzD,SAAS,CAAC;QACN,kBAAkB,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,CAAC,CAAC,CAAC;IAE5B,IAAM,kBAAkB,GAAG,UAAO,KAAgC;;;;;YACxD,SAAS,GAAQ;gBACnB,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE;oBACL,IAAI,EAAE;;4BAEE,GAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI;gCAC7C,GAAC,CAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,qBAAqB,KAAI,YAAY,IAAG,KAAK,CAAC,KAAK;mCAC/E;;qBAER;iBACJ;aACJ,CAAC;YAEE,sBAAsB,GAAG,KAAK,CAAC;YAC/B,iBAAiB,GAAG,KAAK,CAAC;YAE9B,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,wBAAwB,MAAI,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,WAAW,CAAA,EAAE;gBAC1E,SAAS,GAAG,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,WAAW,mCAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,wBAAwB,CAAC;gBACjG,sBAAsB,GAAG,IAAI,CAAC;gBACxB,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE9D,IAAI;oBACM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC9B,aAAW,UAAC,GAAQ;wBACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;4BAAE,OAAO,KAAK,CAAC;wBAClE,IAAI,OAAO,GAAG,KAAK,QAAQ;4BAAE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAQ,CAAC,CAAC;wBACtE,OAAO,IAAI,CAAC;oBAChB,CAAC,CAAC;oBACF,IAAI,UAAQ,CAAC,MAAM,CAAC,EAAE;wBAClB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACpC,iBAAiB,GAAG,IAAI,CAAC;qBAC5B;yBAAM;wBACH,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;qBACpE;iBACJ;gBAAC,OAAO,CAAC,EAAE;oBACR,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;iBACpE;aACJ;YAED,IAAI,sBAAsB,IAAI,CAAC,iBAAiB,EAAE;gBAC9C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;aAC1D;iBAAM;gBACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aACzE;;;SACJ,CAAC;IAEF,IAAM,SAAS,GAAG,CAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,MAAK,SAAS,IAAI,CAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,MAAK,KAAK,CAAC;IACzF,IAAM,UAAU,GAAG,CAAA,MAAA,MAAA,MAAA,MAAA,YAAY,CAAC,qBAAqB,0CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW,KAAI,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEjI,OAAO,CACH,eAAK,SAAS,EAAC,UAAU,aACrB,eAAK,SAAS,EAAE,MAAM,CAAC,YAAY,aAC9B,cAAc,KAAK,KAAK,IAAI,CACzB,iBAAO,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,UAAG,MAAM,CAAC,UAAU,sBAAmB,aACzF,UAAU,EACV,aAAa,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,cAAc,mBAAU,EACnE,KAAC,iBAAiB,IAAC,YAAY,EAAE,YAAY,GAAI,IAC7C,CACX,EACA,SAAS,IAAI,CACV,cAAK,SAAS,EAAC,MAAM,YACjB,KAAC,YAAY,IAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAE,0BAAmB,UAAU,8BAAoB,UAAU,MAAG,EAAE,SAAS,EAAC,8BAA8B,GAAG,GAC7I,CACT,EACD,eAAK,SAAS,EAAC,+BAA+B,aAC1C,KAAC,iBAAiB,IACd,QAAQ,EAAE,QAAQ,IAAI,kBAAkB,IAAI,SAAS,EACrD,QAAQ,EAAE,QAAQ,IAAI,kBAAkB,IAAI,SAAS,EACrD,QAAQ,QACR,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAC9B,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,CAAC,kBAAkB,IAAI,CAAC,SAAS,EAC3C,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,kBAAkB,EAClC,QAAQ,EAAE;oCACN,yEAAyE;gCAC7E,CAAC,EACD,QAAQ,EAAE,UAAC,CAA0B,IAAK,OAAA,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAjB,CAAiB,EAC3D,UAAU,EAAE,UAAC,CAA0B,IAAK,OAAA,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAnB,CAAmB,EAC/D,SAAS,EAAC,oCAAoC,GAChD,EACD,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CACtC,8BACI,wBACI,KAAC,WAAW,IACR,IAAI,EAAC,YAAY,EACjB,OAAO,QACP,OAAO,EAAC,SAAS,gBACN,QAAQ,EACnB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,cAAM,OAAA,sBAAsB,CAAC,IAAI,CAAC,EAA5B,CAA4B,EAC3C,SAAS,EAAC,mBAAmB,EAC7B,QAAQ,EAAE,SAAS,GACrB,GACA,EACN,KAAC,0BAA0B,IACvB,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,cAAc,GAC1B,IACH,CACN,IACC,IACJ,EACL,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACrD,cAAK,SAAS,EAAC,eAAe,YAC1B,KAAC,YAAY,IAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,QAAQ,EAAE,GAAI,GAC7F,CACT,IACC,CACT,CAAC;AACN,CAAC,CAAC;AAIF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,IAAM,+CAA+C,GAAG,UAAC,EAAmD;;QAAjD,MAAM,YAAA,EAAE,YAAY,kBAAA;IAClF,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACjD,IAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;IAC3C,IAAM,UAAU,GAAG,MAAA,eAAe,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAC5E,IAAM,cAAc,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,SAAS,CAAC;IACzD,IAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC;IAE3C,IAAA,KAAgD,QAAQ,CAAC,KAAK,CAAC,EAA9D,mBAAmB,QAAA,EAAE,sBAAsB,QAAmB,CAAC;IAEhE,IAAA,KAQF,wBAAwB,CAAC,EAAE,YAAY,cAAA,EAAE,CAAC,EAP1C,aAAa,mBAAA,EACb,UAAU,gBAAA,EACV,kBAAkB,wBAAA,EAClB,eAAe,qBAAA,EACf,QAAQ,cAAA,EACR,UAAU,gBAAA,EACV,cAAc,oBAC4B,CAAC;IAE/C,6DAA6D;IAC7D,SAAS,CAAC;QACN,kBAAkB,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,CAAC,CAAC,CAAC;IAE5B,oDAAoD;IACpD,SAAS,CAAC;QACN,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,SAAS,CAAC;;QACN,IAAM,SAAS,GAAQ;YACnB,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;SACxB,CAAC;QAEF,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,wBAAwB,MAAI,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,WAAW,CAAA,EAAE;YAChF,IAAM,SAAS,GAAG,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,WAAW,mCAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,wBAAwB,CAAC;YACjG,sBAAsB,GAAG,IAAI,CAAC;YAC9B,IAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE9D,IAAI;gBACA,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAM,UAAQ,GAAG,UAAC,GAAQ;oBACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;wBAAE,OAAO,KAAK,CAAC;oBAClE,IAAI,OAAO,GAAG,KAAK,QAAQ;wBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAQ,CAAC,CAAC;oBACtE,OAAO,IAAI,CAAC;gBAChB,CAAC,CAAC;gBACF,IAAI,UAAQ,CAAC,MAAM,CAAC,EAAE;oBAClB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACpC,iBAAiB,GAAG,IAAI,CAAC;iBAC5B;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;iBACpE;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;aACpE;SACJ;QAED,IAAI,sBAAsB,IAAI,CAAC,iBAAiB,EAAE;YAC9C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;SAC1D;aAAM;YACH,eAAe,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SACxE;IACL,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAElC,IAAM,SAAS,GAAG,CAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,MAAK,SAAS,IAAI,CAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,MAAK,KAAK,CAAC;IACzF,IAAM,UAAU,GAAG,CAAA,MAAA,MAAA,MAAA,MAAA,YAAY,CAAC,qBAAqB,0CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW,KAAI,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEjI,IAAM,oBAAoB,GAAG,UAAC,IAAS;QACnC,IAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAtB,CAAsB,CAAC,CAAC;QAC5E,IAAI,iBAAiB,EAAE;YACnB,UAAU,CAAC,IAAI,CAAC,CAAC;SACpB;aAAM;YACH,QAAQ,CAAC,IAAI,CAAC,CAAC;SAClB;IACL,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,CAChB,cAAK,SAAS,EAAC,6DAA6D,YACxE,eAAK,SAAS,EAAC,+BAA+B,aACzC,cAAc,KAAK,KAAK,IAAI,CACzB,iBAAO,SAAS,EAAE,UAAG,MAAM,CAAC,UAAU,sBAAmB,aACpD,UAAU,EACV,aAAa,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,cAAc,mBAAU,EACnE,KAAC,iBAAiB,IAAC,YAAY,EAAE,YAAY,GAAI,IAC7C,CACX,EACA,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CACtC,8BACI,KAAC,WAAW,IACR,IAAI,EAAC,YAAY,EACjB,OAAO,QACP,OAAO,EAAC,SAAS,gBACN,QAAQ,EACnB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,cAAM,OAAA,sBAAsB,CAAC,IAAI,CAAC,EAA5B,CAA4B,EAC3C,SAAS,EAAC,mBAAmB,EAC7B,QAAQ,EAAE,SAAS,GACrB,EACF,KAAC,0BAA0B,IACvB,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,cAAc,GAC1B,IACH,CACN,IACC,GACJ,CACT,CAAC;IAEF,OAAO,CACH,0BACK,SAAS,IAAI,CACV,cAAK,SAAS,EAAC,MAAM,YACjB,KAAC,YAAY,IAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAE,0BAAmB,UAAU,8BAAoB,UAAU,MAAG,EAAE,SAAS,EAAC,8BAA8B,GAAG,GAC7I,CACT,EACA,WAAW,EACZ,KAAC,UAAU,cACP,cAAK,SAAS,EAAC,eAAe,YACzB,UAAU,CAAC,GAAG,CAAC,UAAC,IAAS,EAAE,CAAS,IAAK,OAAA,CACtC,eAAsB,SAAS,EAAE,2CAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAE,aAC3G,KAAC,aAAa,IACV,QAAQ,EAAE,kBAAkB,IAAI,SAAS,EACzC,EAAE,EAAE,IAAI,CAAC,KAAK,EACd,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAtB,CAAsB,CAAC,EAC1D,QAAQ,EAAE,cAAM,OAAA,oBAAoB,CAAC,IAAI,CAAC,EAA1B,CAA0B,GAC5C,EACF,gBAAO,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,UAAG,MAAM,CAAC,UAAU,0BAAuB,YAC7E,IAAI,CAAC,KAAK,GACP,KATF,IAAI,CAAC,KAAK,CAUd,CACT,EAZyC,CAYzC,CAAC,GACA,GACG,IACX,CACT,CAAC;AACN,CAAC,CAAC;AAIF,IAAM,yBAAyB,GAAG,UAAC,EAMlC;;;QALG,YAAY,kBAAA,EACZ,eAAe,qBAAA;IAKf,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAE9C,IAAM,iBAAiB,GACnB,MAAA,MAAA,YAAY,CAAC,aAAa,0CAAE,wBAAwB,mCAAI,YAAY,CAAC,SAAS,CAAC;IACnF,IAAM,QAAQ,GAAG,MAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,mCAAI,CAAC,CAAC,CAAC;IAC7C,IAAM,UAAU,aAAK,GAAC,iBAAiB,IAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAE,CAAC;IACtE,IAAM,WAAW,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,WAAW,CAAC;IAExD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;IAEhD,IAAI;QACA,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;KAC1D;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;KACjC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,2CAA2C,GAAG,UAAC,EAAmD;;QAAjD,MAAM,YAAA,EAAE,YAAY,kBAAA;IAC9E,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACjD,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;IAC3C,IAAM,UAAU,GAAG,MAAA,eAAe,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAC5E,IAAM,qBAAqB,GAAG,YAAY,CAAC,qBAAqB,CAAC;IAC3D,IAAA,KAAgE,QAAQ,CAAC,KAAK,CAAC,EAA9E,2BAA2B,QAAA,EAAE,8BAA8B,QAAmB,CAAC;IAChF,IAAA,KAAsC,QAAQ,EAAO,EAApD,cAAc,QAAA,EAAE,iBAAiB,QAAmB,CAAC;IACtD,IAAA,KAAsC,QAAQ,EAAkB,EAA/D,cAAc,QAAA,EAAE,iBAAiB,QAA8B,CAAC;IACjE,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAC;IACtD,IAAM,cAAc,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,SAAS,CAAC;IACzD,IAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC;IACjD,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAClD,IAAM,YAAY,GAAQ,MAAA,MAAM,CAAC,OAAO,CACpC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAC9D,CAAC,IAAI,CAAC,UAAC,EAAe;YAAd,CAAC,QAAA,EAAE,KAAK,QAAA;QAAW,OAAA,KAAK,CAAC,SAAS;IAAf,CAAe,CAAC,0CAAG,CAAC,CAAC,CAAC;IAC5C,IAAA,KAAoF,QAAQ,CAAC,KAAK,CAAC,EAAlG,qCAAqC,QAAA,EAAE,wCAAwC,QAAmB,CAAC;IAIpG,IAAA,KAA4C,QAAQ,CAAC,KAAK,CAAC,EAA1D,iBAAiB,QAAA,EAAE,oBAAoB,QAAmB,CAAC;IAC5D,IAAA,KAA4C,QAAQ,CAAQ,EAAE,CAAC,EAA9D,iBAAiB,QAAA,EAAE,oBAAoB,QAAuB,CAAC;IAChE,IAAA,KAA0C,QAAQ,CAAM,IAAI,CAAC,EAA5D,gBAAgB,QAAA,EAAE,mBAAmB,QAAuB,CAAC;IAC9D,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAE5C,IAAA,KAA0D,wBAAwB,CAAC,EAAE,YAAY,cAAA,EAAE,CAAC,EAAlG,gBAAgB,sBAAA,EAAE,QAAQ,cAAA,EAAE,UAAU,gBAAA,EAAE,WAAW,iBAA+C,CAAC;IAE3G,IAAM,6BAA6B,GAAG;QAClC,IAAI,eAAe,KAAK,KAAK,EAAE;YAC3B,wCAAwC,CAAC,IAAI,CAAC,CAAC;SAClD;aAAM;YACH,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzB,oBAAoB,CAAC,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAO,KAAgC;;;;;;;oBACtD,SAAS,GAAQ;wBACnB,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE;4BACL,IAAI,EAAE;;oCAEE,GAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI;wCAC7C,GAAC,CAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,qBAAqB,KAAI,YAAY,IAAG,KAAK,CAAC,KAAK;2CAC/E;;6BAER;yBACJ;qBACJ,CAAC;oBACF,qBAAM,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAA;;oBAA3E,SAA2E,CAAC;;;;SAC/E,CAAC;IAEF,IAAM,iBAAiB,GAAG;;;;oBACtB,IAAI,CAAC,gBAAgB;wBAAE,sBAAO;oBAC9B,YAAY,CAAC,IAAI,CAAC,CAAC;;;;oBAEf,qBAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAA;;oBAAhC,SAAgC,CAAC;oBACjC,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBAC5B,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC1B,cAAc,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,CAAC;;;oBAEhC,YAAY,CAAC,KAAK,CAAC,CAAC;;;;;SAE3B,CAAC;IAEF,IAAM,iBAAiB,GAAG,UAAO,EAAO;;;wBACpC,qBAAM,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAA;;oBAA1C,SAA0C,CAAC;oBAC3C,cAAc,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,CAAC;;;;SACnC,CAAC;IAEF,IAAM,8BAA8B,GAAG,UAAC,EAAO;;;QAC3C,IAAI,EAAE,KAAK,KAAK,EAAE;YACd,wCAAwC,CAAC,IAAI,CAAC,CAAC;SAClD;aAAM;YACH,iBAAiB,CAAC;gBACd,UAAU,EAAE,YAAY,CAAC,aAAa,CAAC,uBAAuB;gBAC9D,EAAE,IAAA;gBACF,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,KAAK;gBACrB,YAAY,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,kBAAkB;gBACxD,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,2BAA2B,CAAC;gBAC5E,eAAe,EAAE,YAAY,CAAC,aAAa,CAAC,wBAAwB;gBACpE,UAAU,EAAE,YAAY;oBACpB,CAAC,WAAG,GAAC,YAAY,IAAG,EAAE,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAC1H,CAAC,CAAC,EAAE;gBACR,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;gBACnD,oBAAoB,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,oBAAoB;aACrE,CAAC,CAAC;YACH,8BAA8B,CAAC,IAAI,CAAC,CAAC;SACxC;IACL,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG;;QACrB,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACtC,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,cAAc,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,CAAC;QAChC,iBAAiB,CAAC;YACd,UAAU,EAAE,YAAY,CAAC,aAAa,CAAC,uBAAuB;YAC9D,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,2BAA2B,CAAC;YAC5E,YAAY,EAAE,kBAAkB,KAAK,KAAK;YAC1C,YAAY,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,gBAAgB;YACtD,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,MAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,mCAAI,KAAK;YAClC,YAAY,EAAE,yBAAyB,CAAC,EAAE,YAAY,cAAA,EAAE,eAAe,iBAAA,EAAE,CAAC;SAC7E,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,SAAS,CAAC;;;QACN,iBAAiB,CAAC;YACd,UAAU,EAAE,YAAY,CAAC,aAAa,CAAC,uBAAuB;YAC9D,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,2BAA2B,CAAC;YAC5E,YAAY,EAAE,kBAAkB,KAAK,KAAK;YAC1C,YAAY,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,gBAAgB;YACtD,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,MAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,mCAAI,KAAK;YAClC,YAAY,EAAE,yBAAyB,CAAC,EAAE,YAAY,cAAA,EAAE,eAAe,iBAAA,EAAE,CAAC;SAC7E,CAAC,CAAC;QAEH,iBAAiB,CAAC;YACd,UAAU,EAAE,YAAY,CAAC,aAAa,CAAC,uBAAuB;YAC9D,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,2BAA2B,CAAC;YAC5E,eAAe,EAAE,YAAY,CAAC,aAAa,CAAC,wBAAwB;YACpE,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,kBAAkB;YACxD,UAAU,EAAE,YAAY;gBACpB,CAAC,WAAG,GAAC,YAAY,IAAG,EAAE,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAC1H,CAAC,CAAC,EAAE;YACR,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;YACnD,oBAAoB,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,oBAAoB;SACrE,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,IAAM,gBAAgB,GAAG;;;;;oBACf,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACjD,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;;;;oBAE5C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACnC,qBAAM,MAAM,CAAC,YAAY,EAAE,EAAA;;oBAA3B,SAA2B,CAAC;;;;;;oBAEhC,wCAAwC,CAAC,KAAK,CAAC,CAAC;;;;SACnD,CAAC;IAEF,IAAM,SAAS,GAAG,CAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,MAAK,SAAS,IAAI,CAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,EAAE,MAAK,KAAK,CAAC;IACzF,IAAM,UAAU,GAAG,CAAA,MAAA,MAAA,MAAA,MAAA,YAAY,CAAC,qBAAqB,0CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW,KAAI,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEjI,OAAO,CACH,0BACK,cAAc,KAAK,KAAK,IAAI,CACzB,iBAAO,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,UAAG,MAAM,CAAC,UAAU,sBAAmB,aACzF,UAAU,EACV,aAAa,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,cAAc,mBAAU,EACnE,KAAC,iBAAiB,IAAC,YAAY,EAAE,YAAY,GAAI,IAC7C,CACX,EACA,SAAS,IAAI,CACV,cAAK,SAAS,EAAC,MAAM,YACjB,KAAC,YAAY,IAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAE,0BAAmB,UAAU,8BAAoB,UAAU,MAAG,EAAE,SAAS,EAAC,8BAA8B,GAAG,GAC7I,CACT,EACA,cAAc,IAAI,CACf,KAAC,aAAa,eAAkC,cAAc,IAAE,wBAAwB,EAAC,cAAc,EAAC,6BAA6B,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,iBAAiB,KAAtP,WAAW,CAAC,QAAQ,EAAE,CAAoO,CACjR,EACA,kBAAkB,KAAK,IAAI,IAAI,cAAc,IAAI,CAC9C,KAAC,0BAA0B,IACvB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,2BAA2B,EAAE,2BAA2B,EACxD,8BAA8B,EAAE,8BAA8B,EAC9D,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,GACpC,CACL,EAED,MAAC,WAAW,IACR,IAAI,EAAE,iBAAiB,EACvB,YAAY,EAAE,oBAAoB,EAClC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,aAEvC,MAAC,iBAAiB,eACd,KAAC,gBAAgB,cAAE,wBAAiB,UAAU,CAAE,GAAoB,EACpE,KAAC,sBAAsB,cAClB,sCAA+B,UAAU,0BAAuB,GAC5C,EACzB,KAAC,gBAAgB,KAAG,IACJ,EACpB,KAAC,eAAe,cACZ,eAAK,SAAS,EAAC,6BAA6B,aACxC,iBAAO,SAAS,EAAC,kBAAkB,wBACvB,UAAU,IACd,EACR,KAAC,iBAAiB,IACd,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,gBAAgB,EAChC,QAAQ,EAAE,UAAC,EAAyB;4CAAvB,KAAK,WAAA;wCAAuB,OAAA,mBAAmB,CAAC,KAAK,CAAC;oCAA1B,CAA0B,EACnE,QAAQ,EAAE,UAAC,EAAyB;4CAAvB,KAAK,WAAA;wCAAuB,OAAA,mBAAmB,CAAC,KAAK,CAAC;oCAA1B,CAA0B,EACnE,WAAW,EAAE,mBAAmB,EAChC,SAAS,EAAC,QAAQ,EAClB,QAAQ,SACV,IACA,GACQ,EAClB,eAAK,SAAS,EAAC,0DAA0D,aACrE,KAAC,WAAW,IACR,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,CAAC,gBAAgB,IAAI,SAAS,EACxC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,iBAAiB,GAC5B,EACF,KAAC,WAAW,IACR,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,cAAM,OAAA,oBAAoB,CAAC,KAAK,CAAC,EAA3B,CAA2B,GAC5C,IACA,IACI,EAGd,MAAC,WAAW,IACR,IAAI,EAAE,qCAAqC,EAC3C,YAAY,EAAE,wCAAwC,EACtD,SAAS,EAAC,iDAAiD,EAC3D,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aAElD,MAAC,iBAAiB,IAAC,SAAS,EAAC,4BAA4B,aACrD,KAAC,gBAAgB,gCAAiC,EAClD,KAAC,sBAAsB,cAClB,2BAAoB,CAAA,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW;oCAC3E,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW;oCACxD,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,8BAAoB,UAAU,MAAG,GACpD,EACzB,KAAC,gBAAgB,KAAG,IACJ,EACpB,KAAC,eAAe,IAAC,SAAS,EAAC,iCAAiC,YACxD,aAAG,SAAS,EAAC,6BAA6B,iCACrB,UAAU,wBAAoB,GAAG,EACjD,CAAA,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW;oCACvD,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW;oCACxD,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,oDAExC,GACU,EAClB,eAAK,SAAS,EAAC,uDAAuD,aAClE,KAAC,WAAW,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,SAAG,EAC3E,KAAC,WAAW,IACR,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,cAAM,OAAA,wCAAwC,CAAC,KAAK,CAAC,EAA/C,CAA+C,EAC9D,OAAO,EAAC,SAAS,GACnB,IACA,IACI,IACZ,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"../ISolidField\";\nimport { getExtensionComponent } from \"../../../../../helpers/registry\";\nimport { SolidAutocomplete } from \"../../../../shad-cn-ui/SolidAutocomplete\";\nimport { SolidButton } from \"../../../../shad-cn-ui/SolidButton\";\nimport { SolidCheckbox } from \"../../../../shad-cn-ui/SolidCheckbox\";\nimport { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogDescription, SolidDialogHeader, SolidDialogTitle } from \"../../../../shad-cn-ui/SolidDialog\";\nimport { SolidMessage } from \"../../../../shad-cn-ui/SolidMessage\";\nimport { SolidPanel } from \"../../../../shad-cn-ui/SolidPanel\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { useRelationEntityHandler, RelationItem } from \"./widgets/helpers/useRelationEntityHandler\";\nimport { InlineRelationEntityDialog } from \"./widgets/helpers/InlineRelationEntityDialog\";\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 styles from \"../solidFields.module.css\";\nimport { SolidListView } from \"../../../../core/list/SolidListView\";\nimport { RenderSolidFormEmbededView } from \"./SolidRelationManyToOneField\";\nimport { buildSyntheticChangeEvent } from \"../fieldEventUtils\";\n\ntype AutoCompleteCompleteEvent = { query: string };\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 const isUnsaved = fieldContext.data?.id === undefined || fieldContext.data?.id === \"new\";\n const entityName = fieldContext.solidFormViewMetaData?.data?.solidView?.model?.displayName || capitalize(fieldContext.modelName);\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 {isUnsaved && (\n <div className=\"mb-2\">\n <SolidMessage severity=\"warn\" text={`Please save the ${entityName} first to assign ${fieldLabel}.`} className=\"w-full justify-content-start\" />\n </div>\n )}\n <div className=\"flex align-items-center gap-3\">\n <SolidAutocomplete\n readOnly={readOnly || readOnlyPermission || isUnsaved}\n disabled={disabled || readOnlyPermission || isUnsaved}\n multiple\n id={fieldLayoutInfo.attrs.name}\n field=\"label\"\n value={currentValues}\n dropdown={!readOnlyPermission && !isUnsaved}\n suggestions={suggestions}\n completeMethod={autoCompleteSearch}\n onChange={() => {\n // Intentionally empty — currentValues is managed via onSelect/onUnselect\n }}\n onSelect={(e: { value: RelationItem }) => linkItem(e.value)}\n onUnselect={(e: { value: RelationItem }) => unlinkItem(e.value)}\n className=\"solid-standard-autocomplete w-full\"\n />\n {fieldContext.field.attrs.inlineCreate && (\n <>\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={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n disabled={isUnsaved}\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 <SolidMessage 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 fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\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 // Sync currentValues to Formik state for validation\n useEffect(() => {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, currentValues);\n }, [currentValues]);\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 isUnsaved = fieldContext.data?.id === undefined || fieldContext.data?.id === \"new\";\n const entityName = fieldContext.solidFormViewMetaData?.data?.solidView?.model?.displayName || capitalize(fieldContext.modelName);\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 panelHeader = (\n <div className=\"flex align-items-center gap-3 justify-content-space-between\">\n <div className=\"flex align-items-center gap-3\">\n {showFieldLabel !== false && (\n <label 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 {fieldContext.field.attrs.inlineCreate && (\n <>\n <SolidButton\n icon=\"si si-plus\"\n rounded\n variant=\"outline\"\n aria-label=\"Filter\"\n type=\"button\"\n size=\"sm\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n disabled={isUnsaved}\n />\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\n </div>\n );\n\n return (\n <div>\n {isUnsaved && (\n <div className=\"mb-2\">\n <SolidMessage severity=\"warn\" text={`Please save the ${entityName} first to assign ${fieldLabel}.`} className=\"w-full justify-content-start\" />\n </div>\n )}\n {panelHeader}\n <SolidPanel>\n <div className=\"formgrid grid\">\n {allOptions.map((item: any, i: number) => (\n <div key={item.value} className={`field col-12 sm:col-6 flex gap-2 ${i >= 2 ? 'mt-1 md:mt-3' : 'mt-1 md:mt-0'}`}>\n <SolidCheckbox\n disabled={readOnlyPermission || isUnsaved}\n id={item.label}\n checked={currentValues.some((s) => s.value === item.value)}\n onChange={() => handleCheckboxChange(item)}\n />\n <label htmlFor={item.label} className={`${styles.fieldLabel} form-field-label m-0`}>\n {item.label}\n </label>\n </div>\n ))}\n </div>\n </SolidPanel>\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 const isUnsaved = fieldContext.data?.id === undefined || fieldContext.data?.id === \"new\";\n const entityName = fieldContext.solidFormViewMetaData?.data?.solidView?.model?.displayName || capitalize(fieldContext.modelName);\n\n return (\n <div>\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 {isUnsaved && (\n <div className=\"mb-2\">\n <SolidMessage severity=\"warn\" text={`Please save the ${entityName} first to assign ${fieldLabel}.`} className=\"w-full justify-content-start\" />\n </div>\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 <SolidDialog\n open={visibleLinkDialog}\n onOpenChange={setVisibleLinkDialog}\n style={{ width: '30vw', minWidth: 320 }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>{`Link existing ${fieldLabel}`}</SolidDialogTitle>\n <SolidDialogDescription>\n {`Search and link an existing ${fieldLabel} record to this item.`}\n </SolidDialogDescription>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody>\n <div className=\"flex flex-column gap-2 pt-2\">\n <label className=\"form-field-label\">\n Search {fieldLabel}\n </label>\n <SolidAutocomplete\n field=\"label\"\n value={selectedLinkItem}\n suggestions={suggestions}\n completeMethod={handleLinkSearch}\n onChange={({ value }: { value: any }) => setSelectedLinkItem(value)}\n onSelect={({ value }: { value: any }) => setSelectedLinkItem(value)}\n placeholder={`Type to search...`}\n className=\"w-full\"\n dropdown\n />\n </div>\n </SolidDialogBody>\n <div className=\"solid-radix-dialog-footer flex gap-2 justify-content-end\">\n <SolidButton\n label=\"Link\"\n size=\"sm\"\n disabled={!selectedLinkItem || isLinking}\n loading={isLinking}\n onClick={handleLinkConfirm}\n />\n <SolidButton\n label=\"Cancel\"\n size=\"sm\"\n variant=\"outline\"\n className=\"bg-primary-reverse\"\n onClick={() => setVisibleLinkDialog(false)}\n />\n </div>\n </SolidDialog>\n\n\n <SolidDialog\n open={showSaveParentEntityConfirmationPopup}\n onOpenChange={setShowSaveParentEntityConfirmationPopup}\n className=\"solid-confirm-dialog solid-field-confirm-dialog\"\n style={{ width: \"min(420px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-field-confirm-header\">\n <SolidDialogTitle>Save Required</SolidDialogTitle>\n <SolidDialogDescription>\n {`Save the current ${solidFormViewMetaData?.data?.solidView?.model?.displayName\n ? solidFormViewMetaData.data.solidView.model.displayName\n : capitalize(fieldContext.modelName)} before creating ${fieldLabel}.`}\n </SolidDialogDescription>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">\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 save first if you want to continue.\n </p>\n </SolidDialogBody>\n <div className=\"solid-radix-dialog-footer solid-field-confirm-actions\">\n <SolidButton label=\"Save\" size=\"sm\" onClick={saveParentEntity} autoFocus />\n <SolidButton\n label=\"Cancel\"\n size=\"sm\"\n onClick={() => setShowSaveParentEntityConfirmationPopup(false)}\n variant=\"outline\"\n />\n </div>\n </SolidDialog>\n </div>\n );\n};\n"]}
@@ -402,7 +402,7 @@ export const DefaultRelationManyToManyCheckBoxFormEditWidget = ({ formik, fieldC
402
402
  <SolidPanel>
403
403
  <div className="formgrid grid">
404
404
  {allOptions.map((item: any, i: number) => (
405
- <div key={item.value} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>
405
+ <div key={item.value} className={`field col-12 sm:col-6 flex gap-2 ${i >= 2 ? 'mt-1 md:mt-3' : 'mt-1 md:mt-0'}`}>
406
406
  <SolidCheckbox
407
407
  disabled={readOnlyPermission || isUnsaved}
408
408
  id={item.label}
@@ -499,7 +499,7 @@ export var RenderSolidFormEmbededView = function (_a) {
499
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" }) }), _jsxs(SolidDialog, { open: visibleCreateRelationEntity, onOpenChange: setvisibleCreateRelationEntity, style: {
500
500
  width: (_s = (_r = (_q = (_p = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _p === void 0 ? void 0 : _p.inlineCreateLayout) === null || _q === void 0 ? void 0 : _q.attrs) === null || _r === void 0 ? void 0 : _r.width) !== null && _s !== void 0 ? _s : "60vw",
501
501
  height: (_w = (_v = (_u = (_t = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _t === void 0 ? void 0 : _t.inlineCreateLayout) === null || _u === void 0 ? void 0 : _u.attrs) === null || _v === void 0 ? void 0 : _v.height) !== null && _w !== void 0 ? _w : "auto"
502
- }, showHeader: false, className: "solid-dialog", breakpoints: { '1199px': '35rem', "767px": '85vw', "550px": '90vw' }, children: [_jsxs(SolidDialogHeader, { className: "solid-sr-only", children: [_jsx(SolidDialogTitle, { children: dialogTitle }), _jsx(SolidDialogDescription, { children: dialogDescription })] }), _jsx(SolidFormView, __assign({}, params))] })] }));
502
+ }, showHeader: false, className: "solid-dialog solid-inline-relation-dialog", breakpoints: { '1199px': '35rem', "767px": '85vw', "550px": '90vw' }, children: [_jsxs(SolidDialogHeader, { className: "solid-sr-only", children: [_jsx(SolidDialogTitle, { children: dialogTitle }), _jsx(SolidDialogDescription, { children: dialogDescription })] }), _jsx(SolidFormView, __assign({}, params))] })] }));
503
503
  };
504
504
  export var DefaultRelationManyToOneFormViewWidget = function (_a) {
505
505
  var _b, _c, _d, _e, _f, _g;