@solidxai/core-ui 0.1.8-beta.16 → 0.1.8-beta.18

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 (132) hide show
  1. package/dist/components/common/AuthBanner.js.map +1 -1
  2. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts.map +1 -1
  3. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js.map +1 -1
  4. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.ts +2 -2
  5. package/dist/components/core/form/SolidFormLayouts.js +1 -1
  6. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  7. package/dist/components/core/form/SolidFormLayouts.tsx +1 -1
  8. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  9. package/dist/components/core/form/SolidFormView.js +70 -20
  10. package/dist/components/core/form/SolidFormView.js.map +1 -1
  11. package/dist/components/core/form/SolidFormView.tsx +53 -2
  12. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  13. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +1 -4
  14. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  15. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +6 -4
  16. package/dist/components/core/form/fields/SolidSelectionStaticField.js +0 -4
  17. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  18. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +4 -4
  19. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  20. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  21. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
  22. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  23. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  24. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  25. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
  26. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  27. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  28. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  29. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
  30. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  31. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
  32. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  33. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
  34. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  35. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  36. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  37. package/dist/components/core/list/SolidDataTable.js +6 -5
  38. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  39. package/dist/components/core/list/SolidDataTable.tsx +6 -5
  40. package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
  41. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
  42. package/dist/components/core/list/SolidDataTablePagination.js +22 -0
  43. package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
  44. package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
  45. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  46. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -3
  47. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  48. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +1 -0
  49. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  50. package/dist/components/core/list/SolidListView.js +2 -2
  51. package/dist/components/core/list/SolidListView.js.map +1 -1
  52. package/dist/components/core/list/SolidListView.tsx +1 -2
  53. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  54. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  55. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
  56. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  57. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
  58. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +1 -1
  59. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  60. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +1 -1
  61. package/dist/components/solid-ui/SolidButton.d.ts +14 -0
  62. package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
  63. package/dist/components/solid-ui/SolidButton.js +36 -0
  64. package/dist/components/solid-ui/SolidButton.js.map +1 -0
  65. package/dist/components/solid-ui/SolidButton.tsx +54 -0
  66. package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
  67. package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
  68. package/dist/components/solid-ui/SolidTabs.js +22 -0
  69. package/dist/components/solid-ui/SolidTabs.js.map +1 -0
  70. package/dist/components/solid-ui/SolidTabs.tsx +73 -0
  71. package/dist/components/solid-ui/index.d.ts +3 -0
  72. package/dist/components/solid-ui/index.d.ts.map +1 -0
  73. package/dist/components/solid-ui/index.js +3 -0
  74. package/dist/components/solid-ui/index.js.map +1 -0
  75. package/dist/components/solid-ui/index.ts +2 -0
  76. package/dist/helpers/hydrateRelationRules.js +1 -1
  77. package/dist/helpers/hydrateRelationRules.js.map +1 -1
  78. package/dist/helpers/hydrateRelationRules.ts +1 -1
  79. package/dist/helpers/permissions.js +2 -2
  80. package/dist/helpers/permissions.js.map +1 -1
  81. package/dist/helpers/permissions.ts +2 -2
  82. package/dist/redux/api/solidEntityApi.js +1 -1
  83. package/dist/redux/api/solidEntityApi.js.map +1 -1
  84. package/dist/redux/api/solidEntityApi.tsx +1 -1
  85. package/dist/resources/globals.css +5 -5
  86. package/dist/resources/shadcn-base.css +6 -6
  87. package/dist/routes/pages/admin/core/CardPage.js +1 -1
  88. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  89. package/dist/routes/pages/admin/core/CardPage.tsx +1 -1
  90. package/dist/routes/pages/admin/core/FormPage.js +1 -1
  91. package/dist/routes/pages/admin/core/FormPage.js.map +1 -1
  92. package/dist/routes/pages/admin/core/FormPage.tsx +1 -1
  93. package/dist/routes/pages/admin/core/KanbanPage.js +1 -1
  94. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  95. package/dist/routes/pages/admin/core/KanbanPage.tsx +1 -1
  96. package/dist/routes/pages/admin/core/ListPage.js +1 -1
  97. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  98. package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
  99. package/dist/routes/pages/admin/core/TreePage.js +1 -1
  100. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  101. package/dist/routes/pages/admin/core/TreePage.tsx +1 -1
  102. package/package.json +1 -2
  103. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  104. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  105. package/dist/components/auth/SolidOTPVerify.js +0 -67
  106. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  107. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  108. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  109. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  110. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  111. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  112. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  113. package/dist/nextAuth/authProviders.d.ts +0 -4
  114. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  115. package/dist/nextAuth/authProviders.js +0 -198
  116. package/dist/nextAuth/authProviders.js.map +0 -1
  117. package/dist/nextAuth/authProviders.tsx +0 -232
  118. package/dist/nextAuth/handleLogout.d.ts +0 -2
  119. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  120. package/dist/nextAuth/handleLogout.js +0 -36
  121. package/dist/nextAuth/handleLogout.js.map +0 -1
  122. package/dist/nextAuth/handleLogout.tsx +0 -39
  123. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  124. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  125. package/dist/nextAuth/refreshAccessToken.js +0 -24
  126. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  127. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  128. package/dist/redux/features/settingsSlice.d.ts +0 -20
  129. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  130. package/dist/redux/features/settingsSlice.js +0 -39
  131. package/dist/redux/features/settingsSlice.js.map +0 -1
  132. package/dist/redux/features/settingsSlice.ts +0 -60
@@ -276,7 +276,7 @@ const SolidSheet = ({ children }: any) => (
276
276
  // Internal tab data carrier — SolidNotebook reads props from this
277
277
  const SolidPageTab = ({ children }: any) => <>{children}</>;
278
278
 
279
- const SolidNotebook = ({ children, activeTab, embeded }: any) => {
279
+ const SolidNotebook = ({ children, activeTab, embeded, requestedTab, requestedTabVersion }: any) => {
280
280
  const childrenArray = React.Children.toArray(children).filter(child => !!child) as any[];
281
281
 
282
282
  const router = useRouter();
@@ -286,6 +286,19 @@ const SolidNotebook = ({ children, activeTab, embeded }: any) => {
286
286
 
287
287
  const effectiveTab = embeded ? localActiveTab : activeTab;
288
288
 
289
+ useEffect(() => {
290
+ if (!requestedTab) return;
291
+ const exists = childrenArray.some((child: any) => child.props?.tabKey === requestedTab);
292
+ if (!exists) return;
293
+ if (embeded) {
294
+ setLocalActiveTab(requestedTab);
295
+ } else {
296
+ const queryParams = new URLSearchParams(searchParams.toString());
297
+ queryParams.set('activeTab', requestedTab);
298
+ router.push(`${pathname}?${queryParams.toString()}`);
299
+ }
300
+ }, [requestedTabVersion]);
301
+
289
302
  const activeIndex = useMemo(() => {
290
303
  const idx = childrenArray.findIndex((child: any) => child.props?.tabKey === effectiveTab);
291
304
  return idx >= 0 ? idx : 0;
@@ -350,6 +363,29 @@ const SolidDynamicWidget = ({ widgetName, formik, field, solidFormViewMetaData,
350
363
  };
351
364
 
352
365
 
366
+ const FormikSubmitWatcher = ({ formik, tabFieldsRef, embeded, searchParams, setRequestedTab, setRequestedTabVersion }: any) => {
367
+ const lastHandledRef = useRef(0);
368
+ useEffect(() => {
369
+ if (formik.submitCount === lastHandledRef.current) return;
370
+ if (formik.isSubmitting) return;
371
+ lastHandledRef.current = formik.submitCount;
372
+ const erroredKeys = Object.keys(formik.errors || {});
373
+ if (erroredKeys.length === 0) return;
374
+ if (!tabFieldsRef.current || tabFieldsRef.current.length === 0) return;
375
+ const currentActive = embeded ? null : (searchParams.get("activeTab") || "");
376
+ const currentHasError = currentActive
377
+ ? tabFieldsRef.current.find((t: any) => t.tabKey === currentActive)?.fields.some((f: string) => erroredKeys.includes(f))
378
+ : false;
379
+ if (currentHasError) return;
380
+ const firstErroredTab = tabFieldsRef.current.find((t: any) => t.fields.some((f: string) => erroredKeys.includes(f)));
381
+ if (firstErroredTab) {
382
+ setRequestedTab(firstErroredTab.tabKey);
383
+ setRequestedTabVersion((v: number) => v + 1);
384
+ }
385
+ }, [formik.submitCount, formik.isSubmitting]);
386
+ return null;
387
+ };
388
+
353
389
  const SolidPage = ({ attrs, children, key, formik, fields }: any) => {
354
390
  const fieldsName = fields.map((f: any) => f.attrs.name);
355
391
  const errorCount = formik.submitCount > 0 ? fieldsName.filter((name: any) => !!formik.errors[name]).length : 0;
@@ -434,6 +470,10 @@ const SolidFormView = (params: SolidFormViewProps) => {
434
470
  const [isResizingChatterLocale, setIsResizingChatterLocale] = useState(false);
435
471
  const [isSubmitting, setIsSubmitting] = useState(false);
436
472
 
473
+ const tabFieldsRef = useRef<Array<{ tabKey: string; fields: string[] }>>([]);
474
+ const [requestedTab, setRequestedTab] = useState<string | null>(null);
475
+ const [requestedTabVersion, setRequestedTabVersion] = useState(0);
476
+
437
477
  const [solidWorkflowFieldValue, setSolidWorkflowFieldValue] = useState<string>("");
438
478
  const [defaultTabViewOptionIndex, setDefaultTabViewOptionIndex] = useState<number>(1);
439
479
  const errorFields: string[] = [];
@@ -1266,6 +1306,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
1266
1306
  });
1267
1307
 
1268
1308
  const formFieldOnXXX = async (event: ChangeEvent<HTMLInputElement>, eventType: string) => {
1309
+ // console.log("formFieldOnXXX", eventType, event);
1269
1310
 
1270
1311
  // Invoke the formik change
1271
1312
  if (eventType === 'onFieldChange') {
@@ -1443,12 +1484,14 @@ const SolidFormView = (params: SolidFormViewProps) => {
1443
1484
 
1444
1485
  case "notebook":
1445
1486
  if (visible === true) {
1446
- return <SolidNotebook key={key} activeTab={searchParams.get("activeTab") || ""} embeded={params.embeded}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidNotebook>;
1487
+ tabFieldsRef.current = [];
1488
+ return <SolidNotebook key={key} activeTab={searchParams.get("activeTab") || ""} embeded={params.embeded} requestedTab={requestedTab} requestedTabVersion={requestedTabVersion}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidNotebook>;
1447
1489
  }
1448
1490
  break;
1449
1491
  case "page":
1450
1492
  if (visible === true) {
1451
1493
  const fields = children.flatMap((child: any) => getLayoutFields(child));
1494
+ tabFieldsRef.current.push({ tabKey: key, fields: fields.map((f: any) => f.attrs.name) });
1452
1495
  const pageChildren = children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`));
1453
1496
  return SolidPage({ children: pageChildren, attrs: attrs, key: key, formik: formik, fields });
1454
1497
  }
@@ -1639,6 +1682,14 @@ const SolidFormView = (params: SolidFormViewProps) => {
1639
1682
  <div className="solid-form-wrapper">
1640
1683
  <div className="solid-form-section">
1641
1684
  <form style={{ width: '100%' }} onSubmit={formik.handleSubmit}>
1685
+ <FormikSubmitWatcher
1686
+ formik={formik}
1687
+ tabFieldsRef={tabFieldsRef}
1688
+ embeded={params.embeded}
1689
+ searchParams={searchParams}
1690
+ setRequestedTab={setRequestedTab}
1691
+ setRequestedTabVersion={setRequestedTabVersion}
1692
+ />
1642
1693
  <SolidFormActionHeader
1643
1694
  formik={formik}
1644
1695
  formData={solidFormViewData?.data}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidSelectionDynamicField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidSelectionDynamicField.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AASzE,qBAAa,0BAA2B,YAAW,WAAW;IAE1D,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,YAAY,IAAI,GAAG;IAoDnB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAwBnD,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAkC9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAmC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAKD,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CAqGxG,CAAA;AAGD,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CA+CxG,CAAA"}
1
+ {"version":3,"file":"SolidSelectionDynamicField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidSelectionDynamicField.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AASzE,qBAAa,0BAA2B,YAAW,WAAW;IAE1D,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,YAAY,IAAI,GAAG;IAoDnB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAwBnD,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAkC9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAmC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAKD,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CAuGxG,CAAA;AAGD,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CA+CxG,CAAA"}
@@ -310,10 +310,7 @@ export var DefaultSelectionDynamicFormEditWidget = function (_a) {
310
310
  if (formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled)
311
311
  return;
312
312
  var syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
313
- fieldContext.onChange(syntheticEvent, "onFieldChange");
314
- }, onSelect: function (_a) {
315
- var value = _a.value;
316
- var syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
313
+ // console.log(`SolidSelectionDynamicField > SolidAutocomplete > onChange`, syntheticEvent);
317
314
  fieldContext.onChange(syntheticEvent, "onFieldChange");
318
315
  } }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("p", { className: styles.fieldError, children: typeof formik.errors[(_s = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _s === void 0 ? void 0 : _s.name] === 'object'
319
316
  ? (_v = (_u = formik.errors[(_t = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _t === void 0 ? void 0 : _t.name]) === null || _u === void 0 ? void 0 : _u.value) === null || _v === void 0 ? void 0 : _v.toString()
@@ -1 +1 @@
1
- {"version":3,"file":"SolidSelectionDynamicField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidSelectionDynamicField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useLazyGetSelectionDynamicValuesQuery } from \"../../../../redux/api/fieldApi\";\nimport { SolidAutocomplete } from \"../../../shad-cn-ui/SolidAutocomplete\";\nimport { buildSyntheticChangeEvent } from \"./fieldEventUtils\";\nimport qs from \"qs\";\nimport { useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { formikValuestoQueryString } from \"../../../../helpers/helpers\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport styles from \"./solidFields.module.css\";\n\ntype AutoCompleteCompleteEvent = { query: string };\n\n\nexport class SolidSelectionDynamicField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n initialValue(): any {\n // TODO: Use the field metadata to re-create the object in the valid format \n // {label: '', value: ''}\n const fieldLayoutInfo = this.fieldContext.field;\n const optionValue = this.fieldContext.data[fieldLayoutInfo.attrs.name];\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n // isMultiSelect: fieldMetaData ? fieldMetaData?.isMultiSelect : false,\n\n // return { label: optionValue || '', value: optionValue || '' };\n const stripBracketsAndQuotes = (str: string) =>\n str.replace(/^\\[?\"?/, '').replace(/\"?\\]?$/, '').trim();\n\n const cleanValue = (val: any) => {\n if (typeof val === 'string') {\n const cleaned = stripBracketsAndQuotes(val);\n return { label: cleaned, value: cleaned };\n } else if (val && typeof val === 'object') {\n const label = stripBracketsAndQuotes(String(val.label ?? val));\n const value = stripBracketsAndQuotes(String(val.value ?? val));\n return { label, value };\n } else {\n const strVal = stripBracketsAndQuotes(String(val));\n return { label: strVal, value: strVal };\n }\n };\n\n if (optionValue === '' || optionValue === null || optionValue === undefined || (Array.isArray(optionValue) && optionValue.length === 0)) {\n return null;\n }\n\n if (isMultiSelect) {\n if (Array.isArray(optionValue)) {\n return optionValue.map(cleanValue);\n } else if (typeof optionValue === 'string') {\n try {\n const parsed = JSON.parse(optionValue); // try to parse as JSON array\n if (Array.isArray(parsed)) {\n return parsed.map(cleanValue);\n }\n } catch {\n // fallback to comma-split only if not valid JSON\n const splitValues = optionValue.split(',').map(v => v.trim()).filter(Boolean);\n return splitValues.map(cleanValue);\n }\n }\n return [];\n } else {\n return cleanValue(optionValue || '');\n }\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n const stripQuotes = (str: string) => str.replace(/^\"+|\"+$/g, '').replace(/^'+|'+$/g, '');\n\n if (value) {\n if (isMultiSelect) {\n const selectedValues = value.map((v: any) => {\n const cleanedValue = stripQuotes(v.value); // still fine\n return cleanedValue;\n });\n const jsonString = JSON.stringify(selectedValues); // ✅ Proper JSON array\n formData.append(fieldLayoutInfo.attrs.name, jsonString);\n } else {\n const cleanedValue = stripQuotes(value.value);\n formData.append(fieldLayoutInfo.attrs.name, cleanedValue);\n }\n }\n // if (value) {\n // formData.append(fieldLayoutInfo.attrs.name, value.value);\n // }\n }\n\n validationSchema(): Yup.Schema {\n let schema = Yup.object();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n // if (fieldMetadata.required) {\n // schema = schema.required(`${fieldLabel} is required.`);\n // }\n\n // return schema;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n\n const isRequired = fieldLayoutInfo.attrs?.required ?? fieldMetadata.required;\n \n if (!isRequired) {\n return Yup.mixed();\n }\n\n if (isMultiSelect) {\n return Yup.array()\n .min(1, ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n .of(Yup.object().shape({ label: Yup.string(), value: Yup.string() }));\n }\n\n return Yup.object().shape({\n label: Yup.string(),\n value: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel)),\n });\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 isFormFieldValid = (formik: any, fieldName: string) => formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultSelectionDynamicFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultSelectionDynamicFormViewWidget';\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 </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\n\nexport const DefaultSelectionDynamicFormEditWidget = ({ 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 fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n // selection dynamic specific code. \n const [triggerGetSelectionDynamicValues] = useLazyGetSelectionDynamicValuesQuery();\n const [selectionDynamicItems, setSelectionDynamicItems] = useState([]);\n const isFormFieldValid = (formik: any, fieldName: string) =>\n (formik.touched[fieldName] || formik.submitCount > 0) && !!formik.errors[fieldName];\n\n const isRequired = fieldLayoutInfo.attrs?.required ?? fieldMetadata.required;\n\n const selectionDynamicSearch = async (event: AutoCompleteCompleteEvent) => {\n try {\n // const query = event.query ?? \"\";\n const queryData = {\n offset: 0,\n limit: 10,\n query: event.query,\n fieldId: fieldMetadata.id,\n formValues: formikValuestoQueryString(formik.values),\n };\n if (whereClause) {\n queryData.query = whereClause;\n }\n let sdQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n // encoder: (str, defaultEncoder, charset, type) => {\n // if (type === 'key' || type === 'value') {\n // if (str === queryData.query) return str;\n // }\n // return defaultEncoder(str);\n // }\n });\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const sdResponse = await triggerGetSelectionDynamicValues(sdQs).unwrap();\n const items = Array.isArray(sdResponse?.data) ? sdResponse.data : [];\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n // const sdData = sdResponse.data.data;\n\n // @ts-ignore\n setSelectionDynamicItems([...items]);\n } catch (err) {\n setSelectionDynamicItems([]);\n }\n }\n\n\n return (\n <div className={`${styles.fieldWrapper} ${isFormFieldValid(formik, fieldLayoutInfo.attrs.name) ? styles.fieldInvalid : \"\"}`}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>\n {fieldLabel}\n {isRequired && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <SolidAutocomplete\n multiple={isMultiSelect}\n field=\"label\"\n className={`solid-standard-autocomplete ${isFormFieldValid(formik, fieldLayoutInfo.attrs.name) ? styles.fieldInvalidControl : \"\"}`}\n value={formik.values[fieldLayoutInfo.attrs.name] || (isMultiSelect ? [] : null)}\n dropdown\n suggestions={selectionDynamicItems}\n completeMethod={(e) => selectionDynamicSearch(e)}\n emptyMessage=\"No records found\"\n onChange={({ value }) => {\n if (formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled) return;\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }}\n onSelect={({ value }) => {\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }}\n />\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>\n {typeof formik.errors[fieldLayoutInfo?.attrs?.name] === 'object'\n ? formik.errors[fieldLayoutInfo?.attrs?.name]?.value?.toString()\n : formik.errors[fieldLayoutInfo?.attrs?.name]?.toString()}\n </p>\n )}\n </div>\n );\n}\n\n\nexport const DefaultSelectionDynamicFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const value = formik.values[fieldLayoutInfo.attrs.name];\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n const toLabel = (val: any) => {\n if (!val) return '';\n if (typeof val === 'string' || typeof val === 'number') return String(val);\n if (typeof val === 'object') return val.label ?? val.value ?? '';\n return '';\n };\n\n let values: string[] = [];\n if (isMultiSelect) {\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n values = parsed.map(toLabel);\n }\n } catch {\n values = value.split(',').map(v => v.trim()).map(toLabel);\n }\n } else if (Array.isArray(value)) {\n values = value.map(toLabel);\n }\n }\n\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>{fieldLabel}</p>\n )}\n <p className={styles.fieldViewValue}>\n {isMultiSelect\n ? (values.length > 0 ? values.join(', ') : 'No selection')\n : (() => {\n const single = toLabel(value);\n return single ? single : 'No selection';\n })()}\n </p>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidSelectionDynamicField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidSelectionDynamicField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useLazyGetSelectionDynamicValuesQuery } from \"../../../../redux/api/fieldApi\";\nimport { SolidAutocomplete } from \"../../../shad-cn-ui/SolidAutocomplete\";\nimport { buildSyntheticChangeEvent } from \"./fieldEventUtils\";\nimport qs from \"qs\";\nimport { useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { formikValuestoQueryString } from \"../../../../helpers/helpers\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport styles from \"./solidFields.module.css\";\n\ntype AutoCompleteCompleteEvent = { query: string };\n\n\nexport class SolidSelectionDynamicField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n initialValue(): any {\n // TODO: Use the field metadata to re-create the object in the valid format \n // {label: '', value: ''}\n const fieldLayoutInfo = this.fieldContext.field;\n const optionValue = this.fieldContext.data[fieldLayoutInfo.attrs.name];\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n // isMultiSelect: fieldMetaData ? fieldMetaData?.isMultiSelect : false,\n\n // return { label: optionValue || '', value: optionValue || '' };\n const stripBracketsAndQuotes = (str: string) =>\n str.replace(/^\\[?\"?/, '').replace(/\"?\\]?$/, '').trim();\n\n const cleanValue = (val: any) => {\n if (typeof val === 'string') {\n const cleaned = stripBracketsAndQuotes(val);\n return { label: cleaned, value: cleaned };\n } else if (val && typeof val === 'object') {\n const label = stripBracketsAndQuotes(String(val.label ?? val));\n const value = stripBracketsAndQuotes(String(val.value ?? val));\n return { label, value };\n } else {\n const strVal = stripBracketsAndQuotes(String(val));\n return { label: strVal, value: strVal };\n }\n };\n\n if (optionValue === '' || optionValue === null || optionValue === undefined || (Array.isArray(optionValue) && optionValue.length === 0)) {\n return null;\n }\n\n if (isMultiSelect) {\n if (Array.isArray(optionValue)) {\n return optionValue.map(cleanValue);\n } else if (typeof optionValue === 'string') {\n try {\n const parsed = JSON.parse(optionValue); // try to parse as JSON array\n if (Array.isArray(parsed)) {\n return parsed.map(cleanValue);\n }\n } catch {\n // fallback to comma-split only if not valid JSON\n const splitValues = optionValue.split(',').map(v => v.trim()).filter(Boolean);\n return splitValues.map(cleanValue);\n }\n }\n return [];\n } else {\n return cleanValue(optionValue || '');\n }\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n const stripQuotes = (str: string) => str.replace(/^\"+|\"+$/g, '').replace(/^'+|'+$/g, '');\n\n if (value) {\n if (isMultiSelect) {\n const selectedValues = value.map((v: any) => {\n const cleanedValue = stripQuotes(v.value); // still fine\n return cleanedValue;\n });\n const jsonString = JSON.stringify(selectedValues); // ✅ Proper JSON array\n formData.append(fieldLayoutInfo.attrs.name, jsonString);\n } else {\n const cleanedValue = stripQuotes(value.value);\n formData.append(fieldLayoutInfo.attrs.name, cleanedValue);\n }\n }\n // if (value) {\n // formData.append(fieldLayoutInfo.attrs.name, value.value);\n // }\n }\n\n validationSchema(): Yup.Schema {\n let schema = Yup.object();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n // if (fieldMetadata.required) {\n // schema = schema.required(`${fieldLabel} is required.`);\n // }\n\n // return schema;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n\n const isRequired = fieldLayoutInfo.attrs?.required ?? fieldMetadata.required;\n \n if (!isRequired) {\n return Yup.mixed();\n }\n\n if (isMultiSelect) {\n return Yup.array()\n .min(1, ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n .of(Yup.object().shape({ label: Yup.string(), value: Yup.string() }));\n }\n\n return Yup.object().shape({\n label: Yup.string(),\n value: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel)),\n });\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 isFormFieldValid = (formik: any, fieldName: string) => formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultSelectionDynamicFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultSelectionDynamicFormViewWidget';\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 </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\n\nexport const DefaultSelectionDynamicFormEditWidget = ({ 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 fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n // selection dynamic specific code. \n const [triggerGetSelectionDynamicValues] = useLazyGetSelectionDynamicValuesQuery();\n const [selectionDynamicItems, setSelectionDynamicItems] = useState([]);\n const isFormFieldValid = (formik: any, fieldName: string) =>\n (formik.touched[fieldName] || formik.submitCount > 0) && !!formik.errors[fieldName];\n\n const isRequired = fieldLayoutInfo.attrs?.required ?? fieldMetadata.required;\n\n const selectionDynamicSearch = async (event: AutoCompleteCompleteEvent) => {\n try {\n // const query = event.query ?? \"\";\n const queryData = {\n offset: 0,\n limit: 10,\n query: event.query,\n fieldId: fieldMetadata.id,\n formValues: formikValuestoQueryString(formik.values),\n };\n if (whereClause) {\n queryData.query = whereClause;\n }\n let sdQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n // encoder: (str, defaultEncoder, charset, type) => {\n // if (type === 'key' || type === 'value') {\n // if (str === queryData.query) return str;\n // }\n // return defaultEncoder(str);\n // }\n });\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const sdResponse = await triggerGetSelectionDynamicValues(sdQs).unwrap();\n const items = Array.isArray(sdResponse?.data) ? sdResponse.data : [];\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n // const sdData = sdResponse.data.data;\n\n // @ts-ignore\n setSelectionDynamicItems([...items]);\n } catch (err) {\n setSelectionDynamicItems([]);\n }\n }\n\n\n return (\n <div className={`${styles.fieldWrapper} ${isFormFieldValid(formik, fieldLayoutInfo.attrs.name) ? styles.fieldInvalid : \"\"}`}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>\n {fieldLabel}\n {isRequired && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <SolidAutocomplete\n multiple={isMultiSelect}\n field=\"label\"\n className={`solid-standard-autocomplete ${isFormFieldValid(formik, fieldLayoutInfo.attrs.name) ? styles.fieldInvalidControl : \"\"}`}\n value={formik.values[fieldLayoutInfo.attrs.name] || (isMultiSelect ? [] : null)}\n dropdown\n suggestions={selectionDynamicItems}\n completeMethod={(e) => selectionDynamicSearch(e)}\n emptyMessage=\"No records found\"\n onChange={({ value }) => {\n if (formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled) return;\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\");\n // console.log(`SolidSelectionDynamicField > SolidAutocomplete > onChange`, syntheticEvent);\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }}\n // onSelect={({ value }) => {\n // const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\");\n // console.log(`SolidSelectionDynamicField > SolidAutocomplete > onSelect`, syntheticEvent);\n // fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n // }}\n />\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>\n {typeof formik.errors[fieldLayoutInfo?.attrs?.name] === 'object'\n ? formik.errors[fieldLayoutInfo?.attrs?.name]?.value?.toString()\n : formik.errors[fieldLayoutInfo?.attrs?.name]?.toString()}\n </p>\n )}\n </div>\n );\n}\n\n\nexport const DefaultSelectionDynamicFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const value = formik.values[fieldLayoutInfo.attrs.name];\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n const toLabel = (val: any) => {\n if (!val) return '';\n if (typeof val === 'string' || typeof val === 'number') return String(val);\n if (typeof val === 'object') return val.label ?? val.value ?? '';\n return '';\n };\n\n let values: string[] = [];\n if (isMultiSelect) {\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n values = parsed.map(toLabel);\n }\n } catch {\n values = value.split(',').map(v => v.trim()).map(toLabel);\n }\n } else if (Array.isArray(value)) {\n values = value.map(toLabel);\n }\n }\n\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>{fieldLabel}</p>\n )}\n <p className={styles.fieldViewValue}>\n {isMultiSelect\n ? (values.length > 0 ? values.join(', ') : 'No selection')\n : (() => {\n const single = toLabel(value);\n return single ? single : 'No selection';\n })()}\n </p>\n </div>\n );\n}\n"]}
@@ -271,12 +271,14 @@ export const DefaultSelectionDynamicFormEditWidget = ({ formik, fieldContext }:
271
271
  onChange={({ value }) => {
272
272
  if (formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled) return;
273
273
  const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
274
+ // console.log(`SolidSelectionDynamicField > SolidAutocomplete > onChange`, syntheticEvent);
274
275
  fieldContext.onChange(syntheticEvent, "onFieldChange");
275
276
  }}
276
- onSelect={({ value }) => {
277
- const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
278
- fieldContext.onChange(syntheticEvent, "onFieldChange");
279
- }}
277
+ // onSelect={({ value }) => {
278
+ // const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
279
+ // console.log(`SolidSelectionDynamicField > SolidAutocomplete > onSelect`, syntheticEvent);
280
+ // fieldContext.onChange(syntheticEvent, "onFieldChange");
281
+ // }}
280
282
  />
281
283
  {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
282
284
  <p className={styles.fieldError}>
@@ -230,10 +230,6 @@ export var DefaultSelectionStaticAutocompleteFormEditWidget = function (_a) {
230
230
  return;
231
231
  var syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
232
232
  fieldContext.onChange(syntheticEvent, "onFieldChange");
233
- }, onSelect: function (_a) {
234
- var value = _a.value;
235
- var syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
236
- fieldContext.onChange(syntheticEvent, "onFieldChange");
237
233
  } }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("p", { className: styles.fieldError, children: typeof formik.errors[(_o = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _o === void 0 ? void 0 : _o.name] === 'object'
238
234
  ? (_r = (_q = formik.errors[(_p = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _p === void 0 ? void 0 : _p.name]) === null || _q === void 0 ? void 0 : _q.value) === null || _r === void 0 ? void 0 : _r.toString()
239
235
  : (_t = formik.errors[(_s = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _s === void 0 ? void 0 : _s.name]) === null || _t === void 0 ? void 0 : _t.toString() }))] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidSelectionStaticField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidSelectionStaticField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SolidAutocomplete } from \"../../../shad-cn-ui/SolidAutocomplete\";\nimport { SolidRadioGroup } from \"../../../shad-cn-ui/SolidRadioGroup\";\nimport { SolidSegmentedControl } from \"../../../shad-cn-ui/SolidSegmentedControl\";\nimport { buildSyntheticChangeEvent } from \"./fieldEventUtils\";\nimport styles from './solidFields.module.css';\nimport { useMemo, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\n\ntype AutoCompleteCompleteEvent = { query: string };\n\nexport class SolidSelectionStaticField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n if (isMultiSelect && Array.isArray(value)) {\n formData.append(fieldLayoutInfo.attrs.name, JSON.stringify(value.map(v => v.value)));\n } else if (value) {\n formData.append(fieldLayoutInfo.attrs.name, value.value);\n }\n // if (value) {\n // formData.append(fieldLayoutInfo.attrs.name, value.value);\n // }\n }\n\n initialValue(): any {\n // Get field name and metadata\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldName = fieldLayoutInfo.attrs.name;\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldDefaultValue = fieldMetadata?.defaultValue;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n // Get existing value from form data\n const existingValue = this.fieldContext.data[fieldName];\n\n // Function to get display value based on selectionStaticValues\n // const getDisplayValue = (value: string | null): string | null => {\n // if (!value) return null;\n // for (const item of fieldMetadata.selectionStaticValues) {\n // const [lhs, rhs] = item.split(':');\n // if (lhs === value) {\n // return rhs;\n // }\n // }\n // return null;\n // };\n\n // Function to get display value based on selectionStaticValues\n const getDisplayValue = (value: string): string => {\n const match = fieldMetadata.selectionStaticValues.find((item: string) => item.startsWith(value + ':'));\n return match ? match.split(':')[1] : value;\n };\n\n // Determine the final value to use (existing value or default value)\n const finalValue = existingValue ?? fieldDefaultValue ?? '';\n\n if (finalValue === '' || finalValue === null || finalValue === undefined || (Array.isArray(finalValue) && finalValue.length === 0)) {\n return null;\n }\n\n if (isMultiSelect) {\n let values: string[] = [];\n\n if (Array.isArray(finalValue)) {\n values = finalValue;\n } else {\n try {\n const parsed = JSON.parse(finalValue);\n if (Array.isArray(parsed)) values = parsed;\n } catch { }\n }\n\n return values.map(val => ({\n label: getDisplayValue(val),\n value: val\n }));\n }\n\n // Get display value for the final value\n // const displayValue = getDisplayValue(finalValue);\n\n return { label: getDisplayValue(finalValue), value: finalValue };\n }\n\n\n validationSchema(): Yup.Schema {\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n // let schema = Yup.object({\n // value: Yup.string().required(`${fieldLabel} is required.`)\n // });\n let schema: Yup.Schema;\n\n if (isMultiSelect) {\n // For multi-select, create array schema\n if (fieldMetadata.required) {\n schema = Yup.array()\n .of(Yup.object({\n value: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n }))\n .min(1, ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n .required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = Yup.array()\n .of(Yup.object({\n value: Yup.string()\n }))\n .nullable(); // Allow null/undefined for non-required fields\n }\n } else {\n // For single select, create object schema\n if (fieldMetadata.required) {\n schema = Yup.object({\n value: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n }).required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = Yup.object({\n value: Yup.string()\n }).nullable(); // Allow null/undefined for non-required fields\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 const isFormFieldValid = (formik: any, fieldName: string) => formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultSelectionStaticAutocompleteFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultSelectionStaticFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" &&\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\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\nexport const DefaultSelectionStaticAutocompleteFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n const [selectionStaticItems, setSelectionStaticItems] = useState([]);\n const selectionStaticSearch = (event: AutoCompleteCompleteEvent) => {\n const selectionStaticData = fieldMetadata.selectionStaticValues.map((i: string) => {\n return {\n label: i.split(\":\")[1],\n value: i.split(\":\")[0]\n }\n });\n const suggestionData = selectionStaticData.filter((t: any) => t.value.toLowerCase().startsWith(event.query.toLowerCase()));\n setSelectionStaticItems(suggestionData)\n }\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n return (\n <div className={`${styles.fieldWrapper} ${isFormFieldValid(formik, fieldLayoutInfo.attrs.name) ? styles.fieldInvalid : \"\"}`}>\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 <SolidAutocomplete\n multiple={isMultiSelect}\n dropdown\n field=\"label\"\n className={`solid-standard-autocomplete ${isFormFieldValid(formik, fieldLayoutInfo.attrs.name) ? styles.fieldInvalidControl : \"\"}`}\n value={formik.values[fieldLayoutInfo.attrs.name] || (isMultiSelect ? [] : null)}\n suggestions={selectionStaticItems}\n completeMethod={(e) => selectionStaticSearch(e)}\n onChange={({ value }) => {\n if (formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled) return;\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }}\n onSelect={({ value }) => {\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }}\n />\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>\n {typeof formik.errors[fieldLayoutInfo?.attrs?.name] === 'object'\n ? (formik.errors[fieldLayoutInfo?.attrs?.name] as any)?.value?.toString()\n : formik.errors[fieldLayoutInfo?.attrs?.name]?.toString()}\n </p>\n )}\n </div>\n );\n}\n\nexport const SolidSelectionStaticRadioFormEditWidget = ({ 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 fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = fieldContext.solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = fieldContext.solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n const fieldName = fieldLayoutInfo.attrs.name;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n // Convert selectionStaticValues to usable radio options\n const radioOptions = fieldMetadata.selectionStaticValues.map((i: string) => {\n const [value, label] = i.split(\":\");\n return { label, value };\n });\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.errors[fieldName];\n\n if (isMultiSelect) {\n return (\n <p className={styles.fieldError}>This render mode is not supported for multi select.</p>\n );\n }\n\n return (\n <div className={styles.fieldWrapper}>\n {showFieldLabel !== false && (\n <label htmlFor={fieldName} className={styles.fieldLabel}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\">*</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n <SolidRadioGroup\n name={fieldName}\n options={radioOptions}\n value={formik.values[fieldName]?.value ?? formik.values[fieldName]}\n disabled={formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled}\n onChange={(nextValue) => {\n const selectedOption = radioOptions.find((opt: any) => opt.value === nextValue);\n if (selectedOption) {\n formik.setFieldValue(fieldName, selectedOption);\n const syntheticEvent = buildSyntheticChangeEvent(fieldName, selectedOption, \"radio\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }\n }}\n />\n {isFormFieldValid(formik, fieldName) && (\n <p className={styles.fieldError}>{formik?.errors[fieldName]?.toString()}</p>\n )}\n </div>\n );\n}\n\nexport const SolidSelectionStaticSelectButtonFormEditWidget = ({ 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 fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = fieldContext.solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = fieldContext.solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n const fieldName = fieldLayoutInfo.attrs.name;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.errors[fieldName];\n\n if (isMultiSelect) {\n return (\n <p className={styles.fieldError}>This render mode is not supported for multi select.</p>\n );\n }\n\n const options = fieldMetadata.selectionStaticValues.map((i: string) => {\n const [value, label] = i.split(\":\");\n return { label, value };\n });\n\n const currentValue = formik.values[fieldName];\n const buttonValue =\n typeof currentValue === \"object\" ? currentValue.value : currentValue || null;\n\n return (\n <div className={styles.fieldWrapper}>\n {showFieldLabel !== false && (\n <label htmlFor={fieldName} className={styles.fieldLabel}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\">*</span>}\n </label>\n )}\n <SolidSegmentedControl\n options={options}\n value={buttonValue}\n disabled={formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled}\n onChange={(nextValue) => {\n const selectedOption = options.find((opt: any) => opt.value === nextValue);\n if (selectedOption) {\n formik.setFieldValue(fieldName, selectedOption);\n const syntheticEvent = buildSyntheticChangeEvent(fieldName, selectedOption, \"button\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }\n }}\n />\n {isFormFieldValid(formik, fieldName) && (\n <p className={styles.fieldError}>{formik.errors[fieldName]?.toString()}</p>\n )}\n </div>\n );\n};\n\n\nexport const DefaultSelectionStaticFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const value = formik.values[fieldLayoutInfo.attrs.name];\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>{fieldLabel}</p>\n )}\n <p className={styles.fieldViewValue}>\n {isMultiSelect\n ? Array.isArray(value)\n ? value.map((v: any) => v?.label).filter(Boolean).join(', ')\n : ''\n : value?.label || ''}\n </p>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidSelectionStaticField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidSelectionStaticField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SolidAutocomplete } from \"../../../shad-cn-ui/SolidAutocomplete\";\nimport { SolidRadioGroup } from \"../../../shad-cn-ui/SolidRadioGroup\";\nimport { SolidSegmentedControl } from \"../../../shad-cn-ui/SolidSegmentedControl\";\nimport { buildSyntheticChangeEvent } from \"./fieldEventUtils\";\nimport styles from './solidFields.module.css';\nimport { useMemo, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\n\ntype AutoCompleteCompleteEvent = { query: string };\n\nexport class SolidSelectionStaticField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n if (isMultiSelect && Array.isArray(value)) {\n formData.append(fieldLayoutInfo.attrs.name, JSON.stringify(value.map(v => v.value)));\n } else if (value) {\n formData.append(fieldLayoutInfo.attrs.name, value.value);\n }\n // if (value) {\n // formData.append(fieldLayoutInfo.attrs.name, value.value);\n // }\n }\n\n initialValue(): any {\n // Get field name and metadata\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldName = fieldLayoutInfo.attrs.name;\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldDefaultValue = fieldMetadata?.defaultValue;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n // Get existing value from form data\n const existingValue = this.fieldContext.data[fieldName];\n\n // Function to get display value based on selectionStaticValues\n // const getDisplayValue = (value: string | null): string | null => {\n // if (!value) return null;\n // for (const item of fieldMetadata.selectionStaticValues) {\n // const [lhs, rhs] = item.split(':');\n // if (lhs === value) {\n // return rhs;\n // }\n // }\n // return null;\n // };\n\n // Function to get display value based on selectionStaticValues\n const getDisplayValue = (value: string): string => {\n const match = fieldMetadata.selectionStaticValues.find((item: string) => item.startsWith(value + ':'));\n return match ? match.split(':')[1] : value;\n };\n\n // Determine the final value to use (existing value or default value)\n const finalValue = existingValue ?? fieldDefaultValue ?? '';\n\n if (finalValue === '' || finalValue === null || finalValue === undefined || (Array.isArray(finalValue) && finalValue.length === 0)) {\n return null;\n }\n\n if (isMultiSelect) {\n let values: string[] = [];\n\n if (Array.isArray(finalValue)) {\n values = finalValue;\n } else {\n try {\n const parsed = JSON.parse(finalValue);\n if (Array.isArray(parsed)) values = parsed;\n } catch { }\n }\n\n return values.map(val => ({\n label: getDisplayValue(val),\n value: val\n }));\n }\n\n // Get display value for the final value\n // const displayValue = getDisplayValue(finalValue);\n\n return { label: getDisplayValue(finalValue), value: finalValue };\n }\n\n\n validationSchema(): Yup.Schema {\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n // let schema = Yup.object({\n // value: Yup.string().required(`${fieldLabel} is required.`)\n // });\n let schema: Yup.Schema;\n\n if (isMultiSelect) {\n // For multi-select, create array schema\n if (fieldMetadata.required) {\n schema = Yup.array()\n .of(Yup.object({\n value: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n }))\n .min(1, ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n .required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = Yup.array()\n .of(Yup.object({\n value: Yup.string()\n }))\n .nullable(); // Allow null/undefined for non-required fields\n }\n } else {\n // For single select, create object schema\n if (fieldMetadata.required) {\n schema = Yup.object({\n value: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n }).required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = Yup.object({\n value: Yup.string()\n }).nullable(); // Allow null/undefined for non-required fields\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 const isFormFieldValid = (formik: any, fieldName: string) => formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultSelectionStaticAutocompleteFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultSelectionStaticFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" &&\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\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\nexport const DefaultSelectionStaticAutocompleteFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n const [selectionStaticItems, setSelectionStaticItems] = useState([]);\n const selectionStaticSearch = (event: AutoCompleteCompleteEvent) => {\n const selectionStaticData = fieldMetadata.selectionStaticValues.map((i: string) => {\n return {\n label: i.split(\":\")[1],\n value: i.split(\":\")[0]\n }\n });\n const suggestionData = selectionStaticData.filter((t: any) => t.value.toLowerCase().startsWith(event.query.toLowerCase()));\n setSelectionStaticItems(suggestionData)\n }\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n return (\n <div className={`${styles.fieldWrapper} ${isFormFieldValid(formik, fieldLayoutInfo.attrs.name) ? styles.fieldInvalid : \"\"}`}>\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 <SolidAutocomplete\n multiple={isMultiSelect}\n dropdown\n field=\"label\"\n className={`solid-standard-autocomplete ${isFormFieldValid(formik, fieldLayoutInfo.attrs.name) ? styles.fieldInvalidControl : \"\"}`}\n value={formik.values[fieldLayoutInfo.attrs.name] || (isMultiSelect ? [] : null)}\n suggestions={selectionStaticItems}\n completeMethod={(e) => selectionStaticSearch(e)}\n onChange={({ value }) => {\n if (formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled) return;\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }}\n // onSelect={({ value }) => {\n // const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, \"text\");\n // fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n // }}\n />\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>\n {typeof formik.errors[fieldLayoutInfo?.attrs?.name] === 'object'\n ? (formik.errors[fieldLayoutInfo?.attrs?.name] as any)?.value?.toString()\n : formik.errors[fieldLayoutInfo?.attrs?.name]?.toString()}\n </p>\n )}\n </div>\n );\n}\n\nexport const SolidSelectionStaticRadioFormEditWidget = ({ 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 fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = fieldContext.solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = fieldContext.solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n const fieldName = fieldLayoutInfo.attrs.name;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n // Convert selectionStaticValues to usable radio options\n const radioOptions = fieldMetadata.selectionStaticValues.map((i: string) => {\n const [value, label] = i.split(\":\");\n return { label, value };\n });\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.errors[fieldName];\n\n if (isMultiSelect) {\n return (\n <p className={styles.fieldError}>This render mode is not supported for multi select.</p>\n );\n }\n\n return (\n <div className={styles.fieldWrapper}>\n {showFieldLabel !== false && (\n <label htmlFor={fieldName} className={styles.fieldLabel}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\">*</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n <SolidRadioGroup\n name={fieldName}\n options={radioOptions}\n value={formik.values[fieldName]?.value ?? formik.values[fieldName]}\n disabled={formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled}\n onChange={(nextValue) => {\n const selectedOption = radioOptions.find((opt: any) => opt.value === nextValue);\n if (selectedOption) {\n formik.setFieldValue(fieldName, selectedOption);\n const syntheticEvent = buildSyntheticChangeEvent(fieldName, selectedOption, \"radio\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }\n }}\n />\n {isFormFieldValid(formik, fieldName) && (\n <p className={styles.fieldError}>{formik?.errors[fieldName]?.toString()}</p>\n )}\n </div>\n );\n}\n\nexport const SolidSelectionStaticSelectButtonFormEditWidget = ({ 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 fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = fieldContext.solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = fieldContext.solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n const fieldName = fieldLayoutInfo.attrs.name;\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.errors[fieldName];\n\n if (isMultiSelect) {\n return (\n <p className={styles.fieldError}>This render mode is not supported for multi select.</p>\n );\n }\n\n const options = fieldMetadata.selectionStaticValues.map((i: string) => {\n const [value, label] = i.split(\":\");\n return { label, value };\n });\n\n const currentValue = formik.values[fieldName];\n const buttonValue =\n typeof currentValue === \"object\" ? currentValue.value : currentValue || null;\n\n return (\n <div className={styles.fieldWrapper}>\n {showFieldLabel !== false && (\n <label htmlFor={fieldName} className={styles.fieldLabel}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\">*</span>}\n </label>\n )}\n <SolidSegmentedControl\n options={options}\n value={buttonValue}\n disabled={formReadonly || fieldReadonly || readOnlyPermission || formDisabled || fieldDisabled}\n onChange={(nextValue) => {\n const selectedOption = options.find((opt: any) => opt.value === nextValue);\n if (selectedOption) {\n formik.setFieldValue(fieldName, selectedOption);\n const syntheticEvent = buildSyntheticChangeEvent(fieldName, selectedOption, \"button\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n }\n }}\n />\n {isFormFieldValid(formik, fieldName) && (\n <p className={styles.fieldError}>{formik.errors[fieldName]?.toString()}</p>\n )}\n </div>\n );\n};\n\n\nexport const DefaultSelectionStaticFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const value = formik.values[fieldLayoutInfo.attrs.name];\n const isMultiSelect = fieldLayoutInfo.attrs.multiSelect ?? fieldMetadata?.isMultiSelect;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>{fieldLabel}</p>\n )}\n <p className={styles.fieldViewValue}>\n {isMultiSelect\n ? Array.isArray(value)\n ? value.map((v: any) => v?.label).filter(Boolean).join(', ')\n : ''\n : value?.label || ''}\n </p>\n </div>\n );\n}\n"]}
@@ -237,10 +237,10 @@ export const DefaultSelectionStaticAutocompleteFormEditWidget = ({ formik, field
237
237
  const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
238
238
  fieldContext.onChange(syntheticEvent, "onFieldChange");
239
239
  }}
240
- onSelect={({ value }) => {
241
- const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
242
- fieldContext.onChange(syntheticEvent, "onFieldChange");
243
- }}
240
+ // onSelect={({ value }) => {
241
+ // const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, value, "text");
242
+ // fieldContext.onChange(syntheticEvent, "onFieldChange");
243
+ // }}
244
244
  />
245
245
  {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
246
246
  <p className={styles.fieldError}>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidManyToOneFilterElement.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidManyToOneFilterElement.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,2BAA2B,kDAAmD,GAAG,4CAmD7F,CAAA"}
1
+ {"version":3,"file":"SolidManyToOneFilterElement.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidManyToOneFilterElement.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,2BAA2B,kDAAmD,GAAG,4CAmD7F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidManyToOneFilterElement.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidManyToOneFilterElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,YAAY,EAA6B,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,EAAkD;QAAhD,KAAK,WAAA,EAAE,YAAY,kBAAA,EAAE,KAAK,WAAA,EAAE,aAAa,mBAAA;IAEnF,IAAM,SAAS,GAAG,oBAAoB,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC1E,IAAA,4BAA4B,GAAK,SAAS,6BAAd,CAAe;IAC5C,IAAA,uBAAuB,GAAI,4BAA4B,EAAE,GAAlC,CAAmC;IAE3D,IAAA,KAA4C,QAAQ,CAAC,EAAE,CAAC,EAAvD,iBAAiB,QAAA,EAAE,oBAAoB,QAAgB,CAAC;IAC/D,IAAM,kBAAkB,GAAG,UAAO,KAAgC;;;;;;;oBAGxD,SAAS,GAAG;wBACd,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,EAAE;wBACT,OAAO;4BACH,GAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,IAAG;gCAChD,UAAU,EAAE,KAAK,CAAC,KAAK;6BAC1B;+BACJ;qBACJ,CAAC;oBAEI,cAAc,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;wBAC3C,gBAAgB,EAAE,IAAI;qBACzB,CAAC,CAAC;oBAG0B,qBAAM,uBAAuB,CAAC,cAAc,CAAC,EAAA;;oBAApE,oBAAoB,GAAG,SAA6C;oBAGpE,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC;oBAEnD,IAAI,gBAAgB,EAAE;wBACZ,sBAAoB,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,IAAS;;4BAC7D,OAAO;gCACH,KAAK,EAAE,IAAI,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,CAAC;gCAC7D,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;6BACpB,CAAA;wBACL,CAAC,CAAC,CAAC;wBACH,oBAAoB,CAAC,mBAAiB,CAAC,CAAC;qBAC3C;;;;SACJ,CAAA;IAED,OAAO,CACH,KAAC,YAAY,IACT,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,kBAAkB,EAClC,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAA5B,CAA4B,EAC7C,SAAS,EAAC,6BAA6B,GACzC,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { InputTypes } from \"./SolidVarInputsFilterElement\"\nimport { AutoComplete, AutoCompleteCompleteEvent } from \"primereact/autocomplete\";\nimport { useState } from \"react\";\nimport qs from \"qs\";\n\n\nexport const SolidManyToOneFilterElement = ({ value, updateInputs, index, fieldMetadata }: any) => {\n\n const entityApi = createSolidEntityApi(fieldMetadata.relationCoModelSingularName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n\n const [autoCompleteItems, setAutoCompleteItems] = useState([]);\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n\n // Get the list view layout & metadata first. \n const queryData = {\n offset: 0,\n limit: 10,\n filters: {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n $containsi: event.query\n }\n }\n };\n\n const autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n\n if (autocompleteData) {\n const autoCompleteItems = autocompleteData.records.map((item: any) => {\n return {\n label: item[fieldMetadata?.relationModel?.userKeyField?.name],\n value: item['id']\n }\n });\n setAutoCompleteItems(autoCompleteItems);\n }\n }\n\n return (\n <AutoComplete\n field=\"label\"\n value={value}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={(e) => updateInputs(index, e.value)}\n className=\"solid-standard-autocomplete\"\n />\n )\n}"]}
1
+ {"version":3,"file":"SolidManyToOneFilterElement.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidManyToOneFilterElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,YAAY,EAA6B,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,EAAkD;QAAhD,KAAK,WAAA,EAAE,YAAY,kBAAA,EAAE,KAAK,WAAA,EAAE,aAAa,mBAAA;IAEnF,IAAM,SAAS,GAAG,oBAAoB,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC1E,IAAA,4BAA4B,GAAK,SAAS,6BAAd,CAAe;IAC5C,IAAA,uBAAuB,GAAI,4BAA4B,EAAE,GAAlC,CAAmC;IAE3D,IAAA,KAA4C,QAAQ,CAAC,EAAE,CAAC,EAAvD,iBAAiB,QAAA,EAAE,oBAAoB,QAAgB,CAAC;IAC/D,IAAM,kBAAkB,GAAG,UAAO,KAAgC;;;;;;;oBAGxD,SAAS,GAAG;wBACd,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,EAAE;wBACT,OAAO;4BACH,GAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,IAAG;gCAChD,UAAU,EAAE,KAAK,CAAC,KAAK;6BAC1B;+BACJ;qBACJ,CAAC;oBAEI,cAAc,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;wBAC3C,gBAAgB,EAAE,IAAI;qBACzB,CAAC,CAAC;oBAG0B,qBAAM,uBAAuB,CAAC,cAAc,CAAC,EAAA;;oBAApE,oBAAoB,GAAG,SAA6C;oBAGpE,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC;oBAEnD,IAAI,gBAAgB,EAAE;wBACZ,sBAAoB,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,IAAS;;4BAC7D,OAAO;gCACH,KAAK,EAAE,IAAI,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,CAAC;gCAC7D,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;6BACpB,CAAA;wBACL,CAAC,CAAC,CAAC;wBACH,oBAAoB,CAAC,mBAAiB,CAAC,CAAC;qBAC3C;;;;SACJ,CAAA;IAED,OAAO,CACH,KAAC,YAAY,IACT,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,kBAAkB,EAClC,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAA5B,CAA4B,EAC7C,SAAS,EAAC,6BAA6B,GACzC,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { AutoComplete, AutoCompleteCompleteEvent } from \"primereact/autocomplete\";\nimport { useState } from \"react\";\nimport qs from \"qs\";\n\n\nexport const SolidManyToOneFilterElement = ({ value, updateInputs, index, fieldMetadata }: any) => {\n\n const entityApi = createSolidEntityApi(fieldMetadata.relationCoModelSingularName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n\n const [autoCompleteItems, setAutoCompleteItems] = useState([]);\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n\n // Get the list view layout & metadata first. \n const queryData = {\n offset: 0,\n limit: 10,\n filters: {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n $containsi: event.query\n }\n }\n };\n\n const autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n // TODO: do error handling here, possible errors like modelname is incorrect etc...\n const autocompleteResponse = await triggerGetSolidEntities(autocompleteQs);\n\n // TODO: if no data found then can we show no matching \"entities\", where entities can be replaced with the model plural name,\n const autocompleteData = autocompleteResponse.data;\n\n if (autocompleteData) {\n const autoCompleteItems = autocompleteData.records.map((item: any) => {\n return {\n label: item[fieldMetadata?.relationModel?.userKeyField?.name],\n value: item['id']\n }\n });\n setAutoCompleteItems(autoCompleteItems);\n }\n }\n\n return (\n <AutoComplete\n field=\"label\"\n value={value}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={(e) => updateInputs(index, e.value)}\n className=\"solid-standard-autocomplete\"\n />\n )\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
2
- import { InputTypes } from "./SolidVarInputsFilterElement"
3
2
  import { AutoComplete, AutoCompleteCompleteEvent } from "primereact/autocomplete";
4
3
  import { useState } from "react";
5
4
  import qs from "qs";
@@ -56,4 +55,4 @@ export const SolidManyToOneFilterElement = ({ value, updateInputs, index, fieldM
56
55
  className="solid-standard-autocomplete"
57
56
  />
58
57
  )
59
- }
58
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaMultipleKanbanField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAOvE,QAAA,MAAM,6BAA6B,oGAAqG,2BAA2B,4CA+HlK,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
1
+ {"version":3,"file":"SolidMediaMultipleKanbanField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAavE,QAAA,MAAM,6BAA6B,oGAAqG,2BAA2B,4CAqIlK,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
- import { Dialog } from 'primereact/dialog';
4
3
  import { Document, Page, pdfjs } from "react-pdf";
4
+ import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogHeader, SolidDialogTitle, } from "../../../shad-cn-ui";
5
5
  pdfjs.GlobalWorkerOptions.workerSrc = "//unpkg.com/pdfjs-dist@".concat(pdfjs.version, "/build/pdf.worker.min.mjs");
6
6
  var SolidMediaMultipleKanbanField = function (_a) {
7
7
  var _b, _c, _d, _e, _f;
@@ -50,7 +50,7 @@ var SolidMediaMultipleKanbanField = function (_a) {
50
50
  }
51
51
  // **Render Other Files**
52
52
  return (_jsxs("div", { className: 'flex align-items-end gap-2 my-2', children: [_jsx("a", { href: url, download: true, target: "_blank", rel: "noopener noreferrer", children: _jsxs("svg", { width: "36px", height: "36px", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "#722ED1", stroke: "#722ED1", strokeWidth: "0.00024000000000000003", children: [_jsx("g", { id: "SVGRepo_bgCarrier", strokeWidth: "0" }), _jsx("g", { id: "SVGRepo_tracerCarrier", strokeLinecap: "round", strokeLinejoin: "round" }), _jsxs("g", { id: "SVGRepo_iconCarrier", children: [_jsx("path", { d: "M3 23h18V6.709L15.29 1H3zM15 2h.2L20 6.8V7h-5zM4 2h10v6h6v14H4z" }), _jsx("path", { fill: "none", d: "M0 0h24v24H0z" })] })] }) }), _jsxs("a", { href: url, download: true, target: "_blank", rel: "noopener noreferrer", className: 'text-color flex align-items-start gap-2', style: { textDecoration: 'none' }, children: [_jsx("p", { className: "text-sm mb-1", style: { wordWrap: 'break-word', overflowWrap: 'break-word' }, children: fileName }), _jsx("span", { className: 'pi pi-cloud-download' })] })] }, index));
53
- }), _jsx(Dialog, { header: "PDF Preview", visible: visible, style: { width: "" }, onHide: function () { return setVisible(false); }, modal: true, children: selectedPdf && (_jsx(Document, { file: selectedPdf, children: _jsx(Page, { pageNumber: 1 }) })) })] }));
53
+ }), _jsxs(SolidDialog, { open: visible, onOpenChange: setVisible, className: "solid-kanban-preview-dialog", children: [_jsxs(SolidDialogHeader, { className: "solid-kanban-preview-dialog-header", children: [_jsx(SolidDialogTitle, { children: "PDF Preview" }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogBody, { className: "solid-kanban-preview-dialog-body", children: selectedPdf && (_jsx(Document, { file: selectedPdf, children: _jsx(Page, { pageNumber: 1 }) })) })] })] }));
54
54
  };
55
55
  export default SolidMediaMultipleKanbanField;
56
56
  //# sourceMappingURL=SolidMediaMultipleKanbanField.js.map